public static TBox createTBox(final KnowledgeBase kb) { return OpenlletOptions.USE_LEGACY_TBOX ? new TBoxExpImpl(kb) : new TBoxImpl(kb); } }
final boolean removed = removeExplanation(dependantAxiom, explanationAxiom, sideEffects); addAxiom(readdAxiom, i.next(), true); while (i.hasNext()) addAxiomExplanation(readdAxiom, i.next());
@Override public String toString() { final StringBuilder sb = new StringBuilder(); try { print(sb); } catch (final IOException e) { e.printStackTrace(); } return sb.toString(); }
private boolean addAxiom(final ATermAppl axiom, final Set<ATermAppl> explanation, final boolean forceAddition) { final boolean added = addAxiomExplanation(axiom, explanation); if (added || forceAddition) if (axiom.getAFun().equals(ATermUtils.EQCLASSFUN)) { final ATermAppl c1 = (ATermAppl) axiom.getArgument(0); final ATermAppl c2 = (ATermAppl) axiom.getArgument(1); boolean def = false; if (ATermUtils.isPrimitive(c1) && !_unaryTbox.unfold(c1).hasNext() && !_binaryTbox.unfold(c1).hasNext()) def = _primitiveTbox.add(c1, c2, explanation); if (!def && ATermUtils.isPrimitive(c2) && !_unaryTbox.unfold(c2).hasNext() && !_binaryTbox.unfold(c2).hasNext()) def = _primitiveTbox.add(c2, c1, explanation); if (!def) { absorbSubClass(c1, c2, explanation); absorbSubClass(c2, c1, explanation); } } else if (axiom.getAFun().equals(ATermUtils.SUBFUN)) { final ATermAppl sub = (ATermAppl) axiom.getArgument(0); final ATermAppl sup = (ATermAppl) axiom.getArgument(1); absorbSubClass(sub, sup, explanation); } return added; }
final ATermAppl c2 = (ATermAppl) axiom.getArgument(1); axioms = normalizeDisjointAxiom(c1, c2); final ATermAppl[] concepts = ATermUtils.toArray(list); axioms = normalizeDisjointAxiom(concepts); added |= addAxiom(a, explain, false);
protected boolean absorbIntoTerm(final ATermAppl term, final Set<ATermAppl> terms, final Set<ATermAppl> explanation) { if (isPrimitive(term) && !_primitiveTbox.contains(term)) { terms.remove(term); final ATermAppl disjunction = disjunction(terms); _unaryTbox.add(term, disjunction, explanation); return true; } return false; } }
@Override public boolean removeAxiom(final ATermAppl axiom) { return removeAxiom(axiom, axiom); }
private void absorbSubClass(final ATermAppl sub, final ATermAppl sup, final Set<ATermAppl> explanation) { _logger.fine(() -> "Absorb: subClassOf(" + ATermUtils.toString(sub) + ", " + ATermUtils.toString(sup) + ")"); final Set<ATermAppl> terms = SetUtils.create(); terms.add(nnf(sub)); terms.add(nnf(negate(sup))); absorbAxiom(terms, SetUtils.create(explanation)); }
continue; removed |= removeExplanation(otherDependant, dependantAxiom, sideEffects);
private boolean addAxiom(final ATermAppl axiom, final Set<ATermAppl> explanation, final boolean forceAddition) { final boolean added = addAxiomExplanation(axiom, explanation); if (added || forceAddition) if (axiom.getAFun().equals(ATermUtils.EQCLASSFUN)) { final ATermAppl c1 = (ATermAppl) axiom.getArgument(0); final ATermAppl c2 = (ATermAppl) axiom.getArgument(1); boolean def = false; if (ATermUtils.isPrimitive(c1) && !_unaryTbox.unfold(c1).hasNext() && !_binaryTbox.unfold(c1).hasNext()) def = _primitiveTbox.add(c1, c2, explanation); if (!def && ATermUtils.isPrimitive(c2) && !_unaryTbox.unfold(c2).hasNext() && !_binaryTbox.unfold(c2).hasNext()) def = _primitiveTbox.add(c2, c1, explanation); if (!def) { absorbSubClass(c1, c2, explanation); absorbSubClass(c2, c1, explanation); } } else if (axiom.getAFun().equals(ATermUtils.SUBFUN)) { final ATermAppl sub = (ATermAppl) axiom.getArgument(0); final ATermAppl sup = (ATermAppl) axiom.getArgument(1); absorbSubClass(sub, sup, explanation); } return added; }
final ATermAppl c2 = (ATermAppl) axiom.getArgument(1); axioms = normalizeDisjointAxiom(c1, c2); final ATermAppl[] concepts = ATermUtils.toArray(list); axioms = normalizeDisjointAxiom(concepts); added |= addAxiom(a, explain, false);
protected boolean absorbIntoTerm(final ATermAppl term, final Set<ATermAppl> terms, final Set<ATermAppl> explanation) { if (isPrimitive(term) && !_primitiveTbox.contains(term)) { terms.remove(term); final ATermAppl disjunction = disjunction(terms); _unaryTbox.add(term, disjunction, explanation); return true; } return false; } }
@Override public boolean removeAxiom(final ATermAppl axiom) { return removeAxiom(axiom, axiom); }
private void absorbSubClass(final ATermAppl sub, final ATermAppl sup, final Set<ATermAppl> explanation) { _logger.fine(() -> "Absorb: subClassOf(" + ATermUtils.toString(sub) + ", " + ATermUtils.toString(sup) + ")"); final Set<ATermAppl> terms = SetUtils.create(); terms.add(nnf(sub)); terms.add(nnf(negate(sup))); absorbAxiom(terms, SetUtils.create(explanation)); }
continue; removed |= removeExplanation(otherDependant, dependantAxiom, sideEffects);
final boolean removed = removeExplanation(dependantAxiom, explanationAxiom, sideEffects); addAxiom(readdAxiom, i.next(), true); while (i.hasNext()) addAxiomExplanation(readdAxiom, i.next());
for (final ATermAppl term : terms) if (!isPrimitive(term)) continue; if (!_primitiveTbox.contains(term))
public static TBox createTBox(final KnowledgeBase kb) { return OpenlletOptions.USE_LEGACY_TBOX ? new TBoxExpImpl(kb) : new TBoxImpl(kb); } }
@Override public String toString() { final StringBuilder sb = new StringBuilder(); try { print(sb); } catch (final IOException e) { e.printStackTrace(); } return sb.toString(); }
for (final ATermAppl term : terms) if (!isPrimitive(term)) continue; if (!_primitiveTbox.contains(term))