private void addAlphaNodeForSubs(final Role r, final AlphaNode node) { for (final Role sub : r.getSubRoles()) if (!sub.isBottom()) addAlphaNode(sub, node); }
private void addAlphaNodeForSubs(final Role r, final AlphaNode node) { for (final Role sub : r.getSubRoles()) if (!sub.isBottom()) addAlphaNode(sub, node); }
@Override public void propogateRange(final Role role, final Map<ATermAppl, Set<Set<ATermAppl>>> ranges) { if (ranges == null || ranges.isEmpty()) return; for (final Map.Entry<ATermAppl, Set<Set<ATermAppl>>> e : ranges.entrySet()) { final Set<ATermAppl> explanation = e.getValue().iterator().next(); final ATermAppl range = e.getKey(); final ATermAppl normalized = ATermUtils.normalize(range); for (final Role s : role.getSubRoles()) { final DependencySet explainSub = role.getExplainSub(s.getName()); final DependencySet ds = explainSub.union(explanation, true); s.addRange(normalized, ds); } } }
@Override public void propogateRange(final Role role, final Map<ATermAppl, Set<Set<ATermAppl>>> ranges) { if (ranges == null || ranges.isEmpty()) return; for (final Map.Entry<ATermAppl, Set<Set<ATermAppl>>> e : ranges.entrySet()) { final Set<ATermAppl> explanation = e.getValue().iterator().next(); final ATermAppl range = e.getKey(); final ATermAppl normalized = ATermUtils.normalize(range); for (final Role s : role.getSubRoles()) { final DependencySet explainSub = role.getExplainSub(s.getName()); final DependencySet ds = explainSub.union(explanation, true); s.addRange(normalized, ds); } } }
@Override public void propogateDomain(final Role role, final Map<ATermAppl, Set<Set<ATermAppl>>> domains) { if (domains == null || domains.isEmpty()) return; for (final Map.Entry<ATermAppl, Set<Set<ATermAppl>>> e : domains.entrySet()) { final Set<ATermAppl> explanation = e.getValue().iterator().next(); final ATermAppl domain = e.getKey(); final ATermAppl normalized = ATermUtils.normalize(domain); for (final Role s : role.getSubRoles()) { final DependencySet explainSub = role.getExplainSub(s.getName()); final DependencySet ds = explainSub.union(explanation, true); s.addDomain(normalized, ds); } } }
@Override public void propogateDomain(final Role role, final Map<ATermAppl, Set<Set<ATermAppl>>> domains) { if (domains == null || domains.isEmpty()) return; for (final Map.Entry<ATermAppl, Set<Set<ATermAppl>>> e : domains.entrySet()) { final Set<ATermAppl> explanation = e.getValue().iterator().next(); final ATermAppl domain = e.getKey(); final ATermAppl normalized = ATermUtils.normalize(domain); for (final Role s : role.getSubRoles()) { final DependencySet explainSub = role.getExplainSub(s.getName()); final DependencySet ds = explainSub.union(explanation, true); s.addDomain(normalized, ds); } } }
private void add(final KnowledgeBase kb, final ATermAppl r1, final ATermAppl r2, final ATermAppl superRole) { final Role role1 = kb.getRole(r1); final Role role2 = kb.getRole(r2); if (role1 == null) { if (role2 == null) add(r1, r2, superRole); else for (final Role sub2 : role2.getSubRoles()) add(r1, sub2.getName(), superRole); } else if (role2 == null) for (final Role sub1 : role1.getSubRoles()) add(sub1.getName(), r2, superRole); else for (final Role sub1 : role1.getSubRoles()) for (final Role sub2 : role2.getSubRoles()) add(sub1.getName(), sub2.getName(), superRole); }
private void add(final KnowledgeBase kb, final ATermAppl r1, final ATermAppl r2, final ATermAppl superRole) { final Role role1 = kb.getRole(r1); final Role role2 = kb.getRole(r2); if (role1 == null) { if (role2 == null) add(r1, r2, superRole); else for (final Role sub2 : role2.getSubRoles()) add(r1, sub2.getName(), superRole); } else if (role2 == null) for (final Role sub1 : role1.getSubRoles()) add(sub1.getName(), r2, superRole); else for (final Role sub1 : role1.getSubRoles()) for (final Role sub2 : role2.getSubRoles()) add(sub1.getName(), sub2.getName(), superRole); }
@Override public void computeImmediateSubRoles(final Role r, final Map<ATerm, DependencySet> subs) { final Role invR = r.getInverse(); if (invR != null && invR != r) { for (final Role invSubR : invR.getSubRoles()) { final Role subR = invSubR.getInverse(); if (subR == null) _logger.fine(() -> "Property " + invSubR + " was supposed to be an ObjectProperty but it is not!"); else if (subR != r) subs.put(subR.getName(), invR.getExplainSub(invSubR.getName())); } for (final ATermList roleChain : invR.getSubRoleChains()) subs.put(inverse(roleChain), invR.getExplainSub(roleChain)); } for (final Role sub : r.getSubRoles()) subs.put(sub.getName(), r.getExplainSub(sub.getName())); for (final ATermList subChain : r.getSubRoleChains()) subs.put(subChain, r.getExplainSub(subChain)); }
@Override public void computeImmediateSubRoles(final Role r, final Map<ATerm, DependencySet> subs) { final Role invR = r.getInverse(); if (invR != null && invR != r) { for (final Role invSubR : invR.getSubRoles()) { final Role subR = invSubR.getInverse(); if (subR == null) _logger.fine(() -> "Property " + invSubR + " was supposed to be an ObjectProperty but it is not!"); else if (subR != r) subs.put(subR.getName(), invR.getExplainSub(invSubR.getName())); } for (final ATermList roleChain : invR.getSubRoleChains()) subs.put(inverse(roleChain), invR.getExplainSub(roleChain)); } for (final Role sub : r.getSubRoles()) subs.put(sub.getName(), r.getExplainSub(sub.getName())); for (final ATermList subChain : r.getSubRoleChains()) subs.put(subChain, r.getExplainSub(subChain)); }
_logger.finer("Property (" + (++count) + ") " + c + "..."); if (null != _topRole && c.getSubRoles().contains(_topRole))
_logger.finer("Property (" + (++count) + ") " + c + "..."); if (null != _topRole && c.getSubRoles().contains(_topRole))
return false; else if (role1.getSubRoles().contains(role2) || role2.getSubRoles().contains(role1)) return false;
return false; else if (role1.getSubRoles().contains(role2) || role2.getSubRoles().contains(role1)) return false;
for (final Role subRole : r.getSubRoles()) if (!subRole.isAnon() && !subRole.isBottom()) _expressivity.setHasInverse(true); if (r.getSubRoles().size() > 1) _expressivity.setHasRoleHierarchy(true);
for (final Role subRole : r.getSubRoles()) if (!subRole.isAnon() && !subRole.isBottom()) _expressivity.setHasInverse(true); if (r.getSubRoles().size() > 1) _expressivity.setHasRoleHierarchy(true);
final Set<Role> roles = SetUtils.union(r.getSubRoles(), r.getSuperRoles()); for (final Role sub : roles) switch (sub.getType())
final Set<Role> roles = SetUtils.union(r.getSubRoles(), r.getSuperRoles()); for (final Role sub : roles) switch (sub.getType())
@Override public void getTransitivePropertyValues(final Individual subj, final Role prop, final Set<ATermAppl> knowns, final Set<ATermAppl> unknowns, final boolean getSames, final Map<Individual, Set<Role>> visited, final boolean isIndependent) if (!MultiMapUtils.addAll(visited, subj, prop.getSubRoles())) return;
@Override public void getTransitivePropertyValues(final Individual subj, final Role prop, final Set<ATermAppl> knowns, final Set<ATermAppl> unknowns, final boolean getSames, final Map<Individual, Set<Role>> visited, final boolean isIndependent) if (!MultiMapUtils.addAll(visited, subj, prop.getSubRoles())) return;