public static Resource getPropertyResource(Resource uri){ String whereClause = "?prop " + " " + SPARQLHelper.toSPARQL(RDFS.range) + SPARQLHelper.toSPARQL(uri) + " . "; Model m = InternalModelConf.getFlatModel(); String query = SPARQLHelper.SELECT_STATEMENT.replace("[variables]", "?prop").replace("[whereClauses]", whereClause); Resource r = null; Query qry = QueryFactory.create(query); QueryExecution qe = QueryExecutionFactory.create(qry, m); ResultSet rs = qe.execSelect(); while (rs.hasNext()){ r = rs.next().get("prop").asResource(); } return r; }
@Override protected boolean sparqlSelectQueryHasResults(String queryStr) throws RDFServiceException { Query query = createQuery(queryStr); QueryExecution qe = QueryExecutionFactory.sparqlService(readEndpointURI, query); try { ResultSet resultSet = qe.execSelect(); return resultSet.hasNext(); } finally { qe.close(); } }
/** Create a QueryExecution that will access a SPARQL service over HTTP * @param service URL of the remote service * @param query Query to execute * @param client HTTP client * @return QueryExecution */ static public QueryExecution sparqlService(String service, Query query, HttpClient client, HttpContext httpContext) { checkNotNull(service, "URL for service is null") ; checkArg(query) ; return createServiceRequest(service, query, client, httpContext) ; }
/** Create a QueryExecution that will access a SPARQL service over HTTP * @param service URL of the remote service * @param query Query string to execute * @param client HTTP client * @param httpContext HTTP Context * @return QueryExecution */ static public QueryExecution sparqlService(String service, String query, HttpClient client, HttpContext httpContext) { checkNotNull(service, "URL for service is null") ; checkArg(query) ; return sparqlService(service, QueryFactory.create(query), client) ; }
private int query(String str, Model model) { Query q = QueryFactory.create(str, Syntax.syntaxARQ) ; try(QueryExecution qexec = QueryExecutionFactory.create(q, model)) { ResultSet rs = qexec.execSelect() ; return ResultSetFormatter.consume(rs) ; } }
@Test public void query1() { Dataset ds = dataset() ; Model m = ds.getDefaultModel() ; load1(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE {?s ?p ?o}" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; Model m2 = qExec.execConstruct() ; assertTrue(m.isIsomorphicWith(m2)) ; }
private void test(ReadWrite mode) { ds.begin(mode) ; Query q = QueryFactory.create("SELECT * { { ?s ?p ?o } UNION { GRAPH ?g { ?s ?p ?o }}}") ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; long count = ResultSetFormatter.consume(qExec.execSelect()) ; ds.commit() ; ds.end() ; assertEquals(2, count) ; }
@Test public void query2() { Dataset ds = dataset() ; Model m = ds.getDefaultModel() ; load1(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { GRAPH <http://example/graph/> {?s ?p ?o}}" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; Model m2 = qExec.execConstruct() ; assertTrue(m2.isEmpty()) ; }
@Test public void timeout_04() { String qs = prefix + "SELECT * { ?s ?p ?o }" ; try(QueryExecution qExec = QueryExecutionFactory.create(qs, ds)) { qExec.setTimeout(50, TimeUnit.MILLISECONDS) ; ResultSet rs = qExec.execSelect() ; ResultSetFormatter.consume(rs) ; sleep(100) ; rs.hasNext() ; // Query ended - calling rs.hasNext() is safe. } }
private void testErr(String qsAgg, DatasetGraph ds, Syntax syntax) { Query query = buildGroupBy(qsAgg, syntax) ; try ( QueryExecution qExec = QueryExecutionFactory.create(query, DatasetFactory.wrap(ds)) ) { ResultSet rs = qExec.execSelect() ; assertTrue(rs.getResultVars().contains("X")) ; Binding b = rs.nextBinding() ; assertFalse(b.contains(Var.alloc("X"))) ; } }
@Test public void testConstructRejectsBadTriples1() { String queryString = "CONSTRUCT { ?s ?p ?o } WHERE { ?o ?p ?s }"; Query q = QueryFactory.create(queryString); QueryExecution qExec = QueryExecutionFactory.create(q, m); Model resultModel = qExec.execConstruct(); assertEquals(0, resultModel.size()); }
@Test public void testARQConstructQuad_ShortForm_3() { String queryString = "CONSTRUCT WHERE { ?s ?p ?o. GRAPH ?g1 {?s1 ?p1 ?o1} }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Dataset result = qExec.execConstructDataset(); assertTrue(IsoMatcher.isomorphic( d.asDatasetGraph(), result.asDatasetGraph()) ); }
@Test public void sparql5() { Dataset dataset = create() ; String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> 123)") ; Graph g2 = dataset.asDatasetGraph().getGraph(NodeFactory.createURI(graphName)) ; // Graphs only exists if they have a triple in them g2.add(triple) ; Query query = QueryFactory.create("ASK { GRAPH <"+graphName+"> {} }") ; boolean b = QueryExecutionFactory.create(query, dataset).execAsk() ; assertEquals(true, b) ; }
public static boolean containsGraph(Store store, Node graphNode) { String qs = "SELECT * { GRAPH "+FmtUtils.stringForNode(graphNode)+" { ?s ?p ?o }} LIMIT 1" ; Dataset ds = SDBFactory.connectDataset(store) ; try ( QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ) { ResultSet rs = qExec.execSelect() ; return rs.hasNext() ; } }
private ResultSetRewindable executeSparqlSelect(Model model, String sparql, boolean lock) { Query query = QueryFactory.create(sparql); try(QueryExecution queryExec = QueryExecutionFactory.create(query, model)) { model.enterCriticalSection(lock); try { return ResultSetFactory.makeRewindable(queryExec.execSelect()); } finally { model.leaveCriticalSection(); } } }
@Override public SPARQLExecutionResult call() { Map<String, Set<String>> resultSet = new HashMap<>(); markers.forEach(marker -> resultSet.put(marker, new HashSet<>())); Model unionModel = ModelFactory.createDefaultModel(); SPARQLServiceConverter converter = new SPARQLServiceConverter(schema); String sparqlQuery = converter.getSelectQuery(query, inputSubset, rootType); logger.info(sparqlQuery); CredentialsProvider credsProvider = new BasicCredentialsProvider(); Credentials credentials = new UsernamePasswordCredentials(this.sparqlEndpointService.getUser(), this.sparqlEndpointService.getPassword()); credsProvider.setCredentials(AuthScope.ANY, credentials); HttpClient httpclient = HttpClients.custom() .setDefaultCredentialsProvider(credsProvider) .build(); HttpOp.setDefaultHttpClient(httpclient); Query jenaQuery = QueryFactory.create(sparqlQuery); QueryEngineHTTP qEngine = QueryExecutionFactory.createServiceRequest(this.sparqlEndpointService.getUrl(), jenaQuery); qEngine.setClient(httpclient); ResultSet results = qEngine.execSelect(); results.forEachRemaining(solution -> { markers.stream().filter(solution::contains).forEach(marker -> resultSet.get(marker).add(solution.get(marker).asResource().getURI())); unionModel.add(this.sparqlEndpointService.getModelFromResults(query, solution, schema)); }); SPARQLExecutionResult sparqlExecutionResult = new SPARQLExecutionResult(resultSet, unionModel); logger.info(sparqlExecutionResult); return sparqlExecutionResult; }
@Test public void timeout_03() { String qs = prefix + "SELECT * { ?s ?p ?o }" ; @SuppressWarnings("resource") QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ; qExec.setTimeout(100, TimeUnit.MILLISECONDS) ; ResultSet rs = qExec.execSelect() ; ResultSetFormatter.consume(rs) ; qExec.close() ; qExec.abort() ; }
@Test public void timeout_02() { // Test unstable on loaded Jenkins CI on Windows. String qs = prefix + "SELECT * { ?s ?p ?o }" ; QueryExecution qExec = QueryExecutionFactory.create(qs, ds) ; qExec.setTimeout(50, TimeUnit.MILLISECONDS) ; ResultSet rs = qExec.execSelect() ; rs.next() ; sleep(timeout(75, 300)) ; exceptionExpected(rs) ; }
private Model executeSparqlConstruct(Model model, String sparql, boolean lock) { Query query = QueryFactory.create(sparql); try(QueryExecution queryExec = QueryExecutionFactory.create(query, model)) { model.enterCriticalSection(lock); try { return queryExec.execConstruct() ; } finally { model.leaveCriticalSection() ; } } }
private static void test(Query query, double expected, DatasetGraph dsg) { try ( QueryExecution qExec = QueryExecutionFactory.create(query, DatasetFactory.wrap(dsg)) ) { Literal literal = qExec.execSelect().next().getLiteral("X") ; double result = literal.getDouble() ; assertEquals(expected, result, 0.001); } }