public void applyUniversalRestrictions(final Individual node) { addType(node, ATermUtils.TOP, DependencySet.INDEPENDENT); final Set<Role> reflexives = _abox.getKB().getRBox().getReflexiveRoles(); for (final Role r : reflexives) { _logger.fine(() -> "REF : " + node + " " + r); addEdge(node, r, node, r.getExplainReflexive()); if (node.isMerged()) return; } final Role topObjProp = _abox.getKB().getRole(ATermUtils.TOP_OBJECT_PROPERTY); for (final ATermAppl domain : topObjProp.getDomains()) { addType(node, domain, topObjProp.getExplainDomain(domain)); if (node.isMerged()) continue; } for (final ATermAppl range : topObjProp.getRanges()) { addType(node, range, topObjProp.getExplainRange(range)); if (node.isMerged()) continue; } }
public void applyUniversalRestrictions(final Individual node) { addType(node, ATermUtils.TOP, DependencySet.INDEPENDENT); final Set<Role> reflexives = _abox.getKB().getRBox().getReflexiveRoles(); for (final Role r : reflexives) { _logger.fine(() -> "REF : " + node + " " + r); addEdge(node, r, node, r.getExplainReflexive()); if (node.isMerged()) return; } final Role topObjProp = _abox.getKB().getRole(ATermUtils.TOP_OBJECT_PROPERTY); for (final ATermAppl domain : topObjProp.getDomains()) { addType(node, domain, topObjProp.getExplainDomain(domain)); if (node.isMerged()) continue; } for (final ATermAppl range : topObjProp.getRanges()) { addType(node, range, topObjProp.getExplainRange(range)); if (node.isMerged()) continue; } }
default boolean isReflexiveProperty(final ATermAppl p) { if (null == p) return false; final Role role = getRole(p); if (role == null) { Base.handleUndefinedEntity(p + _isNotAnKnowProperty); return false; } if (!role.isObjectRole() || role.isIrreflexive()) return false; else if (role.isReflexive()) { if (doExplanation()) getABox().setExplanation(role.getExplainReflexive()); return true; } ensureConsistency(); final ATermAppl c = ATermUtils.makeTermAppl("_C_"); final ATermAppl notC = ATermUtils.makeNot(c); final ATermAppl test = ATermUtils.makeAnd(c, ATermUtils.makeAllValues(p, notC)); return !getABox().isSatisfiable(test); }
default boolean isReflexiveProperty(final ATermAppl p) { if (null == p) return false; final Role role = getRole(p); if (role == null) { Base.handleUndefinedEntity(p + _isNotAnKnowProperty); return false; } if (!role.isObjectRole() || role.isIrreflexive()) return false; else if (role.isReflexive()) { if (doExplanation()) getABox().setExplanation(role.getExplainReflexive()); return true; } ensureConsistency(); final ATermAppl c = ATermUtils.makeTermAppl("_C_"); final ATermAppl notC = ATermUtils.makeNot(c); final ATermAppl test = ATermUtils.makeAnd(c, ATermUtils.makeAllValues(p, notC)); return !getABox().isSatisfiable(test); }
invR.setAsymmetric(true, role.getExplainAsymmetric()); if (invR.isReflexive() && !role.isReflexive()) role.setReflexive(true, invR.getExplainReflexive()); if (role.isReflexive() && !invR.isReflexive()) invR.setReflexive(true, role.getExplainReflexive());
invR.setAsymmetric(true, role.getExplainAsymmetric()); if (invR.isReflexive() && !role.isReflexive()) role.setReflexive(true, invR.getExplainReflexive()); if (role.isReflexive() && !invR.isReflexive()) invR.setReflexive(true, role.getExplainReflexive());