W3C home > Mailing lists > Public > semantic-web@w3.org > December 2010

Re: The Two Dogs Problem

From: Sandro Hawke <sandro@w3.org>
Date: Fri, 17 Dec 2010 10:38:21 -0500
To: nathan@webr3.org
Cc: Melvin Carvalho <melvincarvalho@gmail.com>, Semantic Web <semantic-web@w3.org>
Message-ID: <1292600301.2142.41.camel@waldron>
On Fri, 2010-12-17 at 15:11 +0000, Nathan wrote:
> Sandro Hawke wrote:
> > Another one is to use distinguishing characteristic and then declare OWL
> > keys [1].
> > 
> > For practical keys, one could use (owner, order-of-acquisition) as a
> > key.  (The dog I got first is necessarily different from the dog I got
> > after him.)  Or you could use some kind of registration number.  In the
> > US, some people register their dogs with akc.org; in my town, you also
> > have to register dogs with the town each year, and you get a
> > registration number, so (year-of-registration, town-of-registration,
> > town-reg-number) would be a good key.   Another option for a set of
> > characteristics that would almost always be unambiguous would be (name,
> > date-of-birth, owner of mother).
> > 
> > I haven't actually used keys yet in practice, so I'm not going to try to
> > provide a working example and get it wrong.  :-)
> > 
> > [1] http://www.w3.org/TR/owl2-primer/#Keys
> 
> If I understand correctly, then owl:hasKey is like a unique index in 
> dbms terms, over a collection of one or more properties?
> 
> So if you said:
> 
>    :Dog owl:hasKey (
>      :mother
>      :year-of-registration
>      :town-of-registration
>      :town-reg-number
>    )
> 
> Then that asserts that any :Dog is uniquely identified (in the unique 
> existential sense) by the set of those property's values?
> 
> Just checking I've understood this correctly, looks really useful, 
> thanks for the pointer Sandro.

It looks like I spoke too soon.   As I looked more closely at the
specs...

http://www.w3.org/TR/rif-owl-rl/#HasKey_rule
http://www.w3.org/TR/owl2-direct-semantics/#Keys
http://www.w3.org/TR/owl2-rdf-based-semantics/#Semantic_Conditions_for_Keys

... I see this only allows you to infer equality (that two dogs are the
same if these properties have the same values) not inequality (that two
dogs are different).    My mistake, sorry.

(And that makes sense.   Just because you don't have all four attributes
lined up to prove they are the same, doesn't necessarily mean they are
different.)

    -- Sandro
Received on Friday, 17 December 2010 15:38:31 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:40 GMT