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] allvaluesfrom problem and rule syntax needed

Thomas Russ tar at
Wed Nov 24 11:03:28 PST 2010

On Nov 24, 2010, at 8:16 AM, Soha Said wrote:

> Hello,
> Thanks alot, It worked when I said that Person and EdibleFood are  
> disjoint classes
> but it was working in protege 3.4.4 without this condition.

There must have been some disjoint class assertion.  Otherwise the  
reasoner has no way to know that an individual can't belong to both  
classes at once.  In fact, the restriction will give the reasoner the  
ability to infer that the individual must satisfy the restriction.   
Type restrictions in OWL are inferences not type checks like in  
programming languages.

So if I say
     A  hasPart only B
     i type A
     i hasPart j

Then the reasoner can figure out that j has type B.

> And about the rule, I think I have to do it in my code and don't  
> depend on protege


> Also, When I want any individual for some class must have minimum  
> and only one other some individual
> like: class eat has restrictions object exactly 1 EdibleFood and  
> object min 1 EdibleFood

You only need the exactly 1 restriction.
exactly is a combination of min and max restrictions.

> but when i create individual from eat and don't define any object to  
> it
> the reasoner doesn't catch, Is there some other constraint must be  
> written?

No.  That is a result of the open world semantics of OWL.  It is not  
an error.  OWL's reasoner infers that there is a property value -- it  
just doesn't know the identity of that property value.  You can't do  
anything about that since that is the defined and designed behavior of  
the reasoner.

> and how can I write restriction can say that some class has a  
> dataproperty can have any value expect some value
> like: class eat has dataproperty detSubj I want to say that detSubj  
> of eat has any value expect "there"
> how can I write it? I tried many ways and doesn't work.

I'm not quite sure how to do this with datatype properties.

For object properties you create a class with an enumeration of the  
item you care about.  Then use the complement of that class in the  
type restriction.  That means anything not in the class you take the  
complement of.

Hmmm.  Looking at the OWL 2 documentation I see there is a  
DataComplementOf that you should be able to use along with DataOneOf.

More information about the protege-discussion mailing list