public Set<Node> getNeighbors(final Node node) { final Set<Node> result = new HashSet<>(); for (final Edge e : this) result.add(e.getNeighbor(node)); return result; }
public Set<Node> getNeighbors(final Node node) { final Set<Node> result = new HashSet<>(); for (final Edge e : this) result.add(e.getNeighbor(node)); return result; }
final public Set<Node> getRSuccessors(final Role r, final ATermAppl c) { final Set<Node> result = new HashSet<>(); final EdgeList edges = _outEdges.getEdges(r); for (int i = 0, n = edges.size(); i < n; i++) { final Edge edge = edges.get(i); final Node other = edge.getNeighbor(this); if (other.hasType(c)) result.add(other); } return result; }
final public Set<Node> getRSuccessors(final Role r, final ATermAppl c) { final Set<Node> result = new HashSet<>(); final EdgeList edges = _outEdges.getEdges(r); for (int i = 0, n = edges.size(); i < n; i++) { final Edge edge = edges.get(i); final Node other = edge.getNeighbor(this); if (other.hasType(c)) result.add(other); } return result; }
for (final Edge edge : this) final Node neighbor = edge.getNeighbor(node);
for (final Edge edge : this) final Node neighbor = edge.getNeighbor(node);
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()); } }
final Individual value = (Individual) edge.getNeighbor(subj);
final Individual value = (Individual) edge.getNeighbor(subj);
final Node neighbor = edge.getNeighbor(node); final Map<Node, DependencySet> mergedNodes = neighbor.getAllMerged(); final DependencySet edgeDepends = edge.getDepends();
final Node neighbor = edge.getNeighbor(node); final Map<Node, DependencySet> mergedNodes = neighbor.getAllMerged(); final DependencySet edgeDepends = edge.getDepends();
final Individual value = (Individual) edge.getNeighbor(subj); final Role edgeRole = edge.getFrom().equals(subj) ? edge.getRole() : edge.getRole().getInverse(); if (value.isRootNominal())
final Individual value = (Individual) edge.getNeighbor(subj); final Role edgeRole = edge.getFrom().equals(subj) ? edge.getRole() : edge.getRole().getInverse(); if (value.isRootNominal())
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; }
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; } } }