You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rya.apache.org by dl...@apache.org on 2018/01/04 22:07:31 UTC
[09/17] incubator-rya git commit: RYA-414 Fixing broken tests,
cleaning up documentate, cleaning up whitespace.
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
index e62404c..c4db88e 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataIT.java
@@ -51,207 +51,207 @@ import org.openrdf.sail.Sail;
public class MongoStatementMetadataIT extends MongoTestBase {
- private final String query1 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source <http://Joe>; "
- + "ano:Property <http://worksAt>; ano:Target ?x; <http://createdBy> ?y; <http://createdOn> \'2017-01-04\'^^xsd:date }";
- private final String query2 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?a ?b ?c where {_:blankNode1 rdf:type owl:Annotation; ano:Source ?a; "
- + "ano:Property <http://worksAt>; ano:Target <http://BurgerShack>; <http://createdBy> ?c; <http://createdOn> \'2017-01-04\'^^xsd:date. "
- + "_:blankNode2 rdf:type owl:Annotation; ano:Source ?a; "
- + "ano:Property <http://talksTo>; ano:Target ?b; <http://createdBy> ?c; <http://createdOn> \'2017-01-04\'^^xsd:date }";
+ private final String query1 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source <http://Joe>; "
+ + "ano:Property <http://worksAt>; ano:Target ?x; <http://createdBy> ?y; <http://createdOn> \'2017-01-04\'^^xsd:date }";
+ private final String query2 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?a ?b ?c where {_:blankNode1 rdf:type owl:Annotation; ano:Source ?a; "
+ + "ano:Property <http://worksAt>; ano:Target <http://BurgerShack>; <http://createdBy> ?c; <http://createdOn> \'2017-01-04\'^^xsd:date. "
+ + "_:blankNode2 rdf:type owl:Annotation; ano:Source ?a; "
+ + "ano:Property <http://talksTo>; ano:Target ?b; <http://createdBy> ?c; <http://createdOn> \'2017-01-04\'^^xsd:date }";
- @Override
- protected void updateConfiguration(final MongoDBRdfConfiguration conf) {
- final Set<RyaURI> propertySet = new HashSet<>(
- Arrays.asList(new RyaURI("http://createdBy"), new RyaURI("http://createdOn")));
- conf.setUseStatementMetadata(true);
- conf.setStatementMetadataProperties(propertySet);
- }
+ @Override
+ protected void updateConfiguration(final MongoDBRdfConfiguration conf) {
+ final Set<RyaURI> propertySet = new HashSet<>(
+ Arrays.asList(new RyaURI("http://createdBy"), new RyaURI("http://createdOn")));
+ conf.setUseStatementMetadata(true);
+ conf.setStatementMetadataProperties(propertySet);
+ }
- @Test
- public void simpleQueryWithoutBindingSet() throws Exception {
- Sail sail = RyaSailFactory.getInstance(conf);
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
+ @Test
+ public void simpleQueryWithoutBindingSet() throws Exception {
+ Sail sail = RyaSailFactory.getInstance(conf);
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
- final StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+ final StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
- final RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- dao.add(statement);
+ final RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement);
- SailRepositoryConnection conn = new SailRepository(sail).getConnection();
- final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
+ SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+ final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
- final QueryBindingSet bs = new QueryBindingSet();
- bs.addBinding("x", new LiteralImpl("CoffeeShop"));
- bs.addBinding("y", new LiteralImpl("Joe"));
+ final QueryBindingSet bs = new QueryBindingSet();
+ bs.addBinding("x", new LiteralImpl("CoffeeShop"));
+ bs.addBinding("y", new LiteralImpl("Joe"));
- final List<BindingSet> bsList = new ArrayList<>();
- while (result.hasNext()) {
- bsList.add(result.next());
- }
+ final List<BindingSet> bsList = new ArrayList<>();
+ while (result.hasNext()) {
+ bsList.add(result.next());
+ }
- assertEquals(1, bsList.size());
- assertEquals(bs, bsList.get(0));
- dao.delete(statement, conf);
- } finally {
- dao.destroy();
- sail.shutDown();
- }
- }
+ assertEquals(1, bsList.size());
+ assertEquals(bs, bsList.get(0));
+ dao.delete(statement, conf);
+ } finally {
+ dao.destroy();
+ sail.shutDown();
+ }
+ }
- /**
- * Tests if results are filtered correctly using the metadata properties. In
- * this case, the date for the ingested RyaStatement differs from the date
- * specified in the query.
- *
- * @throws MalformedQueryException
- * @throws QueryEvaluationException
- * @throws RyaDAOException
- */
- @Test
- public void simpleQueryWithoutBindingSetInvalidProperty() throws Exception {
- Sail sail = RyaSailFactory.getInstance(conf);
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- final StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Doug"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-15"));
+ /**
+ * Tests if results are filtered correctly using the metadata properties. In
+ * this case, the date for the ingested RyaStatement differs from the date
+ * specified in the query.
+ *
+ * @throws MalformedQueryException
+ * @throws QueryEvaluationException
+ * @throws RyaDAOException
+ */
+ @Test
+ public void simpleQueryWithoutBindingSetInvalidProperty() throws Exception {
+ Sail sail = RyaSailFactory.getInstance(conf);
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ final StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Doug"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-15"));
- final RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- dao.add(statement);
+ final RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement);
- SailRepositoryConnection conn = new SailRepository(sail).getConnection();
- final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
+ SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+ final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
- final List<BindingSet> bsList = new ArrayList<>();
- while (result.hasNext()) {
- bsList.add(result.next());
- }
- assertEquals(0, bsList.size());
- dao.delete(statement, conf);
- } finally {
- dao.destroy();
- sail.shutDown();
- }
- }
+ final List<BindingSet> bsList = new ArrayList<>();
+ while (result.hasNext()) {
+ bsList.add(result.next());
+ }
+ assertEquals(0, bsList.size());
+ dao.delete(statement, conf);
+ } finally {
+ dao.destroy();
+ sail.shutDown();
+ }
+ }
- @Test
- public void simpleQueryWithBindingSet() throws Exception {
- Sail sail = RyaSailFactory.getInstance(conf);
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- final StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+ @Test
+ public void simpleQueryWithBindingSet() throws Exception {
+ Sail sail = RyaSailFactory.getInstance(conf);
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ final StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
- final RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- final RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
- dao.add(statement1);
- dao.add(statement2);
+ final RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ final RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement1);
+ dao.add(statement2);
- SailRepositoryConnection conn = new SailRepository(sail).getConnection();
- final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
+ SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+ final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query1).evaluate();
- final Set<BindingSet> expected = new HashSet<>();
- final QueryBindingSet expected1 = new QueryBindingSet();
- expected1.addBinding("x", new LiteralImpl("CoffeeShop"));
- expected1.addBinding("y", new LiteralImpl("Joe"));
- final QueryBindingSet expected2 = new QueryBindingSet();
- expected2.addBinding("x", new LiteralImpl("HardwareStore"));
- expected2.addBinding("y", new LiteralImpl("Joe"));
- expected.add(expected1);
- expected.add(expected2);
+ final Set<BindingSet> expected = new HashSet<>();
+ final QueryBindingSet expected1 = new QueryBindingSet();
+ expected1.addBinding("x", new LiteralImpl("CoffeeShop"));
+ expected1.addBinding("y", new LiteralImpl("Joe"));
+ final QueryBindingSet expected2 = new QueryBindingSet();
+ expected2.addBinding("x", new LiteralImpl("HardwareStore"));
+ expected2.addBinding("y", new LiteralImpl("Joe"));
+ expected.add(expected1);
+ expected.add(expected2);
- final Set<BindingSet> bsSet = new HashSet<>();
- while (result.hasNext()) {
- bsSet.add(result.next());
- }
+ final Set<BindingSet> bsSet = new HashSet<>();
+ while (result.hasNext()) {
+ bsSet.add(result.next());
+ }
- assertEquals(expected, bsSet);
+ assertEquals(expected, bsSet);
- dao.delete(statement1, conf);
- dao.delete(statement2, conf);
- } finally {
- dao.destroy();
- sail.shutDown();
- }
- }
+ dao.delete(statement1, conf);
+ dao.delete(statement2, conf);
+ } finally {
+ dao.destroy();
+ sail.shutDown();
+ }
+ }
- /**
- * Tests to see if correct result is passed back when a metadata statement
- * is joined with a StatementPattern statement (i.e. a common variable
- * appears in a StatementPattern statement and a metadata statement).
- * StatementPattern statements have either rdf:subject, rdf:predicate, or
- * rdf:object as the predicate while a metadata statement is any statement
- * in the reified query whose predicate is not rdf:type and not a
- * StatementPattern predicate.
- *
- * @throws MalformedQueryException
- * @throws QueryEvaluationException
- * @throws RyaDAOException
- */
- @Test
- public void simpleQueryWithBindingSetJoinPropertyToSubject() throws Exception {
- Sail sail = RyaSailFactory.getInstance(conf);
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- final StatementMetadata metadata1 = new StatementMetadata();
- metadata1.addMetadata(new RyaURI("http://createdBy"), new RyaURI("http://Doug"));
- metadata1.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
- final StatementMetadata metadata2 = new StatementMetadata();
- metadata2.addMetadata(new RyaURI("http://createdBy"), new RyaURI("http://Bob"));
- metadata2.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-04"));
+ /**
+ * Tests to see if correct result is passed back when a metadata statement
+ * is joined with a StatementPattern statement (i.e. a common variable
+ * appears in a StatementPattern statement and a metadata statement).
+ * StatementPattern statements have either rdf:subject, rdf:predicate, or
+ * rdf:object as the predicate while a metadata statement is any statement
+ * in the reified query whose predicate is not rdf:type and not a
+ * StatementPattern predicate.
+ *
+ * @throws MalformedQueryException
+ * @throws QueryEvaluationException
+ * @throws RyaDAOException
+ */
+ @Test
+ public void simpleQueryWithBindingSetJoinPropertyToSubject() throws Exception {
+ Sail sail = RyaSailFactory.getInstance(conf);
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ final StatementMetadata metadata1 = new StatementMetadata();
+ metadata1.addMetadata(new RyaURI("http://createdBy"), new RyaURI("http://Doug"));
+ metadata1.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+ final StatementMetadata metadata2 = new StatementMetadata();
+ metadata2.addMetadata(new RyaURI("http://createdBy"), new RyaURI("http://Bob"));
+ metadata2.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-04"));
- final RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaURI("http://BurgerShack"), new RyaURI("http://context"), "", metadata1);
- final RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://talksTo"),
- new RyaURI("http://Betty"), new RyaURI("http://context"), "", metadata1);
- final RyaStatement statement3 = new RyaStatement(new RyaURI("http://Fred"), new RyaURI("http://talksTo"),
- new RyaURI("http://Amanda"), new RyaURI("http://context"), "", metadata1);
- final RyaStatement statement4 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://talksTo"),
- new RyaURI("http://Wanda"), new RyaURI("http://context"), "", metadata2);
- dao.add(statement1);
- dao.add(statement2);
- dao.add(statement3);
- dao.add(statement4);
+ final RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaURI("http://BurgerShack"), new RyaURI("http://context"), "", metadata1);
+ final RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://talksTo"),
+ new RyaURI("http://Betty"), new RyaURI("http://context"), "", metadata1);
+ final RyaStatement statement3 = new RyaStatement(new RyaURI("http://Fred"), new RyaURI("http://talksTo"),
+ new RyaURI("http://Amanda"), new RyaURI("http://context"), "", metadata1);
+ final RyaStatement statement4 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://talksTo"),
+ new RyaURI("http://Wanda"), new RyaURI("http://context"), "", metadata2);
+ dao.add(statement1);
+ dao.add(statement2);
+ dao.add(statement3);
+ dao.add(statement4);
- SailRepositoryConnection conn = new SailRepository(sail).getConnection();
- final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query2).evaluate();
+ SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+ final TupleQueryResult result = conn.prepareTupleQuery(QueryLanguage.SPARQL, query2).evaluate();
- final Set<BindingSet> expected = new HashSet<>();
- final QueryBindingSet expected1 = new QueryBindingSet();
- expected1.addBinding("b", new URIImpl("http://Betty"));
- expected1.addBinding("a", new URIImpl("http://Joe"));
- expected1.addBinding("c", new URIImpl("http://Doug"));
- expected.add(expected1);
+ final Set<BindingSet> expected = new HashSet<>();
+ final QueryBindingSet expected1 = new QueryBindingSet();
+ expected1.addBinding("b", new URIImpl("http://Betty"));
+ expected1.addBinding("a", new URIImpl("http://Joe"));
+ expected1.addBinding("c", new URIImpl("http://Doug"));
+ expected.add(expected1);
- final Set<BindingSet> bsSet = new HashSet<>();
- while (result.hasNext()) {
- bsSet.add(result.next());
- }
+ final Set<BindingSet> bsSet = new HashSet<>();
+ while (result.hasNext()) {
+ bsSet.add(result.next());
+ }
- assertEquals(expected, bsSet);
+ assertEquals(expected, bsSet);
- dao.delete(statement1, conf);
- dao.delete(statement2, conf);
- dao.delete(statement3, conf);
- dao.delete(statement4, conf);
- } finally {
- dao.destroy();
- sail.shutDown();
- }
- }
+ dao.delete(statement1, conf);
+ dao.delete(statement2, conf);
+ dao.delete(statement3, conf);
+ dao.delete(statement4, conf);
+ } finally {
+ dao.destroy();
+ sail.shutDown();
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeTest.java
----------------------------------------------------------------------
diff --git a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeTest.java b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeTest.java
index aa700b1..a45197c 100644
--- a/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeTest.java
+++ b/extras/indexing/src/test/java/org/apache/rya/indexing/statement/metadata/MongoStatementMetadataNodeTest.java
@@ -48,321 +48,321 @@ import org.openrdf.query.parser.sparql.SPARQLParser;
import info.aduna.iteration.CloseableIteration;
public class MongoStatementMetadataNodeTest extends MongoTestBase {
- private final String query = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source <http://Joe>; "
- + "ano:Property <http://worksAt>; ano:Target ?x; <http://createdBy> ?y; <http://createdOn> \'2017-01-04\'^^xsd:date }";
- private final String query2 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source ?x; "
- + "ano:Property <http://worksAt>; ano:Target ?y; <http://createdBy> ?x; <http://createdOn> \'2017-01-04\'^^xsd:date }";
-
- @Before
- public void init() throws Exception {
- final Set<RyaURI> propertySet = new HashSet<RyaURI>(Arrays.asList(new RyaURI("http://createdBy"), new RyaURI("http://createdOn")));
- conf.setUseStatementMetadata(true);
- conf.setStatementMetadataProperties(propertySet);
- }
-
- @Test
- public void simpleQueryWithoutBindingSet() throws Exception {
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
-
- RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- dao.add(statement);
-
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query, null);
- List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
-
- StatementMetadataNode<?> node = new StatementMetadataNode<>(spList, conf);
- CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
-
- QueryBindingSet bs = new QueryBindingSet();
- bs.addBinding("x", new LiteralImpl("CoffeeShop"));
- bs.addBinding("y", new LiteralImpl("Joe"));
-
- List<BindingSet> bsList = new ArrayList<>();
- while (iteration.hasNext()) {
- bsList.add(iteration.next());
- }
-
- Assert.assertEquals(1, bsList.size());
- Assert.assertEquals(bs, bsList.get(0));
- dao.delete(statement, conf);
- } finally {
- dao.destroy();
- }
- }
-
- /**
- * Tests if results are filtered correctly using the metadata properties. In
- * this case, the date for the ingested RyaStatement differs from the date
- * specified in the query.
- */
- @Test
- public void simpleQueryWithoutBindingSetInvalidProperty() throws Exception {
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
-
- StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Doug"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-15"));
-
- RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- dao.add(statement);
-
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query, null);
- List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
- StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
- CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
-
- List<BindingSet> bsList = new ArrayList<>();
- while (iteration.hasNext()) {
- bsList.add(iteration.next());
- }
- Assert.assertEquals(0, bsList.size());
- dao.delete(statement, conf);
- } finally {
- dao.destroy();
- }
- }
-
- @Test
- public void simpleQueryWithBindingSet() throws Exception {
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
-
- RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
- dao.add(statement1);
- dao.add(statement2);
-
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query, null);
- List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
- StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
-
- QueryBindingSet bsConstraint = new QueryBindingSet();
- bsConstraint.addBinding("x", new LiteralImpl("CoffeeShop"));
- bsConstraint.addBinding("z", new LiteralImpl("Virginia"));
-
- CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
-
- QueryBindingSet expected = new QueryBindingSet();
- expected.addBinding("x", new LiteralImpl("CoffeeShop"));
- expected.addBinding("y", new LiteralImpl("Joe"));
- expected.addBinding("z", new LiteralImpl("Virginia"));
-
- List<BindingSet> bsList = new ArrayList<>();
- while (iteration.hasNext()) {
- bsList.add(iteration.next());
- }
-
- Assert.assertEquals(1, bsList.size());
- Assert.assertEquals(expected, bsList.get(0));
-
- dao.delete(statement1, conf);
- dao.delete(statement2, conf);
- } finally {
- dao.destroy();
- }
- }
-
- /**
- * Tests to see if correct result is passed back when a metadata statement
- * is joined with a StatementPattern statement (i.e. a common variable
- * appears in a StatementPattern statement and a metadata statement).
- * StatementPattern statements have either rdf:subject, rdf:predicate, or
- * rdf:object as the predicate while a metadata statement is any statement
- * in the reified query whose predicate is not rdf:type and not a
- * StatementPattern predicate.
- */
- @Test
- public void simpleQueryWithBindingSetJoinPropertyToSubject() throws Exception {
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaURI("http://Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
-
- RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- RyaStatement statement2 = new RyaStatement(new RyaURI("http://Bob"), new RyaURI("http://worksAt"),
- new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
- dao.add(statement1);
- dao.add(statement2);
-
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query2, null);
- List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
- StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
-
- List<BindingSet> bsCollection = new ArrayList<>();
- QueryBindingSet bsConstraint1 = new QueryBindingSet();
- bsConstraint1.addBinding("y", new LiteralImpl("CoffeeShop"));
- bsConstraint1.addBinding("z", new LiteralImpl("Virginia"));
-
- QueryBindingSet bsConstraint2 = new QueryBindingSet();
- bsConstraint2.addBinding("y", new LiteralImpl("HardwareStore"));
- bsConstraint2.addBinding("z", new LiteralImpl("Maryland"));
- bsCollection.add(bsConstraint1);
- bsCollection.add(bsConstraint2);
-
- CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
-
- QueryBindingSet expected = new QueryBindingSet();
- expected.addBinding("y", new LiteralImpl("CoffeeShop"));
- expected.addBinding("x", new URIImpl("http://Joe"));
- expected.addBinding("z", new LiteralImpl("Virginia"));
-
- List<BindingSet> bsList = new ArrayList<>();
- while (iteration.hasNext()) {
- bsList.add(iteration.next());
- }
-
- Assert.assertEquals(1, bsList.size());
- Assert.assertEquals(expected, bsList.get(0));
-
- dao.delete(statement1, conf);
- dao.delete(statement2, conf);
- } finally {
- dao.destroy();
- }
- }
-
- /**
- * Tests if the StatementMetadataNode joins BindingSet correctly for
- * variables appearing in metadata statements. In this case, the metadata
- * statements are (_:blankNode <http://createdOn 2017-01-04 ) and
- * (_:blankNode <http://createdBy> ?y). The variable ?y appears as the
- * object in the above metadata statement and its values are joined to the
- * constraint BindingSets in the example below.
- */
- @Test
- public void simpleQueryWithBindingSetJoinOnProperty() throws Exception {
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
-
- RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- dao.add(statement1);
-
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query, null);
- List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
- StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
-
- QueryBindingSet bsConstraint = new QueryBindingSet();
- bsConstraint.addBinding("x", new LiteralImpl("CoffeeShop"));
- bsConstraint.addBinding("y", new LiteralImpl("Doug"));
-
- CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
-
- List<BindingSet> bsList = new ArrayList<>();
- while (iteration.hasNext()) {
- bsList.add(iteration.next());
- }
-
- Assert.assertEquals(0, bsList.size());
- dao.delete(statement1, conf);
- } finally {
- dao.destroy();
- }
- }
-
- /**
- * Tests if StatementMetadataNode joins BindingSet values correctly for
- * variables appearing as the object in one of the StatementPattern
- * statements (in the case ?x appears as the Object in the statement
- * _:blankNode rdf:object ?x). StatementPattern statements have either
- * rdf:subject, rdf:predicate, or rdf:object as the predicate.
- */
- @Test
- public void simpleQueryWithBindingSetCollection() throws Exception {
- MongoDBRyaDAO dao = new MongoDBRyaDAO();
- try {
- dao.setConf(conf);
- dao.init();
- StatementMetadata metadata = new StatementMetadata();
- metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
- metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
-
- RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
- RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
- new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
- dao.add(statement1);
- dao.add(statement2);
-
- SPARQLParser parser = new SPARQLParser();
- ParsedQuery pq = parser.parseQuery(query, null);
- List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
- StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
-
- List<BindingSet> bsCollection = new ArrayList<>();
- QueryBindingSet bsConstraint1 = new QueryBindingSet();
- bsConstraint1.addBinding("x", new LiteralImpl("CoffeeShop"));
- bsConstraint1.addBinding("z", new LiteralImpl("Virginia"));
-
- QueryBindingSet bsConstraint2 = new QueryBindingSet();
- bsConstraint2.addBinding("x", new LiteralImpl("HardwareStore"));
- bsConstraint2.addBinding("z", new LiteralImpl("Maryland"));
-
- QueryBindingSet bsConstraint3 = new QueryBindingSet();
- bsConstraint3.addBinding("x", new LiteralImpl("BurgerShack"));
- bsConstraint3.addBinding("z", new LiteralImpl("Delaware"));
- bsCollection.add(bsConstraint1);
- bsCollection.add(bsConstraint2);
- bsCollection.add(bsConstraint3);
-
- CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
-
- Set<BindingSet> expected = new HashSet<>();
- QueryBindingSet expected1 = new QueryBindingSet();
- expected1.addBinding("x", new LiteralImpl("CoffeeShop"));
- expected1.addBinding("y", new LiteralImpl("Joe"));
- expected1.addBinding("z", new LiteralImpl("Virginia"));
-
- QueryBindingSet expected2 = new QueryBindingSet();
- expected2.addBinding("x", new LiteralImpl("HardwareStore"));
- expected2.addBinding("y", new LiteralImpl("Joe"));
- expected2.addBinding("z", new LiteralImpl("Maryland"));
- expected.add(expected1);
- expected.add(expected2);
-
- Set<BindingSet> bsSet = new HashSet<>();
- while (iteration.hasNext()) {
- bsSet.add(iteration.next());
- }
-
- Assert.assertEquals(expected, bsSet);
-
- dao.delete(statement1, conf);
- dao.delete(statement2, conf);
- } finally {
- dao.destroy();
- }
- }
+ private final String query = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source <http://Joe>; "
+ + "ano:Property <http://worksAt>; ano:Target ?x; <http://createdBy> ?y; <http://createdOn> \'2017-01-04\'^^xsd:date }";
+ private final String query2 = "prefix owl: <http://www.w3.org/2002/07/owl#> prefix ano: <http://www.w3.org/2002/07/owl#annotated> prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> select ?x ?y where {_:blankNode rdf:type owl:Annotation; ano:Source ?x; "
+ + "ano:Property <http://worksAt>; ano:Target ?y; <http://createdBy> ?x; <http://createdOn> \'2017-01-04\'^^xsd:date }";
+
+ @Before
+ public void init() throws Exception {
+ final Set<RyaURI> propertySet = new HashSet<RyaURI>(Arrays.asList(new RyaURI("http://createdBy"), new RyaURI("http://createdOn")));
+ conf.setUseStatementMetadata(true);
+ conf.setStatementMetadataProperties(propertySet);
+ }
+
+ @Test
+ public void simpleQueryWithoutBindingSet() throws Exception {
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+
+ RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement);
+
+ SPARQLParser parser = new SPARQLParser();
+ ParsedQuery pq = parser.parseQuery(query, null);
+ List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+
+ StatementMetadataNode<?> node = new StatementMetadataNode<>(spList, conf);
+ CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
+
+ QueryBindingSet bs = new QueryBindingSet();
+ bs.addBinding("x", new LiteralImpl("CoffeeShop"));
+ bs.addBinding("y", new LiteralImpl("Joe"));
+
+ List<BindingSet> bsList = new ArrayList<>();
+ while (iteration.hasNext()) {
+ bsList.add(iteration.next());
+ }
+
+ Assert.assertEquals(1, bsList.size());
+ Assert.assertEquals(bs, bsList.get(0));
+ dao.delete(statement, conf);
+ } finally {
+ dao.destroy();
+ }
+ }
+
+ /**
+ * Tests if results are filtered correctly using the metadata properties. In
+ * this case, the date for the ingested RyaStatement differs from the date
+ * specified in the query.
+ */
+ @Test
+ public void simpleQueryWithoutBindingSetInvalidProperty() throws Exception {
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+
+ StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Doug"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-02-15"));
+
+ RyaStatement statement = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement);
+
+ SPARQLParser parser = new SPARQLParser();
+ ParsedQuery pq = parser.parseQuery(query, null);
+ List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+ StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+ CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(new QueryBindingSet());
+
+ List<BindingSet> bsList = new ArrayList<>();
+ while (iteration.hasNext()) {
+ bsList.add(iteration.next());
+ }
+ Assert.assertEquals(0, bsList.size());
+ dao.delete(statement, conf);
+ } finally {
+ dao.destroy();
+ }
+ }
+
+ @Test
+ public void simpleQueryWithBindingSet() throws Exception {
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+
+ RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement1);
+ dao.add(statement2);
+
+ SPARQLParser parser = new SPARQLParser();
+ ParsedQuery pq = parser.parseQuery(query, null);
+ List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+ StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+
+ QueryBindingSet bsConstraint = new QueryBindingSet();
+ bsConstraint.addBinding("x", new LiteralImpl("CoffeeShop"));
+ bsConstraint.addBinding("z", new LiteralImpl("Virginia"));
+
+ CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
+
+ QueryBindingSet expected = new QueryBindingSet();
+ expected.addBinding("x", new LiteralImpl("CoffeeShop"));
+ expected.addBinding("y", new LiteralImpl("Joe"));
+ expected.addBinding("z", new LiteralImpl("Virginia"));
+
+ List<BindingSet> bsList = new ArrayList<>();
+ while (iteration.hasNext()) {
+ bsList.add(iteration.next());
+ }
+
+ Assert.assertEquals(1, bsList.size());
+ Assert.assertEquals(expected, bsList.get(0));
+
+ dao.delete(statement1, conf);
+ dao.delete(statement2, conf);
+ } finally {
+ dao.destroy();
+ }
+ }
+
+ /**
+ * Tests to see if correct result is passed back when a metadata statement
+ * is joined with a StatementPattern statement (i.e. a common variable
+ * appears in a StatementPattern statement and a metadata statement).
+ * StatementPattern statements have either rdf:subject, rdf:predicate, or
+ * rdf:object as the predicate while a metadata statement is any statement
+ * in the reified query whose predicate is not rdf:type and not a
+ * StatementPattern predicate.
+ */
+ @Test
+ public void simpleQueryWithBindingSetJoinPropertyToSubject() throws Exception {
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaURI("http://Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+
+ RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ RyaStatement statement2 = new RyaStatement(new RyaURI("http://Bob"), new RyaURI("http://worksAt"),
+ new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement1);
+ dao.add(statement2);
+
+ SPARQLParser parser = new SPARQLParser();
+ ParsedQuery pq = parser.parseQuery(query2, null);
+ List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+ StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+
+ List<BindingSet> bsCollection = new ArrayList<>();
+ QueryBindingSet bsConstraint1 = new QueryBindingSet();
+ bsConstraint1.addBinding("y", new LiteralImpl("CoffeeShop"));
+ bsConstraint1.addBinding("z", new LiteralImpl("Virginia"));
+
+ QueryBindingSet bsConstraint2 = new QueryBindingSet();
+ bsConstraint2.addBinding("y", new LiteralImpl("HardwareStore"));
+ bsConstraint2.addBinding("z", new LiteralImpl("Maryland"));
+ bsCollection.add(bsConstraint1);
+ bsCollection.add(bsConstraint2);
+
+ CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
+
+ QueryBindingSet expected = new QueryBindingSet();
+ expected.addBinding("y", new LiteralImpl("CoffeeShop"));
+ expected.addBinding("x", new URIImpl("http://Joe"));
+ expected.addBinding("z", new LiteralImpl("Virginia"));
+
+ List<BindingSet> bsList = new ArrayList<>();
+ while (iteration.hasNext()) {
+ bsList.add(iteration.next());
+ }
+
+ Assert.assertEquals(1, bsList.size());
+ Assert.assertEquals(expected, bsList.get(0));
+
+ dao.delete(statement1, conf);
+ dao.delete(statement2, conf);
+ } finally {
+ dao.destroy();
+ }
+ }
+
+ /**
+ * Tests if the StatementMetadataNode joins BindingSet correctly for
+ * variables appearing in metadata statements. In this case, the metadata
+ * statements are (_:blankNode <http://createdOn 2017-01-04 ) and
+ * (_:blankNode <http://createdBy> ?y). The variable ?y appears as the
+ * object in the above metadata statement and its values are joined to the
+ * constraint BindingSets in the example below.
+ */
+ @Test
+ public void simpleQueryWithBindingSetJoinOnProperty() throws Exception {
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+
+ RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement1);
+
+ SPARQLParser parser = new SPARQLParser();
+ ParsedQuery pq = parser.parseQuery(query, null);
+ List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+ StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+
+ QueryBindingSet bsConstraint = new QueryBindingSet();
+ bsConstraint.addBinding("x", new LiteralImpl("CoffeeShop"));
+ bsConstraint.addBinding("y", new LiteralImpl("Doug"));
+
+ CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsConstraint);
+
+ List<BindingSet> bsList = new ArrayList<>();
+ while (iteration.hasNext()) {
+ bsList.add(iteration.next());
+ }
+
+ Assert.assertEquals(0, bsList.size());
+ dao.delete(statement1, conf);
+ } finally {
+ dao.destroy();
+ }
+ }
+
+ /**
+ * Tests if StatementMetadataNode joins BindingSet values correctly for
+ * variables appearing as the object in one of the StatementPattern
+ * statements (in the case ?x appears as the Object in the statement
+ * _:blankNode rdf:object ?x). StatementPattern statements have either
+ * rdf:subject, rdf:predicate, or rdf:object as the predicate.
+ */
+ @Test
+ public void simpleQueryWithBindingSetCollection() throws Exception {
+ MongoDBRyaDAO dao = new MongoDBRyaDAO();
+ try {
+ dao.setConf(conf);
+ dao.init();
+ StatementMetadata metadata = new StatementMetadata();
+ metadata.addMetadata(new RyaURI("http://createdBy"), new RyaType("Joe"));
+ metadata.addMetadata(new RyaURI("http://createdOn"), new RyaType(XMLSchema.DATE, "2017-01-04"));
+
+ RyaStatement statement1 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("CoffeeShop"), new RyaURI("http://context"), "", metadata);
+ RyaStatement statement2 = new RyaStatement(new RyaURI("http://Joe"), new RyaURI("http://worksAt"),
+ new RyaType("HardwareStore"), new RyaURI("http://context"), "", metadata);
+ dao.add(statement1);
+ dao.add(statement2);
+
+ SPARQLParser parser = new SPARQLParser();
+ ParsedQuery pq = parser.parseQuery(query, null);
+ List<StatementPattern> spList = StatementPatternCollector.process(pq.getTupleExpr());
+ StatementMetadataNode<MongoDBRdfConfiguration> node = new StatementMetadataNode<>(spList, conf);
+
+ List<BindingSet> bsCollection = new ArrayList<>();
+ QueryBindingSet bsConstraint1 = new QueryBindingSet();
+ bsConstraint1.addBinding("x", new LiteralImpl("CoffeeShop"));
+ bsConstraint1.addBinding("z", new LiteralImpl("Virginia"));
+
+ QueryBindingSet bsConstraint2 = new QueryBindingSet();
+ bsConstraint2.addBinding("x", new LiteralImpl("HardwareStore"));
+ bsConstraint2.addBinding("z", new LiteralImpl("Maryland"));
+
+ QueryBindingSet bsConstraint3 = new QueryBindingSet();
+ bsConstraint3.addBinding("x", new LiteralImpl("BurgerShack"));
+ bsConstraint3.addBinding("z", new LiteralImpl("Delaware"));
+ bsCollection.add(bsConstraint1);
+ bsCollection.add(bsConstraint2);
+ bsCollection.add(bsConstraint3);
+
+ CloseableIteration<BindingSet, QueryEvaluationException> iteration = node.evaluate(bsCollection);
+
+ Set<BindingSet> expected = new HashSet<>();
+ QueryBindingSet expected1 = new QueryBindingSet();
+ expected1.addBinding("x", new LiteralImpl("CoffeeShop"));
+ expected1.addBinding("y", new LiteralImpl("Joe"));
+ expected1.addBinding("z", new LiteralImpl("Virginia"));
+
+ QueryBindingSet expected2 = new QueryBindingSet();
+ expected2.addBinding("x", new LiteralImpl("HardwareStore"));
+ expected2.addBinding("y", new LiteralImpl("Joe"));
+ expected2.addBinding("z", new LiteralImpl("Maryland"));
+ expected.add(expected1);
+ expected.add(expected2);
+
+ Set<BindingSet> bsSet = new HashSet<>();
+ while (iteration.hasNext()) {
+ bsSet.add(iteration.next());
+ }
+
+ Assert.assertEquals(expected, bsSet);
+
+ dao.delete(statement1, conf);
+ dao.delete(statement2, conf);
+ } finally {
+ dao.destroy();
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
----------------------------------------------------------------------
diff --git a/extras/indexingExample/src/main/java/MongoRyaDirectExample.java b/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
index 66d94db..addbd18 100644
--- a/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
+++ b/extras/indexingExample/src/main/java/MongoRyaDirectExample.java
@@ -57,9 +57,8 @@ import org.openrdf.repository.sail.SailRepository;
import org.openrdf.repository.sail.SailRepositoryConnection;
import org.openrdf.sail.Sail;
-import com.mongodb.MongoClient;
-
import de.flapdoodle.embed.mongo.config.IMongoConfig;
+import de.flapdoodle.embed.mongo.config.Net;
import info.aduna.iteration.Iterations;
@@ -295,12 +294,11 @@ public class MongoRyaDirectExample {
.setUseMockMongo(USE_MOCK).setUseInference(USE_INFER).setAuths("U");
if (USE_MOCK) {
- final EmbeddedMongoFactory factory = EmbeddedMongoFactory.newFactory();
- final MongoClient c = factory.newMongoClient();
+ final EmbeddedMongoFactory factory = EmbeddedMongoFactory.newFactory();
final IMongoConfig connectionConfig = factory.getMongoServerDetails();
- //c.close();
- builder.setMongoHost(connectionConfig.net().getServerAddress().getHostAddress())
- .setMongoPort(connectionConfig.net().getPort() + "");
+ Net net = connectionConfig.net();
+ builder.setMongoHost(net.getServerAddress().getHostAddress())
+ .setMongoPort(net.getPort() + "");
} else {
// User name and password must be filled in:
builder = builder.setMongoUser(MONGO_USER)
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.export/export.client/src/main/java/org/apache/rya/export/client/merge/StatementStoreFactory.java
----------------------------------------------------------------------
diff --git a/extras/rya.export/export.client/src/main/java/org/apache/rya/export/client/merge/StatementStoreFactory.java b/extras/rya.export/export.client/src/main/java/org/apache/rya/export/client/merge/StatementStoreFactory.java
index 2f7dca7..536ea60 100644
--- a/extras/rya.export/export.client/src/main/java/org/apache/rya/export/client/merge/StatementStoreFactory.java
+++ b/extras/rya.export/export.client/src/main/java/org/apache/rya/export/client/merge/StatementStoreFactory.java
@@ -20,7 +20,6 @@ package org.apache.rya.export.client.merge;
import static java.util.Objects.requireNonNull;
-import java.util.ArrayList;
import java.util.Date;
import org.apache.rya.accumulo.AccumuloRyaDAO;
@@ -123,7 +122,7 @@ public class StatementStoreFactory {
private MongoRyaStatementStore getBaseMongoStore(final String hostname, final int port, final String ryaInstanceName) throws RyaDAOException {
final MongoClient client = new MongoClient(hostname, port);
final MongoDBRyaDAO dao = new MongoDBRyaDAO();
- dao.setConf(new StatefulMongoDBRdfConfiguration(MergeConfigHadoopAdapter.getMongoConfiguration(configuration), client, new ArrayList<>()));
+ dao.setConf(new StatefulMongoDBRdfConfiguration(MergeConfigHadoopAdapter.getMongoConfiguration(configuration), client));
dao.init();
return new MongoRyaStatementStore(client, ryaInstanceName, dao);
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.export/export.integration/src/test/java/org/apache/rya/indexing/export/StoreToStoreIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.export/export.integration/src/test/java/org/apache/rya/indexing/export/StoreToStoreIT.java b/extras/rya.export/export.integration/src/test/java/org/apache/rya/indexing/export/StoreToStoreIT.java
index c982d21..9b6c0c0 100644
--- a/extras/rya.export/export.integration/src/test/java/org/apache/rya/indexing/export/StoreToStoreIT.java
+++ b/extras/rya.export/export.integration/src/test/java/org/apache/rya/indexing/export/StoreToStoreIT.java
@@ -67,7 +67,7 @@ public class StoreToStoreIT extends ITBase {
private static TimestampPolicyMongoRyaStatementStore getParentMongo() throws Exception {
final MongoClient mongo = getNewMongoResources(RYA_INSTANCE);
final MongoDBRyaDAO dao = new MongoDBRyaDAO();
- dao.setConf(new StatefulMongoDBRdfConfiguration(ITBase.getConf(mongo), mongo, new ArrayList<>()));
+ dao.setConf(new StatefulMongoDBRdfConfiguration(ITBase.getConf(mongo), mongo));
dao.init();
final MongoRyaStatementStore store = new MongoRyaStatementStore(mongo, RYA_INSTANCE, dao);
final TimestampPolicyMongoRyaStatementStore timeStore = new TimestampPolicyMongoRyaStatementStore(store, currentDate, RYA_INSTANCE);
@@ -78,7 +78,7 @@ public class StoreToStoreIT extends ITBase {
private static MongoRyaStatementStore getChildMongo() throws Exception {
final MongoClient mongo = getNewMongoResources(RYA_INSTANCE);
final MongoDBRyaDAO dao = new MongoDBRyaDAO();
- dao.setConf(new StatefulMongoDBRdfConfiguration(ITBase.getConf(mongo), mongo, new ArrayList<>()));
+ dao.setConf(new StatefulMongoDBRdfConfiguration(ITBase.getConf(mongo), mongo));
dao.init();
final MongoRyaStatementStore store = new MongoRyaStatementStore(mongo, RYA_INSTANCE, dao);
clients.add(mongo);
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoEnabledFilterFunctionOptimizer.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoEnabledFilterFunctionOptimizer.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoEnabledFilterFunctionOptimizer.java
index eee7310..a425ce4 100644
--- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoEnabledFilterFunctionOptimizer.java
+++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoEnabledFilterFunctionOptimizer.java
@@ -91,35 +91,35 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config
this.conf = conf;
//reset the init.
init = false;
- init();
+ init();
}
/**
* Load instances of the selected indexers. This is tricky because some (geomesa vs geowave) have incompatible dependencies (geotools versions).
*/
private synchronized void init() {
if (!init) {
- if (ConfigUtils.getUseMongo(conf)) {
- // create a new MongoGeoIndexer() without having it at compile time.
- StatefulMongoDBRdfConfiguration stateConf = (StatefulMongoDBRdfConfiguration) conf;
- for(final MongoSecondaryIndex indexer : stateConf.getAdditionalIndexers()) {
- if(indexer instanceof FreeTextIndexer) {
- freeTextIndexer = (FreeTextIndexer) indexer;
- } else if(indexer instanceof TemporalIndexer) {
- temporalIndexer = (TemporalIndexer) indexer;
- } else if(indexer instanceof GeoIndexer) {
- geoIndexer = (GeoIndexer) indexer;
- }
- }
- } else {
- GeoIndexerType geoIndexerType = OptionalConfigUtils.getGeoIndexerType(conf);
- if (geoIndexerType == GeoIndexerType.UNSPECIFIED) {
- geoIndexer = instantiate(GeoIndexerType.GEO_MESA.getGeoIndexerClassString(), GeoIndexer.class);
- } else {
- geoIndexer = instantiate(geoIndexerType.getGeoIndexerClassString(), GeoIndexer.class);
- }
- geoIndexer.setConf(conf);
- freeTextIndexer = new AccumuloFreeTextIndexer();
- freeTextIndexer.setConf(conf);
+ if (ConfigUtils.getUseMongo(conf)) {
+ // create a new MongoGeoIndexer() without having it at compile time.
+ StatefulMongoDBRdfConfiguration stateConf = (StatefulMongoDBRdfConfiguration) conf;
+ for(final MongoSecondaryIndex indexer : stateConf.getAdditionalIndexers()) {
+ if(indexer instanceof FreeTextIndexer) {
+ freeTextIndexer = (FreeTextIndexer) indexer;
+ } else if(indexer instanceof TemporalIndexer) {
+ temporalIndexer = (TemporalIndexer) indexer;
+ } else if(indexer instanceof GeoIndexer) {
+ geoIndexer = (GeoIndexer) indexer;
+ }
+ }
+ } else {
+ GeoIndexerType geoIndexerType = OptionalConfigUtils.getGeoIndexerType(conf);
+ if (geoIndexerType == GeoIndexerType.UNSPECIFIED) {
+ geoIndexer = instantiate(GeoIndexerType.GEO_MESA.getGeoIndexerClassString(), GeoIndexer.class);
+ } else {
+ geoIndexer = instantiate(geoIndexerType.getGeoIndexerClassString(), GeoIndexer.class);
+ }
+ geoIndexer.setConf(conf);
+ freeTextIndexer = new AccumuloFreeTextIndexer();
+ freeTextIndexer.setConf(conf);
temporalIndexer = new AccumuloTemporalIndexer();
temporalIndexer.setConf(conf);
}
@@ -127,10 +127,10 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config
}
}
-
+
@Override
public void optimize(final TupleExpr tupleExpr, final Dataset dataset, final BindingSet bindings) {
- // find variables used in property and resource based searches:
+ // find variables used in property and resource based searches:
final SearchVarVisitor searchVars = new SearchVarVisitor();
tupleExpr.visit(searchVars);
// rewrites for property searches:
@@ -148,8 +148,8 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config
try{
return type.cast(Class.forName(className).newInstance());
} catch(InstantiationException
- | IllegalAccessException
- | ClassNotFoundException e){
+ | IllegalAccessException
+ | ClassNotFoundException e){
throw new IllegalStateException(e);
}
}
@@ -191,7 +191,7 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config
//find vars contained in filters
private static class SearchVarVisitor extends QueryModelVisitorBase<RuntimeException> {
- private final Collection<Var> searchProperties = new ArrayList<Var>();
+ private final Collection<Var> searchProperties = new ArrayList<>();
@Override
public void meet(final FunctionCall fn) {
@@ -206,8 +206,8 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config
//find StatementPatterns containing filter variables
private static class MatchStatementVisitor extends QueryModelVisitorBase<RuntimeException> {
private final Collection<Var> propertyVars;
- private final Collection<Var> usedVars = new ArrayList<Var>();
- private final List<StatementPattern> matchStatements = new ArrayList<StatementPattern>();
+ private final Collection<Var> usedVars = new ArrayList<>();
+ private final List<StatementPattern> matchStatements = new ArrayList<>();
public MatchStatementVisitor(final Collection<Var> propertyVars) {
this.propertyVars = propertyVars;
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoRyaSailFactory.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoRyaSailFactory.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoRyaSailFactory.java
index ae6af10..c53fea1 100644
--- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoRyaSailFactory.java
+++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoRyaSailFactory.java
@@ -86,29 +86,28 @@ public class GeoRyaSailFactory {
Objects.requireNonNull(ryaInstance, "RyaInstance or table prefix is missing from configuration."+RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX);
if(ConfigUtils.getUseMongo(config)) {
- // Get a reference to a Mongo DB configuration object.
+ // Get a reference to a Mongo DB configuration object.
final MongoDBRdfConfiguration mongoConfig = (config instanceof MongoDBRdfConfiguration) ?
(MongoDBRdfConfiguration)config : new MongoDBRdfConfiguration(config);
// Create the MongoClient that will be used by the Sail object's components.
final MongoClient client = createMongoClient(mongoConfig);
-
+
// Add the Indexer and Optimizer names to the configuration object that are configured to be used.
OptionalConfigUtils.setIndexers(mongoConfig);
-
- // Initialize the indexer and optimizer objects that will be used within the Sail object.
- final List<MongoSecondaryIndex> indexers = mongoConfig.getInstances(AccumuloRdfConfiguration.CONF_ADDITIONAL_INDEXERS, MongoSecondaryIndex.class);
// Populate the configuration using previously stored Rya Details if this instance uses them.
try {
- final MongoRyaInstanceDetailsRepository ryaDetailsRepo = new MongoRyaInstanceDetailsRepository(client, mongoConfig.getRyaInstance());
+ final MongoRyaInstanceDetailsRepository ryaDetailsRepo = new MongoRyaInstanceDetailsRepository(client, mongoConfig.getRyaInstanceName());
RyaDetailsToConfiguration.addRyaDetailsToConfiguration(ryaDetailsRepo.getRyaInstanceDetails(), mongoConfig);
} catch (final RyaDetailsRepositoryException e) {
LOG.info("Instance does not have a rya details collection, skipping.");
}
// Set the configuration to the stateful configuration that is used to pass the constructed objects around.
- final StatefulMongoDBRdfConfiguration statefulConfig = new StatefulMongoDBRdfConfiguration(mongoConfig, client, indexers);
+ final StatefulMongoDBRdfConfiguration statefulConfig = new StatefulMongoDBRdfConfiguration(mongoConfig, client);
+ final List<MongoSecondaryIndex> indexers = statefulConfig.getInstances(AccumuloRdfConfiguration.CONF_ADDITIONAL_INDEXERS, MongoSecondaryIndex.class);
+ statefulConfig.setIndexers(indexers);
rdfConfig = statefulConfig;
// Create the DAO that is able to interact with MongoDB.
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.geoindexing/geo.mongo/pom.xml
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/pom.xml b/extras/rya.geoindexing/geo.mongo/pom.xml
index 261f061..154fd4e 100644
--- a/extras/rya.geoindexing/geo.mongo/pom.xml
+++ b/extras/rya.geoindexing/geo.mongo/pom.xml
@@ -46,8 +46,8 @@
<dependency>
<groupId>org.apache.rya</groupId>
<artifactId>mongodb.rya</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
+ <type>test-jar</type>
+ <scope>test</scope>
</dependency>
</dependencies>
</project>
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexer.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexer.java b/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexer.java
index 62a2181..ce6d653 100644
--- a/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexer.java
+++ b/extras/rya.geoindexing/geo.mongo/src/main/java/org/apache/rya/indexing/geotemporal/mongo/MongoGeoTemporalIndexer.java
@@ -92,9 +92,9 @@ public class MongoGeoTemporalIndexer extends AbstractMongoIndexer<GeoTemporalMon
@Override
public void setConf(final Configuration conf) {
requireNonNull(conf);
- checkArgument(conf instanceof StatefulMongoDBRdfConfiguration,
- "The configuration must be of type StatefulMongoDBRdfConfiguration but you provided: "
- + conf.getClass().getSimpleName());
+ checkArgument(conf instanceof StatefulMongoDBRdfConfiguration,
+ "The configuration must be of type StatefulMongoDBRdfConfiguration but you provided: "
+ + conf.getClass().getSimpleName());
super.conf = (StatefulMongoDBRdfConfiguration) conf;
}
@@ -214,7 +214,7 @@ public class MongoGeoTemporalIndexer extends AbstractMongoIndexer<GeoTemporalMon
return events.get();
}
- events.set(new MongoEventStorage(conf.getMongoClient(), conf.getRyaInstance()));
+ events.set(new MongoEventStorage(conf.getMongoClient(), conf.getRyaInstanceName()));
return events.get();
}
}
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/157c0649/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
----------------------------------------------------------------------
diff --git a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
index cff0996..9c28bf0 100644
--- a/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
+++ b/extras/rya.geoindexing/geo.mongo/src/test/java/org/apache/rya/indexing/geotemporal/MongoGeoTemporalIndexIT.java
@@ -51,135 +51,130 @@ import org.openrdf.repository.sail.SailRepositoryConnection;
import org.openrdf.sail.Sail;
public class MongoGeoTemporalIndexIT extends MongoTestBase {
- private static final String URI_PROPERTY_AT_TIME = "Property:atTime";
-
- private static final ValueFactory VF = ValueFactoryImpl.getInstance();
- @Override
- public void updateConfiguration(final MongoDBRdfConfiguration conf) {
- // mongoClient = super.getMongoClient();
- // conf = new MongoDBRdfConfiguration();
- // conf.set(MongoDBRdfConfiguration.MONGO_DB_NAME, MongoGeoTemporalIndexIT.class.getSimpleName() + "_" + COUNTER.getAndIncrement());
- // conf.set(MongoDBRdfConfiguration.MONGO_COLLECTION_PREFIX, "rya");
- // conf.set(RdfCloudTripleStoreConfiguration.CONF_TBL_PREFIX, "rya");
- // conf.setBoolean(ConfigUtils.USE_MONGO, true);
- conf.setBoolean(OptionalConfigUtils.USE_GEOTEMPORAL, true);
-
- // conn = new SailRepository(sail).getConnection();
- // conn.begin();
-
- }
-
- @Test
- public void ensureInEventStore_Test() throws Exception {
- final Sail sail = GeoRyaSailFactory.getInstance(conf);
- final SailRepository repo = new SailRepository(sail);
- try(final MongoGeoTemporalIndexer indexer = new MongoGeoTemporalIndexer()) {
- indexer.setConf(conf);
- indexer.init();
-
- addStatements(repo.getConnection());
- final EventStorage events = indexer.getEventStorage();
- final RyaURI subject = new RyaURI("urn:event1");
- final Optional<Event> event = events.get(subject);
- assertTrue(event.isPresent());
- } finally {
- sail.shutDown();
- }
- }
-
- @Test
- public void constantSubjQuery_Test() throws Exception {
- final Sail sail = GeoRyaSailFactory.getInstance(conf);
- final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
-
- try {
- final String query =
- "PREFIX time: <http://www.w3.org/2006/time#> \n"
- + "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n"
- + "PREFIX geo: <http://www.opengis.net/ont/geosparql#>"
- + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>"
- + "SELECT * "
- + "WHERE { "
- + " <urn:event1> time:atTime ?time . "
- + " <urn:event1> geo:asWKT ?point . "
- + " FILTER(geof:sfWithin(?point, \"POLYGON((-3 -2, -3 2, 1 2, 1 -2, -3 -2))\"^^geo:wktLiteral)) "
- + " FILTER(tempo:equals(?time, \"2015-12-30T12:00:00Z\")) "
- + "}";
-
- final TupleQueryResult rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
- final Set<BindingSet> results = new HashSet<>();
- while(rez.hasNext()) {
- final BindingSet bs = rez.next();
- results.add(bs);
- }
- final MapBindingSet expected = new MapBindingSet();
- expected.addBinding("point", VF.createLiteral("POINT (0 0)"));
- expected.addBinding("time", VF.createLiteral("2015-12-30T12:00:00Z"));
-
- assertEquals(1, results.size());
- assertEquals(expected, results.iterator().next());
- } finally {
- conn.close();
- sail.shutDown();
- }
- }
-
- @Test
- public void variableSubjQuery_Test() throws Exception {
- final Sail sail = GeoRyaSailFactory.getInstance(conf);
- final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
-
- try {
- final String query =
- "PREFIX time: <http://www.w3.org/2006/time#> \n"
- + "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n"
- + "PREFIX geo: <http://www.opengis.net/ont/geosparql#>"
- + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>"
- + "SELECT * "
- + "WHERE { "
- + " ?subj time:atTime ?time . "
- + " ?subj geo:asWKT ?point . "
- + " FILTER(geof:sfWithin(?point, \"POLYGON((-3 -2, -3 2, 1 2, 1 -2, -3 -2))\"^^geo:wktLiteral)) "
- + " FILTER(tempo:equals(?time, \"2015-12-30T12:00:00Z\")) "
- + "}";
-
- final TupleQueryResult rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
- final List<BindingSet> results = new ArrayList<>();
- while(rez.hasNext()) {
- final BindingSet bs = rez.next();
- results.add(bs);
- }
- final MapBindingSet expected1 = new MapBindingSet();
- expected1.addBinding("point", VF.createLiteral("POINT (0 0)"));
- expected1.addBinding("time", VF.createLiteral("2015-12-30T12:00:00Z"));
-
- final MapBindingSet expected2 = new MapBindingSet();
- expected2.addBinding("point", VF.createLiteral("POINT (1 1)"));
- expected2.addBinding("time", VF.createLiteral("2015-12-30T12:00:00Z"));
-
- assertEquals(2, results.size());
- assertEquals(expected1, results.get(0));
- assertEquals(expected2, results.get(1));
- } finally {
- conn.close();
- sail.shutDown();
- }
- }
-
- private void addStatements(final SailRepositoryConnection conn) throws Exception {
- URI subject = VF.createURI("urn:event1");
- final URI predicate = VF.createURI(URI_PROPERTY_AT_TIME);
- Value object = VF.createLiteral(new TemporalInstantRfc3339(2015, 12, 30, 12, 00, 0).toString());
- conn.add(VF.createStatement(subject, predicate, object));
-
- object = VF.createLiteral("Point(0 0)", GeoConstants.XMLSCHEMA_OGC_WKT);
- conn.add(VF.createStatement(subject, GeoConstants.GEO_AS_WKT, object));
-
- subject = VF.createURI("urn:event2");
- object = VF.createLiteral(new TemporalInstantRfc3339(2015, 12, 30, 12, 00, 0).toString());
- conn.add(VF.createStatement(subject, predicate, object));
-
- object = VF.createLiteral("Point(1 1)", GeoConstants.XMLSCHEMA_OGC_WKT);
- conn.add(VF.createStatement(subject, GeoConstants.GEO_AS_WKT, object));
- }
+ private static final String URI_PROPERTY_AT_TIME = "Property:atTime";
+
+ private static final ValueFactory VF = ValueFactoryImpl.getInstance();
+
+ @Override
+ public void updateConfiguration(final MongoDBRdfConfiguration conf) {
+ conf.setBoolean(OptionalConfigUtils.USE_GEOTEMPORAL, true);
+ }
+
+ @Test
+ public void ensureInEventStore_Test() throws Exception {
+ final Sail sail = GeoRyaSailFactory.getInstance(conf);
+ final SailRepository repo = new SailRepository(sail);
+ try(final MongoGeoTemporalIndexer indexer = new MongoGeoTemporalIndexer()) {
+ indexer.setConf(conf);
+ indexer.init();
+
+ addStatements(repo.getConnection());
+ final EventStorage events = indexer.getEventStorage();
+ final RyaURI subject = new RyaURI("urn:event1");
+ final Optional<Event> event = events.get(subject);
+ assertTrue(event.isPresent());
+ } finally {
+ sail.shutDown();
+ }
+ }
+
+ @Test
+ public void constantSubjQuery_Test() throws Exception {
+ final Sail sail = GeoRyaSailFactory.getInstance(conf);
+ final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+
+ try {
+ addStatements(conn);
+
+ final String query =
+ "PREFIX time: <http://www.w3.org/2006/time#> \n"
+ + "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n"
+ + "PREFIX geo: <http://www.opengis.net/ont/geosparql#>"
+ + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>"
+ + "SELECT * "
+ + "WHERE { "
+ + " <urn:event1> time:atTime ?time . "
+ + " <urn:event1> geo:asWKT ?point . "
+ + " FILTER(geof:sfWithin(?point, \"POLYGON((-3 -2, -3 2, 1 2, 1 -2, -3 -2))\"^^geo:wktLiteral)) "
+ + " FILTER(tempo:equals(?time, \"2015-12-30T12:00:00Z\")) "
+ + "}";
+
+ final TupleQueryResult rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
+ final Set<BindingSet> results = new HashSet<>();
+ while(rez.hasNext()) {
+ final BindingSet bs = rez.next();
+ results.add(bs);
+ }
+ final MapBindingSet expected = new MapBindingSet();
+ expected.addBinding("point", VF.createLiteral("POINT (0 0)"));
+ expected.addBinding("time", VF.createLiteral("2015-12-30T12:00:00Z"));
+
+ assertEquals(1, results.size());
+ assertEquals(expected, results.iterator().next());
+ } finally {
+ conn.close();
+ sail.shutDown();
+ }
+ }
+
+ @Test
+ public void variableSubjQuery_Test() throws Exception {
+ final Sail sail = GeoRyaSailFactory.getInstance(conf);
+ final SailRepositoryConnection conn = new SailRepository(sail).getConnection();
+
+ try {
+ addStatements(conn);
+
+ final String query =
+ "PREFIX time: <http://www.w3.org/2006/time#> \n"
+ + "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n"
+ + "PREFIX geo: <http://www.opengis.net/ont/geosparql#>"
+ + "PREFIX geof: <http://www.opengis.net/def/function/geosparql/>"
+ + "SELECT * "
+ + "WHERE { "
+ + " ?subj time:atTime ?time . "
+ + " ?subj geo:asWKT ?point . "
+ + " FILTER(geof:sfWithin(?point, \"POLYGON((-3 -2, -3 2, 1 2, 1 -2, -3 -2))\"^^geo:wktLiteral)) "
+ + " FILTER(tempo:equals(?time, \"2015-12-30T12:00:00Z\")) "
+ + "}";
+
+ final TupleQueryResult rez = conn.prepareTupleQuery(QueryLanguage.SPARQL, query).evaluate();
+ final List<BindingSet> results = new ArrayList<>();
+ while(rez.hasNext()) {
+ final BindingSet bs = rez.next();
+ results.add(bs);
+ }
+ final MapBindingSet expected1 = new MapBindingSet();
+ expected1.addBinding("point", VF.createLiteral("POINT (0 0)"));
+ expected1.addBinding("time", VF.createLiteral("2015-12-30T12:00:00Z"));
+
+ final MapBindingSet expected2 = new MapBindingSet();
+ expected2.addBinding("point", VF.createLiteral("POINT (1 1)"));
+ expected2.addBinding("time", VF.createLiteral("2015-12-30T12:00:00Z"));
+
+ assertEquals(2, results.size());
+ assertEquals(expected1, results.get(0));
+ assertEquals(expected2, results.get(1));
+ } finally {
+ conn.close();
+ sail.shutDown();
+ }
+ }
+
+ private void addStatements(final SailRepositoryConnection conn) throws Exception {
+ URI subject = VF.createURI("urn:event1");
+ final URI predicate = VF.createURI(URI_PROPERTY_AT_TIME);
+ Value object = VF.createLiteral(new TemporalInstantRfc3339(2015, 12, 30, 12, 00, 0).toString());
+ conn.add(VF.createStatement(subject, predicate, object));
+
+ object = VF.createLiteral("Point(0 0)", GeoConstants.XMLSCHEMA_OGC_WKT);
+ conn.add(VF.createStatement(subject, GeoConstants.GEO_AS_WKT, object));
+
+ subject = VF.createURI("urn:event2");
+ object = VF.createLiteral(new TemporalInstantRfc3339(2015, 12, 30, 12, 00, 0).toString());
+ conn.add(VF.createStatement(subject, predicate, object));
+
+ object = VF.createLiteral("Point(1 1)", GeoConstants.XMLSCHEMA_OGC_WKT);
+ conn.add(VF.createStatement(subject, GeoConstants.GEO_AS_WKT, object));
+ }
}