- From: Nathan <nathan@webr3.org>
- Date: Fri, 17 Dec 2010 15:11:43 +0000
- 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 UTC