/** Parse a string to obtain a Triple */ public static Triple parseTriple(String str) { return parseTriple(str, null) ; }
/** Parse a string to obtain a Triple */ public static Triple parseTriple(String str) { return parseTriple(str, null) ; }
private static void addGraph(Dataset dataset, int i) { // Not a very interesting model Model m = dataset.getNamedModel("graph:"+i) ; Triple t1 = SSE.parseTriple("(<uri:x> <uri:p> "+i+")") ; Triple t2 = SSE.parseTriple("(<uri:y> <uri:q> 'ABC')") ; m.getGraph().add(t1) ; m.getGraph().add(t2) ; }
private static void init() { // Named graphs for ( int i = 0 ; i < 5 ; i++ ) addGraph(dataset, i) ; // Default model. Model m = dataset.getDefaultModel() ; Triple t1 = SSE.parseTriple("(<uri:x> <uri:p> 0)") ; Triple t2 = SSE.parseTriple("(<uri:y> <uri:q> 'ABC')") ; Triple t3 = SSE.parseTriple("(<uri:z> <uri:property> 'DEF')") ; m.getGraph().add(t1) ; m.getGraph().add(t2) ; m.getGraph().add(t3) ; }
@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(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 mrswGraph4() { Model m = create().getDefaultModel() ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listLiteralStatements(r, null, 1) ; assertNotNull(iter1.next()) ; // and now the iterator has implicitly finished. Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().add(t) ; // Bad - modification of the dataset occurred. iter1.hasNext(); }
@Test public void dataset5() { String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> <z>)") ; Dataset ds = graphLocation.getDataset() ; Graph g2 = ds.asDatasetGraph().getGraph(Node.createURI(graphName)) ; // Graphs only exists if they have a triple in them g2.add(triple) ; assertTrue(ds.containsNamedModel(graphName)) ; Iterator<String> iter = ds.listNames() ; List<String> x = Iter.toList(iter) ; List<String> y = Arrays.asList(graphName) ; assertEquals(x,y) ; assertEquals(1, ds.asDatasetGraph().size()) ; } }
@Test public void dataset4() { String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> <z>)") ; Node gn = Node.createURI(graphName) ; Dataset ds = graphLocation.getDataset() ; // ?? See TupleLib. ds.asDatasetGraph().deleteAny(gn, null, null, null) ; Graph g2 = ds.asDatasetGraph().getGraph(gn) ; // if ( true ) // { // PrintStream ps = System.err ; // ps.println("Dataset names: ") ; // Iter.print(ps, ds.listNames()) ; // } // Graphs only exists if they have a triple in them assertFalse(ds.containsNamedModel(graphName)) ; Iterator<String> iter = ds.listNames() ; assertFalse(iter.hasNext()) ; assertEquals(0, ds.asDatasetGraph().size()) ; }
@Test public void sparql1() { // Test OpExecutor.execute(OpFilter)for a named graph used as a standalone model String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> 123)") ; Dataset ds = TDBFactory.createDataset() ; Graph g2 = ds.asDatasetGraph().getGraph(Node.createURI(graphName)) ; // Graphs only exists if they have a triple in them g2.add(triple) ; Model m = ModelFactory.createModelForGraph(g2) ; String qs = "SELECT * { ?s ?p ?o . FILTER ( ?o < 456 ) }" ; Query query = QueryFactory.create(qs) ; QueryExecution qexec = QueryExecutionFactory.create(query, m) ; ResultSet rs = qexec.execSelect() ; ResultSetFormatter.consume(rs) ; }
@Test public void sparql4() { // Requires OpDatasetNames Dataset dataset = TDBFactory.createDataset() ; String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> 123)") ; Graph g2 = dataset.asDatasetGraph().getGraph(Node.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 sparql2() { // Test OpExecutor.execute(OpBGP) for a named graph used as a standalone model String graphName = "http://example/" ; Triple triple = SSE.parseTriple("(<x> <y> 123)") ; Dataset ds = TDBFactory.createDataset() ; Graph g2 = ds.asDatasetGraph().getGraph(Node.createURI(graphName)) ; // Graphs only exists if they have a triple in them g2.add(triple) ; Model m = ModelFactory.createModelForGraph(g2) ; 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(expected=ConcurrentModificationException.class) public void mrswGraph6() { Dataset d = TDBFactory.createDataset() ; Model m = d.getNamedModel("http://example") ; m.getGraph().getBulkUpdateHandler().add(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 public void mrswGraph5() { Dataset d = TDBFactory.createDataset() ; Model m = d.getNamedModel("http://example") ; m.getGraph().getBulkUpdateHandler().add(buildGraph()) ; Resource r = m.createResource("x") ; ExtendedIterator<Statement> iter1 = m.listStatements(r, null, (RDFNode)null) ; while(iter1.hasNext()) iter1.next(); Triple t = SSE.parseTriple("(<y> <p> 99)") ; m.getGraph().delete(t) ; iter1.hasNext() ; }
@Test public void reuseJDBCConection() Triple t1 = SSE.parseTriple("(:x1 :p :z)") ; Triple t2 = SSE.parseTriple("(:x2 :p :z)") ; boolean explicitTransactions = false ;