private void serializePredicate(OntopSQLOWLAPIConfiguration materializationConfig, IRI predicateIRI,
PredicateType predicateType,
String outputFile, String format, OWLOntology ontology, RDF rdfFactory) throws Exception {
final long startTime = System.currentTimeMillis();
System.err.println("Starts writing triples into files.");
int tripleCount = 0;
int fileCount = 0;
String outputDir = outputFile;
String filePrefix = Paths.get(outputDir, predicateIRI.toString().replaceAll("[^a-zA-Z0-9]", "_")
+ predicateType.getCode() +"_" ).toString();
OntopOWLAPIMaterializer materializer = OntopOWLAPIMaterializer.defaultMaterializer();
MaterializationParams materializationParams = MaterializationParams.defaultBuilder()
.enableDBResultsStreaming(doStreamResults)
.build();
try (MaterializedGraphOWLResultSet graphResultSet = materializer.materialize(materializationConfig,
ImmutableSet.of(rdfFactory.createIRI(predicateIRI.toString())), materializationParams)) {
while (graphResultSet.hasNext()) {
tripleCount += serializeTripleBatch(ontology, graphResultSet, filePrefix, predicateIRI.toString(), fileCount, format);
fileCount++;
}
System.out.println("NR of TRIPLES: " + tripleCount);
System.out.println("VOCABULARY SIZE (NR of QUERIES): " + graphResultSet.getSelectedVocabulary().size());
}
final long endTime = System.currentTimeMillis();
final long time = endTime - startTime;
System.out.println("Elapsed time to materialize: " + time + " {ms}");
}