/** Parse a string, and obtain a graph */ public static Graph parseGraph(String string) { return parseGraph(string, null) ; }
private void test (String... strings) { String str = StrUtils.strjoinNL(strings) ; Graph g = SSE.parseGraph(str) ; test(g); }
private void testGraph$(String s1, String s2, boolean iso) { s1 = "(graph "+s1+")" ; s2 = "(graph "+s2+")" ; Graph g1 = SSE.parseGraph(s1) ; Graph g2 = SSE.parseGraph(s2) ; boolean b = IsoMatcher.isomorphic(g1, g2) ; if ( b != iso ) { System.out.println("====") ; SSE.write(g1) ; System.out.println("----") ; SSE.write(g2) ; System.out.println("Expected: "+iso+" ; got: "+b) ; } assertEquals(iso, b) ; // Check with the other code. assertEquals(b, g1.isIsomorphicWith(g2)) ; }
@Test public void graph_03() { Node g = NodeFactory.createURI("g") ; DatasetGraph dsg = emptyDataset() ; Graph data = SSE.parseGraph("(graph (<s> <p> <o>))") ; dsg.addGraph(g, data) ; Quad quad = SSE.parseQuad("(quad <g> <s> <p> <o>)") ; assertTrue(dsg.contains(quad)) ; }
@Test public void customAgg_22() { // GROUP BY, no match +. no rows. Graph g = SSE.parseGraph("(graph (:s :p :o) (:s :p 1))") ; Model m = ModelFactory.createModelForGraph(g) ; String qs = "SELECT (<"+aggIRI+">(?o) AS ?x) {?s ?p ?o FILTER (false) } GROUP BY ?s" ; Query q = QueryFactory.create(qs, Syntax.syntaxARQ) ; try (QueryExecution qExec = QueryExecutionFactory.create(q, m) ) { ResultSet rs = qExec.execSelect() ; assertFalse(rs.hasNext()); } }
@Test public void collectingOneDatasetGivesThatDataset() { Graph graph = parseGraph("(graph (triple <s1> <p1> <o1> ))"); Model model = createModelForGraph(graph); Dataset dataset = DatasetFactory.create(model); Node graphName = NodeFactory.createBlankNode(); dataset.addNamedModel(graphName.toString(), model); Dataset collection = Stream.<Dataset>builder().add(dataset).build().collect(testInstance()); assertDatasetsAreIsomorphicPerGraph(dataset, collection); }
@Test public void copyAdd_01() { Graph graph = SSE.parseGraph("(graph (:s :p :o))") ; Node g = SSE.parseNode(":g") ; DatasetGraph dsg = emptyDataset() ; dsg.addGraph(g, graph); graph.clear(); assertTrue(graph.isEmpty()) ; assertFalse(dsg.getGraph(g).isEmpty()) ; } }
@Test public void linkAdd_01() { Graph graph = SSE.parseGraph("(graph (:s :p :o))") ; Node g = SSE.parseNode(":g") ; DatasetGraph dsg = emptyDataset() ; dsg.addGraph(g, graph); graph.clear(); assertTrue(graph.isEmpty()) ; assertTrue(dsg.getGraph(g).isEmpty()) ; }
@Test public void nt_model_1() { Model m1 = parseToModel("<x> <p> \"abc-\\u00E9\". "); assertEquals(1, m1.size()); Model m2 = parseToModel("<x> <p> \"abc-\\u00E9\". "); assertTrue(m1.isIsomorphicWith(m2)); Graph g1 = SSE.parseGraph("(graph (triple <x> <p> \"abc-é\"))"); assertTrue(g1.isIsomorphicWith(m1.getGraph())); }
@Test public void testDifference() { final Graph g1 = parseGraph("(graph (triple <s1> <p1> <o1> ))"); final DatasetGraph dsg1 = DatasetGraphFactory.create(g1); final Node graphName1 = NodeFactory.createBlankNode(); dsg1.addGraph(graphName1, g1); final Graph g2 = parseGraph("(graph (triple <s2> <p2> <o2> ))"); final DatasetGraph dsg2 = DatasetGraphFactory.create(g2); final Node graphName2 = NodeFactory.createBlankNode(); dsg2.addGraph(graphName2, g2); DatasetGraph dsg = testInstance(dsg1, dsg2, Context.emptyContext); assertEquals(1, dsg.size()); assertTrue(g1.isIsomorphicWith(dsg.getGraph(graphName1))); assertTrue(g1.isIsomorphicWith(dsg.getDefaultGraph())); assertTrue(dsg.getGraph(graphName2).isEmpty()); }
@Test public void customAgg_20() { Graph g = SSE.parseGraph("(graph (:s :p :o) (:s :p 1))") ; Model m = ModelFactory.createModelForGraph(g) ; String qs = "SELECT (<"+aggIRI+">(?o) AS ?x) {?s ?p ?o } GROUP BY ?s" ; Query q = QueryFactory.create(qs, Syntax.syntaxARQ) ; try (QueryExecution qExec = QueryExecutionFactory.create(q, m) ) { ResultSet rs = qExec.execSelect() ; QuerySolution soln = rs.nextSolution() ; assertFalse(rs.hasNext()); int v = soln.getLiteral("x").getInt() ; assertEquals(1, v) ; } }
@Test public void testIntersection() { final Model m1 = createModelForGraph(parseGraph("(graph (triple <s1> <p1> <o1> ))")); final Dataset ds1 = DatasetFactory.create(m1); final String graphName1 = createBlankNode().toString(); ds1.addNamedModel(graphName1, m1); final Model m2 = createModelForGraph(parseGraph("(graph (triple <s2> <p2> <o2> ))")); final Dataset ds2 = DatasetFactory.create(m2); final String graphName2 = createBlankNode().toString(); ds2.addNamedModel(graphName2, m2); final Model m3 = createModelForGraph(parseGraph("(graph (triple <s3> <p3> <o3> ))")); final String graphName3 = createBlankNode().toString(); ds1.addNamedModel(graphName3, m3); ds2.addNamedModel(graphName3, m3); final Stream<Dataset> stream = Stream.<Dataset>builder().add(ds1).add(ds2).build(); Dataset ds = stream.collect(testInstance()); assertTrue(ds.getDefaultModel().isEmpty()); assertTrue(ds.getNamedModel(graphName1).isEmpty()); assertTrue(ds.getNamedModel(graphName2).isEmpty()); assertTrue(m3.isIsomorphicWith(ds.getNamedModel(graphName3))); }
@Test public void customAgg_21() { // No GROUP BY, no match => default value Graph g = SSE.parseGraph("(graph (:s :p :o) (:s :p 1))") ; Model m = ModelFactory.createModelForGraph(g) ; String qs = "SELECT (<"+aggIRI+">(?o) AS ?x) {?s ?p ?o FILTER (false) }" ; Query q = QueryFactory.create(qs, Syntax.syntaxARQ) ; try (QueryExecution qExec = QueryExecutionFactory.create(q, m) ) { ResultSet rs = qExec.execSelect() ; QuerySolution soln = rs.nextSolution() ; assertFalse(rs.hasNext()); int v = soln.getLiteral("x").getInt() ; assertEquals(-1, v) ; } }
@Test public void testUnion() { final Graph g1 = parseGraph("(graph (triple <s1> <p1> <o1> ))"); final DatasetGraph dsg1 = DatasetGraphFactory.create(g1); final Node graphName1 = NodeFactory.createBlankNode(); dsg1.addGraph(graphName1, g1); final Graph g2 = parseGraph("(graph (triple <s2> <p2> <o2> ))"); final DatasetGraph dsg2 = DatasetGraphFactory.create(g2); final Node graphName2 = NodeFactory.createBlankNode(); dsg2.addGraph(graphName2, g2); DatasetGraph dsg = testInstance(dsg1, dsg2, Context.emptyContext); assertEquals(2, dsg.size()); assertTrue(g1.isIsomorphicWith(dsg.getGraph(graphName1))); assertTrue(g2.isIsomorphicWith(dsg.getGraph(graphName2))); g1.find().mapWith(dsg.getDefaultGraph()::contains).forEachRemaining(Assert::assertTrue); g2.find().mapWith(dsg.getDefaultGraph()::contains).forEachRemaining(Assert::assertTrue); } }
@Test public void testIntersection() { final Graph g1 = parseGraph("(graph (triple <s1> <p1> <o1> ))"); final DatasetGraph dsg1 = DatasetGraphFactory.create(g1); final Node graphName1 = NodeFactory.createBlankNode(); dsg1.addGraph(graphName1, g1); final Graph g2 = parseGraph("(graph (triple <s2> <p2> <o2> ))"); final DatasetGraph dsg2 = DatasetGraphFactory.create(g2); final Node graphName2 = NodeFactory.createBlankNode(); dsg2.addGraph(graphName2, g2); final Node graphName3 = NodeFactory.createBlankNode(); dsg1.addGraph(graphName3, g1); dsg2.addGraph(graphName3, g1); DatasetGraph dsg = testInstance(dsg1, dsg2, Context.emptyContext); assertEquals(1, dsg.size()); assertTrue(dsg.getDefaultGraph().isEmpty()); assertTrue(dsg.getGraph(graphName1).isEmpty()); assertTrue(dsg.getGraph(graphName2).isEmpty()); assertTrue(g1.isIsomorphicWith(dsg.getGraph(graphName3))); } }
@Test public void testUnion() { final Graph g1 = parseGraph("(graph (triple <s1> <p1> <o1> ))"); final Model m1 = createModelForGraph(g1); final Dataset dsg1 = DatasetFactory.create(m1); final String graphName1 = NodeFactory.createBlankNode().toString(); dsg1.addNamedModel(graphName1, m1); final Graph g2 = parseGraph("(graph (triple <s2> <p2> <o2> ))"); final Dataset dsg2 = DatasetFactory.create(createModelForGraph(g2)); final Model m2 = createModelForGraph(g2); final String graphName2 = NodeFactory.createBlankNode().toString(); dsg2.addNamedModel(graphName2, m2); final Stream<Dataset> stream = Stream.<Dataset>builder().add(dsg1).add(dsg2).build(); Dataset dataset = stream.collect(testInstance()); assertEquals(2, Iter.count(dataset.listNames())); assertTrue(m1.isIsomorphicWith(dataset.getNamedModel(graphName1))); assertTrue(m2.isIsomorphicWith(dataset.getNamedModel(graphName2))); // all statements in any input should be present in the union m1.listStatements().mapWith(dataset.getDefaultModel()::contains).forEachRemaining(Assert::assertTrue); m2.listStatements().mapWith(dataset.getDefaultModel()::contains).forEachRemaining(Assert::assertTrue); // all statements in the union should be present in an input List<Statement> leftovers = dataset.getDefaultModel().listStatements() .filterDrop(m1::contains) .filterDrop(m2::contains).toList(); assertTrue(leftovers.isEmpty()); } }
Graph g = SSE.parseGraph(data) ; HttpEntity e = graphToHttpEntity(g) ; HttpOp.execHttpPut("http://localhost:"+port+"/data", e) ;
Graph g = SSE.parseGraph(data) ; HttpEntity e = graphToHttpEntity(g) ; HttpOp.execHttpPut("http://localhost:"+port+"/data", e) ;
Graph g = SSE.parseGraph(data) ; HttpEntity e = graphToHttpEntity(g) ; HttpOp.execHttpPut("http://localhost:"+port+"/data", e) ;