@Override public boolean hasNext() { if (_nextIndividual != null) return true; while (_nodeIterator.hasNext()) { final Node candidate = _nodeIterator.next(); if (candidate instanceof Individual && candidate.isRootNominal()) { _nextIndividual = (Individual) candidate; return true; } } return false; }
@Override public boolean hasNext() { if (_nextIndividual != null) return true; while (_nodeIterator.hasNext()) { final Node candidate = _nodeIterator.next(); if (candidate instanceof Individual && candidate.isRootNominal()) { _nextIndividual = (Individual) candidate; return true; } } return false; }
@Override public boolean hasNext() { while (_next == null && _iterator.hasNext()) { final Node node = _iterator.next(); if (node.isLiteral() && node.isRootNominal()) _next = (Literal) node; } return _next != null; }
@Override public boolean hasNext() { while (_next == null && _iterator.hasNext()) { final Node node = _iterator.next(); if (node.isLiteral() && node.isRootNominal()) _next = (Literal) node; } return _next != null; }
@Override public void mergeTo(final Node y, final Node z, final DependencySet ds) { _merging = true; super.mergeTo(y, z, ds); if (!_abox.isClosed() && _interpreter != null && (y.isRootNominal() || z.isRootNominal())) { // if( y.isRootNominal() ) // runRules |= interpreter.removeMentions( y.getTerm() ); // if( z.isIndividual() ) // runRules |= interpreter.rete.processIndividual( (Individual) z ); } _merging = false; }
@Override public void mergeTo(final Node y, final Node z, final DependencySet ds) { _merging = true; super.mergeTo(y, z, ds); if (!_abox.isClosed() && _interpreter != null && (y.isRootNominal() || z.isRootNominal())) { // if( y.isRootNominal() ) // runRules |= interpreter.removeMentions( y.getTerm() ); // if( z.isIndividual() ) // runRules |= interpreter.rete.processIndividual( (Individual) z ); } _merging = false; }
@Override public boolean setDifferent(final Node y, final Node z, final DependencySet ds) { if (super.setDifferent(y, z, ds)) { if (_interpreter != null && !_merging && !_abox.isClosed() && y.isRootNominal() && y.isIndividual() && z.isRootNominal() && z.isIndividual()) _interpreter._alphaNet.activateDifferent((Individual) y, (Individual) z, ds); return true; } return false; }
@Override public boolean setDifferent(final Node y, final Node z, final DependencySet ds) { if (super.setDifferent(y, z, ds)) { if (_interpreter != null && !_merging && !_abox.isClosed() && y.isRootNominal() && y.isIndividual() && z.isRootNominal() && z.isIndividual()) _interpreter._alphaNet.activateDifferent((Individual) y, (Individual) z, ds); return true; } return false; }
@Override public Edge addEdge(final Individual subj, final Role pred, final Node obj, final DependencySet ds) { final Edge edge = super.addEdge(subj, pred, obj, ds); if (edge != null && !_abox.isClosed() && subj.isRootNominal() && obj.isRootNominal()) if (_interpreter != null) _interpreter._alphaNet.activateEdge(edge); return edge; }
public void reset(final boolean onlyApplyTypes) { assert onlyApplyTypes || isRootNominal() : "Only asserted individuals can be reset: " + this; if (OpenlletOptions.USE_COMPLETION_QUEUE) _abox.getCompletionQueue().add(new QueueElement(this)); if (onlyApplyTypes) return; if (_pruned != null) unprune(DependencySet.NO_BRANCH); _mergedTo = this; _mergeDepends = DependencySet.INDEPENDENT; _merged = null; final Iterator<DependencySet> i = _differents.values().iterator(); while (i.hasNext()) { final DependencySet d = i.next(); if (d.getBranch() != DependencySet.NO_BRANCH) i.remove(); } resetTypes(); _inEdges.reset(); }
public void reset(final boolean onlyApplyTypes) { assert onlyApplyTypes || isRootNominal() : "Only asserted individuals can be reset: " + this; if (OpenlletOptions.USE_COMPLETION_QUEUE) _abox.getCompletionQueue().add(new QueueElement(this)); if (onlyApplyTypes) return; if (_pruned != null) unprune(DependencySet.NO_BRANCH); _mergedTo = this; _mergeDepends = DependencySet.INDEPENDENT; _merged = null; final Iterator<DependencySet> i = _differents.values().iterator(); while (i.hasNext()) { final DependencySet d = i.next(); if (d.getBranch() != DependencySet.NO_BRANCH) i.remove(); } resetTypes(); _inEdges.reset(); }
if (!node.isRootNominal())
@Override public Edge addEdge(final Individual subj, final Role pred, final Node obj, final DependencySet ds) { final Edge edge = super.addEdge(subj, pred, obj, ds); if (edge != null && !_abox.isClosed() && subj.isRootNominal() && obj.isRootNominal()) if (_interpreter != null) _interpreter._alphaNet.activateEdge(edge); return edge; }
@Override public void addType(final Node node, final ATermAppl c, final DependencySet ds) { super.addType(node, c, ds); if (!_merging && !_abox.isClosed() && node.isRootNominal() && _interpreter != null && node.isIndividual()) { final Individual ind = (Individual) node; _interpreter._alphaNet.activateType(ind, c, ds); } }
@Override public void addType(final Node node, final ATermAppl c, final DependencySet ds) { super.addType(node, c, ds); if (!_merging && !_abox.isClosed() && node.isRootNominal() && _interpreter != null && node.isIndividual()) { final Individual ind = (Individual) node; _interpreter._alphaNet.activateType(ind, c, ds); } }
public boolean activateIndividual(final Individual ind) { // only named non-pruned individuals final boolean changed = false; if (!ind.isRootNominal() || ind.isPruned()) return false; final List<ATermAppl> types = ind.getTypes(Node.ATOM); for (int i = 0; i < types.size(); i++) { final ATermAppl type = types.get(i); activateType(ind, type, ind.getDepends(type)); } activateDifferents(ind); for (final Edge edge : new ArrayList<>(ind.getOutEdges())) if (edge.getTo().isRootNominal()) activateEdge(edge); return changed; }
public boolean activateIndividual(final Individual ind) { // only named non-pruned individuals final boolean changed = false; if (!ind.isRootNominal() || ind.isPruned()) return false; final List<ATermAppl> types = ind.getTypes(Node.ATOM); for (int i = 0; i < types.size(); i++) { final ATermAppl type = types.get(i); activateType(ind, type, ind.getDepends(type)); } activateDifferents(ind); for (final Edge edge : new ArrayList<>(ind.getOutEdges())) if (edge.getTo().isRootNominal()) activateEdge(edge); return changed; }
@Override public void getSames(final Individual ind, final Set<ATermAppl> knowns, final Set<ATermAppl> unknowns) { knowns.add(ind.getName()); final boolean thisMerged = ind.isMerged() && !ind.getMergeDependency(true).isIndependent(); for (final Node other : ind.getMerged()) { if (!other.isRootNominal()) continue; final boolean otherMerged = other.isMerged() && !other.getMergeDependency(true).isIndependent(); if (thisMerged || otherMerged) { unknowns.add(other.getName()); getSames((Individual) other, unknowns, unknowns); } else { knowns.add(other.getName()); getSames((Individual) other, knowns, unknowns); } } }
@Override public void getSames(final Individual ind, final Set<ATermAppl> knowns, final Set<ATermAppl> unknowns) { knowns.add(ind.getName()); final boolean thisMerged = ind.isMerged() && !ind.getMergeDependency(true).isIndependent(); for (final Node other : ind.getMerged()) { if (!other.isRootNominal()) continue; final boolean otherMerged = other.isMerged() && !other.getMergeDependency(true).isIndependent(); if (thisMerged || otherMerged) { unknowns.add(other.getName()); getSames((Individual) other, unknowns, unknowns); } else { knowns.add(other.getName()); getSames((Individual) other, knowns, unknowns); } } }
if (mergedNode.isRootNominal() && !mergedNode.equals(neighbor))