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 ;
     }