@Override public Iterator<WME> getMatches(final int argIndex, final Node arg) { final EdgeList edges = ((Individual) arg).getRNeighborEdges(_role, arg); return toWMEs(edges, EdgeDirection.FORWARD); }
@Override public Iterator<WME> getMatches(final int argIndex, final Node arg) { final EdgeList edges = ((Individual) arg).getRNeighborEdges(_role, arg); return toWMEs(edges, EdgeDirection.FORWARD); }
final public Set<Node> getRNeighbors(final Role r) { return getRNeighborEdges(r).getNeighbors(this); }
final public Set<Node> getRNeighbors(final Role r) { return getRNeighborEdges(r).getNeighbors(this); }
public DependencySet check(final Individual node1, final Node node2) { final EdgeList list = node1.getRNeighborEdges(_role); for (int i = 0, n = list.size(); i < n; i++) { final Edge edge = list.get(i); if (edge.getNeighbor(node1).equals(node2)) return edge.getDepends(); } return null; }
public DependencySet check(final Individual node1, final Node node2) { final EdgeList list = node1.getRNeighborEdges(_role); for (int i = 0, n = list.size(); i < n; i++) { final Edge edge = list.get(i); if (edge.getNeighbor(node1).equals(node2)) return edge.getDepends(); } return null; }
@Override public void getSimpleObjectPropertyValues(final Individual subj, final Role role, final Set<ATermAppl> knowns, final Set<ATermAppl> unknowns, final boolean getSames) { final EdgeList edges = subj.getRNeighborEdges(role); for (int i = 0; i < edges.size(); i++) { final Edge edge = edges.get(i); final DependencySet ds = edge.getDepends(); final Individual value = (Individual) edge.getNeighbor(subj); if (value.isRootNominal()) if (ds.isIndependent()) { if (getSames) getSames(value, knowns, unknowns); else knowns.add(value.getName()); } else if (getSames) getSames(value, unknowns, unknowns); else unknowns.add(value.getName()); } }
@Override public void getSimpleObjectPropertyValues(final Individual subj, final Role role, final Set<ATermAppl> knowns, final Set<ATermAppl> unknowns, final boolean getSames) { final EdgeList edges = subj.getRNeighborEdges(role); for (int i = 0; i < edges.size(); i++) { final Edge edge = edges.get(i); final DependencySet ds = edge.getDepends(); final Individual value = (Individual) edge.getNeighbor(subj); if (value.isRootNominal()) if (ds.isIndependent()) { if (getSames) getSames(value, knowns, unknowns); else knowns.add(value.getName()); } else if (getSames) getSames(value, unknowns, unknowns); else unknowns.add(value.getName()); } }
for (final Role supRole : functionalSupers) final EdgeList otherEdges = otherRoot.getRNeighborEdges(supRole); for (final Edge otherEdge : otherEdges) for (final Role supRole : functionalSupers) final EdgeList otherEdges = otherRoot.getRNeighborEdges(supRole); for (final Edge otherEdge : otherEdges)
final EdgeList edges = subj.getRNeighborEdges(r); for (int i = 0; i < edges.size(); i++)
final EdgeList edges = subj.getRNeighborEdges(r); for (int i = 0; i < edges.size(); i++)
return; final EdgeList edges = subj.getRNeighborEdges(prop); for (int i = 0; i < edges.size(); i++)
return; final EdgeList edges = subj.getRNeighborEdges(prop); for (int i = 0; i < edges.size(); i++)
protected boolean applyAllValuesPropertyChain(final Individual x, final ATermList chain, final ATermAppl c, final DependencySet ds) { final Role r = _strategy.getABox().getRole(chain.getFirst()); final EdgeList edges = x.getRNeighborEdges(r); if (!edges.isEmpty()) { final ATermAppl allRC = ATermUtils.makeAllValues(chain.getNext(), c); for (int e = 0; e < edges.size(); e++) { final Edge edgeToY = edges.get(e); final Node y = edgeToY.getNeighbor(x); final DependencySet finalDS = ds.union(edgeToY.getDepends(), _strategy.getABox().doExplanation()); applyAllValues(x, r, y, allRC, finalDS); if (x.isMerged() || _strategy.getABox().isClosed()) return false; } } return true; }
protected boolean applyAllValuesPropertyChain(final Individual x, final ATermList chain, final ATermAppl c, final DependencySet ds) { final Role r = _strategy.getABox().getRole(chain.getFirst()); final EdgeList edges = x.getRNeighborEdges(r); if (!edges.isEmpty()) { final ATermAppl allRC = ATermUtils.makeAllValues(chain.getNext(), c); for (int e = 0; e < edges.size(); e++) { final Edge edgeToY = edges.get(e); final Node y = edgeToY.getNeighbor(x); final DependencySet finalDS = ds.union(edgeToY.getDepends(), _strategy.getABox().doExplanation()); applyAllValues(x, r, y, allRC, finalDS); if (x.isMerged() || _strategy.getABox().isClosed()) return false; } } return true; }
_logger.fine("EDGE: " + this + " -> " + r + " -> " + x + ": " + ds + " " + getRNeighborEdges(r).getEdgesTo(x)); return null;
_logger.fine("EDGE: " + this + " -> " + r + " -> " + x + ": " + ds + " " + getRNeighborEdges(r).getEdgesTo(x)); return null;
protected void apply(final Individual x, final ATermAppl maxCard) { // max(r, n, c) is in normalized form not(min(p, n + 1, c)) final ATermAppl max = (ATermAppl) maxCard.getArgument(0); final Role r = _strategy.getABox().getRole(max.getArgument(0)); final ATermAppl c = (ATermAppl) max.getArgument(2); if (ATermUtils.isTop(c)) return; if (!OpenlletOptions.MAINTAIN_COMPLETION_QUEUE && x.getDepends(maxCard) == null) return; final EdgeList edges = x.getRNeighborEdges(r); for (final Edge edge : edges) { final Node neighbor = edge.getNeighbor(x); if (!neighbor.hasType(c) && !neighbor.hasType(ATermUtils.negate(c))) { final ChooseBranch newBranch = new ChooseBranch(_strategy.getABox(), _strategy, neighbor, c, x.getDepends(maxCard)); _strategy.addBranch(newBranch); newBranch.tryNext(); if (_strategy.getABox().isClosed()) return; } } }
protected void apply(final Individual x, final ATermAppl maxCard) { // max(r, n, c) is in normalized form not(min(p, n + 1, c)) final ATermAppl max = (ATermAppl) maxCard.getArgument(0); final Role r = _strategy.getABox().getRole(max.getArgument(0)); final ATermAppl c = (ATermAppl) max.getArgument(2); if (ATermUtils.isTop(c)) return; if (!OpenlletOptions.MAINTAIN_COMPLETION_QUEUE && x.getDepends(maxCard) == null) return; final EdgeList edges = x.getRNeighborEdges(r); for (final Edge edge : edges) { final Node neighbor = edge.getNeighbor(x); if (!neighbor.hasType(c) && !neighbor.hasType(ATermUtils.negate(c))) { final ChooseBranch newBranch = new ChooseBranch(_strategy.getABox(), _strategy, neighbor, c, x.getDepends(maxCard)); _strategy.addBranch(newBranch); newBranch.tryNext(); if (_strategy.getABox().isClosed()) return; } } }
assertTrue(_kb.getABox().getIndividual(_victor).getRNeighborEdges(_kb.getRBox().getRole(_owns)).size() > 0); assertTrue(_kb.getABox().getIndividual(_victor).getRNeighborEdges(_kb.getRBox().getRole(_owns)).size() > 0);