Some new vocabulary has been added to SKOS Core to support ordered/labelled collections of concepts. The primary use case for these terms is creating RDF descriptions of thesauri that have 'guide terms' and/or 'node labels'.
See the SKOS Core Vocabulary Specification for an overview of the new terms.
All new terms have an 'unstable' status, so further comments and suggestions are most welcome.
Description of the actioned proposal:
Add the following classes:
- Collection
- OrderedCollection (sub-class of Collection)
- CollectableProperty
Add the following properties:
- member (domain: Collection, range: rdf:Resource)
- memberList (domain: Collection, range: rdf:List)
To illustrate the intended usage by example, an *unordered* labelled
collection would be represented in RDF/XML as:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#">
<skos:Concept rdf:about="http://my.example.org/concept#102">
<skos:prefLabel>Aircraft</skos:prefLabel>
<skos:narrower>
<skos:Collection>
<rdfs:label>Aircraft by function</rdfs:label>
<skos:member rdf:resource="http://my.example.org/concept#1024"/>
<skos:member rdf:resource="http://my.example.org/concept#1026"/>
<skos:member rdf:resource="http://my.example.org/concept#1027"/>
<skos:member rdf:resource="http://my.example.org/concept#1028"/>
<skos:member rdf:resource="http://my.example.org/concept#1029"/>
</skos:Collection>
</skos:narrower>
</skos:Concept>
</rdf:RDF>
An *ordered*, labelled collection would be represented in RDF/XML as:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:skos="http://www.w3.org/2004/02/skos/core#">
<skos:Concept rdf:about="http://my.example.org/concept#56">
<skos:prefLabel>Countries</skos:prefLabel>
<skos:narrower>
<skos:OrderedCollection>
<rdfs:label>Countries by size</rdfs:label>
<skos:memberList rdf:parseType="Collection">
<skos:Concept rdf:about="http://my.example.org/concept#564"/>
<skos:Concept rdf:about="http://my.example.org/concept#565"/>
<skos:Concept rdf:about="http://my.example.org/concept#566"/>
<skos:Concept rdf:about="http://my.example.org/concept#568"/>
<skos:Concept rdf:about="http://my.example.org/concept#560"/>
<skos:Concept rdf:about="http://my.example.org/concept#562"/>
</skos:memberList>
</skos:OrderedCollection>
</skos:narrower>
</skos:Concept>
</rdf:RDF>
The following points are also part of this proposal:
(1) Collections may be nested as members of other collections.
(2) Wrt 'CollectableProperty' the following rule applies:
(?p rdf:type skos:CollectableProperty) (?x ?p ?c) (?c skos:member ?m) -> (?x ?p ?m)
(3) skos:narrower is declared to be of type skos:CollectableProperty
(4) Wrt 'memberList' the following dependency rule applies:
(?c skos:memberList ?l) elementOfList(?e,?l) -> (?c skos:member ?e)