http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/AntecedentVisitor.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/AntecedentVisitor.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/AntecedentVisitor.java index 1f2cbba..766b001 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/AntecedentVisitor.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/AntecedentVisitor.java @@ -21,8 +21,8 @@ package org.apache.rya.forwardchain.rule; import java.util.HashSet; import java.util.Set; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor; /** * Query visitor that identifies all triple patterns represented as @@ -33,7 +33,7 @@ import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; * This means relying on this analysis to determine whether a fact can be part * of a solution can yield false positives, but not false negatives. */ -class AntecedentVisitor extends QueryModelVisitorBase<RuntimeException> { +class AntecedentVisitor extends AbstractQueryModelVisitor<RuntimeException> { private Set<StatementPattern> antecedentStatementPatterns = new HashSet<>(); /**
http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitor.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitor.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitor.java index e28dbe3..cd002da 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitor.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitor.java @@ -25,18 +25,18 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import org.openrdf.model.Value; -import org.openrdf.query.algebra.BNodeGenerator; -import org.openrdf.query.algebra.Extension; -import org.openrdf.query.algebra.ExtensionElem; -import org.openrdf.query.algebra.MultiProjection; -import org.openrdf.query.algebra.Projection; -import org.openrdf.query.algebra.ProjectionElem; -import org.openrdf.query.algebra.ProjectionElemList; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.ValueConstant; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.query.algebra.BNodeGenerator; +import org.eclipse.rdf4j.query.algebra.Extension; +import org.eclipse.rdf4j.query.algebra.ExtensionElem; +import org.eclipse.rdf4j.query.algebra.MultiProjection; +import org.eclipse.rdf4j.query.algebra.Projection; +import org.eclipse.rdf4j.query.algebra.ProjectionElem; +import org.eclipse.rdf4j.query.algebra.ProjectionElemList; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.ValueConstant; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor; /** * Query visitor that identifies all triple patterns produced by a "CONSTRUCT" @@ -53,7 +53,7 @@ import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; * this analysis may produce an overly broad set of possible consequents * compared to some more sophisticated method. */ -public class ConstructConsequentVisitor extends QueryModelVisitorBase<RuntimeException> { +public class ConstructConsequentVisitor extends AbstractQueryModelVisitor<RuntimeException> { private Set<StatementPattern> consequentStatementPatterns = new HashSet<>(); private static final String SUBJECT_VAR_NAME = "subject"; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Rule.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Rule.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Rule.java index 74004b9..89e3bc7 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Rule.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Rule.java @@ -23,7 +23,7 @@ import java.util.Collection; import org.apache.rya.api.domain.StatementMetadata; import org.apache.rya.forwardchain.ForwardChainException; import org.apache.rya.forwardchain.strategy.AbstractRuleExecutionStrategy; -import org.openrdf.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.StatementPattern; /** * Represents a forward-chaining inference rule. A rule is triggered by some http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Ruleset.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Ruleset.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Ruleset.java index 965d2d3..484fc8a 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Ruleset.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/Ruleset.java @@ -25,7 +25,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import org.apache.log4j.Logger; -import org.openrdf.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.StatementPattern; import com.google.common.base.Preconditions; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/SpinConstructRule.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/SpinConstructRule.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/SpinConstructRule.java index 44e15e6..114d88e 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/SpinConstructRule.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/rule/SpinConstructRule.java @@ -26,42 +26,43 @@ import java.util.concurrent.ConcurrentHashMap; import org.apache.log4j.Logger; import org.apache.rya.api.RdfCloudTripleStoreConfiguration; import org.apache.rya.api.domain.StatementMetadata; +import org.apache.rya.api.domain.VarNameUtils; import org.apache.rya.api.resolver.RdfToRyaConversions; import org.apache.rya.forwardchain.ForwardChainConstants; import org.apache.rya.forwardchain.ForwardChainException; import org.apache.rya.forwardchain.strategy.AbstractRuleExecutionStrategy; import org.apache.rya.sail.config.RyaSailFactory; -import org.openrdf.model.Literal; -import org.openrdf.model.Resource; -import org.openrdf.model.Value; -import org.openrdf.model.vocabulary.OWL; -import org.openrdf.model.vocabulary.RDF; -import org.openrdf.model.vocabulary.RDFS; -import org.openrdf.model.vocabulary.SP; -import org.openrdf.model.vocabulary.SPIN; -import org.openrdf.query.BindingSet; -import org.openrdf.query.MalformedQueryException; -import org.openrdf.query.QueryEvaluationException; -import org.openrdf.query.QueryLanguage; -import org.openrdf.query.TupleQuery; -import org.openrdf.query.TupleQueryResultHandlerBase; -import org.openrdf.query.TupleQueryResultHandlerException; -import org.openrdf.query.algebra.Extension; -import org.openrdf.query.algebra.Join; -import org.openrdf.query.algebra.QueryModelNode; -import org.openrdf.query.algebra.SingletonSet; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.TupleExpr; -import org.openrdf.query.algebra.UnaryTupleOperator; -import org.openrdf.query.algebra.ValueExpr; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; -import org.openrdf.query.parser.ParsedGraphQuery; -import org.openrdf.query.parser.ParsedQuery; -import org.openrdf.query.parser.sparql.SPARQLParser; -import org.openrdf.repository.RepositoryException; -import org.openrdf.repository.sail.SailRepository; -import org.openrdf.repository.sail.SailRepositoryConnection; +import org.eclipse.rdf4j.model.Literal; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.vocabulary.OWL; +import org.eclipse.rdf4j.model.vocabulary.RDF; +import org.eclipse.rdf4j.model.vocabulary.RDFS; +import org.eclipse.rdf4j.model.vocabulary.SP; +import org.eclipse.rdf4j.model.vocabulary.SPIN; +import org.eclipse.rdf4j.query.AbstractTupleQueryResultHandler; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.MalformedQueryException; +import org.eclipse.rdf4j.query.QueryEvaluationException; +import org.eclipse.rdf4j.query.QueryLanguage; +import org.eclipse.rdf4j.query.TupleQuery; +import org.eclipse.rdf4j.query.TupleQueryResultHandlerException; +import org.eclipse.rdf4j.query.algebra.Extension; +import org.eclipse.rdf4j.query.algebra.Join; +import org.eclipse.rdf4j.query.algebra.QueryModelNode; +import org.eclipse.rdf4j.query.algebra.SingletonSet; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.TupleExpr; +import org.eclipse.rdf4j.query.algebra.UnaryTupleOperator; +import org.eclipse.rdf4j.query.algebra.ValueExpr; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor; +import org.eclipse.rdf4j.query.parser.ParsedGraphQuery; +import org.eclipse.rdf4j.query.parser.ParsedQuery; +import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser; +import org.eclipse.rdf4j.repository.RepositoryException; +import org.eclipse.rdf4j.repository.sail.SailRepository; +import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection; import com.google.common.base.Preconditions; import com.google.common.collect.Sets; @@ -176,8 +177,8 @@ public class SpinConstructRule extends AbstractConstructRule { return var == null ? null : var.getValue(); } - private static class TypeRequirementVisitor extends QueryModelVisitorBase<RuntimeException> { - private static final Var RDF_TYPE_VAR = new Var("-const-" + RDF.TYPE.stringValue(), RDF.TYPE); + private static class TypeRequirementVisitor extends AbstractQueryModelVisitor<RuntimeException> { + private static final Var RDF_TYPE_VAR = VarNameUtils.createUniqueConstVar(RDF.TYPE); private static final Set<Resource> BASE_TYPES = Sets.newHashSet(RDFS.RESOURCE, OWL.THING); static { RDF_TYPE_VAR.setConstant(true); @@ -186,7 +187,7 @@ public class SpinConstructRule extends AbstractConstructRule { private final String varName; private final StatementPattern typeRequirement; public TypeRequirementVisitor(String varName, Resource requiredType) { - final Var typeVar = new Var("-const-" + requiredType.stringValue(), requiredType); + final Var typeVar = VarNameUtils.createUniqueConstVar(requiredType); typeVar.setConstant(true); this.varName = varName; if (BASE_TYPES.contains(requiredType)) { @@ -285,7 +286,7 @@ public class SpinConstructRule extends AbstractConstructRule { try { conn = repository.getConnection(); TupleQuery ruleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, ruleQueryString); - ruleQuery.evaluate(new TupleQueryResultHandlerBase() { + ruleQuery.evaluate(new AbstractTupleQueryResultHandler() { @Override public void handleSolution(BindingSet bs) throws TupleQueryResultHandlerException { // For each rule identifier found, instantiate a SpinRule http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/MongoPipelineStrategy.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/MongoPipelineStrategy.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/MongoPipelineStrategy.java index c095122..95ad841 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/MongoPipelineStrategy.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/MongoPipelineStrategy.java @@ -46,8 +46,8 @@ import org.apache.rya.mongodb.dao.SimpleMongoDBStorageStrategy; import org.apache.rya.sail.config.RyaSailFactory; import org.bson.Document; import org.bson.conversions.Bson; -import org.openrdf.query.algebra.QueryRoot; -import org.openrdf.query.algebra.TupleExpr; +import org.eclipse.rdf4j.query.algebra.QueryRoot; +import org.eclipse.rdf4j.query.algebra.TupleExpr; import com.google.common.base.Preconditions; import com.mongodb.Block; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/RoundRobinStrategy.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/RoundRobinStrategy.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/RoundRobinStrategy.java index eb044fc..9d54f93 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/RoundRobinStrategy.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/RoundRobinStrategy.java @@ -32,7 +32,7 @@ import org.apache.rya.forwardchain.ForwardChainConstants; import org.apache.rya.forwardchain.ForwardChainException; import org.apache.rya.forwardchain.rule.Rule; import org.apache.rya.forwardchain.rule.Ruleset; -import org.openrdf.model.vocabulary.XMLSchema; +import org.eclipse.rdf4j.model.vocabulary.XMLSchema; import com.google.common.base.Preconditions; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/SailExecutionStrategy.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/SailExecutionStrategy.java b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/SailExecutionStrategy.java index d09c50c..86e04eb 100644 --- a/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/SailExecutionStrategy.java +++ b/extras/rya.forwardchain/src/main/java/org/apache/rya/forwardchain/strategy/SailExecutionStrategy.java @@ -36,16 +36,16 @@ import org.apache.rya.indexing.accumulo.ConfigUtils; import org.apache.rya.mongodb.MongoDBRdfConfiguration; import org.apache.rya.sail.config.RyaSailFactory; import org.calrissian.mango.collect.CloseableIterable; -import org.openrdf.model.Statement; -import org.openrdf.query.GraphQuery; -import org.openrdf.query.QueryEvaluationException; -import org.openrdf.query.parser.ParsedGraphQuery; -import org.openrdf.repository.RepositoryException; -import org.openrdf.repository.sail.SailGraphQuery; -import org.openrdf.repository.sail.SailRepository; -import org.openrdf.repository.sail.SailRepositoryConnection; -import org.openrdf.rio.RDFHandlerException; -import org.openrdf.rio.helpers.RDFHandlerBase; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.query.GraphQuery; +import org.eclipse.rdf4j.query.QueryEvaluationException; +import org.eclipse.rdf4j.query.parser.ParsedGraphQuery; +import org.eclipse.rdf4j.repository.RepositoryException; +import org.eclipse.rdf4j.repository.sail.SailGraphQuery; +import org.eclipse.rdf4j.repository.sail.SailRepository; +import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection; +import org.eclipse.rdf4j.rio.RDFHandlerException; +import org.eclipse.rdf4j.rio.helpers.AbstractRDFHandler; import com.google.common.base.Preconditions; @@ -186,7 +186,7 @@ public class SailExecutionStrategy extends AbstractRuleExecutionStrategy { } } - private static class InferredStatementHandler<T extends RdfCloudTripleStoreConfiguration> extends RDFHandlerBase { + private static class InferredStatementHandler<T extends RdfCloudTripleStoreConfiguration> extends AbstractRDFHandler { private RyaDAO<T> dao; private RyaQueryEngine<T> engine; private long numStatementsAdded = 0; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java index c70a025..72fb085 100644 --- a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java +++ b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/batch/MongoSpinIT.java @@ -20,6 +20,7 @@ package org.apache.rya.forwardchain.batch; import java.io.BufferedReader; import java.io.InputStream; +import java.io.InputStreamReader; import java.net.URL; import java.util.Arrays; import java.util.HashSet; @@ -34,29 +35,30 @@ import org.apache.rya.indexing.mongodb.MongoIndexingConfiguration.MongoDBIndexin import org.apache.rya.mongodb.EmbeddedMongoFactory; import org.apache.rya.mongodb.MongoDBRdfConfiguration; import org.apache.rya.sail.config.RyaSailFactory; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.QueryLanguage; +import org.eclipse.rdf4j.query.TupleQuery; +import org.eclipse.rdf4j.query.TupleQueryResult; +import org.eclipse.rdf4j.query.impl.ListBindingSet; +import org.eclipse.rdf4j.repository.RepositoryException; +import org.eclipse.rdf4j.repository.sail.SailRepository; +import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection; +import org.eclipse.rdf4j.rio.RDFFormat; +import org.eclipse.rdf4j.rio.Rio; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.openrdf.model.ValueFactory; -import org.openrdf.model.impl.ValueFactoryImpl; -import org.openrdf.query.BindingSet; -import org.openrdf.query.QueryLanguage; -import org.openrdf.query.TupleQuery; -import org.openrdf.query.TupleQueryResult; -import org.openrdf.query.impl.ListBindingSet; -import org.openrdf.repository.RepositoryException; -import org.openrdf.repository.sail.SailRepository; -import org.openrdf.repository.sail.SailRepositoryConnection; -import org.openrdf.rio.RDFFormat; -import org.openrdf.rio.Rio; +import com.google.common.base.Charsets; import com.google.common.io.Resources; import com.mongodb.MongoClient; import com.mongodb.ServerAddress; public class MongoSpinIT { - private static final ValueFactory VF = ValueFactoryImpl.getInstance(); + private static final ValueFactory VF = SimpleValueFactory.getInstance(); private static final String EX = "http://example.org/"; private MongoDBRdfConfiguration conf; @@ -94,9 +96,11 @@ public class MongoSpinIT { ToolRunner.run(conf, tool, new String[] {}); solutions = executeQuery(Resources.getResource("query.sparql")); expected.add(new ListBindingSet(Arrays.asList("X", "Y"), - VF.createURI(EX, "Alice"), VF.createURI(EX, "Department1"))); + VF.createIRI(EX, "Alice"), VF.createIRI(EX, "Department1"))); Assert.assertEquals(expected, solutions); - Assert.assertEquals(24, tool.getNumInferences()); + // TODO: Check if spin rules with empty WHERE clauses, such as + // rl:scm-cls in the owlrl.ttl test file, should be included. + Assert.assertEquals(48, tool.getNumInferences()); } @Test @@ -112,13 +116,15 @@ public class MongoSpinIT { ToolRunner.run(conf, tool, new String[] {}); solutions = executeQuery(Resources.getResource("query.sparql")); expected.add(new ListBindingSet(Arrays.asList("X", "Y"), - VF.createURI(EX, "Alice"), VF.createURI(EX, "Department1"))); + VF.createIRI(EX, "Alice"), VF.createIRI(EX, "Department1"))); Assert.assertEquals(expected, solutions); - Assert.assertEquals(24, tool.getNumInferences()); + // TODO: Check if spin rules with empty WHERE clauses, such as + // rl:scm-cls in the owlrl.ttl test file, should be included. + Assert.assertEquals(41, tool.getNumInferences()); } private void insertDataFile(URL dataFile, String defaultNamespace) throws Exception { - RDFFormat format = Rio.getParserFormatForFileName(dataFile.getFile()); + RDFFormat format = Rio.getParserFormatForFileName(dataFile.getFile()).get(); SailRepositoryConnection conn = repository.getConnection(); try { conn.add(dataFile, defaultNamespace, format); @@ -127,20 +133,22 @@ public class MongoSpinIT { } } - Set<BindingSet> executeQuery(URL queryFile) throws Exception { + private Set<BindingSet> executeQuery(URL queryFile) throws Exception { SailRepositoryConnection conn = repository.getConnection(); try { - InputStream queryIS = queryFile.openStream(); - BufferedReader br = new BufferedReader(new java.io.InputStreamReader(queryIS, "UTF-8")); - String query = br.lines().collect(Collectors.joining("\n")); - br.close(); - TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); - TupleQueryResult result = tupleQuery.evaluate(); - Set<BindingSet> solutions = new HashSet<>(); - while (result.hasNext()) { - solutions.add(result.next()); + try( + final InputStream queryIS = queryFile.openStream(); + final BufferedReader br = new BufferedReader(new InputStreamReader(queryIS, Charsets.UTF_8)); + ) { + final String query = br.lines().collect(Collectors.joining("\n")); + final TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query); + final TupleQueryResult result = tupleQuery.evaluate(); + final Set<BindingSet> solutions = new HashSet<>(); + while (result.hasNext()) { + solutions.add(result.next()); + } + return solutions; } - return solutions; } finally { closeQuietly(conn); } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/AntecedentVisitorTest.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/AntecedentVisitorTest.java b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/AntecedentVisitorTest.java index 7761a1a..ca9df6e 100644 --- a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/AntecedentVisitorTest.java +++ b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/AntecedentVisitorTest.java @@ -20,34 +20,35 @@ package org.apache.rya.forwardchain.rule; import java.util.Set; +import org.apache.rya.api.domain.VarNameUtils; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.model.vocabulary.FOAF; +import org.eclipse.rdf4j.model.vocabulary.RDF; +import org.eclipse.rdf4j.model.vocabulary.RDFS; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.StatementPattern.Scope; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.parser.ParsedQuery; +import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser; import org.junit.Assert; import org.junit.Test; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.model.ValueFactory; -import org.openrdf.model.impl.ValueFactoryImpl; -import org.openrdf.model.vocabulary.FOAF; -import org.openrdf.model.vocabulary.RDF; -import org.openrdf.model.vocabulary.RDFS; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.StatementPattern.Scope; -import org.openrdf.query.parser.ParsedQuery; -import org.openrdf.query.parser.sparql.SPARQLParser; import com.google.common.collect.Sets; public class AntecedentVisitorTest { private static Var c(Value val) { - Var v = new Var("-const-" + val.stringValue(), val); + final Var v = VarNameUtils.createUniqueConstVar(val); v.setAnonymous(true); return v; } - private static ValueFactory VF = ValueFactoryImpl.getInstance(); - private static String EX = "http://example.org/"; - private static URI G1 = VF.createURI(EX, "Graph1"); - private static URI G2 = VF.createURI(EX, "Graph2"); + private static final ValueFactory VF = SimpleValueFactory.getInstance(); + private static final String EX = "http://example.org/"; + private static final IRI G1 = VF.createIRI(EX, "Graph1"); + private static final IRI G2 = VF.createIRI(EX, "Graph2"); @Test public void testSelectQuery() throws Exception { http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitorTest.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitorTest.java b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitorTest.java index 0865ef8..9acdbff 100644 --- a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitorTest.java +++ b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/ConstructConsequentVisitorTest.java @@ -21,23 +21,23 @@ package org.apache.rya.forwardchain.rule; import java.util.Arrays; import java.util.Set; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.vocabulary.FOAF; +import org.eclipse.rdf4j.model.vocabulary.OWL; +import org.eclipse.rdf4j.model.vocabulary.RDF; +import org.eclipse.rdf4j.query.algebra.BNodeGenerator; +import org.eclipse.rdf4j.query.algebra.Extension; +import org.eclipse.rdf4j.query.algebra.ExtensionElem; +import org.eclipse.rdf4j.query.algebra.MultiProjection; +import org.eclipse.rdf4j.query.algebra.Projection; +import org.eclipse.rdf4j.query.algebra.ProjectionElem; +import org.eclipse.rdf4j.query.algebra.ProjectionElemList; +import org.eclipse.rdf4j.query.algebra.SingletonSet; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.ValueConstant; +import org.eclipse.rdf4j.query.algebra.Var; import org.junit.Assert; import org.junit.Test; -import org.openrdf.model.Value; -import org.openrdf.model.vocabulary.FOAF; -import org.openrdf.model.vocabulary.OWL; -import org.openrdf.model.vocabulary.RDF; -import org.openrdf.query.algebra.BNodeGenerator; -import org.openrdf.query.algebra.Extension; -import org.openrdf.query.algebra.ExtensionElem; -import org.openrdf.query.algebra.MultiProjection; -import org.openrdf.query.algebra.Projection; -import org.openrdf.query.algebra.ProjectionElem; -import org.openrdf.query.algebra.ProjectionElemList; -import org.openrdf.query.algebra.SingletonSet; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.ValueConstant; -import org.openrdf.query.algebra.Var; import com.google.common.collect.Sets; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/RulesetTest.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/RulesetTest.java b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/RulesetTest.java index adb851b..13ea873 100644 --- a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/RulesetTest.java +++ b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/RulesetTest.java @@ -22,21 +22,22 @@ import java.util.Collection; import java.util.Set; import org.apache.rya.api.domain.StatementMetadata; +import org.apache.rya.api.domain.VarNameUtils; import org.apache.rya.forwardchain.ForwardChainException; import org.apache.rya.forwardchain.strategy.AbstractRuleExecutionStrategy; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.vocabulary.RDF; +import org.eclipse.rdf4j.model.vocabulary.RDFS; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.Var; import org.junit.Assert; import org.junit.Test; -import org.openrdf.model.Value; -import org.openrdf.model.vocabulary.RDF; -import org.openrdf.model.vocabulary.RDFS; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.Var; import com.google.common.collect.Sets; public class RulesetTest { private static Var c(Value val) { - Var v = new Var("-const-" + val.stringValue(), val); + final Var v = VarNameUtils.createUniqueConstVar(val); v.setAnonymous(true); return v; } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/SpinConstructRuleTest.java ---------------------------------------------------------------------- diff --git a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/SpinConstructRuleTest.java b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/SpinConstructRuleTest.java index 9bbcce0..5e525bc 100644 --- a/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/SpinConstructRuleTest.java +++ b/extras/rya.forwardchain/src/test/java/org/apache/rya/forwardchain/rule/SpinConstructRuleTest.java @@ -20,35 +20,36 @@ package org.apache.rya.forwardchain.rule; import java.util.Arrays; +import org.apache.rya.api.domain.VarNameUtils; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.model.vocabulary.FOAF; +import org.eclipse.rdf4j.model.vocabulary.OWL; +import org.eclipse.rdf4j.model.vocabulary.RDF; +import org.eclipse.rdf4j.model.vocabulary.RDFS; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.parser.ParsedGraphQuery; +import org.eclipse.rdf4j.query.parser.sparql.SPARQLParser; import org.junit.Assert; import org.junit.Test; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.model.ValueFactory; -import org.openrdf.model.impl.ValueFactoryImpl; -import org.openrdf.model.vocabulary.FOAF; -import org.openrdf.model.vocabulary.OWL; -import org.openrdf.model.vocabulary.RDF; -import org.openrdf.model.vocabulary.RDFS; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.parser.ParsedGraphQuery; -import org.openrdf.query.parser.sparql.SPARQLParser; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multiset; public class SpinConstructRuleTest { - private static ValueFactory VF = ValueFactoryImpl.getInstance(); - private static SPARQLParser PARSER = new SPARQLParser(); + private static final ValueFactory VF = SimpleValueFactory.getInstance(); + private static final SPARQLParser PARSER = new SPARQLParser(); - private static URI RL_CAX_SCO = VF.createURI("http://example.org/rl/cax-sco"); - private static URI RL_SCM_CLS = VF.createURI("http://example.org/rl/scm-cls"); - private static URI RL_PRP_SPO1 = VF.createURI("http://example.org/rl/prp-spo"); - private static URI LIVING_THING = VF.createURI("http://example.org/LivingThing"); + private static final IRI RL_CAX_SCO = VF.createIRI("http://example.org/rl/cax-sco"); + private static final IRI RL_SCM_CLS = VF.createIRI("http://example.org/rl/scm-cls"); + private static final IRI RL_PRP_SPO1 = VF.createIRI("http://example.org/rl/prp-spo"); + private static final IRI LIVING_THING = VF.createIRI("http://example.org/LivingThing"); private static Var c(Value val) { - return new Var("-const-" + val.stringValue(), val); + return VarNameUtils.createUniqueConstVar(val); } private static Var ac(Value val) { Var v = c(val); @@ -62,7 +63,7 @@ public class SpinConstructRuleTest { + " ?this a <" + LIVING_THING.stringValue() + "> .\n" + "} WHERE { }"; ParsedGraphQuery query = (ParsedGraphQuery) PARSER.parseQuery(text, null); - SpinConstructRule rule = new SpinConstructRule(FOAF.PERSON, VF.createURI("urn:person-is-living"), query); + SpinConstructRule rule = new SpinConstructRule(FOAF.PERSON, VF.createIRI("urn:person-is-living"), query); Multiset<StatementPattern> expectedAntecedents = HashMultiset.create(Arrays.asList( new StatementPattern(new Var("this"), c(RDF.TYPE), c(FOAF.PERSON)))); Multiset<StatementPattern> expectedConsequents = HashMultiset.create(Arrays.asList( @@ -120,6 +121,8 @@ public class SpinConstructRuleTest { String text = "CONSTRUCT {\n" // actual rule is "?this subClassOf ?this", but reflexive construct patterns produce // bnodes due to an openrdf bug, resulting in incorrect matches + // TODO: is the above comment still a concern with RDF4J? bnodes + // don't appear to be produced with RDF4J + " ?this rdfs:subClassOf ?something .\n" + " ?this owl:equivalentClass ?something .\n" + " ?this rdfs:subClassOf owl:Thing .\n" http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/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 a425ce4..bd82c21 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 @@ -43,31 +43,30 @@ import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils; import org.apache.rya.indexing.accumulo.temporal.AccumuloTemporalIndexer; import org.apache.rya.mongodb.MongoSecondaryIndex; import org.apache.rya.mongodb.StatefulMongoDBRdfConfiguration; -import org.openrdf.model.Resource; -import org.openrdf.model.URI; -import org.openrdf.model.ValueFactory; -import org.openrdf.model.impl.URIImpl; -import org.openrdf.model.impl.ValueFactoryImpl; -import org.openrdf.query.BindingSet; -import org.openrdf.query.Dataset; -import org.openrdf.query.algebra.And; -import org.openrdf.query.algebra.Filter; -import org.openrdf.query.algebra.FunctionCall; -import org.openrdf.query.algebra.Join; -import org.openrdf.query.algebra.LeftJoin; -import org.openrdf.query.algebra.QueryModelNode; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.TupleExpr; -import org.openrdf.query.algebra.ValueConstant; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.evaluation.QueryOptimizer; -import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.Dataset; +import org.eclipse.rdf4j.query.algebra.And; +import org.eclipse.rdf4j.query.algebra.Filter; +import org.eclipse.rdf4j.query.algebra.FunctionCall; +import org.eclipse.rdf4j.query.algebra.Join; +import org.eclipse.rdf4j.query.algebra.LeftJoin; +import org.eclipse.rdf4j.query.algebra.QueryModelNode; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.TupleExpr; +import org.eclipse.rdf4j.query.algebra.ValueConstant; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.algebra.evaluation.QueryOptimizer; +import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor; import com.google.common.collect.Lists; public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Configurable { private static final Logger LOG = Logger.getLogger(GeoEnabledFilterFunctionOptimizer.class); - private final ValueFactory valueFactory = new ValueFactoryImpl(); + private static final ValueFactory VF = SimpleValueFactory.getInstance(); private Configuration conf; private GeoIndexer geoIndexer; @@ -190,12 +189,12 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config } //find vars contained in filters - private static class SearchVarVisitor extends QueryModelVisitorBase<RuntimeException> { + private static class SearchVarVisitor extends AbstractQueryModelVisitor<RuntimeException> { private final Collection<Var> searchProperties = new ArrayList<>(); @Override public void meet(final FunctionCall fn) { - final URI fun = new URIImpl(fn.getURI()); + final IRI fun = VF.createIRI(fn.getURI()); final Var result = IndexingFunctionRegistry.getResultVarFromFunctionCall(fun, fn.getArgs()); if (result != null && !searchProperties.contains(result)) { searchProperties.add(result); @@ -204,7 +203,7 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config } //find StatementPatterns containing filter variables - private static class MatchStatementVisitor extends QueryModelVisitorBase<RuntimeException> { + private static class MatchStatementVisitor extends AbstractQueryModelVisitor<RuntimeException> { private final Collection<Var> propertyVars; private final Collection<Var> usedVars = new ArrayList<>(); private final List<StatementPattern> matchStatements = new ArrayList<>(); @@ -226,16 +225,16 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config } } - private abstract class AbstractEnhanceVisitor extends QueryModelVisitorBase<RuntimeException> { + private abstract class AbstractEnhanceVisitor extends AbstractQueryModelVisitor<RuntimeException> { final String matchVar; - List<URI> func = Lists.newArrayList(); + List<IRI> func = Lists.newArrayList(); List<Object[]> args = Lists.newArrayList(); public AbstractEnhanceVisitor(final String matchVar) { this.matchVar = matchVar; } - protected void addFilter(final URI uri, final Object[] values) { + protected void addFilter(final IRI uri, final Object[] values) { func.add(uri); args.add(values); } @@ -250,12 +249,12 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config @Override public void meet(final FunctionCall call) { - final URI fnUri = valueFactory.createURI(call.getURI()); + final IRI fnUri = VF.createIRI(call.getURI()); final Var resultVar = IndexingFunctionRegistry.getResultVarFromFunctionCall(fnUri, call.getArgs()); if (resultVar != null && resultVar.getName().equals(matchVar)) { - addFilter(valueFactory.createURI(call.getURI()), GeoParseUtils.extractArguments(matchVar, call)); + addFilter(VF.createIRI(call.getURI()), GeoParseUtils.extractArguments(matchVar, call)); if (call.getParentNode() instanceof Filter || call.getParentNode() instanceof And || call.getParentNode() instanceof LeftJoin) { - call.replaceWith(new ValueConstant(valueFactory.createLiteral(true))); + call.replaceWith(new ValueConstant(VF.createLiteral(true))); } else { throw new IllegalArgumentException("Query error: Found " + call + " as part of an expression that is too complex"); } @@ -299,7 +298,7 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config public IndexerExprReplacer(final List<IndexingExpr> indxExpr) { this.indxExpr = indxExpr; - final URI func = indxExpr.get(0).getFunction(); + final IRI func = indxExpr.get(0).getFunction(); type = IndexingFunctionRegistry.getFunctionType(func); } @@ -329,7 +328,7 @@ public class GeoEnabledFilterFunctionOptimizer implements QueryOptimizer, Config } } - private static class VarExchangeVisitor extends QueryModelVisitorBase<RuntimeException> { + private static class VarExchangeVisitor extends AbstractQueryModelVisitor<RuntimeException> { private final StatementPattern exchangeVar; public VarExchangeVisitor(final StatementPattern sp) { exchangeVar = sp; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexer.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexer.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexer.java index d091d32..2a20cc2 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexer.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexer.java @@ -1,10 +1,3 @@ -package org.apache.rya.indexing; - -import org.openrdf.model.Statement; -import org.openrdf.query.QueryEvaluationException; - -import com.vividsolutions.jts.geom.Geometry; - /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -23,12 +16,15 @@ import com.vividsolutions.jts.geom.Geometry; * specific language governing permissions and limitations * under the License. */ +package org.apache.rya.indexing; - - -import info.aduna.iteration.CloseableIteration; import org.apache.rya.api.persist.index.RyaSecondaryIndexer; import org.apache.rya.indexing.accumulo.geo.GeoTupleSet.GeoSearchFunctionFactory.NearQuery; +import org.eclipse.rdf4j.common.iteration.CloseableIteration; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.query.QueryEvaluationException; + +import com.vividsolutions.jts.geom.Geometry; /** * A repository to store, index, and retrieve {@link Statement}s based on geospatial features. http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexingTestUtils.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexingTestUtils.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexingTestUtils.java index b0c636d..223a9e2 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexingTestUtils.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/GeoIndexingTestUtils.java @@ -21,7 +21,7 @@ package org.apache.rya.indexing; import java.util.HashSet; import java.util.Set; -import info.aduna.iteration.CloseableIteration; +import org.eclipse.rdf4j.common.iteration.CloseableIteration; /** * Utility methods to help test geo indexing methods. http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/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 c53fea1..24cba6a 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 @@ -48,8 +48,8 @@ import org.apache.rya.rdftriplestore.RdfCloudTripleStore; import org.apache.rya.rdftriplestore.inference.InferenceEngine; import org.apache.rya.rdftriplestore.inference.InferenceEngineException; import org.apache.rya.sail.config.RyaSailFactory; -import org.openrdf.sail.Sail; -import org.openrdf.sail.SailException; +import org.eclipse.rdf4j.sail.Sail; +import org.eclipse.rdf4j.sail.SailException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoParseUtils.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoParseUtils.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoParseUtils.java index 779a61e..3f8f1e8 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoParseUtils.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoParseUtils.java @@ -28,13 +28,13 @@ import javax.xml.parsers.ParserConfigurationException; import org.apache.log4j.Logger; import org.apache.rya.indexing.GeoConstants; -import org.openrdf.model.Literal; -import org.openrdf.model.Statement; -import org.openrdf.model.Value; -import org.openrdf.query.algebra.FunctionCall; -import org.openrdf.query.algebra.ValueConstant; -import org.openrdf.query.algebra.ValueExpr; -import org.openrdf.query.algebra.Var; +import org.eclipse.rdf4j.model.Literal; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.query.algebra.FunctionCall; +import org.eclipse.rdf4j.query.algebra.ValueConstant; +import org.eclipse.rdf4j.query.algebra.ValueExpr; +import org.eclipse.rdf4j.query.algebra.Var; import org.xml.sax.SAXException; import com.vividsolutions.jts.geom.Geometry; @@ -67,7 +67,7 @@ public class GeoParseUtils { } public static Literal getLiteral(final Statement statement) throws ParseException { - final org.openrdf.model.Value v = statement.getObject(); + final Value v = statement.getObject(); if (!(v instanceof Literal)) { throw new ParseException("Statement does not contain Literal: " + statement.toString()); } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoTupleSet.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoTupleSet.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoTupleSet.java index 888c099..87f6a9b 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoTupleSet.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoTupleSet.java @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ package org.apache.rya.indexing.accumulo.geo; import java.util.ArrayList; @@ -15,12 +33,13 @@ import org.apache.rya.indexing.IteratorFactory; import org.apache.rya.indexing.SearchFunction; import org.apache.rya.indexing.StatementConstraints; import org.apache.rya.indexing.external.tupleSet.ExternalTupleSet; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.query.BindingSet; -import org.openrdf.query.QueryEvaluationException; -import org.openrdf.query.algebra.Var; +import org.eclipse.rdf4j.common.iteration.CloseableIteration; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.QueryEvaluationException; +import org.eclipse.rdf4j.query.algebra.Var; import com.google.common.base.Joiner; import com.google.common.collect.Maps; @@ -28,28 +47,6 @@ import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.io.ParseException; import com.vividsolutions.jts.io.WKTReader; -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -import info.aduna.iteration.CloseableIteration; - //Indexing Node for geo expressions to be inserted into execution plan //to delegate geo portion of query to geo index public class GeoTupleSet extends ExternalTupleSet { @@ -120,7 +117,7 @@ public class GeoTupleSet extends ExternalTupleSet { public CloseableIteration<BindingSet, QueryEvaluationException> evaluate(final BindingSet bindings) throws QueryEvaluationException { - final URI funcURI = filterInfo.getFunction(); + final IRI funcURI = filterInfo.getFunction(); final SearchFunction searchFunction = new GeoSearchFunctionFactory(conf, geoIndexer).getSearchFunction(funcURI); String queryText; @@ -170,7 +167,7 @@ public class GeoTupleSet extends ExternalTupleSet { Configuration conf; - private final Map<URI, SearchFunction> SEARCH_FUNCTION_MAP = Maps.newHashMap(); + private final Map<IRI, SearchFunction> SEARCH_FUNCTION_MAP = Maps.newHashMap(); private final GeoIndexer geoIndexer; @@ -186,7 +183,7 @@ public class GeoTupleSet extends ExternalTupleSet { * @param searchFunction * @return */ - public SearchFunction getSearchFunction(final URI searchFunction) { + public SearchFunction getSearchFunction(final IRI searchFunction) { SearchFunction geoFunc = null; @@ -199,7 +196,7 @@ public class GeoTupleSet extends ExternalTupleSet { return geoFunc; } - private SearchFunction getSearchFunctionInternal(final URI searchFunction) throws QueryEvaluationException { + private SearchFunction getSearchFunctionInternal(final IRI searchFunction) throws QueryEvaluationException { final SearchFunction sf = SEARCH_FUNCTION_MAP.get(searchFunction); if (sf != null) { http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/OptionalConfigUtils.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/OptionalConfigUtils.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/OptionalConfigUtils.java index bfd39d0..42331ea 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/OptionalConfigUtils.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/accumulo/geo/OptionalConfigUtils.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.log4j.Level; import org.apache.log4j.Logger; import org.apache.rya.accumulo.AccumuloRdfConfiguration; import org.apache.rya.api.RdfCloudTripleStoreConfiguration; @@ -32,8 +31,7 @@ import org.apache.rya.indexing.GeoEnabledFilterFunctionOptimizer; import org.apache.rya.indexing.GeoIndexerType; import org.apache.rya.indexing.GeoTemporalIndexerType; import org.apache.rya.indexing.accumulo.ConfigUtils; -import org.apache.rya.indexing.geotemporal.GeoTemporalOptimizer; -import org.openrdf.model.URI; +import org.eclipse.rdf4j.model.IRI; import com.google.common.collect.Lists; @@ -60,7 +58,7 @@ public class OptionalConfigUtils extends ConfigUtils { public static final String GEO_PREDICATES_LIST = "sc.geo.predicates"; public static final String GEO_INDEXER_TYPE = "sc.geo.geo_indexer_type"; - public static Set<URI> getGeoPredicates(final Configuration conf) { + public static Set<IRI> getGeoPredicates(final Configuration conf) { return getPredicates(conf, GEO_PREDICATES_LIST); } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexSetProvider.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexSetProvider.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexSetProvider.java index bf12f26..bae2326 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexSetProvider.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexSetProvider.java @@ -39,13 +39,14 @@ import org.apache.rya.indexing.external.matching.QuerySegment; import org.apache.rya.indexing.geotemporal.model.EventQueryNode; import org.apache.rya.indexing.geotemporal.model.EventQueryNode.EventQueryNodeBuilder; import org.apache.rya.indexing.geotemporal.storage.EventStorage; -import org.openrdf.model.URI; -import org.openrdf.model.impl.URIImpl; -import org.openrdf.query.algebra.FunctionCall; -import org.openrdf.query.algebra.QueryModelNode; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.helpers.QueryModelVisitorBase; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.query.algebra.FunctionCall; +import org.eclipse.rdf4j.query.algebra.QueryModelNode; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.algebra.helpers.AbstractQueryModelVisitor; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; @@ -55,6 +56,7 @@ import com.google.common.collect.Multimap; */ public class GeoTemporalIndexSetProvider implements ExternalSetProvider<EventQueryNode> { private static final Logger LOG = Logger.getLogger(GeoTemporalIndexSetProvider.class); + private static final ValueFactory VF = SimpleValueFactory.getInstance(); //organzied by object var. Each object is a filter, or set of filters private Multimap<Var, IndexingExpr> filterMap; @@ -71,7 +73,7 @@ public class GeoTemporalIndexSetProvider implements ExternalSetProvider<EventQue private Map<Var, StatementPattern> objectPatterns; - private static URI filterURI; + private static IRI filterURI; private final EventStorage eventStorage; @@ -117,7 +119,7 @@ public class GeoTemporalIndexSetProvider implements ExternalSetProvider<EventQue for(final StatementPattern sp : patterns) { final Var obj = sp.getObjectVar(); - ///filter map does not have -const- + ///filter map does not have _const_ if(filterMap.containsKey(obj)) { @@ -211,7 +213,7 @@ public class GeoTemporalIndexSetProvider implements ExternalSetProvider<EventQue } private void addFilter(final FunctionCall call) { - filterURI = new URIImpl(call.getURI()); + filterURI = VF.createIRI(call.getURI()); final Var objVar = IndexingFunctionRegistry.getResultVarFromFunctionCall(filterURI, call.getArgs()); filterMap.put(objVar, new IndexingExpr(filterURI, objectPatterns.get(objVar), GeoParseUtils.extractArguments(objVar.getName(), call))); } @@ -220,10 +222,10 @@ public class GeoTemporalIndexSetProvider implements ExternalSetProvider<EventQue * Finds the object/function in a Filter. If the associated statement pattern * has been found, creates the {@link IndexingExpr} and adds it to the map. */ - private class FilterVisitor extends QueryModelVisitorBase<Exception> { + private class FilterVisitor extends AbstractQueryModelVisitor<Exception> { @Override public void meet(final FunctionCall call) throws Exception { - filterURI = new URIImpl(call.getURI()); + filterURI = VF.createIRI(call.getURI()); final FUNCTION_TYPE type = IndexingFunctionRegistry.getFunctionType(filterURI); if(type == FUNCTION_TYPE.GEO || type == FUNCTION_TYPE.TEMPORAL) { final Var objVar = IndexingFunctionRegistry.getResultVarFromFunctionCall(filterURI, call.getArgs()); http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexer.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexer.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexer.java index d74dca6..9db4bd7 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexer.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalIndexer.java @@ -21,9 +21,10 @@ package org.apache.rya.indexing.geotemporal; import org.apache.rya.api.persist.index.RyaSecondaryIndexer; import org.apache.rya.indexing.GeoConstants; import org.apache.rya.indexing.geotemporal.storage.EventStorage; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; -import org.openrdf.model.impl.URIImpl; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; /** * A repository to store, index, and retrieve {@link Statement}s based on geotemporal features. @@ -88,17 +89,17 @@ public interface GeoTemporalIndexer extends RyaSecondaryIndexer { */ OVERLAPS(GeoConstants.GEO_SF_OVERLAPS); - private final URI uri; + private final IRI uri; - private GeoPolicy(final URI uri) { + private GeoPolicy(final IRI uri) { this.uri = uri; } - public URI getURI() { + public IRI getURI() { return uri; } - public static GeoPolicy fromURI(final URI uri) { + public static GeoPolicy fromURI(final IRI uri) { for(final GeoPolicy policy : GeoPolicy.values()) { if(policy.getURI().equals(uri)) { return policy; @@ -109,6 +110,7 @@ public interface GeoTemporalIndexer extends RyaSecondaryIndexer { } static final String TEMPORAL_NS = "tag:rya-rdf.org,2015:temporal#"; + /** * Used to indicate which temporal filter functions to use in a query. */ @@ -116,62 +118,62 @@ public interface GeoTemporalIndexer extends RyaSecondaryIndexer { /** * The provided instant in time equals the instant the event took place. */ - INSTANT_EQUALS_INSTANT(true, new URIImpl(TEMPORAL_NS+"equals")), + INSTANT_EQUALS_INSTANT(true, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"equals")), /** * The provided instant in time was before when the event took place. */ - INSTANT_BEFORE_INSTANT(true, new URIImpl(TEMPORAL_NS+"before")), + INSTANT_BEFORE_INSTANT(true, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"before")), /** * The provided instant in time was after when the event took place. */ - INSTANT_AFTER_INSTANT(true, new URIImpl(TEMPORAL_NS+"after")), + INSTANT_AFTER_INSTANT(true, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"after")), /** * The provided instant in time was before a time period. */ - INSTANT_BEFORE_INTERVAL(false, new URIImpl(TEMPORAL_NS+"beforeInterval")), + INSTANT_BEFORE_INTERVAL(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"beforeInterval")), /** * The provided instant in time took place within a set of time. */ - INSTANT_IN_INTERVAL(false, new URIImpl(TEMPORAL_NS+"insideInterval")), + INSTANT_IN_INTERVAL(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"insideInterval")), /** * The provided instant in time took place after a time period. */ - INSTANT_AFTER_INTERVAL(false, new URIImpl(TEMPORAL_NS+"afterInterval")), + INSTANT_AFTER_INTERVAL(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"afterInterval")), /** * The provided instant in time equals the start of the interval in which the event took place. */ - INSTANT_START_INTERVAL(false, new URIImpl(TEMPORAL_NS+"hasBeginningInterval")), + INSTANT_START_INTERVAL(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"hasBeginningInterval")), /** * The provided instant in time equals the end of the interval in which the event took place. */ - INSTANT_END_INTERVAL(false, new URIImpl(TEMPORAL_NS+"hasEndInterval")), + INSTANT_END_INTERVAL(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"hasEndInterval")), /** * The provided interval equals the interval in which the event took place. */ - INTERVAL_EQUALS(false, new URIImpl(TEMPORAL_NS+"intervalEquals")), + INTERVAL_EQUALS(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"intervalEquals")), /** * The provided interval is before the interval in which the event took place. */ - INTERVAL_BEFORE(false, new URIImpl(TEMPORAL_NS+"intervalBefore")), + INTERVAL_BEFORE(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"intervalBefore")), /** * The provided interval is after the interval in which the event took place. */ - INTERVAL_AFTER(false, new URIImpl(TEMPORAL_NS+"intervalAfter")); + INTERVAL_AFTER(false, SimpleValueFactory.getInstance().createIRI(TEMPORAL_NS+"intervalAfter")); private final boolean isInstant; - private final URI uri; + private final IRI uri; - TemporalPolicy(final boolean isInstant, final URI uri) { + TemporalPolicy(final boolean isInstant, final IRI uri) { this.isInstant = isInstant; this.uri = uri; } @@ -180,11 +182,11 @@ public interface GeoTemporalIndexer extends RyaSecondaryIndexer { return isInstant; } - public URI getURI() { + public IRI getURI() { return uri; } - public static TemporalPolicy fromURI(final URI uri) { + public static TemporalPolicy fromURI(final IRI uri) { for(final TemporalPolicy policy : TemporalPolicy.values()) { if(policy.getURI().equals(uri)) { return policy; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalToSegmentConverter.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalToSegmentConverter.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalToSegmentConverter.java index 22bfdb1..df9dac9 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalToSegmentConverter.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/GeoTemporalToSegmentConverter.java @@ -28,9 +28,9 @@ import org.apache.rya.indexing.external.matching.ExternalSetConverter; import org.apache.rya.indexing.external.matching.JoinSegment; import org.apache.rya.indexing.external.matching.QuerySegment; import org.apache.rya.indexing.geotemporal.model.EventQueryNode; -import org.openrdf.query.algebra.Filter; -import org.openrdf.query.algebra.QueryModelNode; -import org.openrdf.query.algebra.ValueExpr; +import org.eclipse.rdf4j.query.algebra.Filter; +import org.eclipse.rdf4j.query.algebra.QueryModelNode; +import org.eclipse.rdf4j.query.algebra.ValueExpr; import com.google.common.base.Preconditions; http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode.java b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode.java index 104fca8..53d4b74 100644 --- a/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode.java +++ b/extras/rya.geoindexing/geo.common/src/main/java/org/apache/rya/indexing/geotemporal/model/EventQueryNode.java @@ -38,24 +38,26 @@ import org.apache.rya.indexing.entity.query.EntityQueryNode; import org.apache.rya.indexing.geotemporal.storage.EventStorage; import org.apache.rya.indexing.mongodb.update.RyaObjectStorage.ObjectStorageException; import org.apache.rya.rdftriplestore.evaluation.ExternalBatchingIterator; +import org.eclipse.rdf4j.common.iteration.CloseableIteration; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.QueryEvaluationException; +import org.eclipse.rdf4j.query.algebra.FunctionCall; +import org.eclipse.rdf4j.query.algebra.StatementPattern; +import org.eclipse.rdf4j.query.algebra.Var; +import org.eclipse.rdf4j.query.algebra.evaluation.impl.ExternalSet; +import org.eclipse.rdf4j.query.algebra.evaluation.iterator.CollectionIteration; +import org.eclipse.rdf4j.query.impl.MapBindingSet; import org.joda.time.DateTime; import org.joda.time.DateTimeZone; -import org.openrdf.model.Value; -import org.openrdf.model.impl.ValueFactoryImpl; -import org.openrdf.query.BindingSet; -import org.openrdf.query.QueryEvaluationException; -import org.openrdf.query.algebra.FunctionCall; -import org.openrdf.query.algebra.StatementPattern; -import org.openrdf.query.algebra.Var; -import org.openrdf.query.algebra.evaluation.impl.ExternalSet; -import org.openrdf.query.algebra.evaluation.iterator.CollectionIteration; -import org.openrdf.query.impl.MapBindingSet; import com.vividsolutions.jts.geom.Geometry; -import info.aduna.iteration.CloseableIteration; - public class EventQueryNode extends ExternalSet implements ExternalBatchingIterator { + private static final ValueFactory VF = SimpleValueFactory.getInstance(); + private final Collection<FunctionCall> usedFilters; private final Collection<IndexingExpr> geoFilters; private final Collection<IndexingExpr> temporalFilters; @@ -186,7 +188,7 @@ public class EventQueryNode extends ExternalSet implements ExternalBatchingItera final MapBindingSet resultSet = new MapBindingSet(); if(event.getGeometry().isPresent()) { final Geometry geo = event.getGeometry().get(); - final Value geoValue = ValueFactoryImpl.getInstance().createLiteral(geo.toText()); + final Value geoValue = VF.createLiteral(geo.toText()); final Var geoObj = geoPattern.getObjectVar(); resultSet.addBinding(geoObj.getName(), geoValue); } @@ -197,9 +199,9 @@ public class EventQueryNode extends ExternalSet implements ExternalBatchingItera DateTime dt = opt.get().getAsDateTime(); dt = dt.toDateTime(DateTimeZone.UTC); final String str = dt.toString(TemporalInstantRfc3339.FORMATTER); - temporalValue = ValueFactoryImpl.getInstance().createLiteral(str); + temporalValue = VF.createLiteral(str); } else if(event.getInterval().isPresent()) { - temporalValue = ValueFactoryImpl.getInstance().createLiteral(event.getInterval().get().getAsPair()); + temporalValue = VF.createLiteral(event.getInterval().get().getAsPair()); } else { temporalValue = null; } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java b/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java index b029b02..2771749 100644 --- a/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java +++ b/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/accumulo/geo/GeoMesaGeoIndexer.java @@ -49,6 +49,11 @@ import org.apache.rya.indexing.StatementConstraints; import org.apache.rya.indexing.StatementSerializer; import org.apache.rya.indexing.accumulo.ConfigUtils; import org.apache.rya.indexing.accumulo.geo.GeoTupleSet.GeoSearchFunctionFactory.NearQuery; +import org.eclipse.rdf4j.common.iteration.CloseableIteration; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Literal; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.query.QueryEvaluationException; import org.geotools.data.DataStore; import org.geotools.data.DataStoreFinder; import org.geotools.data.DataUtilities; @@ -71,16 +76,10 @@ import org.opengis.feature.simple.SimpleFeatureType; import org.opengis.filter.Filter; import org.opengis.filter.FilterFactory; import org.opengis.filter.identity.Identifier; -import org.openrdf.model.Literal; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; -import org.openrdf.query.QueryEvaluationException; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.io.ParseException; -import info.aduna.iteration.CloseableIteration; - /** * A {@link GeoIndexer} wrapper around a GeoMesa {@link AccumuloDataStore}. This class configures and connects to the Datastore, creates the * RDF Feature Type, and interacts with the Datastore. @@ -136,7 +135,7 @@ public class GeoMesaGeoIndexer extends AbstractAccumuloIndexer implements GeoInd private static final String CONTEXT_ATTRIBUTE = "C"; private static final String GEOMETRY_ATTRIBUTE = Constants.SF_PROPERTY_GEOMETRY; - private Set<URI> validPredicates; + private Set<IRI> validPredicates; private Configuration conf; private FeatureStore<SimpleFeatureType, SimpleFeature> featureStore; private FeatureSource<SimpleFeatureType, SimpleFeature> featureSource; @@ -306,7 +305,7 @@ public class GeoMesaGeoIndexer extends AbstractAccumuloIndexer implements GeoInd } if (contraints.hasPredicates()) { final List<String> predicates = new ArrayList<String>(); - for (final URI u : contraints.getPredicates()) { + for (final IRI u : contraints.getPredicates()) { predicates.add("( " + PREDICATE_ATTRIBUTE + "= '" + u.stringValue() + "') "); } filterParms.add("(" + StringUtils.join(predicates, " OR ") + ")"); @@ -420,7 +419,7 @@ public class GeoMesaGeoIndexer extends AbstractAccumuloIndexer implements GeoInd } @Override - public Set<URI> getIndexablePredicates() { + public Set<IRI> getIndexablePredicates() { return validPredicates; } http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/geoExamples/RyaGeoDirectExample.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/geoExamples/RyaGeoDirectExample.java b/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/geoExamples/RyaGeoDirectExample.java index 664bbee..37a008b 100644 --- a/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/geoExamples/RyaGeoDirectExample.java +++ b/extras/rya.geoindexing/geo.geomesa/src/main/java/org/apache/rya/indexing/geoExamples/RyaGeoDirectExample.java @@ -28,20 +28,20 @@ import org.apache.rya.indexing.accumulo.ConfigUtils; import org.apache.rya.indexing.accumulo.geo.OptionalConfigUtils; import org.apache.rya.indexing.external.PrecomputedJoinIndexerConfig; import org.apache.rya.indexing.external.PrecomputedJoinIndexerConfig.PrecomputedJoinStorageType; -import org.openrdf.query.BindingSet; -import org.openrdf.query.MalformedQueryException; -import org.openrdf.query.QueryEvaluationException; -import org.openrdf.query.QueryLanguage; -import org.openrdf.query.QueryResultHandlerException; -import org.openrdf.query.TupleQuery; -import org.openrdf.query.TupleQueryResultHandler; -import org.openrdf.query.TupleQueryResultHandlerException; -import org.openrdf.query.Update; -import org.openrdf.query.UpdateExecutionException; -import org.openrdf.repository.RepositoryException; -import org.openrdf.repository.sail.SailRepository; -import org.openrdf.repository.sail.SailRepositoryConnection; -import org.openrdf.sail.Sail; +import org.eclipse.rdf4j.query.BindingSet; +import org.eclipse.rdf4j.query.MalformedQueryException; +import org.eclipse.rdf4j.query.QueryEvaluationException; +import org.eclipse.rdf4j.query.QueryLanguage; +import org.eclipse.rdf4j.query.QueryResultHandlerException; +import org.eclipse.rdf4j.query.TupleQuery; +import org.eclipse.rdf4j.query.TupleQueryResultHandler; +import org.eclipse.rdf4j.query.TupleQueryResultHandlerException; +import org.eclipse.rdf4j.query.Update; +import org.eclipse.rdf4j.query.UpdateExecutionException; +import org.eclipse.rdf4j.repository.RepositoryException; +import org.eclipse.rdf4j.repository.sail.SailRepository; +import org.eclipse.rdf4j.repository.sail.SailRepositoryConnection; +import org.eclipse.rdf4j.sail.Sail; public class RyaGeoDirectExample { private static final Logger log = Logger.getLogger(RyaGeoDirectExample.class); http://git-wip-us.apache.org/repos/asf/incubator-rya/blob/81b99327/extras/rya.geoindexing/geo.geomesa/src/test/java/org/apache/rya/indexing/accumulo/geo/GeoIndexerSfTest.java ---------------------------------------------------------------------- diff --git a/extras/rya.geoindexing/geo.geomesa/src/test/java/org/apache/rya/indexing/accumulo/geo/GeoIndexerSfTest.java b/extras/rya.geoindexing/geo.geomesa/src/test/java/org/apache/rya/indexing/accumulo/geo/GeoIndexerSfTest.java index 4eba96a..b033b03 100644 --- a/extras/rya.geoindexing/geo.geomesa/src/test/java/org/apache/rya/indexing/accumulo/geo/GeoIndexerSfTest.java +++ b/extras/rya.geoindexing/geo.geomesa/src/test/java/org/apache/rya/indexing/accumulo/geo/GeoIndexerSfTest.java @@ -36,6 +36,13 @@ import org.apache.rya.indexing.GeoConstants; import org.apache.rya.indexing.GeoIndexerType; import org.apache.rya.indexing.StatementConstraints; import org.apache.rya.indexing.accumulo.ConfigUtils; +import org.eclipse.rdf4j.common.iteration.CloseableIteration; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Resource; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.Value; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.geotools.geometry.jts.Geometries; import org.junit.Assert; import org.junit.Before; @@ -44,14 +51,6 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; -import org.openrdf.model.Resource; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; -import org.openrdf.model.Value; -import org.openrdf.model.ValueFactory; -import org.openrdf.model.impl.StatementImpl; -import org.openrdf.model.impl.URIImpl; -import org.openrdf.model.impl.ValueFactoryImpl; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; @@ -67,14 +66,14 @@ import com.vividsolutions.jts.geom.impl.PackedCoordinateSequence; import com.vividsolutions.jts.io.ParseException; import com.vividsolutions.jts.io.gml2.GMLWriter; -import info.aduna.iteration.CloseableIteration; - /** * Tests all of the "simple functions" of the geoindexer specific to GML. * Parameterized so that each test is run for WKT and for GML. */ @RunWith(value = Parameterized.class) public class GeoIndexerSfTest { + private static final ValueFactory VF = SimpleValueFactory.getInstance(); + private static AccumuloRdfConfiguration conf; private static GeometryFactory gf = new GeometryFactory(new PrecisionModel(), 4326); private static GeoMesaGeoIndexer g; @@ -121,24 +120,24 @@ public class GeoIndexerSfTest { * JUnit 4 parameterized iterates thru this list and calls the constructor with each. * For each test, Call the constructor three times, for WKT and for GML encoding 1, and GML encoding 2 */ - private static final URI USE_JTS_LIB_ENCODING = new URIImpl("uri:useLib") ; - private static final URI USE_ROUGH_ENCODING = new URIImpl("uri:useRough") ; + private static final IRI USE_JTS_LIB_ENCODING = VF.createIRI("uri:useLib") ; + private static final IRI USE_ROUGH_ENCODING = VF.createIRI("uri:useRough") ; @Parameters - public static Collection<URI[]> constructorData() { - final URI[][] data = new URI[][] { { GeoConstants.XMLSCHEMA_OGC_WKT, USE_JTS_LIB_ENCODING }, { GeoConstants.XMLSCHEMA_OGC_GML, USE_JTS_LIB_ENCODING }, { GeoConstants.XMLSCHEMA_OGC_GML, USE_ROUGH_ENCODING } }; + public static Collection<IRI[]> constructorData() { + final IRI[][] data = new IRI[][] { { GeoConstants.XMLSCHEMA_OGC_WKT, USE_JTS_LIB_ENCODING }, { GeoConstants.XMLSCHEMA_OGC_GML, USE_JTS_LIB_ENCODING }, { GeoConstants.XMLSCHEMA_OGC_GML, USE_ROUGH_ENCODING } }; return Arrays.asList(data); } - private final URI schemaToTest; - private final URI encodeMethod; + private final IRI schemaToTest; + private final IRI encodeMethod; /** * Constructor required by JUnit parameterized runner. See {@link #constructorData()} for constructor values. - * @param schemaToTest the schema to test {@link URI}. - * @param encodeMethod the encode method {@link URI}. + * @param schemaToTest the schema to test {@link IRI}. + * @param encodeMethod the encode method {@link IRI}. */ - public GeoIndexerSfTest(final URI schemaToTest, final URI encodeMethod) { + public GeoIndexerSfTest(final IRI schemaToTest, final IRI encodeMethod) { this.schemaToTest = schemaToTest; this.encodeMethod = encodeMethod; } @@ -185,11 +184,11 @@ public class GeoIndexerSfTest { g.storeStatement(createRyaStatement(G, schemaToTest, encodeMethod)); } - private static RyaStatement createRyaStatement(final Geometry geo, final URI schema, final URI encodingMethod) { + private static RyaStatement createRyaStatement(final Geometry geo, final IRI schema, final IRI encodingMethod) { return RdfToRyaConversions.convertStatement(genericStatement(geo,schema,encodingMethod)); } - private static Statement genericStatement(final Geometry geo, final URI schema, final URI encodingMethod) { + private static Statement genericStatement(final Geometry geo, final IRI schema, final IRI encodingMethod) { if (schema.equals(GeoConstants.XMLSCHEMA_OGC_WKT)) { return genericStatementWkt(geo); } else if (schema.equals(GeoConstants.XMLSCHEMA_OGC_GML)) { @@ -199,17 +198,15 @@ public class GeoIndexerSfTest { } private static Statement genericStatementWkt(final Geometry geo) { - final ValueFactory vf = new ValueFactoryImpl(); - final Resource subject = vf.createURI("uri:" + NAMES.get(geo)); - final URI predicate = GeoConstants.GEO_AS_WKT; - final Value object = vf.createLiteral(geo.toString(), GeoConstants.XMLSCHEMA_OGC_WKT); - return new StatementImpl(subject, predicate, object); + final Resource subject = VF.createIRI("uri:" + NAMES.get(geo)); + final IRI predicate = GeoConstants.GEO_AS_WKT; + final Value object = VF.createLiteral(geo.toString(), GeoConstants.XMLSCHEMA_OGC_WKT); + return VF.createStatement(subject, predicate, object); } - private static Statement genericStatementGml(final Geometry geo, final URI encodingMethod) { - final ValueFactory vf = new ValueFactoryImpl(); - final Resource subject = vf.createURI("uri:" + NAMES.get(geo)); - final URI predicate = GeoConstants.GEO_AS_GML; + private static Statement genericStatementGml(final Geometry geo, final IRI encodingMethod) { + final Resource subject = VF.createIRI("uri:" + NAMES.get(geo)); + final IRI predicate = GeoConstants.GEO_AS_GML; final String gml ; if (encodingMethod == USE_JTS_LIB_ENCODING) { @@ -224,8 +221,8 @@ public class GeoIndexerSfTest { // System.out.println("========== GML===="); } - final Value object = vf.createLiteral(gml, GeoConstants.XMLSCHEMA_OGC_GML); - return new StatementImpl(subject, predicate, object); + final Value object = VF.createLiteral(gml, GeoConstants.XMLSCHEMA_OGC_GML); + return VF.createStatement(subject, predicate, object); } /**