Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-owl] the counterpart of primary key in relational db for owl?

Thomas Russ tar at ISI.EDU
Wed Jan 30 10:59:13 PST 2008

On Jan 29, 2008, at 8:08 PM, shangrun du wrote:

> Hello everyone,
> I'd like to know whether it is possible to restrict a property in  
> owl, so that it could be used to uniquely identify its domain  
> concepts, similar like what primary key in relational database does.  
> What I want to state in owl is for example:
> No two products should have the same serial number. Could I do it in  
> owl or is there some other way to express this? Thanks a lot in  
> advance.

Well, for starters it is the case that each OWL class, property or  
individual has a name (URI) that is distinct from all other such  
names.  In other words, no two different OWL objects will have the  
same URI.  It is important to note that this is somewhat different  
from a primary key in a DB in that you could, in fact, have multiple  
URIs that refer to the same OWL object.  In other words, the mapping  
from URI => Object is unique, but not the reverse mapping.  Since  
additional references and equality assertions can be made, it is  
possible to prohibit the addition of other URI names for objects.  The  
best you could do is to make all known URIs be distinct with an  
allDifferent assertion.  But newly created URIs could still point to  
existing objects and provide synonyms.

As for the serial number case, you can't express that in OWL because  
you can't put restrictions on datatype values, since they are not OWL  
objects.  The closest you could come would be to use the serial number  
in the URI naming the OWL object.

More information about the protege-owl mailing list