- From: Jakob Voss <Jakob.Voss@gbv.de>
- Date: Mon, 10 Mar 2008 04:22:38 +0100
- To: <public-esw-thes@w3.org>
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