default boolean addInverseRole(final ATerm s, final ATerm r, final DependencySet ds) { final Role roleS = getRole(s); final Role roleR = getRole(r); if (roleS == null || roleR == null || !roleS.isObjectRole() || !roleR.isObjectRole()) return false; else addEquivalentRole(roleS.getInverse().getName(), r, ds); return true; }
@Override public void setForceSimple(final boolean b) { if (b == isForceSimple()) return; if (b) _flags |= FORCE_SIMPLE; else _flags &= ~FORCE_SIMPLE; if (_inverse != null) _inverse.setForceSimple(b); }
default boolean addDisjointRole(final ATerm s, final ATerm r, final DependencySet ds) { final Role roleS = getRole(s); final Role roleR = getRole(r); if (roleS == null || roleR == null) return false; roleR.addDisjointRole(roleS, ds); roleS.addDisjointRole(roleR, ds); return true; }
@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 Taxonomy<ATermAppl> getObjectTaxonomy() { if (_objectTaxonomy == null) { final RoleTaxonomyBuilder builder = new RoleTaxonomyBuilder(this, PropertyType.OBJECT); _objectTaxonomy = builder.classify(); } return _objectTaxonomy; }
public RoleImpl(final ATermAppl name, final PropertyType type) { _name = name; _type = type; addSubRole(this, DependencySet.INDEPENDENT); addSuperRole(this, DependencySet.INDEPENDENT); }
@Override public boolean hasNamedInverse() { return _inverse != null && !_inverse.isAnon(); }
@Override public void setFunctional(final boolean b) { final DependencySet ds = DependencySet.INDEPENDENT; setFunctional(b, ds); }
@Override public void setAsymmetric(final boolean b) { setAsymmetric(b, DependencySet.INDEPENDENT); }
@Override public boolean isSymmetric() { return _inverse != null && isEquivalent(_inverse); }
default boolean addInverseRole(final ATerm s, final ATerm r, final DependencySet ds) { final Role roleS = getRole(s); final Role roleR = getRole(r); if (roleS == null || roleR == null || !roleS.isObjectRole() || !roleR.isObjectRole()) return false; else addEquivalentRole(roleS.getInverse().getName(), r, ds); return true; }
default boolean addDisjointRole(final ATerm s, final ATerm r, final DependencySet ds) { final Role roleS = getRole(s); final Role roleR = getRole(r); if (roleS == null || roleR == null) return false; roleR.addDisjointRole(roleS, ds); roleS.addDisjointRole(roleR, ds); return true; }
@Override public void setForceSimple(final boolean b) { if (b == isForceSimple()) return; if (b) _flags |= FORCE_SIMPLE; else _flags &= ~FORCE_SIMPLE; if (_inverse != null) _inverse.setForceSimple(b); }
@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 Taxonomy<ATermAppl> getDataTaxonomy() { if (_dataTaxonomy == null) { final RoleTaxonomyBuilder builder = new RoleTaxonomyBuilder(this, PropertyType.DATATYPE); _dataTaxonomy = builder.classify(); } return _dataTaxonomy; }
@Override public Taxonomy<ATermAppl> getObjectTaxonomy() { if (_objectTaxonomy == null) { final RoleTaxonomyBuilder builder = new RoleTaxonomyBuilder(this, PropertyType.OBJECT); _objectTaxonomy = builder.classify(); } return _objectTaxonomy; }