default boolean addEquivalentRole(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.addSubRole(roleS, ds); roleR.addSuperRole(roleS, ds); roleS.addSubRole(roleR, ds); roleS.addSuperRole(roleR, ds); if (roleR.getInverse() != null) { roleR.getInverse().addSubRole(roleS.getInverse(), ds); roleR.getInverse().addSuperRole(roleS.getInverse(), ds); roleS.getInverse().addSubRole(roleR.getInverse(), ds); roleS.getInverse().addSuperRole(roleR.getInverse(), ds); } return true; }
default boolean addEquivalentRole(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.addSubRole(roleS, ds); roleR.addSuperRole(roleS, ds); roleS.addSubRole(roleR, ds); roleS.addSuperRole(roleR, ds); if (roleR.getInverse() != null) { roleR.getInverse().addSubRole(roleS.getInverse(), ds); roleR.getInverse().addSuperRole(roleS.getInverse(), ds); roleS.getInverse().addSubRole(roleR.getInverse(), ds); roleS.getInverse().addSuperRole(roleR.getInverse(), ds); } return true; }
default boolean addSubRole(final ATerm sub, final ATerm sup, final DependencySet ds) { final Role roleSup = getRole(sup); final Role roleSub = getRole(sub); if (roleSup == null) return false; else if (sub.getType() == ATerm.LIST) roleSup.addSubRoleChain((ATermList) sub, ds); else if (roleSub == null) return false; else { roleSup.addSubRole(roleSub, ds); roleSub.addSuperRole(roleSup, ds); } // TODO Need to figure out what to do about about role lists // explanationTable.add(ATermUtils.makeSub(sub, sup), ds); return true; }
default boolean addSubRole(final ATerm sub, final ATerm sup, final DependencySet ds) { final Role roleSup = getRole(sup); final Role roleSub = getRole(sub); if (roleSup == null) return false; else if (sub.getType() == ATerm.LIST) roleSup.addSubRoleChain((ATermList) sub, ds); else if (roleSub == null) return false; else { roleSup.addSubRole(roleSub, ds); roleSub.addSuperRole(roleSup, ds); } // TODO Need to figure out what to do about about role lists // explanationTable.add(ATermUtils.makeSub(sub, sup), ds); return true; }
s.addSuperRole(role, explainSub);
s.addSuperRole(role, explainSub);