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 2015/10/06 14:07:11 UTC

[1/3] jena git commit: Use the default graph of a wrapped dataset for the prefix map.

Repository: jena
Updated Branches:
  refs/heads/master 9df66f56a -> bb567d720


Use the default graph of a wrapped dataset for the prefix map.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/880c4100
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/880c4100
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/880c4100

Branch: refs/heads/master
Commit: 880c4100e83f9aaf33b3f5cbbe79aa863b5b989c
Parents: 97ec600
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Oct 6 12:46:19 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Oct 6 12:46:19 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/jena/sparql/core/GraphView.java    | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/880c4100/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java b/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
index dc5e537..ec34d2d 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/GraphView.java
@@ -89,9 +89,16 @@ public class GraphView extends GraphBase implements Sync
     protected static final boolean isDefaultGraph(Node gn) { return gn == null || Quad.isDefaultGraph(gn) ; }
     protected static final boolean isUnionGraph(Node gn)   { return Quad.isUnionGraph(gn) ; }
     
+    // TODO Unsatisfactory - need PrefixMap support by DSGs 
+    // and sort out PrefixMap/PrefixMapping.
+    
     @Override
     protected PrefixMapping createPrefixMapping() {
-        // TODO Unsatisfactory - need PrefixMap support by DSGs then PrefixMap -> PrefixMapping
+        // Unwrap if possible, else put in an in-memroy placeholder. 
+        if ( dsg instanceof DatasetGraphWrapper ) {
+            DatasetGraph dsg2 = ((DatasetGraphWrapper)dsg).getBase() ;
+            return dsg2.getDefaultGraph().getPrefixMapping() ;    
+        }
         return new PrefixMappingImpl() ;
     }
 


[3/3] jena git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/jena

Posted by an...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/jena


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/bb567d72
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/bb567d72
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/bb567d72

Branch: refs/heads/master
Commit: bb567d720a78834e02a6e4e5c7be4b8da710b7e9
Parents: 3b37942 9df66f5
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Oct 6 13:07:01 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Oct 6 13:07:01 2015 +0100

----------------------------------------------------------------------
 jena-core/src/main/java/org/apache/jena/system/JenaSystem.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------



[2/3] jena git commit: JENA-1044: Avoid creating an exception on the normal execution path.

Posted by an...@apache.org.
JENA-1044: Avoid creating an exception on the normal execution path.

Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3b37942c
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3b37942c
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3b37942c

Branch: refs/heads/master
Commit: 3b37942c71411347d5fb4d7891d2eacbeabad972
Parents: 880c410
Author: Andy Seaborne <an...@apache.org>
Authored: Tue Oct 6 13:06:06 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Tue Oct 6 13:06:06 2015 +0100

----------------------------------------------------------------------
 .../org/apache/jena/sparql/expr/E_Bound.java    | 14 +++-
 .../org/apache/jena/sparql/expr/TS_Expr.java    |  1 +
 .../jena/sparql/expr/TestExpressions.java       |  2 +
 .../jena/sparql/expr/TestExpressions2.java      |  1 -
 .../jena/sparql/expr/TestExpressions3.java      | 74 ++++++++++++++++++++
 5 files changed, 89 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3b37942c/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Bound.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Bound.java b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Bound.java
index ba9ba15..caa7516 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Bound.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/expr/E_Bound.java
@@ -35,11 +35,21 @@ public class E_Bound extends ExprFunction1
     @Override
     public NodeValue evalSpecial(Binding binding, FunctionEnv env)
     { 
+        if ( expr.isConstant() )
+            // The case of the variable already being substituted for a constant.
+            return NodeValue.FALSE ;
+        
+        if ( expr.isVariable() )
+            // The case of the expr being a single variable. 
+            return NodeValue.booleanReturn(binding.contains(expr.asVar())) ; 
+        
+        // General expression. This case can't be written in SPARQL
+        // but we keep the code general in case some optimziation rewrite
+        // or algebra expression uses the generalized feature.
 		try {
 			expr.eval(binding, env) ;
             return NodeValue.TRUE ;
-		} catch (VariableNotBoundException ex)
-		{
+		} catch (VariableNotBoundException ex) {
 			return NodeValue.FALSE ;
 		}
     }

http://git-wip-us.apache.org/repos/asf/jena/blob/3b37942c/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
index 5cbf2b7..f2f3abd 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TS_Expr.java
@@ -31,6 +31,7 @@ import org.junit.runners.Suite.SuiteClasses ;
     TestNodeValue.class 
     , TestExpressions.class
     , TestExpressions2.class
