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
isBaseForas irreflexive and asymmetric (without transitive characteristic) and add a SWRL Rule for the transitive characteristic. Here is the Manchester syntax:This will correctly give inconsistencies for:
isBaseFor(y1, y2)andisBaseFor(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)andisBaseFor(y2, y3).