Skip to content

Commit cc2e897

Browse files
display progress in materialization
1 parent fd54c7e commit cc2e897

2 files changed

Lines changed: 50 additions & 6 deletions

File tree

components-core/src/main/java/org/dllearner/reasoning/ClosedWorldReasoner.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.dllearner.core.annotations.NoConfigOption;
2727
import org.dllearner.core.config.ConfigOption;
2828
import org.dllearner.kb.OWLAPIOntology;
29+
import org.dllearner.utilities.Helper;
2930
import org.dllearner.utilities.MapUtils;
3031
import org.dllearner.utilities.OWLAPIUtils;
3132
import org.joda.time.DateTime;
@@ -45,6 +46,7 @@
4546
import java.io.*;
4647
import java.util.*;
4748
import java.util.Map.Entry;
49+
import java.util.concurrent.atomic.AtomicInteger;
4850
import java.util.concurrent.atomic.AtomicReference;
4951
import java.util.function.Function;
5052
import java.util.stream.Collectors;
@@ -292,8 +294,15 @@ private void materialize() {
292294

293295
individuals = (TreeSet<OWLIndividual>) baseReasoner.getIndividuals();
294296

295-
logger.debug("materialising concepts");
297+
int totalEntities = baseReasoner.getClasses().size() +
298+
baseReasoner.getObjectProperties().size() +
299+
baseReasoner.getDatatypeProperties().size();
300+
301+
AtomicInteger i = new AtomicInteger();
302+
303+
logger.info("materialising concepts");
296304
baseReasoner.getClasses().stream().filter(cls -> !cls.getIRI().isReservedVocabulary()).forEach(cls -> {
305+
Helper.displayProgressPercentage(i.getAndIncrement(), totalEntities);
297306
TreeSet<OWLIndividual> pos = (TreeSet<OWLIndividual>) baseReasoner.getIndividuals(cls);
298307
classInstancesPos.put(cls, pos);
299308

@@ -337,13 +346,18 @@ private void materialize() {
337346
// }
338347

339348
// materialize the object property facts
340-
logger.debug("materialising object properties ...");
341-
baseReasoner.getObjectProperties().forEach(p -> opPos.put(p, baseReasoner.getPropertyMembers(p)));
342-
logger.debug("finished materialising object properties.");
349+
logger.info("materialising object properties ...");
350+
baseReasoner.getObjectProperties().forEach(p -> {
351+
Helper.displayProgressPercentage(i.getAndIncrement(), totalEntities);
352+
opPos.put(p, baseReasoner.getPropertyMembers(p));
353+
});
343354

344355
// materialize the data property facts
345-
logger.debug("materialising datatype properties");
346-
baseReasoner.getDatatypeProperties().forEach(p -> dpPos.put(p, baseReasoner.getDatatypeMembers(p)));
356+
logger.info("materialising datatype properties");
357+
baseReasoner.getDatatypeProperties().forEach(p -> {
358+
Helper.displayProgressPercentage(i.getAndIncrement(), totalEntities);
359+
dpPos.put(p, baseReasoner.getDatatypeMembers(p));
360+
});
347361

348362
for (OWLDataProperty dp : baseReasoner.getBooleanDatatypeProperties()) {
349363
bdPos.put(dp, (TreeSet<OWLIndividual>) baseReasoner.getTrueDatatypeMembers(dp));

components-core/src/main/java/org/dllearner/utilities/Helper.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,4 +236,34 @@ public static OWLClass checkConcepts(AbstractReasonerComponent rs, Set<OWLClass>
236236
return null;
237237
}
238238

239+
public static void displayProgressPercentage(int done, int total) {
240+
int size = 5;
241+
String iconLeftBoundary = "[";
242+
String iconDone = "=";
243+
String iconRemain = ".";
244+
String iconRightBoundary = "]";
245+
246+
if (done > total) {
247+
throw new IllegalArgumentException();
248+
}
249+
int donePercents = (100 * done) / total;
250+
int doneLength = size * donePercents / 100;
251+
252+
StringBuilder bar = new StringBuilder(iconLeftBoundary);
253+
for (int i = 0; i < size; i++) {
254+
if (i < doneLength) {
255+
bar.append(iconDone);
256+
} else {
257+
bar.append(iconRemain);
258+
}
259+
}
260+
bar.append(iconRightBoundary);
261+
262+
System.out.print("\r" + bar + " " + donePercents + "%");
263+
264+
if (done == total) {
265+
System.out.print("\n");
266+
}
267+
}
268+
239269
}

0 commit comments

Comments
 (0)