Search Mailing List Archives
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
>> 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
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/
>> 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
More information about the protege-owl