package org.aksw.jena_sparql_api.core; import org.aksw.jena_sparql_api.http.QueryExecutionFactoryHttp; import org.aksw.jena_sparql_api.stmt.SparqlParserConfig; import org.aksw.jena_sparql_api.stmt.SparqlStmtParserImpl; import org.aksw.jena_sparql_api.update.FluentSparqlService; import org.apache.http.client.HttpClient; import org.apache.jena.query.Syntax; import org.apache.jena.sparql.core.DatasetDescription; import org.apache.jena.sparql.core.DatasetGraph; import org.apache.jena.sparql.core.DatasetGraphFactory; public class SparqlServiceUtils { public static SparqlService createSparqlServiceMem(String serviceUri, DatasetDescription datasetDescription, HttpClient httpClient) { DatasetGraph dg = DatasetGraphFactory.create(); final SparqlService result = FluentSparqlService.from(dg) .config() .withParser(SparqlStmtParserImpl.create(SparqlParserConfig.create(Syntax.syntaxARQ))) .withDatasetDescription(datasetDescription) .end() .create(); // new Thread(() -> { // result.getUpdateExecutionFactory().createUpdateProcessor("PREFIX ex: <http://example.org/> INSERT DATA { ex:s ex:p ex:o }").execute(); // }).start(); // // try { // Thread.sleep(1000); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // // new Thread(() -> { // result.getQueryExecutionFactory().createQueryExecution("CONSTRUCT WHERE { ?s ?p ?o }").execConstruct().write(System.out, "TTL"); // }).start(); // // // try { // Thread.sleep(1000); // } catch (InterruptedException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } // // if(true) { // System.exit(0); // } // // result.getQueryExecutionFactory().createQueryExecution("CONSTRUCT WHERE { ?s ?p ?o }").execConstruct().write(System.out); return result; } public static SparqlService createSparqlService(String serviceUri, DatasetDescription datasetDescription, HttpClient httpClient) { SparqlService result; if(serviceUri != null && serviceUri.startsWith("mem://")) { result = createSparqlServiceMem(serviceUri, datasetDescription, httpClient); } else { result = createSparqlServiceHttp(serviceUri, datasetDescription, httpClient); } return result; } public static SparqlService createSparqlServiceHttp(String serviceUri, DatasetDescription datasetDescription, HttpClient httpClient) { // if(authenticator != null && !(authenticator instanceof HttpAuthenticator)) { // throw new RuntimeException("Authenticator is not an instance of " + HttpAuthenticator.class.getCanonicalName()); // } // HttpAuthenticator httpAuthenticator = (HttpAuthenticator)authenticator; QueryExecutionFactoryHttp qef = new QueryExecutionFactoryHttp(serviceUri, datasetDescription, httpClient); UpdateExecutionFactoryHttp uef = new UpdateExecutionFactoryHttp(serviceUri, datasetDescription, httpClient); SparqlService result = new SparqlServiceImpl(serviceUri, datasetDescription, qef, uef); return result; } }