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] Comparing individuals

Thomas Russ tar at ISI.EDU
Tue Aug 7 11:26:05 PDT 2007

On Aug 5, 2007, at 6:27 AM, Ely Edison Matos wrote:

> Hello semantic fellows,
> I have a begginer's doubt, i hope you can help. I need to know thar  
> 2 individuals are "equals" or "the same" or "equivalent" in a owl  
> ontology. Sample:
>   <owl:Ontology rdf:about=""/>
>   <owl:Class rdf:ID="Measure"/>
>   <owl:Class rdf:ID="Unit"/>
>   <owl:ObjectProperty rdf:ID="measures">
>     <rdfs:range rdf:resource="#Measure"/>
>     <rdfs:domain rdf:resource="#Unit"/>
>   </owl:ObjectProperty>
>   <Unit rdf:ID="meter">
>     <measures>
>       <Measure rdf:ID="distance"/>
>     </measures>
>   </Unit>
>   <Unit rdf:ID="metre">
>     <measures rdf:resource="#distance"/>
>   </Unit>
> How can I test (or "discover") that "meter" and "metre" are the  
> same (cause it shares the same value to ObjectProperty, in this  
> case). Do i need a some closure at class definition? Can I use a  
> reasoner or SWRL?

You might want to reconsider the current structure of your ontology,  
since I don't think it really will scale well as you expand it.

In particular, the inference you suggest above (and in subsequent  
messages) doesn't seem like one that you will really want to use.   
Consider if you decide to introduce a new unit, the kilometer.   
Presumably this would then be modeled using

  <Unit rdf:ID="kilometer">
       <Measure rdf:ID="distance"/>

But if you do this, it will then also share the distance Measure  
instance as the value of its "measures" property.  And by the  
inference rule you describe, your system will conclude/discover that  
"meter" and "kilometer" are the same as well.  I'm pretty sure you  
don't want that conclusion.

A more robust and IMHO better ontology design would have only a  
single instance for any particular unit and associate text strings  
with that unit, thus allowing alternate mappings from the same  
canonical instance:

<Unit rdf:ID="meter">
       <Measure rdf:ID="distance"/>
     <textstring rdf:datatype=" 
     <textstring rdf:datatype=" 

<Unit rdf:ID="kilogram">
       <Measure rdf:ID="distance"/>
     <textstring rdf:datatype=" 
     <textstring rdf:datatype=" 

and so on.

More information about the protege-owl mailing list