Search code examples
owlsemantic-webontologyprotege

Reflexive property in protege


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.


Solution

  • Reflexivity of :is_friend_of is essential for inconsistency.

    Take a look at Reasoner > Inconsistent ontology explanation :

    Inconsistency 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