Search code examples
owlsemantic-webprotegeturtle-rdfhermit

Reasoner sets two different classes equivalent to each other and owl:Thing


I am working on an ontology for video games for an university course project, specifically focused on the relations between different genres. I have included this ontology in my project and expanded on it. The current state of the OWL document is here.

When I start the HermiT reasoner in Protégé, it states that Game is Equivalent To Genre with the explanations:

Game Equivalent To Genre explanation

Furthermore, it states that owl:Thing is Equivalent To Game and equivalent to Genre with the following explanations (respectively):

owl:Thing Equivalent To Game explanation

owl:Thing Equivalent To Genre explanation

As you may suppose, this is definitely not a result that I expected. I have tried setting Game Disjoint With Genre, but the reasoner then states that the ontology is inconsistent. The explanation it gives is the same as the explanation for Game Equivalent To Genre but with the added Disjoint With restriction in each explanation.

This is my first time working with something like this, so I would be grateful if someone can explain to me the fallacy in my logic. What causes this behavior, why, and how can I fix it?

In addition, here is the code of the two object properties that seem to cause the trouble (the rest can be found here):

###  http://example.org/VideoGameOntologyExtended#hasElementsOf
:hasElementsOf rdf:type owl:ObjectProperty ,
                        owl:ReflexiveProperty ;
               rdfs:domain vgo:Genre ;
               rdfs:range vgo:Genre .

###  http://example.org/VideoGameOntologyExtended#isSimilarTo
:isSimilarTo rdf:type owl:ObjectProperty ,
                      owl:SymmetricProperty ,
                      owl:ReflexiveProperty ;
             rdfs:domain vgo:Game ;
             rdfs:range vgo:Game .

Solution

  • Just to give you a hint for the entailment owl:Thing EquivalentTo Game:

    We have

    Reflexive: isSimilarTo

    which is equivalent to

    owl:Thing SubClassOf isSimilarTo some Self

    which in fact means each individual in your ontology is related to itself via the property isSimilarTo, i.e. for each individual x in your ontology we can entail

    isSimilarTo(x, x)

    In addition, we have

    isSimilarTo Range Game

    which is semantically equivalent to the axiom

    owl:Thing SubClassOf isSimilarTo only Game

    This means, if there is such a relation isSimilarTo(x, y), the object y will belong to class Game.

    Now, remember that we already said that every individual in the ontology has such a relation, just to itself. Thus, we can infer that each individual belongs to class Game.