Refine search
private static int existsPath(Graph graph, Node subject, Path path, final Node object, ExecutionContext execCxt) { if ( ! subject.isConcrete() || !object.isConcrete() ) throw new ARQInternalErrorException("Non concrete node for existsPath evaluation") ; Iterator<Node> iter = PathEval.eval(graph, subject, path, execCxt.getContext()) ; Predicate<Node> filter = node -> Objects.equals(node, object); // See if we got to the node we're interested in finishing at. iter = Iter.filter(iter, filter) ; long x = Iter.count(iter) ; return (int)x ; } }
Graph g1 = dsg.getDefaultGraph(); List<Triple> x = Iter.toList(g1.find(null, null, null)) ; assertEquals(2, x.size()) ; x = Iter.toList(g1.find(s, null, null)) ; assertEquals(2, x.size()) ; x = Iter.toList(g1.find(null, p, null)) ; assertEquals(2, x.size()) ; x = Iter.toList(g1.find(null, null, o1)) ; assertEquals(1, x.size()) ; List<Triple> x = Iter.toList(g2.find(null, null, null)); assertEquals(1, x.size()); x = Iter.toList(g2.find(s, null, null)); assertEquals(1, x.size()); x = Iter.toList(g2.find(null, p, null)); assertEquals(1, x.size()); x = Iter.toList(g2.find(null, null, o)); assertEquals(1, x.size()); List<Quad> z = Iter.toList(dsg.find(null, null, null, null)) ; assertEquals(3, z.size()) ; z = Iter.toList(dsg.find(Quad.defaultGraphIRI, null, null, null)) ; assertEquals(2, z.size()) ; z = Iter.toList(dsg.find(g, null, null, null)) ; assertEquals(1, z.size()) ; z = Iter.toList(dsg.find(null, s, null, null)) ; assertEquals(3, z.size()) ; z = Iter.toList(dsg.find(null, null, p, null)) ; assertEquals(3, z.size()) ;
@Test public void unionGraphWorksProperly() { DatasetGraph dsg = emptyDataset(); // quads from named graphs should appear in union Quad q = Quad.create(createBlankNode(), createBlankNode(), createBlankNode(), createBlankNode()); dsg.add(q); // Expected in the union graph Quad q2 = Quad.create(unionGraph, q.asTriple()); assertTrue(iter(dsg.find(unionGraph, ANY, ANY, ANY)).some(q2::equals)); // no triples from default graph should appear in union Triple t = Triple.create(createBlankNode(), createBlankNode(), createBlankNode()); dsg.getDefaultGraph().add(t); assertFalse(iter(dsg.find(unionGraph, ANY, ANY, ANY)).some(Quad::isDefaultGraph)); }
@Test public void testARQConstructQuad_bnodes() { String queryString = "PREFIX : <http://example/> CONSTRUCT { :s :p :o GRAPH _:a { :s :p :o1 } } WHERE { }"; Query q = QueryFactory.create(queryString, Syntax.syntaxARQ); QueryExecution qExec = QueryExecutionFactory.create(q, d); Dataset ds = qExec.execConstructDataset() ; assertEquals(1, Iter.count(ds.asDatasetGraph().listGraphNodes())) ; Node n = ds.asDatasetGraph().listGraphNodes().next(); assertTrue(n.isBlank()); Graph g = ds.asDatasetGraph().getGraph(n) ; assertNotNull(g) ; assertFalse(g.isEmpty()) ; }
@Test public void find_union_03() { DatasetGraphBaseFind dsgx = (DatasetGraphBaseFind)dsg ; assertNotNull(dsgx.getUnionGraph()); Set<Triple> x1 = toSet(dsgx.getUnionGraph().find(null, null, null)) ; Set<Triple> x2 = Iter.iter(dsg.find(Quad.unionGraph, null, null, null)).map(Quad::asTriple).toSet(); assertEquals(x1, x2); }
@Test public void dataset5() { String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> <z>)") ; Dataset ds = graphLocation.getDataset() ; Graph g2 = ds.asDatasetGraph().getGraph(org.apache.jena.graph.NodeFactory.createURI(graphName)) ; // Graphs only exists if they have a triple in them g2.add(triple) ; assertTrue(ds.containsNamedModel(graphName)) ; List<String> x = Iter.toList(ds.listNames()) ; List<String> y = Arrays.asList(graphName) ; assertEquals(x,y) ; assertEquals(1, ds.asDatasetGraph().size()) ; } }
@Test public void filtered3() { Predicate<Quad> filter = x->x.getSubject().equals(s2); Txn.executeRead(basedsg, ()->{ DatasetGraph dsg = new DatasetGraphFilteredView(basedsg, filter, Collections.singleton(g1)); long x0 = Iter.count(dsg.find(null, null, null, null)); assertEquals(2,x0); long x1 = Iter.count(dsg.find(g2, null, null, null)); assertEquals(2,x1); long x2 = Iter.count(dsg.find(null, s2, null, null)); assertEquals(2,x2); long x3 = Iter.count(dsg.find(g1, s2, null, null)); assertEquals(0,x3); assertEquals(1, dsg.size()); }); }
@Test public void find_union_01() { List<Quad> x = toList(dsg.find(Quad.unionGraph, null, null, null)) ; assertEquals(3, x.size()) ; x.stream().allMatch(q->q.getGraph().equals(Quad.unionGraph)) ; List<Triple> z = x.stream().map(Quad::asTriple).collect(Collectors.toList()) ; assertTrue(z.contains(q4.asTriple())) ; assertTrue(z.contains(q5.asTriple())) ; Quad qx = Quad.create(Quad.unionGraph, q4.asTriple()) ; assertTrue(x.contains(qx)) ; Quad qz = Quad.create(Quad.unionGraph, q2.asTriple()) ; assertFalse(x.contains(qz)) ; }
@Test public void filtered5() { Predicate<Quad> filter = x-> x.getSubject().equals(s2) || x.getSubject().equals(s1); Txn.executeRead(basedsg, ()->{ DatasetGraph dsg = new DatasetGraphFilteredView(basedsg, filter, Arrays.asList(g1, g2)); long x0 = Iter.count(dsg.find(null, null, null, null)); assertEquals(3,x0); long x1 = Iter.count(dsg.find(g2, null, null, null)); assertEquals(2,x1); }); }