@Override public Collection<ATermAppl> getAxioms(final ATermAppl term) { final List<ATermAppl> axioms = new ArrayList<>(); TermDefinition def = _Tg.getTD(term); if (def != null) { axioms.addAll(def.getSubClassAxioms()); axioms.addAll(def.getEqClassAxioms()); } def = _Tu.getTD(term); if (def != null) { axioms.addAll(def.getSubClassAxioms()); axioms.addAll(def.getEqClassAxioms()); } return axioms; }
@Override public Collection<ATermAppl> getAxioms(final ATermAppl term) { final List<ATermAppl> axioms = new ArrayList<>(); TermDefinition def = _Tg.getTD(term); if (def != null) { axioms.addAll(def.getSubClassAxioms()); axioms.addAll(def.getEqClassAxioms()); } def = _Tu.getTD(term); if (def != null) { axioms.addAll(def.getSubClassAxioms()); axioms.addAll(def.getEqClassAxioms()); } return axioms; }
if (!td.getEqClassAxioms().isEmpty()) for (final ATermAppl eqClassAxiom : td.getEqClassAxioms())
continue; final List<ATermAppl> eqClassAxioms = td.getEqClassAxioms(); if (!eqClassAxioms.isEmpty())
continue; final List<ATermAppl> eqClassAxioms = td.getEqClassAxioms(); if (!eqClassAxioms.isEmpty())
if (!td.getEqClassAxioms().isEmpty()) for (final ATermAppl eqClassAxiom : td.getEqClassAxioms())
private boolean absorbII(final Set<ATermAppl> set) { for (final ATermAppl term : set) { final TermDefinition td = _tbox._Tu.getTD(term); boolean canAbsorb; if (td != null) canAbsorb = td.getEqClassAxioms().isEmpty(); else canAbsorb = term.getArity() == 0 && set.size() > 1; if (canAbsorb) { set.remove(term); final ATermList setlist = ATermUtils.makeList(set); ATermAppl conjunct = ATermUtils.makeAnd(setlist); conjunct = ATermUtils.makeNot(conjunct); final ATermAppl sub = ATermUtils.makeSub(term, ATermUtils.nnf(conjunct)); _tbox._Tu.addDef(sub); _subLogger.fine(() -> "Absorb named: " + ATermUtils.toString(sub)); _tbox.addAxiomExplanation(sub, _explanation); return true; } } return false; }
private boolean absorbII(final Set<ATermAppl> set) { for (final ATermAppl term : set) { final TermDefinition td = _tbox._Tu.getTD(term); boolean canAbsorb; if (td != null) canAbsorb = td.getEqClassAxioms().isEmpty(); else canAbsorb = term.getArity() == 0 && set.size() > 1; if (canAbsorb) { set.remove(term); final ATermList setlist = ATermUtils.makeList(set); ATermAppl conjunct = ATermUtils.makeAnd(setlist); conjunct = ATermUtils.makeNot(conjunct); final ATermAppl sub = ATermUtils.makeSub(term, ATermUtils.nnf(conjunct)); _tbox._Tu.addDef(sub); _subLogger.fine(() -> "Absorb named: " + ATermUtils.toString(sub)); _tbox.addAxiomExplanation(sub, _explanation); return true; } } return false; }
if (td == null || td.getEqClassAxioms().isEmpty()) primitiveClassAtoms++;
if (td == null || td.getEqClassAxioms().isEmpty()) primitiveClassAtoms++;
protected void updateDependencies() { _dependencies = CollectionUtils.makeIdentitySet(); for (final ATermAppl sub : getSubClassAxioms()) ATermUtils.findPrimitives((ATermAppl) sub.getArgument(1), _dependencies); for (final ATermAppl eq : getEqClassAxioms()) ATermUtils.findPrimitives((ATermAppl) eq.getArgument(1), _dependencies); } }
protected void updateDependencies() { _dependencies = CollectionUtils.makeIdentitySet(); for (final ATermAppl sub : getSubClassAxioms()) ATermUtils.findPrimitives((ATermAppl) sub.getArgument(1), _dependencies); for (final ATermAppl eq : getEqClassAxioms()) ATermUtils.findPrimitives((ATermAppl) eq.getArgument(1), _dependencies); } }
public void absorb() { _subLogger.fine("Absorption started"); _subLogger.fine(() -> "Tg.size was " + _termhash.size() + " _Tu.size was " + _tbox._Tu.size()); final Collection<TermDefinition> terms = _termhash.values(); // _termhash.clear(); FIXME : why is this doesn't work ? // _termhash = new HashMap<>(); _termhash = CollectionUtils.makeIdentityMap(); for (final TermDefinition def : terms) { _kb.getTimers().checkTimer("preprocessing"); for (final ATermAppl subClassAxiom : def.getSubClassAxioms()) { final ATermAppl c1 = (ATermAppl) subClassAxiom.getArgument(0); final ATermAppl c2 = (ATermAppl) subClassAxiom.getArgument(1); absorbSubClass(c1, c2, _tbox.getAxiomExplanation(subClassAxiom)); } for (final ATermAppl eqClassAxiom : def.getEqClassAxioms()) { final ATermAppl c1 = (ATermAppl) eqClassAxiom.getArgument(0); final ATermAppl c2 = (ATermAppl) eqClassAxiom.getArgument(1); absorbSubClass(c1, c2, _tbox.getAxiomExplanation(eqClassAxiom)); absorbSubClass(c2, c1, _tbox.getAxiomExplanation(eqClassAxiom)); } } _subLogger.fine(() -> "Tg.size is " + _termhash.size() + " _Tu.size is " + _tbox._Tu.size()); _subLogger.fine("Absorption finished"); }
public void absorb() { _subLogger.fine("Absorption started"); _subLogger.fine(() -> "Tg.size was " + _termhash.size() + " _Tu.size was " + _tbox._Tu.size()); final Collection<TermDefinition> terms = _termhash.values(); // _termhash.clear(); FIXME : why is this doesn't work ? // _termhash = new HashMap<>(); _termhash = CollectionUtils.makeIdentityMap(); for (final TermDefinition def : terms) { _kb.getTimers().checkTimer("preprocessing"); for (final ATermAppl subClassAxiom : def.getSubClassAxioms()) { final ATermAppl c1 = (ATermAppl) subClassAxiom.getArgument(0); final ATermAppl c2 = (ATermAppl) subClassAxiom.getArgument(1); absorbSubClass(c1, c2, _tbox.getAxiomExplanation(subClassAxiom)); } for (final ATermAppl eqClassAxiom : def.getEqClassAxioms()) { final ATermAppl c1 = (ATermAppl) eqClassAxiom.getArgument(0); final ATermAppl c2 = (ATermAppl) eqClassAxiom.getArgument(1); absorbSubClass(c1, c2, _tbox.getAxiomExplanation(eqClassAxiom)); absorbSubClass(c2, c1, _tbox.getAxiomExplanation(eqClassAxiom)); } } _subLogger.fine(() -> "Tg.size is " + _termhash.size() + " _Tu.size is " + _tbox._Tu.size()); _subLogger.fine("Absorption finished"); }
for (final ATermAppl eqClassAxiom : termDef.getEqClassAxioms())
for (final ATermAppl eqClassAxiom : termDef.getEqClassAxioms())