@Override public void visit(final OWLDisjointClassesAxiom axiom) { final Set<OWLClassExpression> descriptions = asSet(axiom.classExpressions()); final int size = descriptions.size(); if (size > 1) { final ATermAppl[] terms = new ATermAppl[size]; int index = 0; for (final OWLClassExpression desc : descriptions) { desc.accept(this); terms[index++] = _term; } final ATermList list = ATermUtils.toSet(terms, size); if (_addAxioms) _kb.addDisjointClasses(list); else _reloadRequired = !_kb.removeAxiom(ATermUtils.makeDisjoints(list)); } }
@Override public void visit(final OWLDisjointClassesAxiom axiom) { final Set<OWLClassExpression> descriptions = asSet(axiom.classExpressions()); final int size = descriptions.size(); if (size > 1) { final ATermAppl[] terms = new ATermAppl[size]; int index = 0; for (final OWLClassExpression desc : descriptions) { desc.accept(this); terms[index++] = _term; } final ATermList list = ATermUtils.toSet(terms, size); if (_addAxioms) _kb.addDisjointClasses(list); else _reloadRequired = !_kb.removeAxiom(ATermUtils.makeDisjoints(list)); } }
@Override public void visit(final OWLDisjointClassesAxiom axiom) { final Set<OWLClassExpression> descriptions = asSet(axiom.classExpressions()); final int size = descriptions.size(); if (size > 1) { final ATermAppl[] terms = new ATermAppl[size]; int index = 0; for (final OWLClassExpression desc : descriptions) { desc.accept(this); terms[index++] = _term; } final ATermList list = ATermUtils.toSet(terms, size); if (_addAxioms) _kb.addDisjointClasses(list); else _reloadRequired = !_kb.removeAxiom(ATermUtils.makeDisjoints(list)); } }
@Override public void visit(final OWLDisjointUnionAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } axiom.getOWLClass().accept(this); final ATermAppl c = _term; ATermList classes = ATermUtils.EMPTY_LIST; for (final OWLClassExpression desc : asList(axiom.classExpressions())) { desc.accept(this); classes = classes.insert(result()); } _kb.addDisjointClasses(classes); _kb.addEquivalentClass(c, ATermUtils.makeOr(classes)); }
@Override public void visit(final OWLDisjointUnionAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } axiom.getOWLClass().accept(this); final ATermAppl c = _term; ATermList classes = ATermUtils.EMPTY_LIST; for (final OWLClassExpression desc : asList(axiom.classExpressions())) { desc.accept(this); classes = classes.insert(result()); } _kb.addDisjointClasses(classes); _kb.addEquivalentClass(c, ATermUtils.makeOr(classes)); }
@Override public void visit(final OWLDisjointUnionAxiom axiom) { if (!_addAxioms) { _reloadRequired = true; return; } axiom.getOWLClass().accept(this); final ATermAppl c = _term; ATermList classes = ATermUtils.EMPTY_LIST; for (final OWLClassExpression desc : asList(axiom.classExpressions())) { desc.accept(this); classes = classes.insert(result()); } _kb.addDisjointClasses(classes); _kb.addEquivalentClass(c, ATermUtils.makeOr(classes)); }
@Test public void testDisjointSelf() { final KnowledgeBase kb = new KnowledgeBaseImpl(); final ATermAppl A = term("A"); final ATermAppl p = term("p"); kb.addClass(A); kb.addObjectProperty(p); kb.addDisjointClasses(Arrays.asList(A, self(p))); kb.classify(); assertTrue(kb.isSatisfiable(A)); }
@Test public void test532a() { classes(_A, _B, _C, _D); individuals(_a, _b, _c, _d); objectProperties(_p, _q); _kb.addDisjointClasses(Arrays.asList(_A, _B, _C, _D)); _kb.addType(_a, or(_A, _B)); _kb.addType(_b, or(_C, _D)); assertTrue(_kb.isConsistent()); _kb.addSame(_a, _b); assertFalse(_kb.isConsistent()); }
_kb.addDisjointClasses(concepts);
_kb.addDisjointClasses(concepts);
_kb.addDisjointClasses(list); assertFalse(_kb.isConsistent());
@Test public void testGuessingRule2() { // ticket #488 classes(_A, _B, _C); objectProperties(_p, _q); individuals(_a); _kb.addInverseProperty(_p, _q); _kb.addDomain(_p, _A); _kb.addRange(_p, or(_B, _C)); _kb.addSubClass(_A, card(_p, 1, _B)); _kb.addSubClass(_A, card(_p, 1, _C)); _kb.addSubClass(_B, card(_q, 1, _A)); _kb.addSubClass(_C, card(_q, 1, _A)); _kb.addDisjointClasses(Arrays.asList(_A, _B, _C)); _kb.addEquivalentClass(_A, oneOf(_a)); assertTrue(_kb.isConsistent()); assertEquals(Collections.emptySet(), _kb.getUnsatisfiableClasses()); }
@Test public void testIncrementalTBoxDisjointRemove4() { // test that a disjoint axiom absorbed into domain axiom cannot // be removed final Properties newOptions = new PropertiesBuilder().set("USE_TRACING", "true").set("USE_ROLE_ABSORPTION", "true").build(); final Properties savedOptions = OpenlletOptions.setOptions(newOptions); try { final ATermAppl A = ATermUtils.makeTermAppl("A"); final ATermAppl B = ATermUtils.makeTermAppl("B"); final ATermAppl p = ATermUtils.makeTermAppl("p"); final KnowledgeBase kb = new KnowledgeBaseImpl(); kb.addClass(A); kb.addClass(B); kb.addObjectProperty(p); final ATermAppl or1 = or(A, some(p, A)); final ATermAppl or2 = or(B, some(p, B)); final ATermList list = ATermUtils.toSet(new ATerm[] { or1, or2 }, 2); kb.addDisjointClasses(list); assertTrue(kb.isConsistent()); final ATermAppl disjoint = ATermUtils.makeDisjoints(list); assertFalse(kb.removeAxiom(disjoint)); } finally { OpenlletOptions.setOptions(savedOptions); } }
list = createList(o); _kb.addDisjointClasses(list); break; case OWL2_AllDisjointClasses: _kb.addDisjointClasses(list); break; case OWL2_AllDisjointProperties:
list = createList(o); _kb.addDisjointClasses(list); break; case OWL2_AllDisjointClasses: _kb.addDisjointClasses(list); break; case OWL2_AllDisjointProperties:
list = createList(o); _kb.addDisjointClasses(list); break; case OWL2_AllDisjointClasses: _kb.addDisjointClasses(list); break; case OWL2_AllDisjointProperties: