I'm trying to obtain to model a property that is transitive, asymmetric and irreflexive. I understand that OWL reasoning does not support for this complex relationship.
However, is there a way to "trick" the reasoner? I want to use this for validation purposes, so I'm also trying SWRL rules (1), but the rule does not work (which makes sense, is the same reasoner).
(1) isBaseFor(?y1, ?y2) ^ isBaseFor(?y2, ?y3) -> isBaseFor(?y2, ?y3)
I'm thinking of using SQWRL, however this is a validation similar to SHACL or SPARQL (meaning that I have to run the validaton query separatly, which I'm trying to avoid).
Any ideas?
The "trick" is to create isBaseFor
as irreflexive and asymmetric (without transitive characteristic) and add a SWRL Rule for the transitive characteristic. Here is the Manchester syntax:
ObjectProperty: isBaseFor
Characteristics:
Irreflexive,
Asymmetric
Individual: y1
Facts:
isBaseFor y2
Individual: y2
Facts:
isBaseFor y3
Individual: y3
DifferentIndividuals:
y1,y2,y3
Rule:
isBaseFor(?y1, ?y2), isBaseFor(?y2, ?y3) - isBaseFor(?y1, ?y3)
This will correctly give inconsistencies for:
isBaseFor(y1, y2)
and isBaseFor(y2, y1)
because of asymmetric characteristic.isBaseFor(y3, y3)
because of irreflexive characteristic.It will correctly infer transitive relation based on SWRL rule given assertions isBaseFor(y1, y2)
and isBaseFor(y2, y3)
.