@Override public void visit(final OWLDifferentIndividualsAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } final List<OWLIndividual> inds = axiom.getIndividualsAsList(); if (inds.size() == 2) { final Iterator<OWLIndividual> iter = inds.iterator(); iter.next().accept(this); final ATermAppl i1 = _term; iter.next().accept(this); final ATermAppl i2 = _term; _kb.addDifferent(i1, i2); } else { final ATermAppl[] terms = new ATermAppl[inds.size()]; int i = 0; for (final OWLIndividual ind : inds) { ind.accept(this); terms[i++] = _term; } _kb.addAllDifferent(ATermUtils.makeList(terms)); } }
@Override public void visit(final OWLDifferentIndividualsAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } final List<OWLIndividual> inds = axiom.getIndividualsAsList(); if (inds.size() == 2) { final Iterator<OWLIndividual> iter = inds.iterator(); iter.next().accept(this); final ATermAppl i1 = _term; iter.next().accept(this); final ATermAppl i2 = _term; _kb.addDifferent(i1, i2); } else { final ATermAppl[] terms = new ATermAppl[inds.size()]; int i = 0; for (final OWLIndividual ind : inds) { ind.accept(this); terms[i++] = _term; } _kb.addAllDifferent(ATermUtils.makeList(terms)); } }
@Override public void visit(final OWLDifferentIndividualsAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } final List<OWLIndividual> inds = axiom.getIndividualsAsList(); if (inds.size() == 2) { final Iterator<OWLIndividual> iter = inds.iterator(); iter.next().accept(this); final ATermAppl i1 = _term; iter.next().accept(this); final ATermAppl i2 = _term; _kb.addDifferent(i1, i2); } else { final ATermAppl[] terms = new ATermAppl[inds.size()]; int i = 0; for (final OWLIndividual ind : inds) { ind.accept(this); terms[i++] = _term; } _kb.addAllDifferent(ATermUtils.makeList(terms)); } }
kb.addIndividual(ind1); kb.addIndividual(ind2); kb.addDifferent(ind1, ind2); break; default:
kb.addIndividual(ind1); kb.addIndividual(ind2); kb.addDifferent(ind1, ind2); break; default:
kb.addIndividual(ind1); kb.addIndividual(ind2); kb.addDifferent(ind1, ind2); break; default:
_kb.addDifferent(x, y);
_kb.addDifferent(x, y);
@Test public void testSameDifferent() { _kb.addIndividual(robert); _kb.addIndividual(bob); _kb.addSame(robert, bob); _kb.addDifferent(robert, bob); assertFalse(_kb.isConsistent()); final Set<ATermAppl> explanation = _kb.getExplanationSet(); assertTrue(explanation.contains(ATermUtils.makeSameAs(robert, bob))); assertTrue(explanation.contains(ATermUtils.makeDifferent(robert, bob))); assertTrue(explanation.size() == 2); }
_kb.addDifferent(ind1, ind2);
_kb.addDifferent(ind1, ind2);
_kb.addPropertyValue(p, c, c); _kb.addDifferent(b, c);
/** * Verify that differentFrom assertions survive ABox reset */ @Test public void differentAfterReset() { _kb.addIndividual(_robert); _kb.addIndividual(_chris); _kb.addDifferent(_robert, _chris); _kb.addDatatypeProperty(_ssn); final ATermAppl literal = ATermUtils.makePlainLiteral("xxx"); _kb.addPropertyValue(_ssn, _chris, literal); assertTrue(_kb.isConsistent()); assertTrue(_kb.isDifferentFrom(_robert, _chris)); assertTrue(_kb.isDifferentFrom(_chris, _robert)); // ABox property removal should cause ABox reset. assertTrue(_kb.removePropertyValue(_ssn, _chris, literal)); assertTrue(_kb.isChanged(ChangeType.ABOX_DEL)); assertTrue(_kb.isConsistent()); assertTrue(_kb.isDifferentFrom(_robert, _chris)); assertTrue(_kb.isDifferentFrom(_chris, _robert)); }
@Test public void testAssertedSameAs() { // This test case is to test the processing of sameAs processing // where there are redundancies in the assertions (see ticket 138) final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl a = term("a"); final ATermAppl b = term("b"); final ATermAppl c = term("c"); final ATermAppl d = term("d"); final ATermAppl e = term("e"); final ATermAppl f = term("f"); kb.addIndividual(a); kb.addIndividual(b); kb.addIndividual(c); kb.addIndividual(d); kb.addIndividual(e); kb.addIndividual(f); kb.addSame(a, b); kb.addSame(b, c); kb.addSame(c, d); kb.addSame(a, d); kb.addSame(b, d); kb.addSame(e, f); kb.addDifferent(e, f); assertFalse(kb.isConsistent()); }
@Test public void testMerge() { // TODO // basic classes _kb.addClass(_person); // basic properties _kb.addObjectProperty(_sibling); // basic _abox _kb.addIndividual(_mary); _kb.addIndividual(_chris); _kb.addIndividual(_victor); _kb.addIndividual(_john); _kb.addIndividual(_bill); _kb.addPropertyValue(_sibling, _bill, _mary); _kb.addPropertyValue(_sibling, _bill, _john); _kb.addPropertyValue(_sibling, _chris, _victor); assertTrue(_kb.isConsistent()); assertFalse(_kb.hasPropertyValue(_bill, _sibling, _victor)); _kb.addSame(_chris, _bill); assertTrue(_kb.isConsistent()); assertTrue(_kb.hasPropertyValue(_bill, _sibling, _victor)); _kb.addDifferent(_bill, _chris); assertFalse(_kb.isConsistent()); }
_kb.addDifferent(st, ot); else addUnsupportedFeature("Ignoring differentFrom axiom between " + st + " and " + ot);
_kb.addDifferent(st, ot); else addUnsupportedFeature("Ignoring differentFrom axiom between " + st + " and " + ot);
_kb.addDifferent(st, ot); else addUnsupportedFeature("Ignoring differentFrom axiom between " + st + " and " + ot);
for (int j = i + 1; j < inds.length; j++) if (_kb.getABox().getIndividual(inds[i]).isSame(_kb.getABox().getIndividual(inds[j]))) _kb.addDifferent(inds[i], inds[j]); assertTrue(_kb.isConsistent());