@Override public EquivalentClassSecondFromFirstRule create( ChainableSubsumerRule tail) { return new EquivalentClassSecondFromFirstRule(tail); } };
@Override public boolean removeOccurrence(ModifiableOntologyIndex index) { ElkAxiom reason = getOriginalAxiom(); boolean success = IndexedClassDecompositionRule.removeRuleFor(this, index, reason); if (success) { success = IndexedClassFromDefinitionRule.removeRuleFor(this, index, reason); if (success) { return true; } // else revert IndexedClassDecompositionRule.addRuleFor(this, index, reason); } // else success = EquivalentClassFirstFromSecondRule.removeRuleFor(this, index, reason); if (success) { success = EquivalentClassSecondFromFirstRule.removeRuleFor(this, index, reason); if (success) { return true; } // else revert EquivalentClassFirstFromSecondRule.addRuleFor(this, index, reason); } // all failed return false; }
@Override public boolean addOccurrence(ModifiableOntologyIndex index) { ElkAxiom reason = getOriginalAxiom(); boolean success = IndexedClassDecompositionRule.addRuleFor(this, index, reason); if (success) { success = IndexedClassFromDefinitionRule.addRuleFor(this, index, reason); if (success) { return true; } // else revert IndexedClassDecompositionRule.removeRuleFor(this, index, reason); } // else success = EquivalentClassFirstFromSecondRule.addRuleFor(this, index, reason); if (success) { success = EquivalentClassSecondFromFirstRule.addRuleFor(this, index, reason); if (success) { return true; } // else revert EquivalentClassFirstFromSecondRule.removeRuleFor(this, index, reason); } // all failed return false; }
@Override public Void visit(EquivalentClassSecondFromFirstRule rule, IndexedClassExpression premise, ContextPremises premises, ClassInferenceProducer producer) { for (IndexedClassExpression ice : rule.getSecondEquivalentMembers()) { iceValidator_.checkNew(ice); } return null; }
@Override public boolean removeOccurrence(ModifiableOntologyIndex index) { ElkAxiom reason = getOriginalAxiom(); boolean success = IndexedClassDecompositionRule.removeRuleFor(this, index, reason); if (success) { success = IndexedClassFromDefinitionRule.removeRuleFor(this, index, reason); if (success) { return true; } // else revert IndexedClassDecompositionRule.addRuleFor(this, index, reason); } // else success = EquivalentClassFirstFromSecondRule.removeRuleFor(this, index, reason); if (success) { success = EquivalentClassSecondFromFirstRule.removeRuleFor(this, index, reason); if (success) { return true; } // else revert EquivalentClassFirstFromSecondRule.addRuleFor(this, index, reason); } // all failed return false; }
@Override public boolean addOccurrence(ModifiableOntologyIndex index) { ElkAxiom reason = getOriginalAxiom(); boolean success = IndexedClassDecompositionRule.addRuleFor(this, index, reason); if (success) { success = IndexedClassFromDefinitionRule.addRuleFor(this, index, reason); if (success) { return true; } // else revert IndexedClassDecompositionRule.removeRuleFor(this, index, reason); } // else success = EquivalentClassFirstFromSecondRule.addRuleFor(this, index, reason); if (success) { success = EquivalentClassSecondFromFirstRule.addRuleFor(this, index, reason); if (success) { return true; } // else revert EquivalentClassFirstFromSecondRule.removeRuleFor(this, index, reason); } // all failed return false; }
@Override public EquivalentClassSecondFromFirstRule create( ChainableSubsumerRule tail) { return new EquivalentClassSecondFromFirstRule(tail); } };
@Override public boolean removeOccurrence(ModifiableOntologyIndex index) { ElkAxiom reason = getOriginalAxiom(); boolean success = IndexedClassDecompositionRule.removeRuleFor(this, index, reason); if (success) { success = IndexedClassFromDefinitionRule.removeRuleFor(this, index, reason); if (success) { return true; } // else revert IndexedClassDecompositionRule.addRuleFor(this, index, reason); } // else success = EquivalentClassFirstFromSecondRule.removeRuleFor(this, index, reason); if (success) { success = EquivalentClassSecondFromFirstRule.removeRuleFor(this, index, reason); if (success) { return true; } // else revert EquivalentClassFirstFromSecondRule.addRuleFor(this, index, reason); } // all failed return false; }
@Override public boolean addOccurrence(ModifiableOntologyIndex index) { ElkAxiom reason = getOriginalAxiom(); boolean success = IndexedClassDecompositionRule.addRuleFor(this, index, reason); if (success) { success = IndexedClassFromDefinitionRule.addRuleFor(this, index, reason); if (success) { return true; } // else revert IndexedClassDecompositionRule.removeRuleFor(this, index, reason); } // else success = EquivalentClassFirstFromSecondRule.addRuleFor(this, index, reason); if (success) { success = EquivalentClassSecondFromFirstRule.addRuleFor(this, index, reason); if (success) { return true; } // else revert EquivalentClassFirstFromSecondRule.removeRuleFor(this, index, reason); } // all failed return false; }
@Override public boolean removeFrom(Chain<ChainableSubsumerRule> ruleChain) { if (isEmpty()) return true; EquivalentClassSecondFromFirstRule rule = ruleChain reason); int j = rule.indexOf(subsumer, reason); if (j >= 0) { rule.secondEquivalentMembers_.remove(j); if (rule.isEmpty()) { ruleChain.remove(EquivalentClassSecondFromFirstRule.MATCHER_); LOGGER_.trace("{}: removed ", NAME);
@Override public EquivalentClassSecondFromFirstRule create( ChainableSubsumerRule tail) { return new EquivalentClassSecondFromFirstRule(tail); } };
@Override public boolean removeFrom(Chain<ChainableSubsumerRule> ruleChain) { if (isEmpty()) return true; EquivalentClassSecondFromFirstRule rule = ruleChain reason); int j = rule.indexOf(subsumer, reason); if (j >= 0) { rule.secondEquivalentMembers_.remove(j); if (rule.isEmpty()) { ruleChain.remove(EquivalentClassSecondFromFirstRule.MATCHER_); LOGGER_.trace("{}: removed ", NAME);
public static boolean removeRuleFor( ModifiableIndexedEquivalentClassesAxiom axiom, ModifiableOntologyIndex index, ElkAxiom reason) { return index.remove(axiom.getFirstMember(), new EquivalentClassSecondFromFirstRule(axiom.getSecondMember(), reason)); }
@Override public boolean removeFrom(Chain<ChainableSubsumerRule> ruleChain) { if (isEmpty()) return true; EquivalentClassSecondFromFirstRule rule = ruleChain reason); int j = rule.indexOf(subsumer, reason); if (j >= 0) { rule.secondEquivalentMembers_.remove(j); if (rule.isEmpty()) { ruleChain.remove(EquivalentClassSecondFromFirstRule.MATCHER_); LOGGER_.trace("{}: removed ", NAME);
public static boolean addRuleFor( ModifiableIndexedEquivalentClassesAxiom axiom, ModifiableOntologyIndex index, ElkAxiom reason) { return index.add(axiom.getFirstMember(), new EquivalentClassSecondFromFirstRule(axiom.getSecondMember(), reason)); }
public static boolean removeRuleFor( ModifiableIndexedEquivalentClassesAxiom axiom, ModifiableOntologyIndex index, ElkAxiom reason) { return index.remove(axiom.getFirstMember(), new EquivalentClassSecondFromFirstRule(axiom.getSecondMember(), reason)); }
public static boolean addRuleFor( ModifiableIndexedEquivalentClassesAxiom axiom, ModifiableOntologyIndex index, ElkAxiom reason) { return index.add(axiom.getFirstMember(), new EquivalentClassSecondFromFirstRule(axiom.getSecondMember(), reason)); }