Search code examples
owlprotegereasoningswrlsqwrl

"Ignoring transitivity and/or complex subproperty axioms"


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?


Solution

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

    transitive relation inferred