@Override public final boolean updateOccurrenceNumbers(ModifiableOntologyIndex index, OccurrenceIncrement increment) { if (positiveOccurrenceNo == 0 && increment.positiveIncrement > 0) { // first positive occurrence of this expression if (!ContradictionFromNegationRule.addRulesFor(this, index)) return false; } positiveOccurrenceNo += increment.positiveIncrement; negativeOccurrenceNo += increment.negativeIncrement; checkOccurrenceNumbers(); if (positiveOccurrenceNo == 0 && increment.positiveIncrement < 0) { // no positive occurrences of this expression left if (!ContradictionFromNegationRule.removeRulesFor(this, index)) { // revert all changes positiveOccurrenceNo -= increment.positiveIncrement; negativeOccurrenceNo -= increment.negativeIncrement; return false; } } for (int i = 0; i < Math.abs(increment.negativeIncrement); i++) { // for each indexed negative occurrence of this expression index.onIndexing( Occurrence.NEGATIVE_OCCURRENCE_OF_OBJECT_COMPLEMENT_OF); } return true; }
@Override public final boolean updateOccurrenceNumbers(ModifiableOntologyIndex index, OccurrenceIncrement increment) { if (positiveOccurrenceNo == 0 && increment.positiveIncrement > 0) { // first positive occurrence of this expression if (!ContradictionFromNegationRule.addRulesFor(this, index)) return false; } positiveOccurrenceNo += increment.positiveIncrement; negativeOccurrenceNo += increment.negativeIncrement; checkOccurrenceNumbers(); if (positiveOccurrenceNo == 0 && increment.positiveIncrement < 0) { // no positive occurrences of this expression left if (!ContradictionFromNegationRule.removeRulesFor(this, index)) { // revert all changes positiveOccurrenceNo -= increment.positiveIncrement; negativeOccurrenceNo -= increment.negativeIncrement; return false; } } for (int i = 0; i < Math.abs(increment.negativeIncrement); i++) { // for each indexed negative occurrence of this expression index.onIndexing( Occurrence.NEGATIVE_OCCURRENCE_OF_OBJECT_COMPLEMENT_OF); } return true; }
@Override public final boolean updateOccurrenceNumbers(ModifiableOntologyIndex index, OccurrenceIncrement increment) { if (positiveOccurrenceNo == 0 && increment.positiveIncrement > 0) { // first positive occurrence of this expression if (!ContradictionFromNegationRule.addRulesFor(this, index)) return false; } positiveOccurrenceNo += increment.positiveIncrement; negativeOccurrenceNo += increment.negativeIncrement; checkOccurrenceNumbers(); if (positiveOccurrenceNo == 0 && increment.positiveIncrement < 0) { // no positive occurrences of this expression left if (!ContradictionFromNegationRule.removeRulesFor(this, index)) { // revert all changes positiveOccurrenceNo -= increment.positiveIncrement; negativeOccurrenceNo -= increment.negativeIncrement; return false; } } for (int i = 0; i < Math.abs(increment.negativeIncrement); i++) { // for each indexed negative occurrence of this expression index.onIndexing( Occurrence.NEGATIVE_OCCURRENCE_OF_OBJECT_COMPLEMENT_OF); } return true; }