You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2012/06/30 23:10:42 UTC
svn commit: r1355814 - in /jena/trunk/jena-arq/src:
main/java/com/hp/hpl/jena/sparql/engine/main/
test/java/com/hp/hpl/jena/sparql/algebra/
Author: andy
Date: Sat Jun 30 21:10:41 2012
New Revision: 1355814
URL: http://svn.apache.org/viewvc?rev=1355814&view=rev
Log:
Tests and warnings for (non-implemented) general default union graph.
Added:
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TS_UnionGraph.java
Modified:
jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/main/OpExecutor.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionGraph.java
jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java
Modified: jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/main/OpExecutor.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/main/OpExecutor.java?rev=1355814&r1=1355813&r2=1355814&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/main/OpExecutor.java (original)
+++ jena/trunk/jena-arq/src/main/java/com/hp/hpl/jena/sparql/engine/main/OpExecutor.java Sat Jun 30 21:10:41 2012
@@ -139,6 +139,37 @@ public class OpExecutor
return execute(opTriple.asBGP(), input) ;
}
+ protected QueryIterator execute(OpGraph opGraph, QueryIterator input)
+ {
+ QueryIterator qIter = specialcase(opGraph.getNode(), opGraph.getSubOp(), input) ;
+ if ( qIter != null )
+ return qIter ;
+ return new QueryIterGraph(input, opGraph, execCxt) ;
+ }
+
+ private QueryIterator specialcase(Node gn, Op subOp, QueryIterator input)
+ {
+ // This is a placeholder for code to specially handle explicitly named
+ // default graph and union graph.
+
+ if ( Quad.isDefaultGraph(gn) )
+ {
+ ExecutionContext cxt2 = new ExecutionContext(execCxt, execCxt.getDataset().getDefaultGraph()) ;
+ return execute(subOp, input, cxt2) ;
+ }
+
+ if ( gn == Quad.unionGraph )
+ Log.warn(this, "Not implemented yet: union default graph in general OpExecutor") ;
+
+ if ( true ) return null ;
+
+ /* Bad
+ if ( gn == Quad.tripleInQuad ) {}
+ */
+
+ return null ;
+ }
+
protected QueryIterator execute(OpQuad opQuad, QueryIterator input)
{
return execute(opQuad.asQuadPattern(), input) ;
@@ -155,9 +186,6 @@ public class OpExecutor
OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ;
return execute(opBGP, input) ;
}
- if ( Quad.isUnionGraph(quadPattern.getGraphNode()) )
- Log.warn(this, "Not implemented yet: quad/union default graph in general OpExecutor") ;
-
// Not default graph - (graph .... )
OpBGP opBGP = new OpBGP(quadPattern.getBasicPattern()) ;
OpGraph op = new OpGraph(quadPattern.getGraphNode(), opBGP) ;
@@ -305,37 +333,6 @@ public class OpExecutor
return qIter ;
}
- protected QueryIterator execute(OpGraph opGraph, QueryIterator input)
- {
- QueryIterator qIter = specialcase(opGraph.getNode(), opGraph.getSubOp(), input) ;
- if ( qIter != null )
- return qIter ;
- return new QueryIterGraph(input, opGraph, execCxt) ;
- }
-
- private QueryIterator specialcase(Node gn, Op subOp, QueryIterator input)
- {
- // This is a placeholder for code to specially handle explicitly named
- // default graph and union graph.
-
- if ( Quad.isDefaultGraph(gn) )
- {
- ExecutionContext cxt2 = new ExecutionContext(execCxt, execCxt.getDataset().getDefaultGraph()) ;
- return execute(subOp, input, cxt2) ;
- }
-
- if ( true ) return null ;
-
- if ( gn == Quad.unionGraph )
- {}
-
- /* Bad
- if ( gn == Quad.tripleInQuad ) {}
- */
-
- return null ;
- }
-
protected QueryIterator execute(OpService opService, QueryIterator input)
{
return new QueryIterService(input, opService, execCxt) ;
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java?rev=1355814&r1=1355813&r2=1355814&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/AbstractTestUnionTransform.java Sat Jun 30 21:10:41 2012
@@ -32,6 +32,9 @@ public abstract class AbstractTestUnionT
{
// Tests of patterns over the implicit union of all named graphs.
// Two sets - for triples and for quads
+
+ // TODO need multiple triple pattern BGPs.
+
@Test public void union_1()
{
List<Binding> results = exec("(bgp (?s ?p ?o))") ;
@@ -71,7 +74,7 @@ public abstract class AbstractTestUnionT
@Test public void union_7()
{
List<Binding> results = exec("(graph <"+Quad.defaultGraphIRI+"> (bgp (<x2> ?p ?o)))") ;
- assertEquals(4, results.size()) ;
+ assertEquals(3, results.size()) ;
}
// @Test public void union_7()
@@ -83,7 +86,7 @@ public abstract class AbstractTestUnionT
private List<Binding> exec(String pattern)
{
Op op = op(pattern) ;
- QueryIterator qIter = Algebra.exec(op, TestUnionGraph.dsg) ;
+ QueryIterator qIter = Algebra.exec(op, TestUnionGraph.dsg1) ;
return Iter.toList(qIter) ;
}
Added: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TS_UnionGraph.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TS_UnionGraph.java?rev=1355814&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TS_UnionGraph.java (added)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TS_UnionGraph.java Sat Jun 30 21:10:41 2012
@@ -0,0 +1,33 @@
+/**
+ * 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 com.hp.hpl.jena.sparql.algebra;
+
+import org.junit.runner.RunWith ;
+import org.junit.runners.Suite ;
+
+@RunWith(Suite.class)
+@Suite.SuiteClasses( {
+ TestUnionGraph.class
+ , TestUnionTransformTriples.class
+ , TestUnionTransformQuads.class
+})
+
+public class TS_UnionGraph
+{ }
+
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionGraph.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionGraph.java?rev=1355814&r1=1355813&r2=1355814&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionGraph.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionGraph.java Sat Jun 30 21:10:41 2012
@@ -34,46 +34,72 @@ import com.hp.hpl.jena.sparql.sse.builde
public class TestUnionGraph extends BaseTest
{
- static String x = StrUtils.strjoinNL("(dataset",
- " (graph (<s> <p> <o>) (<x> <p> <o>) (<x2> <p> <o1>) (<x2> <p> <o3>) (<x2> <p> <o3>) (<x2> <p> <o4>))",
+ static String x1 = StrUtils.strjoinNL("(dataset",
+ " (graph (<s> <p> <o>) (<x> <p> <o>) (<x2> <p> <o1>) (<x2> <p> <o3>) (<x2> <p> <o4>))",
" (graph <g1> (triple <s1> <p1> <o1>))",
" (graph <g2> (triple <s2> <p2> <o2>))",
" (graph <g3> (triple <s2> <p2> <o2>))", // Duplicate triple
")") ;
- static DatasetGraph dsg = BuilderGraph.buildDataset(SSE.parse(x)) ;
+ static DatasetGraph dsg1 = BuilderGraph.buildDataset(SSE.parse(x1)) ;
+
+ static String x2 = StrUtils.strjoinNL("(dataset",
+ " (graph (<s> <p1> 10) (<s> <p1> 11) (<s> <p2> 20) )",
+ " (graph <g1> (<s1> <p1> <z>) (<z> <p2> 1) )",
+ " (graph <g2> (<s1> <p1> <z>) (<z> <p2> 2) )",
+ " (graph <g3> (<s> <p1> 10))",
+ ")") ;
+
+ static DatasetGraph dsg2 = BuilderGraph.buildDataset(SSE.parse(x2)) ;
+
@Test public void union_graph_triples_1()
{
- List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<s2> ?p ?o)))", false) ;
+ List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<s2> ?p ?o)))", false, dsg1) ;
assertEquals(1, results.size()) ;
}
@Test public void union_graph_triples_2()
{
- List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<x2> ?p ?o)))", false) ;
+ List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<x2> ?p ?o)))", false, dsg1) ;
assertEquals(0, results.size()) ;
}
@Test public void union_graph_quads_1()
{
- List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<s2> ?p ?o)))", true) ;
+ List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<s2> ?p ?o)))", true, dsg1) ;
assertEquals(1, results.size()) ;
}
@Test public void union_graph_quads_2()
{
- List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<x2> ?p ?o)))", true) ;
+ List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<x2> ?p ?o)))", true, dsg1) ;
assertEquals(0, results.size()) ;
}
- private List<Binding> exec(String pattern, boolean applyQuad)
+ // Patterns
+ @Test public void union_graph_triples_10()
+ {
+ List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<s1> ?p ?z) (?z ?q ?o) ))", false, dsg2) ;
+ assertEquals(2, results.size()) ;
+ }
+
+ @Test public void union_graph_quads_10()
+ {
+ List<Binding> results = exec("(graph <"+Quad.unionGraph+"> (bgp (<s1> ?p ?z) (?z ?q ?o) ))", false, dsg2) ;
+ assertEquals(2, results.size()) ;
+ }
+
+
+
+ static private List<Binding> exec(String pattern, boolean applyQuad, DatasetGraph dsg)
{
Op op = SSE.parseOp(pattern) ;
if ( applyQuad )
op = Algebra.toQuadForm(op) ;
Op op2 = Algebra.unionDefaultGraph(op) ;
- QueryIterator qIter = Algebra.exec(op, TestUnionGraph.dsg) ;
+ QueryIterator qIter = Algebra.exec(op, TestUnionGraph.dsg1) ;
return Iter.toList(qIter) ;
}
-
+
+
}
Modified: jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java?rev=1355814&r1=1355813&r2=1355814&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java (original)
+++ jena/trunk/jena-arq/src/test/java/com/hp/hpl/jena/sparql/algebra/TestUnionTransformQuads.java Sat Jun 30 21:10:41 2012
@@ -26,7 +26,7 @@ public class TestUnionTransformQuads ext
protected Op op(String pattern)
{
Op op = SSE.parseOp(pattern) ;
- op = Algebra.toQuadForm(op) ;
+ op = Algebra.toQuadForm(op) ;
Op op2 = Algebra.unionDefaultGraph(op) ;
return op2 ;
}