/** * implements rules [D1], [O1] and [C1]:<br> * - ignore if e1 is bot or e2 is top<br> * - replace by emptiness if e2 is bot but e1 is not top<br> * - inconsistency if e1 is top and e2 is bot * * @param e1 * @param e2 * @throws InconsistentOntologyException */ void addInclusion(T e1, T e2) throws InconsistentOntologyException { if (e1.isBottom() || e2.isTop()) return; if (e2.isBottom()) { // emptiness if (e1.isTop()) throw new InconsistentOntologyException(); NaryAxiom<T> ax = new NaryAxiomImpl<>(ImmutableList.of(e1, e1)); disjointness.add(ax); } else { BinaryAxiom<T> ax = new BinaryAxiomImpl<>(e1, e2); inclusions.add(ax); } }
for (T e : es) { if (e.isBottom()) continue; else if (e.isTop())