public static void main(String ...args) { RDFConnectionRemoteBuilder builder = RDFConnectionFuseki.create() .destination("http://sparql.org/sparql"); Query query = QueryFactory.create("SELECT * { BIND('Hello'as ?text) }"); // In this variation, a connection is built each time. try ( RDFConnectionFuseki conn = (RDFConnectionFuseki)builder.build() ) { conn.queryResultSet(query, ResultSetFormatter::out); } } }
static RDFConnectionFuseki fusekiMaker(RDFConnectionRemoteBuilder builder) { return new RDFConnectionFuseki(builder); }
private static RDFConnectionRemoteBuilder setupCreator(RDFConnectionRemoteBuilder builder) { return builder.creator((b)->fusekiMaker(b)); }
RDFConnectionRemoteBuilder builder = RDFConnectionFuseki.create().destination(dsURL); conn.put(model); checkModel(conn, "b3456"); conn.querySelect("SELECT * {?s ?p ?o}", x-> { Node obj = x.get("o").asNode(); assertTrue(obj.isBlank()); try(QueryExecution qExec = conn.query("ASK {?s ?p <_:b3456>}")){ boolean bool = qExec.execAsk(); assertTrue(bool); try (QueryExecution qExec = conn.query("CONSTRUCT { ?s ?p ?o } WHERE { ?s ?p ?o . FILTER (sameTerm(?o, <_:b3456>)) }")){ Model model2 = qExec.execConstruct() ; checkModel(model2, "b3456"); try(QueryExecution qExec = conn.query("DESCRIBE ?s WHERE { ?s ?p <_:b3456>}")){ Model model2 = qExec.execConstruct() ; checkModel(model2, "b3456"); conn.update("CLEAR DEFAULT" ); conn.update("INSERT DATA { <x:s> <x:p> <_:b789> }" ); checkModel(conn, "b789"); conn.update("CLEAR DEFAULT" ); conn.update("INSERT DATA { <x:s> <x:p> <_:6789> }" ); checkModel(conn, "6789");
/** Create a connection to a remote Fuseki server by URL. * This is the URL for the dataset. * <p> * A {@link RDFConnectionFuseki} is an {@link RDFConnection} that: * <ul> * <li>provides round-trip of blank nodes between this application and the server * <li>uses the more efficient <a href="http://jena.apache.org/documentation/io/rdf-binary.html">RDF Thrift binary</a> format. * </ul> * * This factory call assumes the names of services as: * <ul> * <li>SPARQL Query endpoint : "sparql" * <li>SPARQL Update endpoint : "update" * <li>SPARQL Graph Store Protocol : "data" * </ul> * These are the default names in <a href="http://jena.apache.org/documentation/fuseki2">Fuseki</a> * Other names can be specified using {@link #connectFuseki(String, String, String, String)}. * * @param destination * @return RDFConnectionFuseki */ public static RDFConnectionFuseki connectFuseki(String destination) { return (RDFConnectionFuseki)RDFConnectionFuseki.create().destination(destination).build(); }
/** * Create a connection builder which is initialized from an existing {@code RDFConnectionFuseki}. * @param other The RDFConnectionFuseki to clone. * @return RDFConnectionRemoteBuilder */ public static RDFConnectionRemoteBuilder create(RDFConnectionFuseki other) { return setupCreator(RDFConnectionRemote.create(other)); }
/** * Create a connection builder which is initialized for the default Fuseki * configuration. The application must call * {@link RDFConnectionRemoteBuilder#destination(String)} to set the URL of the remote * dataset. * @return RDFConnectionRemoteBuilder */ public static RDFConnectionRemoteBuilder create() { return setupForFuseki(RDFConnectionRemote.create()); }
private void checkModel(RDFConnectionFuseki conn, String label) { Model model2 = conn.fetch(); checkModel(model2, label); }
/** Create a connection to a remote Fuseki server by URL. * This is the URL for the dataset. * <p> * A {@link RDFConnectionFuseki} is an {@link RDFConnection} that: * <ul> * <li>provides round-trip of blank nodes between this application and the server * <li>uses the more efficient <a href="http://jena.apache.org/documentation/io/rdf-binary.html">RDF Thrift binary</a> format. * </ul> * * This factory call assumes the names of services as: * <ul> * <li>SPARQL Query endpoint : "sparql" * <li>SPARQL Update endpoint : "update" * <li>SPARQL Graph Store Protocol : "data" * </ul> * These are the default names in <a href="http://jena.apache.org/documentation/fuseki2">Fuseki</a> * Other names can be specified using {@link #connectFuseki(String, String, String, String)}. * * @param destination * @return RDFConnectionFuseki */ public static RDFConnectionFuseki connectFuseki(String destination) { return (RDFConnectionFuseki)RDFConnectionFuseki.create().destination(destination).build(); }
/** * Create a connection builder which is initialized from an existing {@code RDFConnectionFuseki}. * @param other The RDFConnectionFuseki to clone. * @return RDFConnectionRemoteBuilder */ public static RDFConnectionRemoteBuilder create(RDFConnectionFuseki other) { return setupCreator(RDFConnectionRemote.create(other)); }
/** * Create a connection builder which is initialized for the default Fuseki * configuration. The application must call * {@link RDFConnectionRemoteBuilder#destination(String)} to set the URL of the remote * dataset. * @return RDFConnectionRemoteBuilder */ public static RDFConnectionRemoteBuilder create() { return setupForFuseki(RDFConnectionRemote.create()); }
public static void main(String ...args) { RDFConnectionRemoteBuilder builder = RDFConnectionFuseki.create() .destination("http://sparql.org/sparql"); Query query = QueryFactory.create("SELECT * { BIND('Hello'as ?text) }"); // In this variation, a connection is built each time. try ( RDFConnectionFuseki conn = (RDFConnectionFuseki)builder.build() ) { conn.queryResultSet(query, ResultSetFormatter::out); } } }
/** Create a connection to a remote Fuseki server by URL. * This is the URL for the dataset. * * Each service is then specified by a URL which is relative to the {@code datasetURL}. * * @param datasetURL * @param queryServiceEndpoint * @param updateServiceEndpoint * @param graphStoreProtocolEndpoint * @return RDFConnectionFuseki */ public static RDFConnectionFuseki connectFuseki(String datasetURL, String queryServiceEndpoint, String updateServiceEndpoint, String graphStoreProtocolEndpoint) { return (RDFConnectionFuseki)RDFConnectionFuseki.create() .destination(datasetURL) .queryEndpoint(queryServiceEndpoint) .updateEndpoint(updateServiceEndpoint) .gspEndpoint(graphStoreProtocolEndpoint) .build(); } }
private static RDFConnectionRemoteBuilder setupCreator(RDFConnectionRemoteBuilder builder) { return builder.creator((b)->fusekiMaker(b)); }
static RDFConnectionFuseki fusekiMaker(RDFConnectionRemoteBuilder builder) { return new RDFConnectionFuseki(builder); }
/** Create a connection to a remote Fuseki server by URL. * This is the URL for the dataset. * * Each service is then specified by a URL which is relative to the {@code datasetURL}. * * @param datasetURL * @param queryServiceEndpoint * @param updateServiceEndpoint * @param graphStoreProtocolEndpoint * @return RDFConnectionFuseki */ public static RDFConnectionFuseki connectFuseki(String datasetURL, String queryServiceEndpoint, String updateServiceEndpoint, String graphStoreProtocolEndpoint) { return (RDFConnectionFuseki)RDFConnectionFuseki.create() .destination(datasetURL) .queryEndpoint(queryServiceEndpoint) .updateEndpoint(updateServiceEndpoint) .gspEndpoint(graphStoreProtocolEndpoint) .build(); } }
/** Fuseki settings */ private static RDFConnectionRemoteBuilder setupForFuseki(RDFConnectionRemoteBuilder builder) { String ctRDFThrift = Lang.RDFTHRIFT.getContentType().getContentType(); String acceptHeaderSPARQL = String.join("," , ResultSetLang.SPARQLResultSetThrift.getHeaderString() , ResultSetLang.SPARQLResultSetJSON.getHeaderString()+";q=0.9" , Lang.RDFTHRIFT.getHeaderString()); return builder .quadsFormat(RDFFormat.RDF_THRIFT) .triplesFormat(RDFFormat.RDF_THRIFT) .acceptHeaderGraph(ctRDFThrift) .acceptHeaderDataset(ctRDFThrift) .acceptHeaderSelectQuery(ResultSetLang.SPARQLResultSetThrift.getHeaderString()) .acceptHeaderAskQuery(ResultSetLang.SPARQLResultSetJSON.getHeaderString()) .acceptHeaderQuery(acceptHeaderSPARQL) .parseCheckSPARQL(false) // Create object of this class. .creator((b)->fusekiMaker(b)); }
/** Fuseki settings */ private static RDFConnectionRemoteBuilder setupForFuseki(RDFConnectionRemoteBuilder builder) { String ctRDFThrift = Lang.RDFTHRIFT.getContentType().getContentType(); String acceptHeaderSPARQL = String.join("," , ResultSetLang.SPARQLResultSetThrift.getHeaderString() , ResultSetLang.SPARQLResultSetJSON.getHeaderString()+";q=0.9" , Lang.RDFTHRIFT.getHeaderString()); return builder .quadsFormat(RDFFormat.RDF_THRIFT) .triplesFormat(RDFFormat.RDF_THRIFT) .acceptHeaderGraph(ctRDFThrift) .acceptHeaderDataset(ctRDFThrift) .acceptHeaderSelectQuery(ResultSetLang.SPARQLResultSetThrift.getHeaderString()) .acceptHeaderAskQuery(ResultSetLang.SPARQLResultSetJSON.getHeaderString()) .acceptHeaderQuery(acceptHeaderSPARQL) .parseCheckSPARQL(false) // Create object of this class. .creator((b)->fusekiMaker(b)); }