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 http://www.co-ode.org/resources/ 
reference/manchester_syntax/

>
>> 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