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
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
.