@Override public void visit(final OWLDataPropertyRangeAxiom axiom) { axiom.getProperty().accept(this); final ATermAppl p = _term; axiom.getRange().accept(this); final ATermAppl c = _term; if (_addAxioms) _kb.addRange(p, c); else _reloadRequired = !_kb.removeRange(p, c); }
@Override public void visit(final OWLObjectPropertyRangeAxiom axiom) { axiom.getProperty().accept(this); final ATermAppl p = _term; axiom.getRange().accept(this); final ATermAppl c = _term; if (_addAxioms) _kb.addRange(p, c); else _reloadRequired = !_kb.removeRange(p, c); }
@Override public void visit(final OWLObjectPropertyRangeAxiom axiom) { axiom.getProperty().accept(this); final ATermAppl p = _term; axiom.getRange().accept(this); final ATermAppl c = _term; if (_addAxioms) _kb.addRange(p, c); else _reloadRequired = !_kb.removeRange(p, c); }
@Override public void visit(final OWLDataPropertyRangeAxiom axiom) { axiom.getProperty().accept(this); final ATermAppl p = _term; axiom.getRange().accept(this); final ATermAppl c = _term; if (_addAxioms) _kb.addRange(p, c); else _reloadRequired = !_kb.removeRange(p, c); }
@Override public void visit(final OWLDataPropertyRangeAxiom axiom) { axiom.getProperty().accept(this); final ATermAppl p = _term; axiom.getRange().accept(this); final ATermAppl c = _term; if (_addAxioms) _kb.addRange(p, c); else _reloadRequired = !_kb.removeRange(p, c); }
@Test public void testReflexiveRole() { classes(_A, _B, _C, _D, _E, _F, _G); objectProperties(_p, _q, _r, _s); _kb.addReflexiveProperty(_p); _kb.addRange(_p, _A); _kb.addRange(_p, and(_B, _C)); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(SetUtils.create(_A, _B, _C), hierarchy.getEquivalents(ATermUtils.TOP)); }
@Test public void testRangeNormalization1() { classes(_A, _B, _C, _D, _E, _F, _G, X[1]); objectProperties(_p, _q, _r, _s); _kb.addRange(_p, _A); _kb.addRange(_p, and(_B, _C)); _kb.addSubClass(_D, some(_p, X[1])); _kb.addSubClass(some(_p, and(and(_A, _B), _C)), _E); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(singletonSets(_E), hierarchy.getSupers(_D, true)); }
@Test public void testRange1() { classes(_A, _B, _C, _D); objectProperties(_p); _kb.addRange(_p, _A); _kb.addSubClass(_B, some(_p, _C)); _kb.addSubClass(some(_p, _A), _D); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(singletonSets(_D), hierarchy.getSupers(_B, true)); }
@Test public void subPropertyWithSameRange() { // test #435 classes(_A); objectProperties(_p, _q, _r); _kb.addRange(_p, _A); _kb.addDomain(_p, some(_q, _A)); assertTrue(_kb.isConsistent()); assertFalse(_kb.isSubPropertyOf(_p, _q)); assertFalse(_kb.isSubPropertyOf(_q, _p)); }
@Test public void validLiteralRestrictedDatatype() { dataProperties(_p); individuals(_a); final ATermAppl uri = term("http//example.com/datatype"); _kb.addRange(_p, INTEGER); _kb.addDatatypeDefinition(uri, restrict(INTEGER, minExclusive(literal(0)))); _kb.addPropertyValue(_p, _a, literal("1", uri)); assertTrue(_kb.isConsistent()); }
@Test public void invalidLiteralRestrictedDatatype() { dataProperties(_p); individuals(_a); final ATermAppl uri = term("http//example.com/datatype"); _kb.addRange(_p, INTEGER); _kb.addDatatypeDefinition(uri, restrict(INTEGER, minExclusive(literal(0)))); _kb.addPropertyValue(_p, _a, literal("-1", uri)); assertFalse(_kb.isConsistent()); }
@Test public void testRange3() { classes(_A, _B, _C, _D, _E, _F, _G); objectProperties(_p, _q, _r, _s); _kb.addRange(_p, and(_A, _B)); _kb.addSubClass(_C, some(_p, _D)); _kb.addSubClass(some(_p, _A), _E); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(singletonSets(_E), hierarchy.getSupers(_C, true)); }
@Test public void validLiteralStringRestriction1() { dataProperties(_p); individuals(_a); final ATermAppl uri = term("http//example.com/datatype"); _kb.addDatatypeDefinition(uri, oneOf(literal("a"), literal("b"))); _kb.addRange(_p, uri); _kb.addPropertyValue(_p, _a, literal("a")); assertTrue(_kb.isConsistent()); }
@Test public void testRange4() { classes(_A, _B, _C, _D, _E, _F, _G); objectProperties(_p, _q, _r, _s); _kb.addRange(_p, _C); _kb.addSubClass(_A, some(_p, _B)); _kb.addSubClass(and(_B, _C), _D); _kb.addSubClass(some(_p, _D), _E); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(singletonSets(_A), hierarchy.getSubs(_E, true)); }
@Test public void invalidLiteralStringRestriction() { assumeTrue(OpenlletOptions.INVALID_LITERAL_AS_INCONSISTENCY); dataProperties(_p); individuals(_a); final ATermAppl uri = term("http//example.com/datatype"); _kb.addDatatypeDefinition(uri, oneOf(literal("a"), literal("b"))); _kb.addRange(_p, uri); _kb.addPropertyValue(_p, _a, literal("a", uri)); assertFalse(_kb.isConsistent()); }
@Test public void testRange5() { classes(_A, _B, _C, _D, _E, _F, _G); objectProperties(_p, _q, _r, _s); _kb.addRange(_p, _A); _kb.addSubClass(_B, and(_A, some(_p, _C))); _kb.addSubClass(_C, _A); _kb.addEquivalentClass(_D, some(_p, _C)); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(singletonSets(_B, _C), hierarchy.getSubs(_A, true)); }
@Test public void testDomainAndRange() { classes(_A, _B, _C, _D, _E, _F, _G); objectProperties(_p, _q, _r, _s); _kb.addRange(_p, _A); _kb.addDomain(_q, _B); _kb.addSubClass(_C, some(_p, ATermUtils.TOP)); _kb.addSubClass(some(_p, _A), some(_q, ATermUtils.TOP)); final Taxonomy<ATermAppl> hierarchy = getHierarchy(); assertEquals(singletonSets(_B), hierarchy.getSupers(_C, true)); }
@Test public void testDomainRangeInverse() { classes(_A); objectProperties(_p); individuals(_a, _b); _kb.addDomain(_p, _A); _kb.addRange(_p, not(_A)); _kb.addInverseProperty(_p, _p); _kb.addPropertyValue(_p, _a, _b); explainInconsistency(ATermUtils.makeDomain(_p, _A), ATermUtils.makeRange(_p, not(_A)), ATermUtils.makeInvProp(_p, _p), ATermUtils.makePropAtom(_p, _a, _b)); }
@Test public void testRangeExpression() { classes(_A, _B); objectProperties(_p); individuals(_a, _b); _kb.addRange(_p, or(_A, _B)); _kb.addType(_b, not(or(_A, _B))); _kb.addPropertyValue(_p, _a, _b); explainInconsistency(ATermUtils.makeRange(_p, or(_A, _B)), ATermUtils.makeTypeAtom(_b, not(or(_A, _B))), ATermUtils.makePropAtom(_p, _a, _b)); }
@Test public void testDatatypeDefinitionInconsistency() { classes(_C); dataProperties(_p); individuals(_a, _b, _c); _kb.addRange(_p, _D); _kb.addDatatypeDefinition(_D, restrict(Datatypes.INTEGER, minInclusive(literal(10)))); _kb.addPropertyValue(_p, _a, literal(5)); explainInconsistency(ATermUtils.makeRange(_p, _D), ATermUtils.makeDatatypeDefinition(_D, restrict(Datatypes.INTEGER, minInclusive(literal(10)))), ATermUtils.makePropAtom(_p, _a, literal(5))); }