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

Re: The Two Dogs Problem

From: Nathan <nathan@webr3.org>
Date: Fri, 17 Dec 2010 15:11:43 +0000
Message-ID: <4D0B7DAF.6080609@webr3.org>
To: Sandro Hawke <sandro@w3.org>
CC: Melvin Carvalho <melvincarvalho@gmail.com>, Semantic Web <semantic-web@w3.org>
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.

Best,

Nathan
Received on Friday, 17 December 2010 15:12:58 GMT

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