/** * Normalizes and adds data property disjointness axiom * <p> * DisjointDataProperties := 'DisjointDataProperties' '(' axiomAnnotations * DataPropertyExpression DataPropertyExpression { DataPropertyExpression } ')'<br> * <p> * Implements rule [D2]:<br> * - eliminates all occurrences of bot and if the result contains<br> * - no top and at least two elements then disjointness<br> * - one top then emptiness of all other elements<br> * - two tops then inconsistency (this behavior is an extension of OWL 2, where duplicates are removed from the list) */ @Override public void addDisjointDataPropertiesAxiom(DataPropertyExpression... dpes) throws InconsistentOntologyException { for (DataPropertyExpression dpe : dpes) checkSignature(dpe); dataPropertyAxioms.addDisjointness(dpes); }
/** * Normalizes and adds subclass axiom * <p> * SubClassOf := 'SubClassOf' '(' axiomAnnotations subClassExpression superClassExpression ')' * <p> * Implements rule [C1]:<br> * - ignore the axiom if the first argument is owl:Nothing or the second argument is owl:Thing<br> * - replace by a disjointness axiom if the second argument is owl:Nothing but the first is not owl:Thing<br> * - inconsistency if the first argument is owl:Thing but the second one is not owl:Nothing * <p> * Implements rules [D5] and [O5] (in conjunction with DataSomeValuesFromImpl and ObjectSomeValuesFromImpl)<br> * - if the first argument is syntactically "equivalent" to owl:Thing, then replace it by owl:Thing * * @throws InconsistentOntologyException */ @Override public void addSubClassOfAxiom(ClassExpression ce1, ClassExpression ce2) throws InconsistentOntologyException { checkSignature(ce1); checkSignature(ce2); if (ce1.isTop()) ce1 = ClassImpl.owlThing; // rules [D5] and [O5] classAxioms.addInclusion(ce1, ce2); }
/** * Normalizes and adds a data subproperty axiom * <p> * SubDataPropertyOf := 'SubDataPropertyOf' '(' axiomAnnotations * subDataPropertyExpression superDataPropertyExpression ')'<br> * subDataPropertyExpression := DataPropertyExpression<br> * superDataPropertyExpression := DataPropertyExpression * <p> * implements rule [D1]:<br> * - ignore the axiom if the first argument is owl:bottomDataProperty * or the second argument is owl:topDataProperty<br> * - replace by a disjointness axiom if the second argument is owl:bottomDataProperty * but the first one is not owl:topDataProperty<br> * - inconsistency if the first is owl:topDataProperty but the second is owl:bottomDataProperty * * @throws InconsistentOntologyException */ @Override public void addSubPropertyOfAxiom(DataPropertyExpression dpe1, DataPropertyExpression dpe2) throws InconsistentOntologyException { checkSignature(dpe1); checkSignature(dpe2); dataPropertyAxioms.addInclusion(dpe1, dpe2); }
/** * Normalizes and adds subclass axiom * <p> * SubClassOf := 'SubClassOf' '(' axiomAnnotations subClassExpression superClassExpression ')' * <p> * Implements rule [C1]:<br> * - ignore the axiom if the first argument is owl:Nothing or the second argument is owl:Thing<br> * - replace by a disjointness axiom if the second argument is owl:Nothing but the first is not owl:Thing<br> * - inconsistency if the first argument is owl:Thing but the second one is not owl:Nothing * <p> * Implements rules [D5] and [O5] (in conjunction with DataSomeValuesFromImpl and ObjectSomeValuesFromImpl)<br> * - if the first argument is syntactically "equivalent" to owl:Thing, then replace it by owl:Thing * * @throws InconsistentOntologyException */ @Override public void addSubClassOfAxiom(ClassExpression ce1, ClassExpression ce2) throws InconsistentOntologyException { checkSignature(ce1); checkSignature(ce2); if (ce1.isTop()) ce1 = ClassImpl.owlThing; // rules [D5] and [O5] classAxioms.addInclusion(ce1, ce2); }
/** * Normalizes and adds an object subproperty axiom * <p> * SubObjectPropertyOf := 'SubObjectPropertyOf' '(' axiomAnnotations * ObjectPropertyExpression ObjectPropertyExpression ')' * <p> * Implements rule [O1]:<br> * - ignore the axiom if the first argument is owl:bottomObjectProperty * or the second argument is owl:topObjectProperty<br> * - replace by a disjointness axiom if the second argument is owl:bottomObjectProperty * but the first one is not owl:topObjectProperty<br> * - inconsistency if the first is owl:topObjectProperty but the second is owl:bottomObjectProperty * * @throws InconsistentOntologyException * */ @Override public void addSubPropertyOfAxiom(ObjectPropertyExpression ope1, ObjectPropertyExpression ope2) throws InconsistentOntologyException { checkSignature(ope1); checkSignature(ope2); objectPropertyAxioms.addInclusion(ope1, ope2); }
/** * Normalizes and adds a data subproperty axiom * <p> * SubDataPropertyOf := 'SubDataPropertyOf' '(' axiomAnnotations * subDataPropertyExpression superDataPropertyExpression ')'<br> * subDataPropertyExpression := DataPropertyExpression<br> * superDataPropertyExpression := DataPropertyExpression * <p> * implements rule [D1]:<br> * - ignore the axiom if the first argument is owl:bottomDataProperty * or the second argument is owl:topDataProperty<br> * - replace by a disjointness axiom if the second argument is owl:bottomDataProperty * but the first one is not owl:topDataProperty<br> * - inconsistency if the first is owl:topDataProperty but the second is owl:bottomDataProperty * * @throws InconsistentOntologyException */ @Override public void addSubPropertyOfAxiom(DataPropertyExpression dpe1, DataPropertyExpression dpe2) throws InconsistentOntologyException { checkSignature(dpe1); checkSignature(dpe2); dataPropertyAxioms.addInclusion(dpe1, dpe2); }
/** * Normalizes and adds data property disjointness axiom * <p> * DisjointDataProperties := 'DisjointDataProperties' '(' axiomAnnotations * DataPropertyExpression DataPropertyExpression { DataPropertyExpression } ')'<br> * <p> * Implements rule [D2]:<br> * - eliminates all occurrences of bot and if the result contains<br> * - no top and at least two elements then disjointness<br> * - one top then emptiness of all other elements<br> * - two tops then inconsistency (this behavior is an extension of OWL 2, where duplicates are removed from the list) */ @Override public void addDisjointDataPropertiesAxiom(DataPropertyExpression... dpes) throws InconsistentOntologyException { for (DataPropertyExpression dpe : dpes) checkSignature(dpe); dataPropertyAxioms.addDisjointness(dpes); }
/** * Normalizes and adds an object subproperty axiom * <p> * SubObjectPropertyOf := 'SubObjectPropertyOf' '(' axiomAnnotations * ObjectPropertyExpression ObjectPropertyExpression ')' * <p> * Implements rule [O1]:<br> * - ignore the axiom if the first argument is owl:bottomObjectProperty * or the second argument is owl:topObjectProperty<br> * - replace by a disjointness axiom if the second argument is owl:bottomObjectProperty * but the first one is not owl:topObjectProperty<br> * - inconsistency if the first is owl:topObjectProperty but the second is owl:bottomObjectProperty * * @throws InconsistentOntologyException * */ @Override public void addSubPropertyOfAxiom(ObjectPropertyExpression ope1, ObjectPropertyExpression ope2) throws InconsistentOntologyException { checkSignature(ope1); checkSignature(ope2); objectPropertyAxioms.addInclusion(ope1, ope2); }
/** * Normalizes and adds class disjointness axiom * <p> * DisjointClasses := 'DisjointClasses' '(' axiomAnnotations * subClassExpression subClassExpression { subClassExpression } ')'<br> * <p> * Implements rule [C2]:<br> * - eliminates all occurrences of bot and if the result contains<br> * - no top and at least two elements then disjointness<br> * - one top then emptiness of all other elements<br> * - two tops then inconsistency (this behavior is an extension of OWL 2, where duplicates are removed from the list) */ @Override public void addDisjointClassesAxiom(ClassExpression... ces) throws InconsistentOntologyException { for (ClassExpression c : ces) checkSignature(c); classAxioms.addDisjointness(ces); }
/** * Normalizes and adds class disjointness axiom * <p> * DisjointClasses := 'DisjointClasses' '(' axiomAnnotations * subClassExpression subClassExpression { subClassExpression } ')'<br> * <p> * Implements rule [C2]:<br> * - eliminates all occurrences of bot and if the result contains<br> * - no top and at least two elements then disjointness<br> * - one top then emptiness of all other elements<br> * - two tops then inconsistency (this behavior is an extension of OWL 2, where duplicates are removed from the list) */ @Override public void addDisjointClassesAxiom(ClassExpression... ces) throws InconsistentOntologyException { for (ClassExpression c : ces) checkSignature(c); classAxioms.addDisjointness(ces); }
/** * Normalizes and adds object property disjointness axiom * <p> * DisjointObjectProperties := 'DisjointObjectProperties' '(' axiomAnnotations * ObjectPropertyExpression ObjectPropertyExpression { ObjectPropertyExpression } ')'<br> * <p> * Implements rule [O2]:<br> * - eliminates all occurrences of bot and if the result contains<br> * - no top and at least two elements then disjointness<br> * - one top then emptiness of all other elements<br> * - two tops then inconsistency (this behavior is an extension of OWL 2, where duplicates are removed from the list) */ @Override public void addDisjointObjectPropertiesAxiom(ObjectPropertyExpression... opes) throws InconsistentOntologyException { for (ObjectPropertyExpression p : opes) checkSignature(p); objectPropertyAxioms.addDisjointness(opes); }
/** * Normalizes and adds object property disjointness axiom * <p> * DisjointObjectProperties := 'DisjointObjectProperties' '(' axiomAnnotations * ObjectPropertyExpression ObjectPropertyExpression { ObjectPropertyExpression } ')'<br> * <p> * Implements rule [O2]:<br> * - eliminates all occurrences of bot and if the result contains<br> * - no top and at least two elements then disjointness<br> * - one top then emptiness of all other elements<br> * - two tops then inconsistency (this behavior is an extension of OWL 2, where duplicates are removed from the list) */ @Override public void addDisjointObjectPropertiesAxiom(ObjectPropertyExpression... opes) throws InconsistentOntologyException { for (ObjectPropertyExpression p : opes) checkSignature(p); objectPropertyAxioms.addDisjointness(opes); }