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