Re: question concerning collections

Hi Bernard,

Hmmmm I had a strong sense of deja vu on this one... and indeed, this 
problem was flagged before, see [1]. Alistair wrote up solutions in [2] 
but we seem not to have come to a conclusion.

So yes, the current spec results in wrong triples, but there is no 
solution as yet.

The practical way for people to go forward now is either (a) use one of 
the solutions in [2] as if it already existed, or (b) ignore the problem 
and just use narrower on skos:Collections.

I personally would choose solution b _and_ not give those collections a 
URI. The most important thing is to prevent them being used in 
annotations. As they are collections anyway that fact can be used in 
displays independent if it was inferred to be a concept also. Of course 
more care is required in code that processes any skos:Concept; it should 
ignore the skos:Collections.

Later then the correct solution from [2] can be implemented by changing 
the existing RDF.

Cheers,
Mark.


[1]http://www.w3.org/2004/02/skos/core/proposals#collections-5
[2]http://isegserv.itd.rl.ac.uk/cvs-public/~checkout~/skos/drafts/collections-5.html?rev=1.2

Bernard Vatant wrote:
> 
> Mark
> 
> This exchange drives me a little confused about the status of 
> skos:Collection vs skos:Concept
> 
> What you write, and with which I basically tend to agree, seems to 
> assume that a skos:Collection is not a skos:Concept. Although this is 
> nowhere written explicitly in SKOS specification (correct me if I am 
> wrong), it seems indeed correct to assume that those two classes should 
> be in practice disjoint.
> 
> But if you allow, like in the example quoted by Paul, a collection, even 
> as a blank node, to be the value of a narrower property, like in example 
> quoted by Paul
> 
> (1)        ex:milk           skos:narrower            _:b0
> (2)        _:b0               rdf:type                      skos:Collection
> 
> ... put that along with the declaration of skos:narrower range in the 
> specification
> 
> (3)         skos:narrower                  rdfs:subPropertyOf          
> skos:semanticRelation
> (4)         skos:semanticRelation      rdfs:range                        
> skos:Concept
> 
> It's quite easy to entail
> 
> (5)      _:b0               rdf:type                      skos:Concept   
>          
> And this is independent of the fact that the collection has a URI or 
> not. Replacing _:b0 above  by  ex:milkbyanimal does not change anything 
> to this entailment.
> A side effect in that case is that if the distinction between 
> skos:Collection and skos:Concept is blurred, so is the distinction 
> between skos:member and skos:narrower.
> 
> My hunch is that there is something wrong with the above reasoning, 
> since I'm not happy with the conclusion.
> 
> Thoughts?
> 
> Bottom line : maybecurrent specification is a bit unclear about 
> collections, the core issue being not to know if they should be blank 
> nodes or not, but to make clear if and why skos:Collection and 
> skos:Concept are disjoint classes, if they indeed should be (of which I 
> remain to be fully convinced), and what the notion of "collectable 
> property" actually means.
> 
> Bernard
> 
> 
> *Bernard Vatant*
> 
> Knowledge Engineering
> 
> *Mondeca **
> *3, cité Nollez 75018 Paris France
> 
> Tel. +33 (0) 871 488 459
> Mail: bernard.vatant@mondeca.com <mailto:bernard.vatant@mondeca.com>
> 
> Web: www.mondeca.com <http://www.mondeca.com>
> 
> Blog : universimmedia.blogspot.com <http://universimmedia.blogspot.com>
> 
> 
> 
> Mark van Assem wrote
>>
>> Hi Paul,
>>
>> The SKOS Core Guide [1] says:
>>
>> "Note that in the example above the collection was defined as a blank 
>> node, i.e. no URI was allocated. URIs may be allocated to collections, 
>> but usually this is not necessary."
>>
>> So the first answer to your question is 'yes, it is possible and it is 
>> allowed'.
>>
>> However, I think the wording above should be stronger, stating that it 
>> is recommended NOT to give a URI for a collection. Collections are 
>> used to represent node labels, and node labels should not be used for 
>> indexing. Therefore annotators should not be tempted to use them 
>> anyway, simply because a URI is available for them.
>>
>> Again quoting [1]:
>>
>> 'There is consensus that a 'node label' does not represent a label for 
>> a concept in its own right, and therefore correctly modelling this 
>> kind of structure in RDF requires careful consideration.'
>>
>> Cheers,
>> Mark.
>>
>> [1]http://www.w3.org/TR/swbp-skos-core-guide/#seccollections
>>
>> <http://universimmedia.blogspot.com>
> 
> 
>> Paul Hermans wrote:
>>> In the SKOS core guide I do find following example :
>>>
>>> <rdf:RDF
>>>   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>>   xmlns:skos="http://www.w3.org/2004/02/skos/core#"
>>>   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
>>>     <skos:Concept rdf:about="http://www.example.com/concepts#milk">
>>>     <skos:prefLabel>milk</skos:prefLabel>
>>>     <skos:narrower>
>>>       <skos:Collection>
>>>         <rdfs:label>milk by source animal</rdfs:label>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#buffalomilk"/>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#cowmilk"/>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#goatmilk"/>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#sheepmilk"/>
>>>       </skos:Collection>
>>>     </skos:narrower>
>>>   </skos:Concept>
>>> </rdf:RDF>
>>>
>>> Where in this case Collection is within the narrower element as a 
>>> blank node.
>>>
>>> I suppose I can do the same using a node with a URI as follows.
>>>
>>> <rdf:RDF
>>>   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
>>>   xmlns:skos="http://www.w3.org/2004/02/skos/core#"
>>>   xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
>>>     <skos:Concept rdf:about="http://www.example.com/concepts#milk">
>>>     <skos:prefLabel>milk</skos:prefLabel>
>>>     <skos:narrower 
>>> rdf:resource="http://www.example.com/collections#milkbyanimal"/>
>>>   </skos:Concept>
>>>     <skos:Collection 
>>> rdf:about="http://www.example.com/collections#milkbyanimal">
>>>         <rdfs:label>milk by source animal</rdfs:label>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#buffalomilk"/>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#cowmilk"/>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#goatmilk"/>
>>>         <skos:member 
>>> rdf:resource="http://www.example.com/concepts#sheepmilk"/>
>>>  </skos:Collection>
>>>
>>> </rdf:RDF>
>>>
>>>
>>> I just want to check since someone told me this can and may not be 
>>> done according to the SKOS spec.
>>>
>>> Regards,
>>>
>>>
>>> Paul
>>>
>>
> 
> 

-- 
  Mark F.J. van Assem - Vrije Universiteit Amsterdam
        markREMOVE@cs.vu.nl - http://www.cs.vu.nl/~mark

Received on Monday, 29 May 2006 14:52:40 UTC