Re: The Two Dogs Problem

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 UTC