问题
This is my ontology created with protege 5 .
If i make cl1
and cl2
disjoint, then the ontology is being inconsistent , but if i uncheck is_friend_of
reflexive , the ontology is not inconsistent any more . whats wrong with my ontology ?
I want only cl1
class individuals have is_friend_of
property.
回答1:
Reflexivity of :is_friend_of
is essential for inconsistency.
Take a look at Reasoner > Inconsistent ontology explanation :
I'll try to translate this explanation into (poor) English:
- Since
:is_friend_of
is reflexive, then:c2_inst :is_friend_of :c2_inst
. - Since the domain of
:is_friend_of
is:cl1
, thenc2_inst rdf:type :cl1
. - Also,
c2_inst rdf:type :cl2
. - But
:cl1
and:cl2
are disjoint — contradiction.
In fact, the domain of every reflexive property is owl:Thing
.
As a workaround, you could uncheck reflexivity of is_friend_of
and define :cl1
in this way:
Class: cl1
EquivalentTo:
is_friend_of some owl:Thing,
is_friend_of some Self
来源:https://stackoverflow.com/questions/44822488/reflexive-property-in-protege