public CachedOutEdge(final Edge edge) { super(edge.getRole(), edge.getToName(), edge.getDepends()); }
@Override public String toString() { final boolean isFwd = _dir == EdgeDirection.FORWARD; return String.format("%s%s-%s-%s%s %s", _edge.getFrom(), isFwd ? "" : "<", _edge.getRole(), isFwd ? ">" : "", _edge.getTo(), _edge.getDepends()); } }
public CachedInEdge(final Edge edge) { super(edge.getRole(), edge.getFromName(), edge.getDepends()); }
private static boolean intersectsRNeighbors(final Set<ATermAppl> samesAndMaybes, final CachedNode node, final Role role) { if (samesAndMaybes.isEmpty()) return false; for (final Edge edge : node.getOutEdges()) if (samesAndMaybes.contains(edge.getToName()) && edge.getRole().isSubRoleOf(role)) return true; if (role.isObjectRole()) { final Role invRole = role.getInverse(); for (final Edge edge : node.getInEdges()) if (samesAndMaybes.contains(edge.getFromName()) && edge.getRole().isSubRoleOf(invRole)) return true; } return false; } }
final Node y = edges.get(i).getNeighbor(this); for (final Edge edge : edges) ds = ds.union(r.getExplainSubOrInv(edge.getRole()), _abox.doExplanation()); ds = ds.union(edge.getDepends(), _abox.doExplanation()); final Node node = edge.getNeighbor(this); final DependencySet typeDS = node.getDepends(c); if (typeDS != 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; }
for (final Edge edge : edges) final Role role = checkInverses ? edge.getRole().getInverse() : edge.getRole(); final DependencySet ds = edge.getDepends(); final ATermAppl val = checkInverses ? edge.getFromName() : edge.getToName();
final DependencySet ds = edge.getDepends(); final Individual value = (Individual) edge.getNeighbor(subj); final Role edgeRole = edge.getFrom().equals(subj) ? edge.getRole() : edge.getRole().getInverse(); if (value.isRootNominal()) if (isIndependent && ds.isIndependent())
protected void addOutEdge(final Edge edge) { setChanged(ALL); setChanged(MAX); _applyNext[MAX] = 0; if (edge.getRole().isBottom()) _abox.setClash(Clash.bottomProperty(edge.getFrom(), edge.getDepends(), edge.getRole().getName())); else _outEdges.add(edge); }
for (final Edge edge : root.getOutEdges()) final Role role = edge.getRole(); for (final Edge otherEdge : otherEdges) final DependencySet ds = edge.getTo().getDifferenceDependency(otherEdge.getNeighbor(otherRoot)); if (_logger.isLoggable(Level.FINE)) _logger.fine(root + " and " + otherRoot + " has " + supRole + " " + edge + " " + otherEdge); final Role role = edge.getRole().getInverse(); for (final Edge otherEdge : otherEdges) final DependencySet ds = edge.getTo().getDifferenceDependency(otherEdge.getNeighbor(otherRoot)); if (_logger.isLoggable(Level.FINE)) _logger.fine(root + " and " + otherRoot + " has " + supRole + " " + edge + " " + otherEdge);
@Override protected void updateNodeReferences() { super.updateNodeReferences(); if (_parent != null) _parent = _abox.getIndividual(_parent.getName()); if (isPruned()) { final EdgeList oldEdges = _outEdges; _outEdges = new EdgeList(oldEdges.size()); for (int i = 0; i < oldEdges.size(); i++) { final Edge edge = oldEdges.get(i); final Node to = _abox.getNode(edge.getTo().getName()); final Edge newEdge = new DefaultEdge(edge.getRole(), this, to, edge.getDepends()); _outEdges.add(newEdge); } } }
@Override public boolean activate(final Edge edge) { assert edgeMatches(edge) != null; if (edge.getFromName().equals(edge.getToName())) { activate(WME.createEdge(edge)); return true; } return false; }
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; }
@Override public DependencySet getDepends() { return _edge.getDepends(); }
public Set<Role> getRoles() { final Set<Role> result = new HashSet<>(); for (final Edge e : this) result.add(e.getRole()); return result; }
DependencySet tDS = edge.getDepends(); tDS = tDS.copy(edge.getDepends().getBranch() - 1); edge.setDepends(tDS);
/** * Returns the roles that points to the given _individual from its parent. * * @param ind _individual to check * @return the roles that points to the given _individual from its parent */ public static Set<Role> getIncomingRoles(final Individual ind) { Set<Role> rolesToBlocked = null; for (final Edge e : ind.getInEdges()) if (e.getFrom().equals(ind.getParent())) if (rolesToBlocked == null) rolesToBlocked = e.getRole().getSuperRoles(); else if (!rolesToBlocked.contains(e.getRole())) { rolesToBlocked = SetUtils.create(rolesToBlocked); rolesToBlocked.addAll(e.getRole().getSuperRoles()); } return rolesToBlocked; }
/** * Test case for #404 */ @Test public void addPropertyValueAfterConsistency() { objectProperties(_p); individuals(_a, _c, _d); // either p(a, c) or p(a, d) holds _kb.addType(_a, or(hasValue(_p, _c), hasValue(_p, _d))); assertTrue(_kb.isConsistent()); // check which non-deterministic choice was made final ATermAppl succ = _kb.getABox().getIndividual(_a).getOutEdges().edgeAt(0).getToName(); final ATermAppl nonSucc = succ.equals(_c) ? _d : _c; // no entailment can be made yet assertFalse(_kb.hasPropertyValue(_a, _p, nonSucc)); assertFalse(_kb.hasPropertyValue(_a, _p, succ)); // assert the property value in non-deterministic choice _kb.addPropertyValue(_p, _a, succ); assertTrue(_kb.isConsistent()); // this entailment still does not hold assertFalse(_kb.hasPropertyValue(_a, _p, nonSucc)); // this entailment should now hold assertTrue(_kb.hasPropertyValue(_a, _p, succ)); }