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 2011/11/14 15:28:42 UTC

svn commit: r1201724 - in /incubator/jena/Jena2/ARQ/trunk/src: main/java/com/hp/hpl/jena/query/ main/java/com/hp/hpl/jena/sparql/engine/main/iterator/ test/java/com/hp/hpl/jena/sparql/core/

Author: andy
Date: Mon Nov 14 14:28:41 2011
New Revision: 1201724

URL: http://svn.apache.org/viewvc?rev=1201724&view=rev
Log:
Make general purpose ("any graph") in-memory datasets work for SPARQL probe: "ASK { GRAPH <g> {}".

Modified:
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java
    incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java
    incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/query/DatasetFactory.java Mon Nov 14 14:28:41 2011
@@ -44,7 +44,7 @@ public class DatasetFactory
     /** Create an in-memory, modifiable Dataset.
      * New graphs must be explicitly added using .addGraph.
      */
-    public static Dataset createMemFixed() { return create(DatasetGraphFactory.createMemFixed()) ; }
+    public static Dataset createMemFixed() { return create(DatasetGraphFactory.createMem()) ; }
 
     /** Create an in-memory, modifable Dataset
      * @deprecated Use createMem

Modified: incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/main/java/com/hp/hpl/jena/sparql/engine/main/iterator/QueryIterGraph.java Mon Nov 14 14:28:41 2011
@@ -151,17 +151,10 @@ public class QueryIterGraph extends Quer
                 return null ;
             Node gn = graphNames.next() ;
 
-//            Binding b = parentBinding ;
-//            if ( Var.isVar(opGraph.getNode()) )
-//                // (graph ?g (...))
-//                b = BindingFactory.binding(b, Var.alloc(opGraph.getNode()), gn) ;
-//            QueryIterator qIter = buildIterator(b, gn, opGraph, getExecContext()) ;
-            
-            
             QueryIterator qIter = buildIterator(parentBinding, gn, opGraph, getExecContext()) ;
             if ( Var.isVar(opGraph.getNode()) )
             {
-                // This is the join.
+                // This is the join of the graph node variable to the sub-pattern solution.
                 // Do after the subpattern so that the variable is not visible to the
                 // subpattern.
                 Var v = Var.alloc(opGraph.getNode()) ;
@@ -181,9 +174,14 @@ public class QueryIterGraph extends Quer
             // Think about avoiding substitution.
             // If the subpattern does not involve the vars from the binding, avoid the substitute.  
             Op op = QC.substitute(opGraph.getSubOp(), binding) ;
+            if ( ! outerCxt.getDataset().containsGraph(graphNode) )
+                return null ;
+
             Graph g = outerCxt.getDataset().getGraph(graphNode) ;
+            // And the contains was true??!!!!!!
             if ( g == null )
                 return null ;
+                //throw new ARQInternalErrorException(".containsGraph was true but .getGraph is null") ;
             
             ExecutionContext cxt2 = new ExecutionContext(outerCxt, g) ;
             QueryIterator subInput = QueryIterSingleton.create(binding, cxt2) ;

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDataset.java Mon Nov 14 14:28:41 2011
@@ -18,16 +18,11 @@
 
 package com.hp.hpl.jena.sparql.core;
 
-import static junit.framework.Assert.assertEquals ;
-import static junit.framework.Assert.assertFalse ;
-import static junit.framework.Assert.assertNotNull ;
-import static junit.framework.Assert.assertNull ;
-import static junit.framework.Assert.assertTrue ;
-
 import java.util.List ;
 
 import org.junit.Test ;
 import org.openjena.atlas.iterator.Iter ;
+import org.openjena.atlas.junit.BaseTest ;
 
 import com.hp.hpl.jena.query.Dataset ;
 import com.hp.hpl.jena.rdf.model.Model ;
@@ -35,7 +30,7 @@ import com.hp.hpl.jena.rdf.model.ModelFa
 import com.hp.hpl.jena.rdf.model.Property ;
 import com.hp.hpl.jena.rdf.model.Resource ;
 
-public abstract class TestDataset
+public abstract class TestDataset extends BaseTest
 {
     // Assumes a dadatset which need explicit add graph 
     protected abstract Dataset createFixed() ;
@@ -71,14 +66,14 @@ public abstract class TestDataset
         assertTrue(model1.isIsomorphicWith(ds.getDefaultModel())) ;
     }
 
-    @Test public void datasource_01()
+    @Test public void dataset_03()
     {
         Dataset ds = createFixed() ;
         ds.setDefaultModel(model2) ;
         assertTrue(model2.isIsomorphicWith(ds.getDefaultModel())) ;
     }
 
-    @Test public void datasource_02()
+    @Test public void dataset_04()
     {
         String graphName = "http://example/" ;
         Dataset ds = createFixed() ;
@@ -96,11 +91,11 @@ public abstract class TestDataset
         assertTrue(model1.isIsomorphicWith(m)) ;
         
         ds.removeNamedModel(graphName) ;
-        Model m2 = ds.getNamedModel(graphName) ;
-        assertNull(m2) ;
+        // Not getNamedModel and test for null as some dadasets are "auto graph creating"
+        assertFalse(ds.containsNamedModel(graphName)) ;
     }
 
-    @Test public void datasource_03()
+    @Test public void dataset_05()
     {
         String graphName = "http://example/" ;
         Dataset ds = createFixed() ;

Modified: incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java
URL: http://svn.apache.org/viewvc/incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java?rev=1201724&r1=1201723&r2=1201724&view=diff
==============================================================================
--- incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java (original)
+++ incubator/jena/Jena2/ARQ/trunk/src/test/java/com/hp/hpl/jena/sparql/core/TestDatasetMem.java Mon Nov 14 14:28:41 2011
@@ -31,5 +31,5 @@ public class TestDatasetMem extends Test
     }
     
     @Override
-    protected Dataset createFixed() { return DatasetFactory.createMemFixed() ; }
+    protected Dataset createFixed() { return DatasetFactory.createMem() ; }
 }