skos-collections

Hai,

I don't quite get why skos:Collections exist.  It seems to be that a
skos:Collection is representing a group of skos:Concept s with a certain
property. Since skos:Concept is just another owl:Class, this seems to
say that a collection is just a subclass of skos:Concept. The fact that
the instances have some common property is something which one should
hope to express with owl:Restriction and skos or other vocabularies.
This may all have long been discarded as a phony idea but here is a
simple example from the skos system primer: 

milk
  <milk by source animal>
    cow milk
    goat milk
    buffalo milk

You are suppposed to encode this like :

ex:milk rdf:type skos:Concept;
  skos:prefLabel "milk"@en.
ex:cowMilk rdf:type skos:Concept; 
  skos:prefLabel "cow milk"@en;
  skos:broader ex:milk.
ex:goatMilk rdf:type skos:Concept; 
  skos:prefLabel "goat milk"@en;
  skos:broader ex:milk.
ex:buffaloMilk rdf:type skos:Concept; 
  skos:prefLabel "buffalo milk"@en;
  skos:broader ex:milk.

_:b0 rdf:type skos:Collection;
   skos:prefLabel "milk by source animal"@en;
   skos:member ex:cowMilk;
   skos:member ex:goatMilk;
   skos:member ex:buffaloMilk.

This depends on an intended semantic of skos:Collection and does not
encode that a member of the collection _:b0 should have ex:milk as a
broader term. 

On the other hand we can encode the whole hierarchy directly and (IMHO)
more precisely if we don't use skos:Collection but introduce a
"collection" as a subclass of skos:Concept each instance of which has
ex:milk as a broader term: 

ex:milk rdf:type skos:Concept;
  skos:prefLabel "milk"@en.

_:b0 rdf:type owl:Class;
     rdfs:subClassOf skos:Concept,
	[a owl:Restriction;
		owl:onProperty skos:broader;
		owl:hasValue ex:milk;];
   skos:prefLabel "milk by source animal"@en.

ex:cowMilk rdf:type _:b0;       # (*)
  skos:prefLabel "cow milk"@en;
  skos:broader ex:milk.         # superfluous since entailed by (*)
ex:goatMilk rdf:type _:b0; 
  skos:prefLabel "goat milk"@en;
  skos:broader ex:milk.
ex:buffaloMilk rdf:type _:b0; 
  skos:prefLabel "buffalo milk"@en;
  skos:broader ex:milk.

The skos notion of "members" of the "collection" is replaced by the rdf
notion of the instances of the class _:b0 of concepts. 
Ordered collections can be handled as subclasses of skos:Concept using
owl:oneOf. 

P.S. I am not subscribed to the mailinglist so please cc me on a reply.

Received on Wednesday, 7 May 2008 23:51:51 UTC