if (abox.isInitialized()) {
Iterator<Individual> i = getInitializeIterator();
while (i.hasNext()) {
Individual n = i.next();
if (n.isMerged()) {
continue;
}
if (n.isConceptRoot()) {
applyUniversalRestrictions(n);
}
allValuesRule.apply(n);
if (n.isMerged()) {
continue;
}
nominalRule.apply(n);
if (n.isMerged()) {
continue;
}
selfRule.apply(n);
// CHW-added for inc. queue must see if this is bad
EdgeList allEdges = n.getOutEdges();
for (int e = 0; e < allEdges.size(); e++) {
Edge edge = allEdges.edgeAt(e);
if (edge.getTo().isPruned()) {
continue;
}
applyPropertyRestrictions(edge);
if (n.isMerged()) {
break;
}
}
}
return;
}
if (log.isLoggable(Level.FINE)) {
log.fine("Initialize started");
}
abox.setBranch(0);
mergeList.addAll(abox.getToBeMerged());
if (!mergeList.isEmpty()) {
mergeAll();
}
Role topRole = abox.getRole(TOP_OBJECT_PROPERTY);
Iterator<Individual> i = getInitializeIterator();
while (i.hasNext()) {
Individual n = i.next();
if (n.isMerged()) {
continue;
}
applyUniversalRestrictions(n);
if (n.isMerged()) {
continue;
}
selfRule.apply(n);
if (n.isMerged()) {
continue;
}
EdgeList allEdges = n.getOutEdges();
for (int e = 0; e < allEdges.size(); e++) {
Edge edge = allEdges.edgeAt(e);
if (edge.getTo().isPruned()) {
continue;
}
applyPropertyRestrictions(edge);
if (n.isMerged()) {
break;
}
}
if (n.isMerged()) {
continue;
}
// The top object role isn't in the edge list, so pretend it exists
applyPropertyRestrictions(n, topRole, n, DependencySet.INDEPENDENT);