default Set<ATermAppl> getInverseFunctionalProperties() { final Set<ATermAppl> set = getRBox().getRoles().values().stream()// .filter(role -> { final ATermAppl p = role.getName(); return ATermUtils.isPrimitive(p) && role.isInverseFunctional(); })// .map(Role::getName)// .collect(Collectors.toSet()); set.add(ATermUtils.BOTTOM_OBJECT_PROPERTY); return set; }
default Set<ATermAppl> getInverseFunctionalProperties() { final Set<ATermAppl> set = getRBox().getRoles().values().stream()// .filter(role -> { final ATermAppl p = role.getName(); return ATermUtils.isPrimitive(p) && role.isInverseFunctional(); })// .map(Role::getName)// .collect(Collectors.toSet()); set.add(ATermUtils.BOTTOM_OBJECT_PROPERTY); return set; }
if (role.isFunctional()) types.add(OWL.FunctionalProperty.asNode()); if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) if (role.isFunctional()) types.add(OWL.FunctionalProperty.asNode()); if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode());
if (role.isFunctional()) types.add(OWL.FunctionalProperty.asNode()); if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) if (role.isFunctional()) types.add(OWL.FunctionalProperty.asNode()); if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode());
if (role.isFunctional()) types.add(OWL.FunctionalProperty.asNode()); if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) if (role.isFunctional()) types.add(OWL.FunctionalProperty.asNode()); if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode());
if (role.isInverseFunctional()) addTriple(triples, s, pX, OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive())
if (role.isInverseFunctional()) addTriple(triples, s, pX, OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive())
if (role.isInverseFunctional()) addTriple(triples, s, pX, OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive())
public void applyFunctionality(final Individual subj, final Role pred, final Node obj) { DependencySet maxCardDS = pred.isFunctional() ? pred.getExplainFunctional() : subj.hasMax1(pred); if (maxCardDS != null) _maxRule.applyFunctionalMaxRule(subj, pred, ATermUtils.getTop(pred), maxCardDS); if (pred.isDatatypeRole() && pred.isInverseFunctional()) applyFunctionalMaxRule((Literal) obj, pred, DependencySet.INDEPENDENT); else if (pred.isObjectRole()) { final Individual val = (Individual) obj; final Role invR = pred.getInverse(); maxCardDS = invR.isFunctional() ? invR.getExplainFunctional() : val.hasMax1(invR); if (maxCardDS != null) _maxRule.applyFunctionalMaxRule(val, invR, ATermUtils.TOP, maxCardDS); } }
public void applyFunctionality(final Individual subj, final Role pred, final Node obj) { DependencySet maxCardDS = pred.isFunctional() ? pred.getExplainFunctional() : subj.hasMax1(pred); if (maxCardDS != null) _maxRule.applyFunctionalMaxRule(subj, pred, ATermUtils.getTop(pred), maxCardDS); if (pred.isDatatypeRole() && pred.isInverseFunctional()) applyFunctionalMaxRule((Literal) obj, pred, DependencySet.INDEPENDENT); else if (pred.isObjectRole()) { final Individual val = (Individual) obj; final Role invR = pred.getInverse(); maxCardDS = invR.isFunctional() ? invR.getExplainFunctional() : val.hasMax1(invR); if (maxCardDS != null) _maxRule.applyFunctionalMaxRule(val, invR, ATermUtils.TOP, maxCardDS); } }
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); }
if (r.isInverseFunctional()) _expressivity.setHasKeys(true);
if (r.isInverseFunctional()) _expressivity.setHasKeys(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); }
if (role.isTransitive() && !invR.isTransitive()) invR.setTransitive(true, role.getExplainTransitive()); if (invR.isFunctional() && !role.isInverseFunctional()) role.setInverseFunctional(true, invR.getExplainFunctional()); if (role.isFunctional() && !invR.isInverseFunctional()) invR.setInverseFunctional(true, role.getExplainFunctional()); if (invR.isInverseFunctional() && !role.isFunctional()) role.setFunctional(true, invR.getExplainInverseFunctional()); if (invR.isAsymmetric() && !role.isAsymmetric())
if (role.isTransitive() && !invR.isTransitive()) invR.setTransitive(true, role.getExplainTransitive()); if (invR.isFunctional() && !role.isInverseFunctional()) role.setInverseFunctional(true, invR.getExplainFunctional()); if (role.isFunctional() && !invR.isInverseFunctional()) invR.setInverseFunctional(true, role.getExplainFunctional()); if (invR.isInverseFunctional() && !role.isFunctional()) role.setFunctional(true, invR.getExplainInverseFunctional()); if (invR.isAsymmetric() && !role.isAsymmetric())
if (subj.isBlockable() && obj.isNominal() && !obj.isLiteral() && pred.isInverseFunctional())
if (subj.isBlockable() && obj.isNominal() && !obj.isLiteral() && pred.isInverseFunctional())