@Override public void setHasComplexSubRole(final boolean b) { if (b == hasComplexSubRole()) return; if (b) _flags |= COMPLEX_SUB; else _flags &= ~COMPLEX_SUB; if (_inverse != null) _inverse.setHasComplexSubRole(b); if (b) setSimple(false); }
@Override public void setHasComplexSubRole(final boolean b) { if (b == hasComplexSubRole()) return; if (b) _flags |= COMPLEX_SUB; else _flags &= ~COMPLEX_SUB; if (_inverse != null) _inverse.setHasComplexSubRole(b); if (b) setSimple(false); }
default void ignoreTransitivity(final Role role) { final Role namedRole = role.isAnon() ? role.getInverse() : role; final String msg = "Unsupported axiom: Ignoring transitivity and/or complex subproperty axioms for " + namedRole; if (!OpenlletOptions.IGNORE_UNSUPPORTED_AXIOMS) throw new UnsupportedFeatureException(msg); getLogger().warning(msg); role.removeSubRoleChains(); role.setHasComplexSubRole(false); role.setSimple(true); role.setFSM(null); role.getInverse().removeSubRoleChains(); role.getInverse().setHasComplexSubRole(false); role.getInverse().setSimple(true); role.getInverse().setFSM(null); }
default void ignoreTransitivity(final Role role) { final Role namedRole = role.isAnon() ? role.getInverse() : role; final String msg = "Unsupported axiom: Ignoring transitivity and/or complex subproperty axioms for " + namedRole; if (!OpenlletOptions.IGNORE_UNSUPPORTED_AXIOMS) throw new UnsupportedFeatureException(msg); getLogger().warning(msg); role.removeSubRoleChains(); role.setHasComplexSubRole(false); role.setSimple(true); role.setFSM(null); role.getInverse().removeSubRoleChains(); role.getInverse().setHasComplexSubRole(false); role.getInverse().setSimple(true); role.getInverse().setFSM(null); }
if (chain.getLength() != 2 || !chain.getFirst().equals(chain.getLast()) || !subRoles.contains(getRole(chain.getFirst()))) role.setHasComplexSubRole(true); complexRoles.add(role); break;
if (chain.getLength() != 2 || !chain.getFirst().equals(chain.getLast()) || !subRoles.contains(getRole(chain.getFirst()))) role.setHasComplexSubRole(true); complexRoles.add(role); break;