@Override public Context getContext() { return decoratee.getContext(); }
QueryExecution qe = QueryExecutionFactory.create(query, model) ; LARQ.setDefaultIndex(qe.getContext(), index) ;
@Override public void filterTDB(DatasetGraph dsg, QueryExecution qExec) { Predicate<?> pred = tuple->false; qExec.getContext().set(GraphFilter.getContextKey(dsg), pred); } }
/** * Apply a filter suitable for the TDB-backed {@link DatasetGraph}, to the {@link Context} of the * {@link QueryExecution}. This does not modify the {@link DatasetGraph}. */ @Override public void filterTDB(DatasetGraph dsg, QueryExecution qExec) { GraphFilter<?> predicate = predicate(dsg); qExec.getContext().set(predicate.getContextKey(), predicate); }
public static List<URI> getProposesEvents(final Dataset messageDataset) { List<URI> proposesToCancelEvents = new ArrayList<>(); String queryString = "prefix msg: <http://purl.org/webofneeds/message#>\n" + "prefix agr: <http://purl.org/webofneeds/agreement#>\n" + "SELECT ?eventUri where {\n" + " graph ?g {"+ " ?s agr:proposes ?eventUri .\n" + "}}"; Query query = QueryFactory.create(queryString); try (QueryExecution qexec = QueryExecutionFactory.create(query, messageDataset)) { qexec.getContext().set(TDB.symUnionDefaultGraph, true); ResultSet rs = qexec.execSelect(); if (rs.hasNext()) { QuerySolution qs = rs.nextSolution(); String eventUri = rdfNodeToString(qs.get("eventUri")); if(eventUri != null) { proposesToCancelEvents.add(URI.create(eventUri)); } } } return proposesToCancelEvents; }
public static List<URI> getAcceptedEvents(final Dataset messageDataset) { List<URI> acceptedEvents = new ArrayList<>(); String queryString = "prefix msg: <http://purl.org/webofneeds/message#>\n" + "prefix agr: <http://purl.org/webofneeds/agreement#>\n" + "SELECT ?eventUri where {\n" + " graph ?g {"+ " ?s agr:accepts ?eventUri .\n" + "}}"; Query query = QueryFactory.create(queryString); try (QueryExecution qexec = QueryExecutionFactory.create(query, messageDataset)) { qexec.getContext().set(TDB.symUnionDefaultGraph, true); ResultSet rs = qexec.execSelect(); if (rs.hasNext()) { QuerySolution qs = rs.nextSolution(); String eventUri = rdfNodeToString(qs.get("eventUri")); if(eventUri != null) { acceptedEvents.add(URI.create(eventUri)); } } } return acceptedEvents; }
public static List<URI> getProposesToCancelEvents(final Dataset messageDataset) { List<URI> proposesToCancelEvents = new ArrayList<>(); String queryString = "prefix msg: <http://purl.org/webofneeds/message#>\n" + "prefix agr: <http://purl.org/webofneeds/agreement#>\n" + "SELECT ?eventUri where {\n" + " graph ?g {"+ " ?s agr:proposesToCancel ?eventUri .\n" + "}}"; Query query = QueryFactory.create(queryString); try (QueryExecution qexec = QueryExecutionFactory.create(query, messageDataset)) { qexec.getContext().set(TDB.symUnionDefaultGraph, true); ResultSet rs = qexec.execSelect(); if (rs.hasNext()) { QuerySolution qs = rs.nextSolution(); String eventUri = rdfNodeToString(qs.get("eventUri")); if(eventUri != null) { proposesToCancelEvents.add(URI.create(eventUri)); } } } return proposesToCancelEvents; }
private void serialize(OutputStream outputStream, String query) throws RDFServiceException { DatasetWrapper dw = getDatasetWrapper(); try { Dataset d = dw.getDataset(); Query q = createQuery(query); QueryExecution qe = createQueryExecution(query, q, d); // These properties only help for SDB, but shouldn't hurt for TDB. qe.getContext().set(SDB.jdbcFetchSize, Integer.MIN_VALUE); qe.getContext().set(SDB.jdbcStream, true); qe.getContext().set(SDB.streamGraphAPI, true); try { ResultSet resultSet = qe.execSelect(); if (resultSet.getResultVars().contains("g")) { Iterator<Quad> quads = new ResultSetQuadsIterator(resultSet); RDFDataMgr.writeQuads(outputStream, quads); } else { Iterator<Triple> triples = new ResultSetTriplesIterator(resultSet); RDFDataMgr.writeTriples(outputStream, triples); } } finally { qe.close(); } } finally { dw.close(); } }
private QueryExecution createQueryExecution(Query query, Model model) { QueryExecution result = QueryExecutionFactory.create(query, model); PrefixMappingImpl prefixes = new PrefixMappingImpl(); prefixes.setNsPrefixes(tq.getPrologue().getPrefixMapping()); prefixes.setNsPrefix("tarql", tarql.NS); result.getContext().set(ExpandPrefixFunction.PREFIX_MAPPING, prefixes); return result; }
public static boolean isProcessingMessage(final WonMessage wonMessage) { String queryString = "prefix msg: <http://purl.org/webofneeds/message#>\n" + "prefix won: <http://purl.org/webofneeds/model#>\n" + "SELECT ?text where {\n" + " graph ?g {"+ " ?s won:isProcessing ?text .\n" + "}}"; Query query = QueryFactory.create(queryString); try (QueryExecution qexec = QueryExecutionFactory.create(query, wonMessage.getCompleteDataset())) { qexec.getContext().set(TDB.symUnionDefaultGraph, true); ResultSet rs = qexec.execSelect(); if (rs.hasNext()) { QuerySolution qs = rs.nextSolution(); String text = rdfNodeToString(qs.get("text")); if(text != null) { return true; } } } return false; }
private void test(String qs, int withFilter, int withoutFilter) { Predicate<Tuple<NodeId>> filter = createFilter(ds) ; // private static void example(Dataset ds, Filter<Tuple<NodeId>> filter) // { // String[] x = { // "SELECT * { GRAPH ?g { ?s ?p ?o } }", // "SELECT * { ?s ?p ?o }", // // THis filter does not hide the graph itself, just the quads associated with the graph. // "SELECT * { GRAPH ?g {} }" // } ; Query query = QueryFactory.create(qs) ; try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { // Install filter for this query only. qExec.getContext().set(SystemTDB.symTupleFilter, filter) ; qExec.getContext().setTrue(TDB2.symUnionDefaultGraph) ; long x1 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withFilter, x1) ; } // No filter. try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { qExec.getContext().setTrue(TDB2.symUnionDefaultGraph) ; long x2 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withoutFilter, x2) ; } }
private void test(String qs, int withFilter, int withoutFilter) { Predicate<Tuple<NodeId>> filter = createFilter(ds) ; // private static void example(Dataset ds, Filter<Tuple<NodeId>> filter) // { // String[] x = { // "SELECT * { GRAPH ?g { ?s ?p ?o } }", // "SELECT * { ?s ?p ?o }", // // THis filter does not hide the graph itself, just the quads associated with the graph. // "SELECT * { GRAPH ?g {} }" // } ; Query query = QueryFactory.create(qs) ; try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { // Install filter for this query only. qExec.getContext().set(SystemTDB.symTupleFilter, filter) ; qExec.getContext().setTrue(TDB.symUnionDefaultGraph) ; long x1 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withFilter, x1) ; } // No filter. try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { qExec.getContext().setTrue(TDB.symUnionDefaultGraph) ; long x2 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withoutFilter, x2) ; } }
private void test(String qs, int withFilter, int withoutFilter) { Predicate<Tuple<NodeId>> filter = createFilter(ds) ; // private static void example(Dataset ds, Filter<Tuple<NodeId>> filter) // { // String[] x = { // "SELECT * { GRAPH ?g { ?s ?p ?o } }", // "SELECT * { ?s ?p ?o }", // // THis filter does not hide the graph itself, just the quads associated with the graph. // "SELECT * { GRAPH ?g {} }" // } ; Query query = QueryFactory.create(qs) ; try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { // Install filter for this query only. qExec.getContext().set(SystemTDB.symTupleFilter, filter) ; qExec.getContext().setTrue(TDB.symUnionDefaultGraph) ; long x1 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withFilter, x1) ; } // No filter. try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { qExec.getContext().setTrue(TDB.symUnionDefaultGraph) ; long x2 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withoutFilter, x2) ; } }
private void test(String qs, int withFilter, int withoutFilter) { Predicate<Tuple<NodeId>> filter = createFilter(ds) ; // private static void example(Dataset ds, Filter<Tuple<NodeId>> filter) // { // String[] x = { // "SELECT * { GRAPH ?g { ?s ?p ?o } }", // "SELECT * { ?s ?p ?o }", // // THis filter does not hide the graph itself, just the quads associated with the graph. // "SELECT * { GRAPH ?g {} }" // } ; Query query = QueryFactory.create(qs) ; try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { // Install filter for this query only. qExec.getContext().set(SystemTDB.symTupleFilter, filter) ; qExec.getContext().setTrue(TDB2.symUnionDefaultGraph) ; long x1 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withFilter, x1) ; } // No filter. try(QueryExecution qExec = QueryExecutionFactory.create(query, ds)) { qExec.getContext().setTrue(TDB2.symUnionDefaultGraph) ; long x2 = ResultSetFormatter.consume(qExec.execSelect()) ; assertEquals(withoutFilter, x2) ; } }
private void test2(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) ; qExec.getContext().setTrue(TDB.symUnionDefaultGraph) ; long count = ResultSetFormatter.consume(qExec.execSelect()) ; ds.commit() ; ds.end() ; assertEquals(2, count) ; }
private void test2(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) ; qExec.getContext().setTrue(TDB.symUnionDefaultGraph) ; long count = ResultSetFormatter.consume(qExec.execSelect()) ; ds.commit() ; ds.end() ; assertEquals(2, count) ; }
@Test public void special3() { Dataset ds = create() ; load1(ds.getDefaultModel()) ; load2(ds.getNamedModel("http://example/graph1")) ; load3(ds.getNamedModel("http://example/graph2")) ; Model m = ModelFactory.createDefaultModel() ; load2(m) ; load3(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { ?s ?p ?o }" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; qExec.getContext().set(TDB.symUnionDefaultGraph, true) ; Model m2 = qExec.execConstruct() ; if ( ! m.isIsomorphicWith(m2) ) { System.out.println("---- ----") ; SSE.write(ds.asDatasetGraph()) ; System.out.println("-- Expected") ; m.write(System.out, "TTL") ; System.out.println("-- Actual") ; m2.write(System.out, "TTL") ; System.out.println("---- ----") ; } assertTrue(m.isIsomorphicWith(m2)) ; }
@Test public void special3() { Dataset ds = create() ; load1(ds.getDefaultModel()) ; load2(ds.getNamedModel("http://example/graph1")) ; load3(ds.getNamedModel("http://example/graph2")) ; Model m = ModelFactory.createDefaultModel() ; load2(m) ; load3(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { ?s ?p ?o }" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; qExec.getContext().set(TDB.symUnionDefaultGraph, true) ; Model m2 = qExec.execConstruct() ; if ( ! m.isIsomorphicWith(m2) ) { System.out.println("---- ----") ; SSE.write(ds.asDatasetGraph()) ; System.out.println("-- Expected") ; m.write(System.out, "TTL") ; System.out.println("-- Actual") ; m2.write(System.out, "TTL") ; System.out.println("---- ----") ; } assertTrue(m.isIsomorphicWith(m2)) ; }
@Test public void special3() { JenaSystem.init(); Dataset ds = dataset() ; load1(ds.getDefaultModel()) ; load2(ds.getNamedModel("http://example/graph1")) ; load3(ds.getNamedModel("http://example/graph2")) ; Model m = ModelFactory.createDefaultModel() ; load2(m) ; load3(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { ?s ?p ?o }" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; qExec.getContext().set(TDB2.symUnionDefaultGraph, true) ; Model m2 = qExec.execConstruct() ; if ( ! m.isIsomorphicWith(m2) ) { System.out.println("---- ----") ; SSE.write(ds.asDatasetGraph()) ; System.out.println("-- Expected") ; m.write(System.out, "TTL") ; System.out.println("-- Actual") ; m2.write(System.out, "TTL") ; System.out.println("---- ----") ; } assertTrue(m.isIsomorphicWith(m2)) ; }
@Test public void special3() { JenaSystem.init(); Dataset ds = dataset() ; load1(ds.getDefaultModel()) ; load2(ds.getNamedModel("http://example/graph1")) ; load3(ds.getNamedModel("http://example/graph2")) ; Model m = ModelFactory.createDefaultModel() ; load2(m) ; load3(m) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { ?s ?p ?o }" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds) ; qExec.getContext().set(TDB2.symUnionDefaultGraph, true) ; Model m2 = qExec.execConstruct() ; if ( ! m.isIsomorphicWith(m2) ) { System.out.println("---- ----") ; SSE.write(ds.asDatasetGraph()) ; System.out.println("-- Expected") ; m.write(System.out, "TTL") ; System.out.println("-- Actual") ; m2.write(System.out, "TTL") ; System.out.println("---- ----") ; } assertTrue(m.isIsomorphicWith(m2)) ; }