3030import org .apache .commons .lang3 .NotImplementedException ;
3131import org .apache .jena .query .*;
3232import org .apache .jena .rdf .model .*;
33+ import org .apache .jena .riot .Lang ;
3334import org .apache .jena .riot .RDFDataMgr ;
34- import org .apache .jena .riot .RDFFormat ;
35+ import org .apache .jena .riot .system .StreamOps ;
36+ import org .apache .jena .riot .system .StreamRDF ;
37+ import org .apache .jena .riot .system .StreamRDFWriter ;
3538import org .apache .jena .sparql .engine .http .QueryExceptionHTTP ;
3639import org .apache .jena .vocabulary .OWL ;
3740import org .apache .jena .vocabulary .OWL2 ;
@@ -134,6 +137,7 @@ public enum PopularityType {
134137 private Model requestLogMeta ;
135138 private Resource currentStep ;
136139 private OutputStream requestLogStream ;
140+ private StreamRDF requestLogStreamRDF ;
137141
138142 private QueryExecutionFactory qef ;
139143
@@ -183,7 +187,6 @@ public SPARQLReasoner(QueryExecutionFactory qef) {
183187 public void destroy () {
184188 if (requestLogStream !=null ) {
185189 dumpRequestLog ();
186- RDFDataMgr .write (requestLogStream ,requestLogMeta ,RDFFormat .NTRIPLES_UTF8 );
187190 requestLogMeta .close ();
188191 try {
189192 requestLogStream .flush ();
@@ -205,6 +208,7 @@ public void destroy() {
205208 */
206209 @ Override
207210 public void init () throws ComponentInitException {
211+
208212 classPopularityMap = new HashMap <>();
209213 if (requestLogging ) {
210214 stepCount = 0L ;
@@ -261,29 +265,44 @@ public void init() throws ComponentInitException {
261265
262266 private void setCurrentStep (String stepType ) {
263267 dumpRequestLog ();
264- currentStep = requestLog .createResource ("step-" +stepCount , requestLog .createResource (REQUEST_LOG_NS + stepType ));
268+ currentStep = requestLog .createResource (getRequestLogBaseUri () + "step-" +stepCount , requestLog .createResource (REQUEST_LOG_NS + stepType ));
265269 currentStep .addLiteral (requestLog .createProperty (REQUEST_LOG_NS + "stepCount" ), stepCount );
266- currentStep .addProperty (RDF .type , requestLog .createResource (REQUEST_LOG_NS + "sprStep" ));
267- requestLogMeta .add (requestLogMeta .createResource (REQUEST_LOG_NS + stepType ), RDFS .subClassOf , requestLogMeta .createResource (REQUEST_LOG_NS + "sprStep" ));
270+ Resource metaType = requestLogMeta .createResource (REQUEST_LOG_NS + stepType );
271+ Resource metaBase = requestLogMeta .createResource (REQUEST_LOG_NS + "sprStep" );
272+ if (!metaType .hasProperty (RDFS .subClassOf , metaBase )) {
273+ currentStep .addProperty (RDF .type , requestLog .createResource (REQUEST_LOG_NS + "sprStep" ));
274+ requestLog .add (metaType , RDFS .subClassOf , metaBase );
275+ requestLogMeta .add (metaType , RDFS .subClassOf , metaBase );
276+ }
268277 stepCount ++;
269278 }
270279
271280 private void writeRequestLogPreamble () {
272- (new PrintStream (requestLogStream , true )).println ("@base <" + sprRunUID + "> ." );
273- Model preamble = ModelFactory .createDefaultModel ();
274- preamble .setNsPrefix ("" , sprRunUID );
275- preamble .setNsPrefix ("s" , REQUEST_LOG_NS );
276- preamble .setNsPrefix (Namespaces .XSD .getPrefixName (), Namespaces .XSD .getPrefixIRI ());
277- preamble .setNsPrefix (Namespaces .RDFS .getPrefixName (), Namespaces .RDFS .getPrefixIRI ());
278- RDFDataMgr .write (requestLogStream ,preamble ,RDFFormat .TURTLE );
279- preamble .close ();
281+ // (new PrintStream(requestLogStream, true)).println("@base <" + sprRunUID + "> .");
282+ requestLogStreamRDF = StreamRDFWriter .getWriterStream (requestLogStream , Lang .TURTLE );
283+ requestLogStreamRDF .base (getRequestLogBaseUri ());
284+ requestLogStreamRDF .prefix ("" , getRequestLogBaseUri ());
285+ requestLogStreamRDF .prefix ("s" , REQUEST_LOG_NS );
286+ requestLogStreamRDF .prefix (Namespaces .XSD .getPrefixName (), Namespaces .XSD .getPrefixIRI ());
287+ requestLogStreamRDF .prefix (Namespaces .RDFS .getPrefixName (), Namespaces .RDFS .getPrefixIRI ());
288+ requestLogStreamRDF .prefix (Namespaces .RDF .getPrefixName (), Namespaces .RDF .getPrefixIRI ());
289+
290+ // (new PrintStream(requestLogStream, true)).println("@base <" + sprRunUID + "> .");
291+ // Model preamble = ModelFactory.createDefaultModel();
292+ // preamble.setNsPrefix("", sprRunUID);
293+ // preamble.setNsPrefix("s", REQUEST_LOG_NS);
294+ // preamble.setNsPrefix(Namespaces.XSD.getPrefixName(), Namespaces.XSD.getPrefixIRI());
295+ // preamble.setNsPrefix(Namespaces.RDFS.getPrefixName(), Namespaces.RDFS.getPrefixIRI());
296+ // RDFDataMgr.write(requestLogStream,preamble,RDFFormat.TURTLE);
297+ // preamble.close();
280298 }
281299
282300 private void dumpRequestLog () {
283301 if (requestLog ==null ) {
284302 writeRequestLogPreamble ();
285303 } else {
286- RDFDataMgr .write (requestLogStream ,requestLog ,RDFFormat .NTRIPLES_UTF8 );
304+ StreamOps .graphToStream (requestLog .getGraph (),requestLogStreamRDF );
305+ //RDFDataMgr.write(requestLogStream,requestLog,RDFFormat.NTRIPLES_UTF8);
287306 requestLog .close ();
288307 }
289308 requestLog = ModelFactory .createDefaultModel ();
@@ -2763,13 +2782,18 @@ public String getRequestLogFile() {
27632782 }
27642783
27652784 @ Override
2766- public OutputStream getLogStream () {
2767- return requestLogStream ;
2785+ public StreamRDF getLogStream () {
2786+ return requestLogStreamRDF ;
27682787 }
27692788
27702789 @ Override
27712790 public String getStepUri () {
27722791 return currentStep .getURI ();
27732792 //return "step-"+stepCount;
27742793 }
2794+
2795+ @ Override
2796+ public String getRequestLogBaseUri () {
2797+ return sprRunUID ;
2798+ }
27752799}
0 commit comments