private void getAllMerged(final DependencySet ds, final Map<Node, DependencySet> result) { if (_merged == null) return; for (final Node mergedNode : _merged) { final DependencySet mergeDS = ds.union(mergedNode.getMergeDependency(false), false); result.put(mergedNode, mergeDS); mergedNode.getAllMerged(mergeDS, result); } }
private void getAllMerged(final DependencySet ds, final Map<Node, DependencySet> result) { if (_merged == null) return; for (final Node mergedNode : _merged) { final DependencySet mergeDS = ds.union(mergedNode.getMergeDependency(false), false); result.put(mergedNode, mergeDS); mergedNode.getAllMerged(mergeDS, result); } }
protected Node getNode(final NodeProvider provider, final Token token) { Node node = provider.getNode(null, token); if (node.isMerged()) { final boolean doExplanation = _strategy.getABox().doExplanation(); _ds = _ds.union(node.getMergeDependency(true), doExplanation); node = node.getSame(); } return node; }
protected Node getNode(final NodeProvider provider, final Token token) { Node node = provider.getNode(null, token); if (node.isMerged()) { final boolean doExplanation = _strategy.getABox().doExplanation(); _ds = _ds.union(node.getMergeDependency(true), doExplanation); node = node.getSame(); } return node; }
@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); } } }
/** * Merge all _node pairs in the _queue. */ public void mergeAll() { if (_mergingAll) return; _mergingAll = true; while (!_merging && !_mergeList.isEmpty() && !_abox.isClosed()) { final NodeMerge merge = _mergeList.remove(0); Node y = _abox.getNode(merge.getSource()); Node z = _abox.getNode(merge.getTarget()); DependencySet ds = merge.getDepends(); if (y.isMerged()) { ds = ds.union(y.getMergeDependency(true), _abox.doExplanation()); y = y.getSame(); } if (z.isMerged()) { ds = ds.union(z.getMergeDependency(true), _abox.doExplanation()); z = z.getSame(); } if (y.isPruned() || z.isPruned()) continue; mergeTo(y, z, ds); } _mergingAll = false; }
/** * Merge all _node pairs in the _queue. */ public void mergeAll() { if (_mergingAll) return; _mergingAll = true; while (!_merging && !_mergeList.isEmpty() && !_abox.isClosed()) { final NodeMerge merge = _mergeList.remove(0); Node y = _abox.getNode(merge.getSource()); Node z = _abox.getNode(merge.getTarget()); DependencySet ds = merge.getDepends(); if (y.isMerged()) { ds = ds.union(y.getMergeDependency(true), _abox.doExplanation()); y = y.getSame(); } if (z.isMerged()) { ds = ds.union(z.getMergeDependency(true), _abox.doExplanation()); z = z.getSame(); } if (y.isPruned() || z.isPruned()) continue; mergeTo(y, z, ds); } _mergingAll = false; }
public boolean setDifferent(final Node node, final DependencySet dsParam) { DependencySet ds = dsParam; // add to effected list if (_abox.getBranchIndex() >= 0 && OpenlletOptions.TRACK_BRANCH_EFFECTS) _abox.getBranchEffectTracker().add(_abox.getBranchIndex(), node.getName()); if (isDifferent(node)) return false; if (isSame(node)) { ds = ds.union(getMergeDependency(true), _abox.doExplanation()); ds = ds.union(node.getMergeDependency(true), _abox.doExplanation()); _abox.setClash(Clash.nominal(this, ds, node.getName())); if (!ds.isIndependent()) return false; } ds = ds.copy(_abox.getBranchIndex()); _differents.put(node, ds); node.setDifferent(this, ds); _abox.setChanged(true); return true; }
public boolean setDifferent(final Node node, final DependencySet dsParam) { DependencySet ds = dsParam; // add to effected list if (_abox.getBranchIndex() >= 0 && OpenlletOptions.TRACK_BRANCH_EFFECTS) _abox.getBranchEffectTracker().add(_abox.getBranchIndex(), node.getName()); if (isDifferent(node)) return false; if (isSame(node)) { ds = ds.union(getMergeDependency(true), _abox.doExplanation()); ds = ds.union(node.getMergeDependency(true), _abox.doExplanation()); _abox.setClash(Clash.nominal(this, ds, node.getName())); if (!ds.isIndependent()) return false; } ds = ds.copy(_abox.getBranchIndex()); _differents.put(node, ds); node.setDifferent(this, ds); _abox.setChanged(true); return true; }
final DependencySet ds = _kb.getABox().getNode(merge.getInd()).getMergeDependency(false); // get merge dependency
final DependencySet ds = _kb.getABox().getNode(merge.getInd()).getMergeDependency(false); // get merge dependency
private void addEdge(final ATermAppl p, final ATermAppl s, final ATermAppl o) { DependencySet edgeDS = _ds; Individual node1 = _abox.getIndividual(s); if (node1.isMerged()) { edgeDS = node1.getMergeDependency(true); node1 = node1.getSame(); } if (_negated) { final ATermAppl cls = all(p, not(value(o))); _strategy.addType(node1, cls, _ds); } else { Node node2 = _abox.getNode(o); if (node2.isMerged()) { edgeDS = node2.getMergeDependency(true); node2 = node2.getSame(); } _strategy.addEdge(node1, _abox.getRole(p), node2, edgeDS); } }
private void addEdge(final ATermAppl p, final ATermAppl s, final ATermAppl o) { DependencySet edgeDS = _ds; Individual node1 = _abox.getIndividual(s); if (node1.isMerged()) { edgeDS = node1.getMergeDependency(true); node1 = node1.getSame(); } if (_negated) { final ATermAppl cls = all(p, not(value(o))); _strategy.addType(node1, cls, _ds); } else { Node node2 = _abox.getNode(o); if (node2.isMerged()) { edgeDS = node2.getMergeDependency(true); node2 = node2.getSame(); } _strategy.addEdge(node1, _abox.getRole(p), node2, edgeDS); } }
if (succ.isPruned()) finalDS = finalDS.union(succ.getMergeDependency(true), _strategy.getABox().doExplanation()); succ = succ.getMergedTo();
if (succ.isPruned()) finalDS = finalDS.union(succ.getMergeDependency(true), _strategy.getABox().doExplanation()); succ = succ.getMergedTo();
ds = ds.union(head.getMergeDependency(true), _strategy.getABox().doExplanation()); head = head.getSame();
ds = ds.union(head.getMergeDependency(true), _strategy.getABox().doExplanation()); head = head.getSame();
ds = ds.union(obj.getMergeDependency(true), true); ds = ds.copy(ds.max() + 1); obj = obj.getSame();
ds = ds.union(obj.getMergeDependency(true), true); ds = ds.copy(ds.max() + 1); obj = obj.getSame();