+    , TestExpressions3.class
     , TestNodeFunctions.class
     , TestExpressions2.class
     , TestFunctions.class

http://git-wip-us.apache.org/repos/asf/jena/blob/3b37942c/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions.java
index 631aac9..46c58d3 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions.java
@@ -47,6 +47,8 @@ import org.junit.Test ;
 
 /** Break expression testing suite into parts
 * @see TestExpressions
+* @see TestExpressions2
+* @see TestExpressions3
 * @see TestExprLib
 * @see TestNodeValue
 */

http://git-wip-us.apache.org/repos/asf/jena/blob/3b37942c/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
index 5fd084c..3dfc53d 100644
--- a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions2.java
@@ -35,7 +35,6 @@ import org.junit.Test ;
 */
 public class TestExpressions2 extends BaseTest
 {
-    
     @Test public void gregorian_eq_01()         { eval("'1999'^^xsd:gYear = '1999'^^xsd:gYear", true) ; }
     @Test public void gregorian_eq_02()         { eval("'1999'^^xsd:gYear != '1999'^^xsd:gYear", false) ; }
     

http://git-wip-us.apache.org/repos/asf/jena/blob/3b37942c/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java
new file mode 100644
index 0000000..61fa32e
--- /dev/null
+++ b/jena-arq/src/test/java/org/apache/jena/sparql/expr/TestExpressions3.java
@@ -0,0 +1,74 @@
+/*
+ * 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.jena.sparql.expr;
+
+import org.apache.jena.atlas.junit.BaseTest ;
+import org.apache.jena.sparql.engine.binding.Binding ;
+import org.apache.jena.sparql.expr.nodevalue.XSDFuncOp ;
+import org.apache.jena.sparql.function.FunctionEnvBase ;
+import org.apache.jena.sparql.sse.Item ;
+import org.apache.jena.sparql.sse.SSE ;
+import org.apache.jena.sparql.sse.builders.BuilderBinding ;
+import org.apache.jena.sparql.util.ExprUtils ;
+import org.junit.Test ;
+
+/** Expression evaluation involving bindings. 
+* @see TestExpressions
+* @see TestExpressions2
+* @see TestExpressions3
+* @see TestExprLib
+* @see TestNodeValue
+*/
+public class TestExpressions3 extends BaseTest
+{
+    @Test public void bound_01()       { eval("BOUND(?x)", "(?x 1)", true) ; }
+    @Test public void bound_02()       { eval("BOUND(?x)", "(?y 1)", false) ; }
+    @Test public void bound_03()       { evalExpr("(bound 1)", "(?y 1)", false) ; }
+    @Test public void bound_04()       { evalExpr("(bound 1)", "()", false) ; }
+    @Test public void bound_05()       { evalExpr("(bound ?x)", "(?y 1)", false) ; }
+    @Test public void bound_06()       { evalExpr("(bound ?x)", "(?x 1)", true) ; }
+    @Test public void bound_07()       { evalExpr("(bound (+ ?x 1))", "(?y 1)", false) ; }
+    @Test public void bound_08()       { evalExpr("(bound (+ ?y 1))", "(?y 1)", true) ; }
+
+    // From SPARQL syntax
+    private static void eval(String string, String bindingStr, boolean expected) {
+        Binding binding = binding(bindingStr) ; 
+        Expr expr = ExprUtils.parse(string) ;
+        NodeValue nv = expr.eval(binding, FunctionEnvBase.createTest()) ;
+        boolean b = XSDFuncOp.booleanEffectiveValue(nv) ;
+        assertEquals(string, expected, b) ;
+    }
+    
+    // From algebra/SSE
+    private static void evalExpr(String exprString, String bindingStr, boolean expected) {
+        Binding binding = binding(bindingStr) ;
+        Expr expr = SSE.parseExpr(exprString) ;
+        NodeValue nv = expr.eval(binding, FunctionEnvBase.createTest()) ;
+        boolean b = XSDFuncOp.booleanEffectiveValue(nv) ;
+        assertEquals(exprString, expected, b) ;
+    }
+
+    private static Binding binding(String bindingStr) {
+        if ( bindingStr == null || bindingStr.matches("\\s*\\(\\s*\\)\\s*") )
+            return null ;
+        Item item = SSE.parse("(binding "+bindingStr+")") ;
+        Binding binding = BuilderBinding.build(item) ;
+        return binding ;   
+    }
+}