default boolean isInverseFunctionalProperty(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()) return false; else if (role.isInverseFunctional() || role.isBottom()) { if (doExplanation()) getABox().setExplanation(role.getExplainInverseFunctional()); return true; } final ATermAppl invP = role.getInverse().getName(); final ATermAppl max1invP = ATermUtils.makeMax(invP, 1, ATermUtils.TOP); return isSubClassOf(ATermUtils.TOP, max1invP); }
default boolean isInverseFunctionalProperty(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()) return false; else if (role.isInverseFunctional() || role.isBottom()) { if (doExplanation()) getABox().setExplanation(role.getExplainInverseFunctional()); return true; } final ATermAppl invP = role.getInverse().getName(); final ATermAppl max1invP = ATermUtils.makeMax(invP, 1, ATermUtils.TOP); return isSubClassOf(ATermUtils.TOP, max1invP); }
invR.setInverseFunctional(true, role.getExplainFunctional()); if (invR.isInverseFunctional() && !role.isFunctional()) role.setFunctional(true, invR.getExplainInverseFunctional()); if (invR.isAsymmetric() && !role.isAsymmetric()) role.setAsymmetric(true, invR.getExplainAsymmetric());
invR.setInverseFunctional(true, role.getExplainFunctional()); if (invR.isInverseFunctional() && !role.isFunctional()) role.setFunctional(true, invR.getExplainInverseFunctional()); if (invR.isAsymmetric() && !role.isAsymmetric()) role.setAsymmetric(true, invR.getExplainAsymmetric());