(define-ontology lister-instances (:base "http://www.cisban.ac.uk/testOntologyInstances.owl" :about !) (object-property !hasTerm :functional (domain !ModifierReference) (range !TermRoot)) (object-property !obo_IsA :transitive (domain !TermRoot) (range !TermRoot)) (class !ModifierReference :partial (restriction !hasTerm (all-values-from (restriction !obo_IsA (some-values-from (one-of !correctRootForModifier))))) (restriction !hasTerm (all-values-from !TermRoot))) (class !TermRoot :partial) (individual !correctRootForModifier (type !TermRoot) (value !obo_IsA !rootTerm)) (individual !correctTermForModifier (type !TermRoot) (value !obo_IsA !correctRootForModifier)) (individual !incorrectTermForModifier (type !TermRoot) (value !obo_IsA !rootTerm)) ;; constraint operates here ;; should be ok (individual !modifierReferenceCorrect (type !ModifierReference) (value !hasTerm !correctTermForModifier)) ;; shouldn't because !incorrectTermForModifier isn't obo_IsA !correctRootForModifier. (individual !modifierReferenceIncorrect (type !ModifierReference) (value !hasTerm !incorrectTermForModifier)) ;; should be ok (individual !modifierReferenceRootTerm (type !ModifierReference) (value !hasTerm !correctRootForModifier)) (individual !nope (type (intersection-of !ModifierReference (restriction !hasTerm (some-values-from (restriction !obo_IsA (all-values-from (complement-of (one-of !correctRootForModifier))))))))) (individual !rootTerm (type !TermRoot)) ;; added by alanr (different-individuals !modifierReferenceRootTerm !modifierReferenceIncorrect !modifierReferenceCorrect ) (different-individuals !correctRootForModifier !correctTermForModifier !incorrectTermForModifier !rootTerm) (disjoint-classes !ModifierReference !TermRoot) ) (define-ontology lister-classes (:base "http://www.cisban.ac.uk/testOntology.owl" :about !) (object-property !hasTerm (domain !ModifierReference) (range !TermRoot)) (class !CorrectRootForModifier :partial !TermRoot) (class !CorrectTermForModifier :partial !CorrectRootForModifier) (class !IncorrectTermForModifier :partial !TermRoot) (class !ModifierReference :partial (restriction !hasTerm (all-values-from !CorrectRootForModifier))) ; (class !SiblingOfCorrectTermForModifier :partial !CorrectRootForModifier) (class !TermRoot :partial) (individual !correctRootForModifier (type !CorrectRootForModifier)) (individual !correctTermForModifier (type !CorrectTermForModifier)) (individual !incorrectTermForModifier (type !IncorrectTermForModifier)) (individual !modifierReferenceCorrect (type !ModifierReference) (value !hasTerm !correctTermForModifier)) (individual !modifierReferenceIncorrect (type !ModifierReference)) (individual !modifierReferenceRootTerm (type !ModifierReference) (value !hasTerm !correctRootForModifier)))