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-discussion] two simple questions

Timothy Redmond tredmond at
Mon Nov 9 09:27:23 PST 2009

On Nov 9, 2009, at 8:27 AM, Muhammad Javed wrote:

> Hi, I hope you can remove my confusions.
> Scenario:
> Class "Person" has a OWLDataProperty "Name"

So the first question is what this statements mean.  Two possible  
meanings are

every individual in the Person class has a name.  I tend to favor this  
meaning for "the class person has an owl data property name".  One  
consequence of this notion is that it will also be true every   
individual in the Male class will also have a name.  This  can be  
represented with the restriction Person subClassOf Name some string.
Person is a domain of the "Name" property.  Expanding what this means,  
it says that if an individual has a name then that individual is a  
Person.  It does not follow that the Male class is a domain of the  
"Name" property.

> Male is subclass of Person and has OWLDataProperty "hasOfficeID"
> Female is subclass of Person and has OWLDataProperty "hasHouseID"

Similarly we need to determine what these mean.

> Andy is instance of Male
> Cindy is instance of Female
> ======================================================
> Question 1:
> Is property "Name" is inherited to classes Male and Female.   
> (similar to the concept in Object Oriented Programming)
> if YES, it is a facility provided by OWL Syntax or it is provided  
> explicitly by tool Protege.

This depends on the definition chosen for "Person has the property  

> Question 2:
> Protege doesn't stop user to instantiate properties which are  
> neither of its own class nor of its parents class.
> e.g. Cindy hasOfficeID 123  ..I try to check whether Fact++ or  
> Pellet shows any error but They DON'T....pls explain this.

First of all Protege generally does not enforce inferences.  Trying to  
enforce  inference in a reasoner is a very tricky game and I believe  
would ultimately be much more confusing to the end user.  You end up  
with interfaces where changing something in one place automatically  
changes things elsewhere.  We have a couple of these types of  
inferences in Protege 3 and they can prevent a user can have  
difficulty saying what he wants to say.  Also it inevitably leads to  
questions like "you do inference a but not inference b - isn't this a  

I think that it is much simpler to let the user state what he wants to  
say and then to use a reasoner to see if he did anything wrong.

Second of all, both FacT++ and pellet are perfectly capable of these  
types of inferences.  You probably left something out that was needed  
for the conclusion that you wanted.  For example, did you state that  
the Male and Female classes are disjoint?  If you have questions send  
the ontology.

> KAON1 simply don't provide facility to instantiate any property if  
> its not domain of the class or of its parent.

It might be worth having a plugin providing this capability.  This is  
being done by NCI with NCI Protege.


> KAON1 simply don't provide facility to instantiate any property if  
> its not domain of the class or of its parent.
> =======================================================
> Thanks for your help
> ----------------------------------------------
> Muhammad Javed
> PhD Research Student

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the protege-discussion mailing list