[Pellet-users] instance recognition when using owl:complementOf does not succeed
Evren Sirin
evren at clarkparsia.com
Wed Jan 17 03:12:04 UTC 2007
On 1/12/07 12:40 PM, Andreas Lohmann wrote:
> Hi ,
>
> I'm stuck with a problem regarding instance recognition using pellet 1.4RC1.
> Since I have tried to use the owl:complementOf property to to make
> class description sufficient, reasoning does not work any more.
> I've tried heaps of combinations to include complementOf just to see if
> I can get reasoning running at all while having this property in the
> ontology, but no success.
> No I'm wondering if there is a general issue on this I didn't get.
>
> Here is what I want to do:
> I want to recognize an instance of #ClassToRecognize.
> Its property #hasStage has an object #ClassOne which in turn has a
> property #involvesObject.
> Objects allowed for #involvesObject are (among others) #ObjectA +
> #ObjectB and their children. (sufficient)
> Objects NOT allowed for #involvesObject are #ObjectC and their children.
>
> So when I remove the "Class ... complementOf" part, reasoning works
> well, if I use the ontology like below the instance is not recognized.
> (naturally there is no #involvesObject property which #ObjectC as an
> object in the model which is sent to the reasoner)
>
It is hard to tell something definitely without seeing the other
relevant parts of the ontology, e.g. the description of the individual
that you think should be classified under ClassToRecognize. I suspect
the problem might be related to open world assumption of OWL. When you
use complementOf(ObjectC) in your definition, the value you use for
involvesObject should be proven to be an instance of ObjectC's negation.
Not having (x rdf:type ObjectC) would not be enough to prove that
because with OWA the reasoner will conclude it is still possible but we
don't know (x rdf:type ObjectC). On the other hand, if you have (x
rdf:type SomeClass) and (SomeClass disjointWith ObjectC) then the
reasoner will infer x is an instance of complementOf(ObjectC).
Sorry if I'm pointing out something obvious for you. With a more
complete ontology example, it would be easier to see what is wrong.
Cheers,
Evren
>
> I hope someone can help me with this
> Thanks in advance, Andy
>
> <owl:Class rdf:about="#ClassToRecognize">
> <owl:equivalentClass>
> <owl:Class>
> <owl:intersectionOf rdf:parseType="Collection">
> <owl:Restriction>
> <owl:onProperty>
> <owl:ObjectProperty rdf:about="#hasStage"/>
> </owl:onProperty>
> <owl:someValuesFrom>
> <owl:Class>
> <owl:intersectionOf rdf:parseType="Collection">
> <owl:Class rdf:about="#ClassOne"/>
> <owl:Restriction>
> <owl:onProperty>
> <owl:ObjectProperty rdf:about="#involvesObject"/>
> </owl:onProperty>
> <owl:someValuesFrom>
> <owl:Class>
> <owl:unionOf rdf:parseType="Collection">
> <owl:Class rdf:about="#ObjectA"/>
> <owl:Class rdf:about="#ObjectB"/>
> </owl:unionOf>
> </owl:Class>
> </owl:someValuesFrom>
> </owl:Restriction>
> </owl:intersectionOf>
> </owl:Class>
> </owl:someValuesFrom>
> </owl:Restriction>
> <owl:Class>
> <owl:complementOf>
> <owl:Restriction>
> <owl:someValuesFrom>
> <owl:Class>
> <owl:intersectionOf rdf:parseType="Collection">
> <owl:Class rdf:about="#ClassOne"/>
> <owl:Restriction>
> <owl:someValuesFrom rdf:resource="#ObjectC"/>
> <owl:onProperty>
> <owl:ObjectProperty rdf:about="#involvesObject"/>
> </owl:onProperty>
> </owl:Restriction>
> </owl:intersectionOf>
> </owl:Class>
> </owl:someValuesFrom>
> <owl:onProperty>
> <owl:ObjectProperty rdf:about="#hasStage"/>
> </owl:onProperty>
> </owl:Restriction>
> </owl:complementOf>
> </owl:Class>
> </owl:intersectionOf>
> </owl:equivalentClass>
> </owl:Class>
> </owl:Class>
>
> _______________________________________________
> Pellet-users mailing list
> Pellet-users at lists.owldl.com
> http://lists.owldl.com/mailman/listinfo/pellet-users
>
>
More information about the Pellet-users
mailing list