Search code examples
protegereasoning

Reasoner infers wrong axioms in protege


I built an ontology in protege which has the following axioms:

Platform hasLocation SpatialThing
Sensor hasLocation Spatialthing

Lets say a platform and a sensor have the same location. Then the reasoner infers that the sensor is also of type Platform, and the platform is also of type sensor which is wrong. How do I change that? That happens with all the reasoners available. Visually:

hasLocation domain: Platform, Sensor
hasLocation range: SpatialThing 

<SensorInstance> owl:Class Sensor
<SensorInstance> hasLocation <SpatialThingInstance>
Reasoner infers:
<SensorInstance> owl:Class Platform

Solution

  • You are asserting that the domain of hasLocation is the intersection of Platform and Sensor. This implies that anything for which hasLocation has a value belongs to both of these classes.

    If you are trying to say that Platform and Sensor are part of the domain, but are disjoint, you need to define the domain as the union of these two classes (or, depending on what the domain actually is in your setup, that the domain class is a superclass of Platform and Sensor.