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 2014/11/30 15:31:25 UTC
[1/3] jena git commit: JENA-816 : Suppress datatype xsd:string when
out for RDF 1.1
Repository: jena
Updated Branches:
refs/heads/master a1c50acc9 -> e17f8b8f2
JENA-816 : Suppress datatype xsd:string when out for RDF 1.1
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/a32cc904
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/a32cc904
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/a32cc904
Branch: refs/heads/master
Commit: a32cc904bf9b7cee6081bdbaf4b953b15f62f956
Parents: a1c50ac
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Nov 30 14:29:33 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Nov 30 14:29:33 2014 +0000
----------------------------------------------------------------------
.../jena/sparql/resultset/JSONOutputResultSet.java | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/a32cc904/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
index a7296d6..5ba2579 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/resultset/JSONOutputResultSet.java
@@ -35,6 +35,7 @@ import com.hp.hpl.jena.query.ResultSet ;
import com.hp.hpl.jena.rdf.model.Literal ;
import com.hp.hpl.jena.rdf.model.RDFNode ;
import com.hp.hpl.jena.rdf.model.Resource ;
+import com.hp.hpl.jena.rdf.model.impl.Util ;
/**
* A JSON writer for SPARQL Result Sets. Uses Jena Atlas JSON support.
@@ -189,15 +190,7 @@ public class JSONOutputResultSet implements ResultSetProcessor
String datatype = literal.getDatatypeURI() ;
String lang = literal.getLanguage() ;
- if ( datatype != null )
- {
- out.print(quoteName(kDatatype)+": "+quote(datatype)+" , ") ;
- if ( multiLineValues ) out.println() ;
-
- out.print(quoteName(kType)+": "+quote(kTypedLiteral)+" , ") ;
- if ( multiLineValues ) out.println() ;
- }
- else
+ if ( Util.isSimpleString(literal) || Util.isLangString(literal) )
{
out.print(quoteName(kType)+": "+quote(kLiteral)+" , ") ;
if ( multiLineValues ) out.println() ;
@@ -207,6 +200,12 @@ public class JSONOutputResultSet implements ResultSetProcessor
out.print(quoteName(kXmlLang)+": "+quote(lang)+" , ") ;
if ( multiLineValues ) out.println() ;
}
+ } else {
+ out.print(quoteName(kDatatype)+": "+quote(datatype)+" , ") ;
+ if ( multiLineValues ) out.println() ;
+
+ out.print(quoteName(kType)+": "+quote(kTypedLiteral)+" , ") ;
+ if ( multiLineValues ) out.println() ;
}
out.print(quoteName(kValue)+": "+quote(literal.getLexicalForm())) ;
[2/3] jena git commit: JENA-816 : Argument compatibility for RDF 1.0
and RDF 1.1
Posted by an...@apache.org.
JENA-816 : Argument compatibility for RDF 1.0 and RDF 1.1
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/cbdb84e5
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/cbdb84e5
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/cbdb84e5
Branch: refs/heads/master
Commit: cbdb84e516b116fd3ef86bcb3c4a41c53b1cd9f9
Parents: a32cc90
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Nov 30 14:30:30 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Nov 30 14:30:30 2014 +0000
----------------------------------------------------------------------
.../sparql/expr/nodevalue/NodeFunctions.java | 70 +++++++++++++++-----
1 file changed, 53 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/cbdb84e5/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 fd3e0b6..825fda0 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
@@ -61,18 +61,32 @@ public class NodeFunctions {
return n ;
// No language tag : either no datatype or a datatype of xsd:string
- // Special case : rdf:langString and no language ==> Illegal
+ // Includes the case of rdf:langString and no language ==> Illegal as a compatible string.
+
RDFDatatype dt = n.getLiteralDatatype() ;
- if ( dt != null && !dt.equals(XSDDatatype.XSDstring) )
- throw new ExprEvalException(label + ": Not a string literal: " + nv) ;
- return n ;
+ if ( dt == null )
+ return n ;
+ if ( XSDDatatype.XSDstring.equals(dt) )
+ return n ;
+ throw new ExprEvalException(label + ": Not a string literal: " + nv) ;
}
/**
* Check for string operations with primary first arg and second second arg
- * (e.g. CONTAINS)
+ * (e.g. CONTAINS). The arguments are not used in the same way and the check
+ * operation is not symmetric.
+ * <li> "abc"@en is compatible with "abc"
+ * <li> "abc" is NOT compatible with "abc"@en
*/
public static void checkTwoArgumentStringLiterals(String label, NodeValue arg1, NodeValue arg2) {
+
+ /* Quote the spec:
+ * Compatibility of two arguments is defined as:
+ * The arguments are simple literals or literals typed as xsd:string
+ * The arguments are plain literals with identical language tags
+ * The first argument is a plain literal with language tag and the second argument is a simple literal or literal typed as xsd:string
+ */
+
Node n1 = checkAndGetStringLiteral(label, arg1) ;
Node n2 = checkAndGetStringLiteral(label, arg2) ;
String lang1 = n1.getLiteralLanguage() ;
@@ -82,22 +96,44 @@ public class NodeFunctions {
if ( lang2 == null )
lang2 = "" ;
- if ( n1.getLiteralDatatype() != null ) {
- // n1 is an xsd string by checkAndGetString
- if ( XSDDatatype.XSDstring.equals(n2.getLiteralDatatypeURI()) )
- return ;
- if ( n2.getLiteralLanguage().equals("") )
+ // Case 1
+ if ( lang1.equals("") ) {
+ if ( lang2.equals("") )
return ;
throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
}
- // Incompatible?
- // arg1 simple or xsd:string, arg2 has a lang.
- if ( lang1.equals("") && !lang2.equals("") )
- throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
- // arg1 with lang, arg2 has a different lang.
- if ( !lang1.equals("") && (!lang2.equals("") && !lang1.equals(lang2)) )
- throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
+ // Case 2
+ if ( lang1.equalsIgnoreCase(lang2) )
+ return ;
+
+ // Case 3
+ if ( lang2.equals("") )
+ return ;
+
+ throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
+
+ // ----------
+
+// if ( lang1.equals("") && !lang2.equals("") )
+// throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
+//
+//
+//
+// if ( n1.getLiteralDatatype() != null ) {
+// // n1 is an xsd string by checkAndGetString
+// if ( XSDDatatype.XSDstring.equals(n2.getLiteralDatatypeURI()) )
+// return ;
+// if ( n2.getLiteralLanguage().equals("") )
+// return ;
+// throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
+// }
+//
+// // Incompatible?
+// // arg1 simple or xsd:string, arg2 has a lang.
+// // arg1 with lang, arg2 has a different lang.
+// if ( !lang1.equals("") && (!lang2.equals("") && !lang1.equals(lang2)) )
+// throw new ExprEvalException(label + ": Incompatible: " + arg1 + " and " + arg2) ;
}
// -------- sameTerm
[3/3] jena git commit: Robust against RDF 1.0 and RDF 1.1
Posted by an...@apache.org.
Robust against RDF 1.0 and RDF 1.1
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e17f8b8f
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e17f8b8f
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e17f8b8f
Branch: refs/heads/master
Commit: e17f8b8f24cd8e3560c21b092f7aa544aa3d39d1
Parents: cbdb84e
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Nov 30 14:31:10 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Nov 30 14:31:10 2014 +0000
----------------------------------------------------------------------
.../src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/e17f8b8f/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
index b7180f6..8e2c71d 100644
--- a/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
+++ b/jena-arq/src/main/java/com/hp/hpl/jena/sparql/expr/NodeValue.java
@@ -96,6 +96,7 @@ import com.hp.hpl.jena.sparql.graph.NodeConst ;
import com.hp.hpl.jena.sparql.graph.NodeTransform ;
import com.hp.hpl.jena.sparql.serializer.SerializationContext ;
import com.hp.hpl.jena.sparql.util.* ;
+import com.hp.hpl.jena.vocabulary.RDF ;
public abstract class NodeValue extends ExprNode
{
@@ -980,7 +981,7 @@ public abstract class NodeValue extends ExprNode
// Not a literal - no value to extract
return new NodeValueNode(node) ;
- boolean hasLangTag = ( node.getLiteralLanguage() != null && ! node.getLiteralLanguage().equals("")) ;
+ boolean hasLangTag = NodeUtils.isLangString(node) ;
boolean isPlainLiteral = ( node.getLiteralDatatypeURI() == null && ! hasLangTag ) ;
if ( isPlainLiteral )
@@ -988,7 +989,8 @@ public abstract class NodeValue extends ExprNode
if ( hasLangTag )
{
- if ( node.getLiteralDatatypeURI() != null )
+ // Works for RDF 1.0 and RDF 1.1
+ if ( node.getLiteralDatatype() != null && ! RDF.dtLangString.equals(node.getLiteralDatatype()) )
{
if ( NodeValue.VerboseWarnings )
Log.warn(NodeValue.class, "Lang tag and datatype (datatype ignored)") ;