I'm trying to model, desires and intentions in OWL as follows.
There are four sub-classes of Parent Class Desire
as shown and Intention
specialize as the intersection of two of them, i.e. AchievableDesire and NonConflictingDesire
.
I have equivalent class expressions for all four direct sub-classes of Desire
and individuals are inferred correctly using a reasoner.
The following individuals are inferred for these classes.
NonConflictingDesire
, the individualsA
,B
andC
.NonAchievableDesire
, the individualsA
andB
AchievableDesire
, the individualsA
,B
andC
ConflictingDesire
has no inferred instances (correctly based on the corresponding equivalent class expression)
While these classes work as expected I have trouble inferring the right individuals for the Intention
class. In addition to the intersection of AchievableDesire
and NonConflictingDesire
, I would like to exclude/minus the union of NonAchievableDesire
and ConflictingDesire
. So in this case I would expect {A,B,C} n {A,B,C} - ({A,B} u {}) => {C}
When I defined the equivalent class expression for Intention
as AchievableDesire and NonConflictingDesire
, i infer A
,B
and C
as expected. But if I append a not clause to the aforementioned such as and not NonAchievableDesire
no individulals are inferred. Why is that so and what is the right way to model the equivalence expressions to get the behaviour I expect?
Most similar questions on SO want to classify instances where assertions are absent which I clearly understand is not possible under the OWA . Here I have already classified the unwanted results in a separate class (NonAchievableDesire
and ConflictingDesire
) so that I can use them in another class definition (Intention
) with the not
or owl:complementOf
owl axiom. I can't wrap my head around why this fails.