// clean it
ds.removeExplain( assertion );
// remove if the explanation set is empty
if( ds.getExplain().isEmpty() ) {
final IncrementalChangeTracker tracker = kb.getABox().getIncrementalChangeTracker();
kb.getABox().removeType( node.getName(), desc );
// update the set of removed types
tracker.addDeletedType( node, type.getType() );
// add to updated individuals
if( node instanceof Individual ) {
Individual ind = (Individual) node;
tracker.addUpdatedIndividual( ind );
// also need to add all edge object to updated individuals -
// this is needed to fire allValues/domain/range rules etc.
for( Edge e : ind.getInEdges() ) {
tracker.addUpdatedIndividual( e.getFrom() );
}
for( Edge e : ind.getOutEdges() ) {
if( e.getTo() instanceof Individual )
tracker.addUpdatedIndividual( (Individual) e.getTo() );
}
}
if( DependencyIndex.log.isLoggable( Level.FINE ) )
DependencyIndex.log.fine( " Actually removed type!" );