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/22 16:54:46 UTC

[03/10] jena git commit: JENA-816 : Recode to be RDF 1.0/1.1 neutral.

JENA-816 : Recode to be RDF 1.0/1.1 neutral.

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

Branch: refs/heads/master
Commit: 8864bd0609831cd67edff27e6b5e39d4d2d2ee22
Parents: c3843a3
Author: Andy Seaborne <an...@apache.org>
Authored: Sat Nov 22 15:17:15 2014 +0000
Committer: Andy Seaborne <an...@apache.org>
Committed: Sat Nov 22 15:17:15 2014 +0000

----------------------------------------------------------------------
 .../process/normalize/CanonicalizeLiteral.java  | 27 ++++++++++----------
 1 file changed, 13 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/8864bd06/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java b/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
index a745b29..d30eee6 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/process/normalize/CanonicalizeLiteral.java
@@ -23,12 +23,12 @@ import java.util.Map ;
 
 import org.apache.jena.riot.web.LangTag ;
 
-
 import com.hp.hpl.jena.datatypes.RDFDatatype ;
 import com.hp.hpl.jena.datatypes.xsd.XSDDatatype ;
 import com.hp.hpl.jena.graph.Node ;
 import com.hp.hpl.jena.graph.NodeFactory ;
 import com.hp.hpl.jena.sparql.graph.NodeTransform ;
+import com.hp.hpl.jena.sparql.util.NodeUtils ;
 import com.hp.hpl.jena.vocabulary.RDF ;
 
 public class CanonicalizeLiteral implements NodeTransform    
@@ -40,42 +40,41 @@ public class CanonicalizeLiteral implements NodeTransform
     private CanonicalizeLiteral() {}
     
     @Override
-    public Node convert(Node node)
-    {
+    public Node convert(Node node) {
         if ( ! node.isLiteral() )
             return node ;
             
         RDFDatatype dt = node.getLiteralDatatype() ;
         Node n2 ;
-        if ( dt == null )
-        {
+        if ( NodeUtils.isLangString(node) ) {
+            // RDF 1.0, no datatype ; RDF 1.1 : datatype is rdf:langString 
             if ( node.getLiteralLanguage().equals("") )
                 //n2 = NormalizeValue.dtSimpleLiteral.handle(node, node.getLiteralLexicalForm(), null) ;
                 return node ;
             else
-                n2 = canonicalLangtag(node, node.getLiteralLexicalForm(), node.getLiteralLanguage()) ; 
-        }
-        else
-        {
-            // Valid?  Yes - assumes checking has been done.
-            // May integrate later
+                n2 = canonicalLangtag(node.getLiteralLexicalForm(), node.getLiteralLanguage()) ; 
+        } else if ( dt == null ) {
+            // RDF 1.0 / no lang.
+            n2 = NormalizeValue.dtSimpleLiteral.handle(node, node.getLiteralLexicalForm(), null) ;
+        } else {
+            // Dataype, not rdf:langString (RDF 1.1). 
             DatatypeHandler handler = dispatch.get(dt) ;
             if ( handler == null )
                 return node ;
-    
             n2 = handler.handle(node, node.getLiteralLexicalForm(), dt) ;
         }
+        
         if ( n2 == null )
             return node ;
         return n2 ;
     }
     
-    private static Node canonicalLangtag(Node node, String lexicalForm, String langTag)
+    private static Node canonicalLangtag(String lexicalForm, String langTag)
     {
         String langTag2 = LangTag.canonical(langTag) ;
         if ( langTag2.equals(langTag) )
             return null ;
-        return NodeFactory.createLiteral(lexicalForm, langTag2, null) ;
+        return NodeFactory.createLiteral(lexicalForm, langTag2) ;
     }
     
     private static final RDFDatatype dtPlainLiteral = NodeFactory.getType(RDF.getURI()+"PlainLiteral") ;