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] Inheritance?

Thomas Russ tar at ISI.EDU
Thu Jan 14 11:59:37 PST 2010

I don't normally use Protege 4, so I'm not the best person to answer  
some of these.

On Jan 14, 2010, at 3:09 AM, Poovendran Moodley wrote:

>> As a simple example, if you define a class
>>   50-year-old  ==  Person and (hasValue age 50)
> I wasn't sure if age should be an object or data property. So I  
> tried both: as a data property, Bill was inferred as a 50-year-old,  
> where the class 50-year-old has the equivalence class "Person and  
> (age value 50)." However, Fred was not inferred to have the data  
> property of age being 50 (though Fred, of course was inferred to be  
> a Person since 50-year-old is-a Person).

I'm not sure where you would have to look to find inferred datatype  
property values using Protege 4.0, but I would expect them to be  
available somewhere.

>> You can then make the following assertions:
>>   Fred  type  50-year-old
>>   Bill  type Person
>>   Bill  age 50
>> Bill will be recognized as belonging to the class "50-year-old".   
>> Fred will have an inferred property value for "age" of 50.
>> Where the difference becomes apparent and will diverge from what  
>> you might get from an object-oriented perspective is if you use  
>> some of the other restrictions.  Most interesting would be, for  
>> example the "allValuesFrom" or the "minCardinality" restrictions.
>> In Protege 4, the class expression editor doesn't support the  
>> keywords allValuesFrom or minCardinality. I think I managed to try  
>> out using allValuesFrom but I'm not sure how to express  
>> minCardinality.

I think Protege 4 normally uses the more abbreviated Manchester  
syntax.  In that case
    allValuesFrom = only
    minCardinality = min

There is a nice summary table at 

>> If you were to define
>>   A  == B and (allValuesFrom P 50-year-old)
> I used that class A has the equivalence class: B and (P only 50- 
> year-old). Indeed, i-2 was inferred to be of type 50-year-old. It  
> didn't gain the data property age 50 but if I used the other  
> 50YearOld class in the equivalence class (described above) then i-2  
> did get the "hasValue 50" object property inference as expected.

Sounds like the same issue as above.

>> and then assert
>>   i-1  type  A
>>   i-1  P  i-2
>> then the inference engine will conclude that i-2 must be of type  
>> 50-year-old, and that information will be available for further  
>> reasoning.  In particular, the reasoner will figure out that the  
>> age of i-2 must be 50.
>> Instead, if you were to define
>>   X = Y and (minCardinality P 3)
> I suspected that the keyword only could mean allValuesFrom, and it  
> seemed to work as such. I suspect that the keyword min means  
> minCardinality but I'm unable to construct a valid expression in  
> Protege. I'd love to know how it's done :D

Correct on the keyword correspondences.  I think the form you need is  
"P min 3".

> and then assert
>  i-3 type X
> then the reasoner will conclude that i-3 has at least 3 values for  
> property P, but it won't be able to tell you which ones they are.   
> This is where open world reasoning comes into play.  Even though  
> there are 3 fillers, they don't have to be specifically  
> identified.  OWL is quite able to reason with just this partial  
> information.

More information about the protege-owl mailing list