candidates2.add(term); if (_binaryTbox.contains(term)) candidates1.add(term); final Unfolding unfolding = _binaryTbox.unfold(set); _binaryTbox.add(set, BOTTOM, explanation); else if (terms.size() == 1) _binaryTbox.add(set, negate(terms.iterator().next()), explanation); else _binaryTbox.add(set, a, explanation);
public void add(final BinarySet<ATermAppl> set, final ATermAppl result, final Set<ATermAppl> explanation) { _logger.fine(() -> "Add sub: (" + ATermUtils.toString(set.first()) + ", " + ATermUtils.toString(set.second()) + ") < " + ATermUtils.toString(result)); final ATermAppl normalizedResult = ATermUtils.normalize(result); _unfoldings.put(set, Unfolding.create(normalizedResult, explanation)); addUnfolding(set.first(), set.second(), normalizedResult, explanation); addUnfolding(set.second(), set.first(), normalizedResult, explanation); }
public void print(final Appendable str) throws IOException { // generalTbox.print(str); _primitiveTbox.print(str); _unaryTbox.print(str); _binaryTbox.print(str); str.append("Explain: [\n"); for (final ATermAppl axiom : _tboxAxioms.keySet()) { str.append(ATermUtils.toString(axiom)); str.append(" -> "); str.append(_tboxAxioms.get(axiom).toString()); str.append("\n"); } str.append("]\nReverseExplain: [\n"); for (final ATermAppl axiom : _reverseExplain.keySet()) { str.append(ATermUtils.toString(axiom)); str.append(" -> "); str.append(_reverseExplain.get(axiom).toString()); str.append("\n"); } str.append("]\n"); }
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; }
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; }
candidates2.add(term); if (_binaryTbox.contains(term)) candidates1.add(term); final Unfolding unfolding = _binaryTbox.unfold(set); _binaryTbox.add(set, BOTTOM, explanation); else if (terms.size() == 1) _binaryTbox.add(set, negate(terms.iterator().next()), explanation); else _binaryTbox.add(set, a, explanation);
@Override public Iterator<Unfolding> unfold(final ATermAppl c) { if (ATermUtils.isPrimitive(c)) { final MultiIterator<Unfolding> result = new MultiIterator<>(_primitiveTbox.unfold(c)); result.append(_unaryTbox.unfold(c)); result.append(_binaryTbox.unfold(c)); return result; } else if (isNot(c)) return _primitiveTbox.unfold(c); else return IteratorUtils.emptyIterator(); }
public void add(final BinarySet<ATermAppl> set, final ATermAppl result, final Set<ATermAppl> explanation) { _logger.fine(() -> "Add sub: (" + ATermUtils.toString(set.first()) + ", " + ATermUtils.toString(set.second()) + ") < " + ATermUtils.toString(result)); final ATermAppl normalizedResult = ATermUtils.normalize(result); _unfoldings.put(set, Unfolding.create(normalizedResult, explanation)); addUnfolding(set.first(), set.second(), normalizedResult, explanation); addUnfolding(set.second(), set.first(), normalizedResult, explanation); }
public void print(final Appendable str) throws IOException { // generalTbox.print(str); _primitiveTbox.print(str); _unaryTbox.print(str); _binaryTbox.print(str); str.append("Explain: [\n"); for (final ATermAppl axiom : _tboxAxioms.keySet()) { str.append(ATermUtils.toString(axiom)); str.append(" -> "); str.append(_tboxAxioms.get(axiom).toString()); str.append("\n"); } str.append("]\nReverseExplain: [\n"); for (final ATermAppl axiom : _reverseExplain.keySet()) { str.append(ATermUtils.toString(axiom)); str.append(" -> "); str.append(_reverseExplain.get(axiom).toString()); str.append("\n"); } str.append("]\n"); }
@Override public Iterator<Unfolding> unfold(final ATermAppl c) { if (ATermUtils.isPrimitive(c)) { final MultiIterator<Unfolding> result = new MultiIterator<>(_primitiveTbox.unfold(c)); result.append(_unaryTbox.unfold(c)); result.append(_binaryTbox.unfold(c)); return result; } else if (isNot(c)) return _primitiveTbox.unfold(c); else return IteratorUtils.emptyIterator(); }