问题
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_ofis reflexive, then:c2_inst :is_friend_of :c2_inst. - Since the domain of
:is_friend_ofis:cl1, thenc2_inst rdf:type :cl1. - Also,
c2_inst rdf:type :cl2. - But
:cl1and:cl2are 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