default Set<ATermAppl> getTransitiveProperties() { final Set<ATermAppl> set = new HashSet<>(); for (final Role role : getRBox().getRoles().values()) { final ATermAppl p = role.getName(); if (ATermUtils.isPrimitive(p) && role.isTransitive()) set.add(p); } set.add(ATermUtils.BOTTOM_OBJECT_PROPERTY); return set; }
default Set<ATermAppl> getTransitiveProperties() { final Set<ATermAppl> set = new HashSet<>(); for (final Role role : getRBox().getRoles().values()) { final ATermAppl p = role.getName(); if (ATermUtils.isPrimitive(p) && role.isTransitive()) set.add(p); } set.add(ATermUtils.BOTTOM_OBJECT_PROPERTY); return set; }
if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) types.add(OWL.TransitiveProperty.asNode()); if (role.isSymmetric())
if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) types.add(OWL.TransitiveProperty.asNode()); if (role.isSymmetric())
if (role.isInverseFunctional()) types.add(OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) types.add(OWL.TransitiveProperty.asNode()); if (role.isSymmetric())
if (role.isInverseFunctional()) addTriple(triples, s, pX, OWL.InverseFunctionalProperty.asNode()); if (role.isTransitive()) addTriple(triples, s, pX, OWL.TransitiveProperty.asNode()); if (role.isSymmetric())
@Test public void testInvalidTransitivity2() { final KBLoader[] loaders = { new JenaLoader() }; for (final KBLoader loader : loaders) { final KnowledgeBase kb = loader.createKB(_base + "invalidTransitivity.owl"); for (final Role r : kb.getRBox().getRoles().values()) if (!ATermUtils.isBuiltinProperty(r.getName())) { assertTrue(r.toString(), r.isSimple()); assertFalse(r.toString(), r.isTransitive()); } for (final ATermAppl p : kb.getObjectProperties()) if (!ATermUtils.isBuiltinProperty(p)) assertFalse(p.toString(), kb.isTransitiveProperty(p)); } }
if (r.isFunctional()) return false; if (r.isTransitive()) _expressivity.setHasTransitivity(true); if (r.isReflexive())
if (r.isFunctional()) return false; if (r.isTransitive()) _expressivity.setHasTransitivity(true); if (r.isReflexive())
@Test public void testInvalidTransitivity2() { final OWLOntology ont = loadOntology(OWLManager.createOWLOntologyManager(), _base + "invalidTransitivity.owl"); final OpenlletReasoner reasoner = OpenlletReasonerFactory.getInstance().createReasoner(ont); final KnowledgeBase kb = reasoner.getKB(); kb.prepare(); for (final Role r : kb.getRBox().getRoles().values()) if (!ATermUtils.isBuiltinProperty(r.getName())) { assertTrue(r.toString(), r.isSimple()); assertFalse(r.toString(), r.isTransitive()); } for (final ATermAppl p : kb.getObjectProperties()) if (!ATermUtils.isBuiltinProperty(p)) assertFalse(p.toString(), kb.isTransitiveProperty(p)); }
if (r.isTransitive()) msg = "transitivity axiom"; else
if (r.isObjectRole()) _expressivity.setHasFunctionality(true); if (r.isTransitive()) _expressivity.setHasTransitivity(true); if (r.isReflexive())
if (r.isTransitive()) msg = "transitivity axiom"; else
if (r.isObjectRole()) _expressivity.setHasFunctionality(true); if (r.isTransitive()) _expressivity.setHasTransitivity(true); if (r.isReflexive())
if (r.isTransitive()) msg = "transitivity axiom"; else
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); }
@Test public void testPropertyChainInvalid() { final OntModel model = ModelFactory.createOntologyModel(PelletReasonerFactory.THE_SPEC); model.read(_base + "propertyChainInvalid.owl"); model.prepare(); final KnowledgeBase kb = ((PelletInfGraph) model.getGraph()).getKB(); for (final Role r : kb.getRBox().getRoles().values()) if (!ATermUtils.isBuiltinProperty(r.getName())) { assertTrue(r + " is not simple", r.isSimple()); assertFalse(r + " is transitive", r.isTransitive()); assertFalse(r + " has complex sub roles", r.hasComplexSubRole()); } }
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); }