@Override public void visit(final OWLFunctionalDataPropertyAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } axiom.getProperty().accept(this); final ATermAppl p = _term; _kb.addFunctionalProperty(p); }
@Override public void visit(final OWLFunctionalDataPropertyAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } axiom.getProperty().accept(this); final ATermAppl p = _term; _kb.addFunctionalProperty(p); }
@Override public void visit(final OWLFunctionalDataPropertyAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } axiom.getProperty().accept(this); final ATermAppl p = _term; _kb.addFunctionalProperty(p); }
@Override public void visit(final OWLFunctionalObjectPropertyAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } addSimpleProperty(axiom.getProperty()); axiom.getProperty().accept(this); final ATermAppl p = _term; _kb.addFunctionalProperty(p); }
@Override public void visit(final OWLFunctionalObjectPropertyAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } addSimpleProperty(axiom.getProperty()); axiom.getProperty().accept(this); final ATermAppl p = _term; _kb.addFunctionalProperty(p); }
@Override public void visit(final OWLFunctionalObjectPropertyAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } addSimpleProperty(axiom.getProperty()); axiom.getProperty().accept(this); final ATermAppl p = _term; _kb.addFunctionalProperty(p); }
@Test public void testFunctionalDataProp2() { _kb.addDatatypeProperty(ssn); _kb.addFunctionalProperty(ssn); _kb.addIndividual(robert); final ATermAppl ssn1 = ATermUtils.makePlainLiteral("012345678"); final ATermAppl ssn2 = ATermUtils.makePlainLiteral("123456789"); _kb.addPropertyValue(ssn, robert, ssn1); _kb.addPropertyValue(ssn, robert, ssn2); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makePropAtom(ssn, robert, ssn1), ATermUtils.makePropAtom(ssn, robert, ssn2), ATermUtils.makeFunctional(ssn), }); assertTrue(explanation.size() == 3); }
@Test public void testFunctionalSubDataProperty() { // test for ticket #551 individuals(_a); dataProperties(_p, _q); _kb.addFunctionalProperty(_p); _kb.addSubProperty(_q, _p); _kb.addPropertyValue(_p, _a, literal("val1")); _kb.addPropertyValue(_q, _a, literal("val2")); assertFalse(_kb.isConsistent()); }
@Test public void reflexivePropertyCausingMerge2() { // test #433 classes(_A); individuals(_a, _b); objectProperties(_p); _kb.addReflexiveProperty(_p); _kb.addSymmetricProperty(_p); _kb.addFunctionalProperty(_p); _kb.addDomain(TOP_OBJECT_PROPERTY, _A); _kb.addPropertyValue(_p, _a, _b); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSameAs(_a, _b)); }
@Test public void test354() { // test case for issue #354. classes(_B); objectProperties(_p); individuals(_a, _b, _c); _kb.addFunctionalProperty(_p); _kb.addEquivalentClass(_B, oneOf(_b, _c)); assertFalse(_kb.isType(_a, not(_B))); _kb.isSatisfiable(_B); assertFalse(_kb.isType(_a, not(_B))); }
@Test public void someFunctionalP() { classes(_C, _D); objectProperties(_p); _kb.addFunctionalProperty(_p); _kb.addSubClass(_D, some(inv(_p), _C)); _kb.addSubClass(_C, some(_p, not(_D))); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSatisfiable(_C)); assertFalse(_kb.isSatisfiable(_D)); }
@Test public void testFunctionalSubDataProperty() { // test for ticket #551 individuals(_a); dataProperties(_p, _q); _kb.addFunctionalProperty(_q); _kb.addSubProperty(_p, _q); _kb.addPropertyValue(_p, _a, literal(1)); _kb.addPropertyValue(_q, _a, literal(2)); explainInconsistency(ATermUtils.makeFunctional(_q), ATermUtils.makeSubProp(_p, _q), ATermUtils.makePropAtom(_p, _a, literal(1)), ATermUtils.makePropAtom(_q, _a, literal(2))); } }
@Test public void functionalInv() { classes(_C, _D); objectProperties(_f); _kb.addFunctionalProperty(_f); _kb.addSubClass(_D, some(inv(_f), _C)); _kb.addSubClass(_C, some(_f, not(_D))); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSatisfiable(_C)); assertFalse(_kb.isSatisfiable(_D)); }
@Test public void reflexivePropertyCausingMerge1() { // test #433 classes(_A, _B); individuals(_a, _b); objectProperties(_p); _kb.addReflexiveProperty(_p); _kb.addSymmetricProperty(_p); _kb.addFunctionalProperty(_p); _kb.addSubClass(_A, _B); _kb.addType(_a, _A); _kb.addType(_b, _A); _kb.addPropertyValue(_p, _a, _b); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSameAs(_a, _b)); }
@Test public void yoyo() { classes(_A); objectProperties(_r); individuals(_a, _b); _kb.addFunctionalProperty(_r); _kb.addSubClass(_A, all(_r, some(_r, TOP))); _kb.addType(_a, _A); _kb.addType(_a, some(_r, TOP)); _kb.addPropertyValue(_r, _a, _a); _kb.addPropertyValue(_r, _a, _b); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSatisfiable(_A)); }
@Test public void propertyChainInverseCardinality() { classes(_C, _D); objectProperties(_p, _q, _r); // functionality has no effect, it is used to force // double blocking instead of equality blocking _kb.addFunctionalProperty(_p); _kb.addSubProperty(list(_r, _p), _q); _kb.addSubClass(_D, all(_q, _C)); assertTrue(_kb.isConsistent()); assertFalse(_kb.isSatisfiable(some(_p, and(_D, some(_p, and(some(inv(_r), _D), some(_p, not(_C)))))))); }
@Test public void testFunctionalDataProp1() { final ATermAppl C = term("C"); final ATermAppl D = XSDInteger.getInstance().getName(); final ATermAppl p = term("p"); final ATermAppl a = term("a"); final ATermAppl b = literal("012345678", Datatypes.INTEGER); _kb.addClass(C); _kb.addClass(D); _kb.addDatatypeProperty(p); _kb.addIndividual(a); _kb.addEquivalentClass(C, all(p, D)); _kb.addFunctionalProperty(p); _kb.addPropertyValue(p, a, b); assertTrue(_kb.isConsistent()); assertTrue(_kb.isType(a, C)); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makeEqClasses(C, all(p, D)), ATermUtils.makeFunctional(p), ATermUtils.makePropAtom(p, a, b) }); }
@Test public void functionalSubTrans() { classes(_A); objectProperties(_r, _f); _kb.addFunctionalProperty(_f); _kb.addTransitiveProperty(_r); _kb.addSubProperty(_f, _r); _kb.addEquivalentClass(_D, and(_C, some(_f, not(_C)))); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSatisfiable(and(not(_A), some(inv(_f), _A), all(inv(_r), some(inv(_f), _A))))); }
@Test public void test560() { classes(_A, _B); individuals(_a); objectProperties(_p, _q); _kb.addFunctionalProperty(_p); _kb.addSubProperty(_q, _p); _kb.addSubClass(_A, hasValue(_q, _a)); _kb.addType(_a, all(inv(_q), all(inv(_p), oneOf(_a)))); assertTrue(_kb.isConsistent()); assertTrue(_kb.isSatisfiable(and(some(_p, _A), some(_q, _B)))); }
@Test public void testFunctionalObjectProp1() { final ATermAppl C = term("C"); final ATermAppl D = term("D"); final ATermAppl p = term("p"); final ATermAppl a = term("a"); final ATermAppl b = term("b"); _kb.addClass(C); _kb.addClass(D); _kb.addObjectProperty(p); _kb.addIndividual(a); _kb.addIndividual(b); _kb.addEquivalentClass(C, all(p, D)); _kb.addFunctionalProperty(p); _kb.addPropertyValue(p, a, b); _kb.addType(b, D); assertTrue(_kb.isConsistent()); assertTrue(_kb.isType(a, C)); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertIteratorValues(explanation.iterator(), new Object[] { ATermUtils.makeEqClasses(C, all(p, D)), ATermUtils.makeFunctional(p), ATermUtils.makePropAtom(p, a, b), ATermUtils.makeTypeAtom(b, D) }); }