ISSUE 77 and postcoordination

Hi!

I must raise another issue related to ISSUE 77 (skos:subject) about
collections of concepts. How do you encode postcoordination? After
dealing with the encoding of classifications and authority files in SKOS
I am working on a paper on encoding social tagging information with
SKOS. So I stumbled upon the skos:subject property and encoding of
subject indexing.

I was somehow suprised to see skos:subject missing in the current
working draft (chapter 11.2, issue 77). To my point of view skos:subject
is one of the pillars of SKOS (together with skos:Concept,
skow:prefLabel and skos:broader/narrower). It might be enough to use
dc:subject but then the SKOS recommendation should clearly state the
semantics it implies with using dc:subject.

In particular I found two related gaps in the current draft. First is
how to encode postcoordination of concepts and second is how to map to
coordinated concepts. Let me give an example:

Given one Concept Scheme with two concepts labeled "holdiay" and "2008":

 x:holiday a skos:Concept; skos:prefLabel "Holiday" .
 x:y2k8 a skos:Concept; skos:prefLabel "2008" .

How do you encode that fact that a resource '#R' was indexed with both
together in a specific context (person, date, etc.)? You somehow have to
connect two statements:

 #R skos:subject x:holiday .
 #R skos:subject x:y2k8 .

Reification might be a solution but reification in RDF is where the real
problems start, so better avoid it. The second use case is how to map a
concept in one vocabulary to a union of two terms in another vocabulary.
The early mapping spec [1] contained the classed AND, OR, and NOT but
these seem to have faded away (?). OR is not a problem as far as I can
see and NOT could be dropped because of complexity, but how do you
encode an AND? Given a second Concept Scheme with a concept labeled
"holiday2008":

 x:h2008 a skos:Concept; skos:prefLabel "2008" .

how do you encode the mapping between x:h2008 and x:holiday together
with x:y2k8 ? 

The solution I found, seems to answer both questions. First you have to
broaden the rdfs:range of skos:subject, skos:exactMatch,
skos:broadMatch, skos:narrowMatch and skos:relatedMatch from
skos:Concept to skos:Concept, skos:Collection and
skos:OrderedCollection. Second specify the semantics:

<A> skos:subject <C> .
<C> a skos:Collection ; skos:member <X> , <Y> .

entails

<A> skos:subject <X> ; skos:subject <Y>

And the same with mapping relations instead of skos:subject and with
skos:OrderedCollection instead of skos:Collection.

What does this mean? You can now

1. Map between a concept and and a set of coordinated concepts:

x:y2k8 skos:exactMatch [ 
  a skos:Collection; 
  skos:member x:holiday ;
  skos:member x:y2k8 
]

2. Coordinate Concepts into a (sorted) collection and index resources
with this coordinated collection.

#R skos:subject [
  a skos:Collection; 
  skos:member x:holiday ;
  skos:member x:y2k8 
]

Why is support of postcoordination needed in SKOS? Because without you
cannot specify the set and order of concepts that was used to index a
resource! How would you say person <P> indexed resource <R> with
concepts <C1> and <C2> at time <T>? With the proposed enhancement to the
current draft you can say it without additional classes and properties
or even reification:

<R> skos:subject _:x .
_:x a skos:Collection ;
  dc:creator <P> ;
  skos:member <C1> ;
  skos:member <C1> .

Actually the statement says "Ressource <R> is indexed with a set of
concepts <C1> and <C2> that was created at time <T> by person <P>" - but
in practise it's the same.

Greetings,
Jakob

[1] http://www.w3.org/2004/02/skos/mapping/spec/


-- 
Verbundzentrale des GBV (VZG)
Digitale Bibliothek - Jakob Voß
Platz der Goettinger Sieben 1
37073 Goettingen - Germany
+49 (0)551 39-10242
http://www.gbv.de
jakob.voss@gbv.de

Received on Monday, 10 March 2008 03:23:04 UTC