private static Model getFlatModel() { Model m = ModelFactory.createDefaultModel(); Iterator<String> iter = metadata.listNames(); while (iter.hasNext()){ m.add(metadata.getNamedModel(iter.next())); } m.add(metadata.getDefaultModel()); return m; }
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) ; }
@Override public BiConsumer<Dataset, Dataset> accumulator() { return (d1, d2) -> { d1.getDefaultModel().add(d2.getDefaultModel()); d2.listNames().forEachRemaining(name -> { Model union = d1.getNamedModel(name).union(d2.getNamedModel(name)); d1.replaceNamedModel(name, union); }); }; } }
public static Stream<Model> toModelStream(final Dataset dataset) { List<Model> ret = new LinkedList<Model>(); Model model = dataset.getDefaultModel(); if (model != null) { ret.add(model); } for (Iterator<String> modelNames = dataset.listNames(); modelNames.hasNext();) { ret.add(dataset.getNamedModel(modelNames.next())); } return ret.stream(); }
@Test public void generalDataset1() { Dataset ds = dataset() ; load1(ds.getDefaultModel()) ; load2(ds.getNamedModel("http://example/graph1")) ; load3(ds.getNamedModel("http://example/graph2")) ; Model m = ds.getNamedModel("http://example/graph2") ; // Use graph2 as default model. Dataset ds2 = DatasetFactory.create() ; ds2.setDefaultModel(ds.getNamedModel("http://example/graph2")) ; String qs = "CONSTRUCT {?s ?p ?o } WHERE { ?s ?p ?o}" ; Query q = QueryFactory.create(qs) ; QueryExecution qExec = QueryExecutionFactory.create(q, ds2) ; Model m2 = qExec.execConstruct() ; assertTrue(m.isIsomorphicWith(m2)) ; }
@Test public void sparql4() { // OpDatasetNames 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("SELECT ?g { GRAPH ?g {} }") ; QueryExecution qExec = QueryExecutionFactory.create(query, dataset) ; ResultSet rs = qExec.execSelect() ; int n = ResultSetFormatter.consume(rs) ; assertEquals(1, n) ; }
@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) ; }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph6() { Dataset d = TDBFactory.createDataset() ; Model m = d.getNamedModel("http://example") ; GraphUtil.addInto(m.getGraph(), buildGraph()) ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().delete(t) ; iter1.next() ; }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph2() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().add(t) ; // Bad iter1.hasNext(); }
@Test(expected=ConcurrentModificationException.class) public void mrswGraph3() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; assertNotNull(iter1.next()) ; Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().delete(t) ; // Bad iter1.hasNext(); }
@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(expected=ConcurrentModificationException.class) public void mrswSPARQL2() { Dataset ds = create(); DatasetGraph dsg = ds.asDatasetGraph() ; Query query = QueryFactory.create("SELECT * { ?s ?p ?o}") ; QueryExecution qExec = QueryExecutionFactory.create(query, ds) ; ResultSet rs = qExec.execSelect() ; rs.hasNext() ; rs.next(); Quad quad = SSE.parseQuad("(<g> <y> <p> 99)") ; dsg.add(quad) ; rs.hasNext() ; // <<--- Here. rs.next(); }
@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()) ); }
protected void fillDataset(Dataset dataset) { // Load default model. // Load graph 1 // Load graph 2. dataset.getDefaultModel().getGraph().add(SSE.parseTriple("(<x> <p> 'Default graph')")) ; Model m1 = dataset.getNamedModel(graph1) ; m1.getGraph().add(SSE.parseTriple("(<x> <p> 'Graph 1')")) ; m1.getGraph().add(SSE.parseTriple("(<x> <p> 'ZZZ')")) ; Model m2 = dataset.getNamedModel(graph2) ; m2.getGraph().add(SSE.parseTriple("(<x> <p> 'Graph 2')")) ; m2.getGraph().add(SSE.parseTriple("(<x> <p> 'ZZZ')")) ; calcUnion.add(m1) ; calcUnion.add(m2) ; }
@Test public void sparql1() { // Test OpExecutor.execute(OpBGP) for a named graph used as a standalone model Dataset ds = create() ; add(ds, graphName, triple) ; Txn.executeRead(ds, ()->{ Model m = ds.getNamedModel(graphName) ; String qs = "SELECT * { ?s ?p ?o . }" ; Query query = QueryFactory.create(qs) ; QueryExecution qexec = QueryExecutionFactory.create(query, m) ; ResultSet rs = qexec.execSelect() ; ResultSetFormatter.consume(rs) ; }) ; }
@Test public void dataset2() { TL.exec((ds) -> { Graph g1 = ds.getDefaultModel().getGraph() ; Graph g2 = ds.getNamedModel("http://example/").getGraph() ; g1.add(new Triple(n0, n1, n2)) ; assertTrue(g1.contains(n0, n1, n2)) ; assertFalse(g2.contains(n0, n1, n2)) ; }) ; }
@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 testARQConstructQuad_Duplicate_2() { String queryString = "CONSTRUCT { GRAPH ?g1 {?s ?p ?o} } 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(); DatasetGraph expected = DatasetGraphFactory.create(); expected.add(g1.asNode(), s.asNode(), p.asNode(), o.asNode()); assertEquals(1, result.asDatasetGraph().size()); assertTrue(IsoMatcher.isomorphic( expected, result.asDatasetGraph()) ); }
@Test public void trans_01() { Model named = dataset.getNamedModel(ns+"g") ; Txn.executeWrite(dataset, ()->{ RDFDataMgr.read(dataset, new StringReader(data1), null, Lang.TRIG) ; }) ; Txn.executeRead(dataset, ()->{ long x1 = Iter.count(dataset.getDefaultModel().listStatements()) ; assertEquals(2, x1) ; long x2 = Iter.count(named.listStatements()) ; assertEquals(3, x2) ; }) ; }