if( !r.isDatatypeRole() )
continue;
ds = ds.union( e.getDepends(), strategy.getABox().doExplanation() );
final Literal l = (Literal) e.getTo();
pending.add( l );
Set<Literal> disj = ne.get( l );
for( Role s : r.getDisjointRoles() ) {
for( Edge f : ind.getOutEdges().getEdges( s ) ) {
final Literal k = (Literal) f.getTo();
if( disj == null ) {
disj = new HashSet<Literal>();
ne.put( l, disj );
nePresent = true;
}
disj.add( k );
}
}
}
while (!pending.isEmpty()) {
final Literal l = pending.removeFirst();
if( !nodes.add( l ) )
continue;
Set<Literal> disj = ne.get( l );
for( Node n : l.getDifferents() ) {
if( n.isLiteral() ) {
final Literal k = (Literal) n;
pending.add( k );
if( disj == null ) {
disj = new HashSet<Literal>();
ne.put( l, disj );
nePresent = true;