finalDS = ds.union(subj.getDepends(av), _strategy.getABox().doExplanation()); if (_strategy.getABox().doExplanation()) finalDS = finalDS.union(s.getExplainTransitive().getExplain(), true);
finalDS = ds.union(subj.getDepends(av), _strategy.getABox().doExplanation()); if (_strategy.getABox().doExplanation()) finalDS = finalDS.union(s.getExplainTransitive().getExplain(), true);
default boolean isTransitiveProperty(final ATermAppl r) { if (null == r) return false; final Role role = getRole(r); if (role == null) { Base.handleUndefinedEntity(r + _isNotAnKnowProperty); return false; } if (role.isTransitive()) { if (doExplanation()) getABox().setExplanation(role.getExplainTransitive()); return true; } else if (!role.isObjectRole() || role.isFunctional() || role.isInverseFunctional()) return false; ensureConsistency(); final ATermAppl c = ATermUtils.makeTermAppl("_C_"); final ATermAppl notC = ATermUtils.makeNot(c); final ATermAppl test = ATermUtils.makeAnd(ATermUtils.makeSomeValues(r, ATermUtils.makeSomeValues(r, c)), ATermUtils.makeAllValues(r, notC)); return !getABox().isSatisfiable(test); }
default boolean isTransitiveProperty(final ATermAppl r) { if (null == r) return false; final Role role = getRole(r); if (role == null) { Base.handleUndefinedEntity(r + _isNotAnKnowProperty); return false; } if (role.isTransitive()) { if (doExplanation()) getABox().setExplanation(role.getExplainTransitive()); return true; } else if (!role.isObjectRole() || role.isFunctional() || role.isInverseFunctional()) return false; ensureConsistency(); final ATermAppl c = ATermUtils.makeTermAppl("_C_"); final ATermAppl notC = ATermUtils.makeNot(c); final ATermAppl test = ATermUtils.makeAnd(ATermUtils.makeSomeValues(r, ATermUtils.makeSomeValues(r, c)), ATermUtils.makeAllValues(r, notC)); return !getABox().isSatisfiable(test); }
role.setTransitive(true, invR.getExplainTransitive()); else if (role.isTransitive() && !invR.isTransitive()) invR.setTransitive(true, role.getExplainTransitive()); if (invR.isFunctional() && !role.isInverseFunctional()) role.setInverseFunctional(true, invR.getExplainFunctional()); DependencySet transitiveDS = r.getExplainTransitive(); for (final Role s : r.getSubRoles()) if (s.isTransitive()) transitiveDS = r.getExplainSub(s.getName()).union(s.getExplainTransitive(), true);
role.setTransitive(true, invR.getExplainTransitive()); else if (role.isTransitive() && !invR.isTransitive()) invR.setTransitive(true, role.getExplainTransitive()); if (invR.isFunctional() && !role.isInverseFunctional()) role.setInverseFunctional(true, invR.getExplainFunctional()); DependencySet transitiveDS = r.getExplainTransitive(); for (final Role s : r.getSubRoles()) if (s.isTransitive()) transitiveDS = r.getExplainSub(s.getName()).union(s.getExplainTransitive(), true);
if (_strategy.getABox().doExplanation()) finalDS = finalDS.union(r.getExplainTransitive().getExplain(), true); finalDS = finalDS.union(s.getExplainSubOrInv(edgeToY.getRole()), true);
if (_strategy.getABox().doExplanation()) finalDS = finalDS.union(r.getExplainTransitive().getExplain(), true); finalDS = finalDS.union(s.getExplainSubOrInv(edgeToY.getRole()), true);