/** * Modified to test SPARQL instead of Serql. */ @Override public void testEmptyRepository() throws Exception { // repository should be empty assertEquals("Empty repository should not return any statements", 0, countAllElements()); assertEquals("Named context should be empty", 0, countContext1Elements()); assertEquals("Empty repository should not return any context identifiers", 0, countElements(con.getContextIDs())); assertEquals("Empty repository should not return any query results", 0, countQueryResults("select * where { ?S ?P ?O }")); }
@Override public Properties getProperties() { final Properties props = new Properties(super.getProperties()); final File journal = BigdataStoreTest.createTempFile(); props.setProperty(BigdataSail.Options.FILE, journal.getAbsolutePath()); props.setProperty(Options.BUFFER_MODE, BufferMode.DiskRW.toString()); // props.setProperty(Options.BUFFER_MODE, BufferMode.DiskWORM.toString()); return props; }
CloseableIteration<? extends BindingSet, QueryEvaluationException> iter; iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); int resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 2, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 1, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 1, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 2, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+"> . filter( ?Y = ?Z) }",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 0, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+"> . filter( ?Y = ?Z) }",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 1, resultCount);
@Override protected int countQueryResults(String query) throws Exception { query = "PREFIX ex: <http://example.org/> PREFIX rdf: <"+RDF.NAMESPACE+"> PREFIX rdfs: <"+RDFS.NAMESPACE+"> " + query; return countElements(evaluate(query, con)); }
assertEquals(0, countAllElements()); con.addStatement(painter, RDF.TYPE, RDFS.CLASS); con.addStatement(painting, RDF.TYPE, RDFS.CLASS); con.addStatement(guernica, RDF.TYPE, painting, context1); con.commit(); assertEquals(4, countAllElements()); con2.addStatement(RDF.NIL, RDF.TYPE, RDF.LIST); String query = "SELECT ?S ?P ?O WHERE { ?S ?P ?O }"; evaluate(query, con2); assertEquals(nexpected, countElements(queryResult)); Runnable clearer = new Runnable() {
assertTrue(stIter.hasNext()); assertEquals(subj, st.getSubject()); assertEquals(pred, st.getPredicate()); assertEquals(obj, st.getObject()); assertTrue(!stIter.hasNext()); } finally { stIter.close(); iter = evaluate(query, con); assertTrue(iter.hasNext()); assertEquals(subj, bindings.getValue("S")); assertEquals(pred, bindings.getValue("P")); assertEquals(obj, bindings.getValue("O")); assertTrue(!iter.hasNext()); } finally { iter.close();
iter = evaluate("SELECT ?C where { ?s <"+RDF.TYPE+"> ?C}", con); assertEquals(3, countElements(con.getStatements(null, RDF.TYPE, RDFS.CLASS, false))); iter = evaluate("SELECT ?P where {?s ?P ?o}", con); assertEquals(2, countElements(con.getStatements(null, RDF.TYPE, RDF.PROPERTY, false)));
private CloseableIteration<? extends BindingSet, QueryEvaluationException> evaluate(final String query, final SailConnection con) throws Exception { return evaluate(query, con, EmptyBindingSet.getInstance()); }
@Override protected Sail createSail() throws SailException { final Sail sail = new BigdataSail(getProperties()); sail.initialize(); final SailConnection conn = sail.getConnection(); try { conn.clear(); conn.clearNamespaces(); conn.commit(); } finally { conn.close(); } return sail; }
assertEquals(0, countAllElements()); con.addStatement(painter, RDF.TYPE, RDFS.CLASS); con.addStatement(painting, RDF.TYPE, RDFS.CLASS); con.addStatement(guernica, RDF.TYPE, painting, context1); con.commit(); assertEquals(4, countAllElements()); con2.addStatement(RDF.NIL, RDF.TYPE, RDF.LIST); String query = "SELECT ?S ?P ?O WHERE { ?S ?P ?O }"; evaluate(query, con2); assertEquals(nexpected, countElements(queryResult)); Runnable clearer = new Runnable() {
assertTrue(stIter.hasNext()); assertEquals(subj, st.getSubject()); assertEquals(pred, st.getPredicate()); assertEquals(obj, st.getObject()); assertTrue(!stIter.hasNext()); } finally { stIter.close(); iter = evaluate(query, con); assertTrue(iter.hasNext()); assertEquals(subj, bindings.getValue("S")); assertEquals(pred, bindings.getValue("P")); assertEquals(obj, bindings.getValue("O")); assertTrue(!iter.hasNext()); } finally { iter.close();
iter = evaluate("SELECT ?C where { ?s <"+RDF.TYPE+"> ?C}", con); assertEquals(3, countElements(con.getStatements(null, RDF.TYPE, RDFS.CLASS, false))); iter = evaluate("SELECT ?P where {?s ?P ?o}", con); assertEquals(2, countElements(con.getStatements(null, RDF.TYPE, RDF.PROPERTY, false)));
@Override protected int countQueryResults(String query) throws Exception { query = "PREFIX ex: <http://example.org/> PREFIX rdf: <"+RDF.NAMESPACE+"> PREFIX rdfs: <"+RDFS.NAMESPACE+"> " + query; return countElements(evaluate(query, con)); }
private CloseableIteration<? extends BindingSet, QueryEvaluationException> evaluate(final String query, final SailConnection con) throws Exception { return evaluate(query, con, EmptyBindingSet.getInstance()); }
@Override protected Sail createSail() throws SailException { final Sail sail = new BigdataSail(getProperties()); sail.initialize(); final SailConnection conn = sail.getConnection(); try { conn.clear(); conn.clearNamespaces(); conn.commit(); } finally { conn.close(); } return sail; }
assertEquals("Repository should contain 5 statements in total", 5, countAllElements()); assertEquals("Named context should contain 3 statements", 3, countContext1Elements()); assertEquals("Repository should have 1 context identifier", 1, countElements(con.getContextIDs())); assertEquals("Repository should contain 5 statements in total", 5, countQueryResults("select * where { ?S ?P ?O }")); assertEquals("Statement (Painter, type, Class) should be in the repository", 1, countQueryResults("select * where { ex:Painter rdf:type rdfs:Class }")); assertEquals("Statement (picasso, type, Painter) should be in the repository", 1, countQueryResults("select * where { ex:picasso rdf:type ex:Painter}")); assertEquals("Statement (Painter, paints, Painting) should not be in the repository", 0, countQueryResults("select * where {ex:Painter ex:paints ex:Painting}")); assertEquals("Statement (picasso, creates, guernica) should not be in the repository", 0, countQueryResults("select * where {ex:picasso ex:creates ex:guernica}")); assertEquals("Repository should contain 2 statements matching (picasso, _, _)", 2, countQueryResults("select * where {ex:picasso ?P ?O}")); assertEquals("Repository should contain 1 statement matching (picasso, paints, _)", 1, countQueryResults("select * where {ex:picasso ex:paints ?O}")); assertEquals("Repository should contain 4 statements matching (_, type, _)", 4, countQueryResults("select * where {?S rdf:type ?O}"));
CloseableIteration<? extends BindingSet, QueryEvaluationException> iter; iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); int resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 2, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 1, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 1, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+">}",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 2, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+"> . filter( ?Y = ?Z) }",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 0, resultCount); iter = evaluate("select ?X where { ?X <"+RDF.TYPE+"> ?Y . ?Y <"+RDF.TYPE+"> <"+RDFS.CLASS+"> . filter( ?Y = ?Z) }",con, bindings); resultCount = verifyQueryResult(iter, 1); assertEquals("Wrong number of query results", 1, resultCount);
@Override public Properties getProperties() { final Properties props = new Properties(super.getProperties()); final File journal = BigdataStoreTest.createTempFile(); props.setProperty(BigdataSail.Options.FILE, journal.getAbsolutePath()); // props.setProperty(Options.BUFFER_MODE, BufferMode.DiskRW.toString()); props.setProperty(Options.BUFFER_MODE, BufferMode.DiskWORM.toString()); return props; }
/** * Modified to test SPARQL instead of Serql. */ @Override public void testEmptyRepository() throws Exception { // repository should be empty assertEquals("Empty repository should not return any statements", 0, countAllElements()); assertEquals("Named context should be empty", 0, countContext1Elements()); assertEquals("Empty repository should not return any context identifiers", 0, countElements(con.getContextIDs())); assertEquals("Empty repository should not return any query results", 0, countQueryResults("select * where { ?S ?P ?O }")); }
final File journal = createTempFile();