There is a second edition of the Working Ontologist book that came out this 
summer and it has a lot of good new material.

-----Original Message-----
From: Phillip Rhodes [mailto:[email protected]] 
Sent: Saturday, September 03, 2011 10:38 AM
To: [email protected]
Subject: Re: SKOS "Special Purpose Inference" with Jena?

On Sat, Sep 3, 2011 at 10:19 AM, Dave Reynolds <[email protected]> 
wrote:
> Hi,
>>
>> (leaving out namespace declarations and such to save space)
>>
>>       <rdf:Description rdf:about="&example;Milk">
>>               <rdf:type rdf:resource="&skos;Concept" />
>>               <skos:narrower 
>> rdf:resource="&example;MilkBySourceAnimal" />
>>       </rdf:Description>
>
> I don't think that is legal.
>
> I'm not an expert on SKOS:Collections but as far as I can see from the 
> spec [1] the range of skos:narrower is skos:Concept (S19, S21, S22) 
> and skos:Collection is disjoint from skos:Concept (S37). So you can't 
> have a Collection as a narrowing of a Concept.
>
> I don't think so. Even if your SKOS were not illegal there's nothing 
> in the spec [1] that I can see that connects skos:narrower with 
> skos:member.
>
> I don't have a copy of the book to hand, can you clarify exactly what 
> it is saying about inference over skos:member?
>

Hmmm... well, this book is a few years old, so it's possible that the spec has 
changed, or even that there is a mistake in the book.  But here's what it says:

"SKOS includes a special provision for implementing Collections of concepts."
...
"This practice of grouping concepts is common practice in indexing and 
cataloguing.
It is important to notice that according to the common practice of professional 
cataloguers, the grouping 'milk by source animal' is itself not a Concept in 
its own right; it is simply a grouping for Concepts.  SKOS uses a class called 
skos:Collection and a property called SKOSmember to express such situations."
...
"The interest in this example comes when we examine what inferences we can draw 
from such a construct.  So far we have only used skos:narrower to express that 
one term has another as a narrower term.  But what would it mean to this same 
notion of skos:narrower to describe the relationship between a term and a 
collection? "
...
"If we have triples of the form:

X skos:narrower C
C skos:member Y
then we can infer the triple
X skos:narrower Y

When we apply this rule to agro:Milk, we can infer that it has as a narrower 
term, each of the kinds of milk in the collection agro:MilkBySourceAnimal"

And the RDF I originally posted is basically their example from the book, 
although I ditched their "agro" prefix and put everything under "example".



> Most of SKOS inference is inherited from OWL and so indeed combining 
> instance data, the SKOS axioms and an OWL reasoner should be enough 
> for most cases (though I recommend using OWLMicro as the default OWL 
> reasoner).
> There are some special purpose inference rules in SKOS. Jena does not 
> have them built in but it would be fairly easy to express then in 
> JenaRules and use a GenericRuleReasoner.

Ok, that's pretty much what I was thinking as well.  I have yet to learn to use 
the GenericRuleReasoner and work with the low level rules stuff, but maybe it's 
time to dig in... just for my edification, even if I don't have a specific need 
for this right now.

> In the case of Collections the
> only special case rule I can see is S36 which relates skos:member to 
> skos:memberList - but you aren't using skos:memberList in your case.
>

Yeah, I'll go read over the newest version of the spec myself then and see if 
that helps.  Maybe the book does have a mistake, or maybe it's just a very 
subtle misunderstanding on my part.  :-)


Thanks,


Phil


Reply via email to