You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2014/11/25 17:27:02 UTC

[40/48] jena git commit: JENA-816 : SPARQL for RDF 1.1 : "Argument Compatibility Rules"

JENA-816 : SPARQL for RDF 1.1 : "Argument Compatibility Rules"

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

Branch: refs/heads/hadoop-rdf
Commit: 96476222d3bd9dd8c59e7e5ccde586fd3b124a7e
Parents: 707ecb9
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Nov 22 17:31:52 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Nov 22 17:31:52 2014 +0000

----------------------------------------------------------------------
 .../hpl/jena/sparql/expr/nodevalue/NodeFunctions.java  | 12 ++++++++++--
 .../com/hp/hpl/jena/sparql/expr/TestNodeFunctions.java | 13 +++++--------
 .../com/hp/hpl/jena/sparql/expr/TestNodeValue.java     | 10 +++++++---
 3 files changed, 22 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/96476222/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/NodeFunctions.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/NodeFunctions.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/NodeFunctions.java
index 94013ff..ff52250 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/NodeFunctions.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/nodevalue/NodeFunctions.java
@@ -30,11 +30,13 @@ import org.apache.jena.atlas.logging.Log ;
 import org.apache.jena.iri.IRI ;
 import org.apache.jena.iri.IRIFactory ;
 import org.apache.jena.iri.Violation ;
+
 import com.hp.hpl.jena.sparql.expr.ExprEvalException ;
 import com.hp.hpl.jena.sparql.expr.ExprTypeException ;
 import com.hp.hpl.jena.sparql.expr.NodeValue ;
 import com.hp.hpl.jena.sparql.graph.NodeConst ;
 import com.hp.hpl.jena.sparql.util.FmtUtils ;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
 import com.hp.hpl.jena.vocabulary.XSD ;
 
 /**
@@ -52,9 +54,15 @@ public class NodeFunctions {
         Node n = nv.asNode() ;
         if ( !n.isLiteral() )
             throw new ExprEvalException(label + ": Not a literal: " + nv) ;
-        RDFDatatype dt = n.getLiteralDatatype() ;
         String lang = n.getLiteralLanguage() ;
-
+        
+        if ( NodeUtils.isLangString(n) )
+            // Language tag.  Legal.  
+            return n ;
+        
+        // No language tag : either no datatype or a datatype of xsd:string 
+        // Special case : rdf:langString and no language ==> Illegal
+        RDFDatatype dt = n.getLiteralDatatype() ;
         if ( dt != null && !dt.equals(XSDDatatype.XSDstring) )
             throw new ExprEvalException(label + ": Not a string literal: " + nv) ;
         return n ;

http://git-wip-us.apache.org/repos/asf/jena/blob/96476222/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeFunctions.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeFunctions.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeFunctions.java
index 3e0bd4e..af59b16 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeFunctions.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeFunctions.java
@@ -21,6 +21,7 @@ package com.hp.hpl.jena.sparql.expr ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.junit.Test ;
 
+import com.hp.hpl.jena.JenaRuntime ;
 import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.NodeFactory ;
@@ -32,13 +33,6 @@ public class TestNodeFunctions extends BaseTest {
     private static final double accuracyExact = 0.0d ;
     private static final double accuracyClose = 0.000001d ;
 
-    // public static TestSuite suite()
-    // {
-    // TestSuite ts = new TestSuite(TestNodeFunctions.class) ;
-    // ts.setName(Utils.classShortName(TestNodeFunctions.class)) ;
-    // return ts ;
-    // }
-
     @Test public void testSameTerm1() {
         Node n1 = NodeFactory.createLiteral("xyz") ;
         Node n2 = NodeFactory.createLiteral("xyz") ;
@@ -60,7 +54,10 @@ public class TestNodeFunctions extends BaseTest {
     @Test public void testSameTerm4() {
         Node n1 = NodeFactory.createLiteral("xyz") ;
         Node n2 = NodeFactory.createLiteral("xyz", null, XSDDatatype.XSDstring) ;
-        assertFalse(NodeFunctions.sameTerm(n1, n2)) ;
+        if ( JenaRuntime.isRDF11 )
+            assertTrue(NodeFunctions.sameTerm(n1, n2)) ;
+        else
+            assertFalse(NodeFunctions.sameTerm(n1, n2)) ;
     }
 
     @Test public void testSameTerm5() {

http://git-wip-us.apache.org/repos/asf/jena/blob/96476222/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValue.java b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValue.java
index 83b323b..f6d1296 100644
--- a/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValue.java
+++ b/jena-arq/src/test/java/com/hp/hpl/jena/sparql/expr/TestNodeValue.java
@@ -26,6 +26,7 @@ import java.util.TimeZone ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.junit.Test ;
 
+import com.hp.hpl.jena.JenaRuntime ;
 import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.sparql.expr.nodevalue.XSDFuncOp ;
@@ -630,9 +631,12 @@ public class TestNodeValue extends BaseTest
         assertTrue("Not a string: "+v, v.isString()) ;
         assertTrue("Not a node: "+v, v.hasNode()) ;
         String actualStr = v.asQuotedString() ;
-        assertEquals("Print form mismatch",
-                     "\"string\"^^<"+XSDDatatype.XSDstring.getURI()+">",
-                     actualStr) ;
+        String rightAnswer = JenaRuntime.isRDF11
+            // RDF 1.1 -- appearance is a without ^^
+            ? "\"string\""
+            : "\"string\"^^<"+XSDDatatype.XSDstring.getURI()+">" ;
+        
+        assertEquals("Print form mismatch", rightAnswer, actualStr) ;
     }
 
     // TODO testSameValueDecimal tests