Reflexive property in protege

2019-07-18 08:19发布

问题:

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:

  1. Since :is_friend_of is reflexive, then :c2_inst :is_friend_of :c2_inst.
  2. Since the domain of :is_friend_of is :cl1, then c2_inst rdf:type :cl1.
  3. Also, c2_inst rdf:type :cl2.
  4. 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