You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by cl...@apache.org on 2015/05/19 21:14:51 UTC

[06/11] jena git commit: RDF 1.1 - no need to encode xsd:string or rdf:langString explicitly.

RDF 1.1 - no need to encode xsd:string or rdf:langString explicitly.

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

Branch: refs/heads/add-contract-tests
Commit: 6c2d522c9ffdf5b1571ea8890d978bda4850d260
Parents: cfaa3d7
Author: Andy Seaborne <an...@apache.org>
Authored: Mon May 18 17:02:54 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Mon May 18 17:02:54 2015 +0100

----------------------------------------------------------------------
 .../apache/jena/riot/thrift/ThriftConvert.java  |  8 ++++
 .../apache/jena/riot/thrift/TS_RDFThrift.java   |  1 -
 .../apache/jena/riot/thrift/TestThriftTerm.java | 48 ++++++++++++++++++--
 3 files changed, 51 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/6c2d522c/jena-arq/src/main/java/org/apache/jena/riot/thrift/ThriftConvert.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/main/java/org/apache/jena/riot/thrift/ThriftConvert.java b/jena-arq/src/main/java/org/apache/jena/riot/thrift/ThriftConvert.java
index f7c23cf..454e0a6 100644
--- a/jena-arq/src/main/java/org/apache/jena/riot/thrift/ThriftConvert.java
+++ b/jena-arq/src/main/java/org/apache/jena/riot/thrift/ThriftConvert.java
@@ -23,9 +23,11 @@ import static org.apache.jena.riot.thrift.TRDF.ANY ;
 import java.math.BigDecimal ;
 import java.math.BigInteger ;
 
+import org.apache.jena.JenaRuntime ;
 import org.apache.jena.atlas.lib.Pair ;
 import org.apache.jena.datatypes.RDFDatatype ;
 import org.apache.jena.datatypes.xsd.XSDDatatype ;
+import org.apache.jena.datatypes.xsd.impl.RDFLangString ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.graph.Triple ;
@@ -250,6 +252,12 @@ public class ThriftConvert
             
             // General encoding.
             RDF_Literal literal = new RDF_Literal(lex) ;
+            if ( JenaRuntime.isRDF11 ) {
+                if ( node.getLiteralDatatype().equals(XSDDatatype.XSDstring) || 
+                     node.getLiteralDatatype().equals(RDFLangString.rdfLangString) )
+                    dt = null ;
+            }
+            
             if ( dt != null ) {
                 RDF_PrefixName dtPrefixName = contract(dt, pmap) ;
                 if ( dtPrefixName != null )

http://git-wip-us.apache.org/repos/asf/jena/blob/6c2d522c/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java
index 1af21fe..a5282e4 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TS_RDFThrift.java
@@ -33,6 +33,5 @@ import org.junit.runners.Suite ;
 
 public class TS_RDFThrift {
     public static final String TestingDir = "testing/RIOT/RDF-Thrift" ;
-
 }
 

http://git-wip-us.apache.org/repos/asf/jena/blob/6c2d522c/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java
----------------------------------------------------------------------
diff --git a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java
index 3eb7cd6..70ea33e 100644
--- a/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java
+++ b/jena-arq/src/test/java/org/apache/jena/riot/thrift/TestThriftTerm.java
@@ -18,10 +18,12 @@
 
 package org.apache.jena.riot.thrift;
 
+import org.apache.jena.JenaRuntime ;
 import org.apache.jena.atlas.junit.BaseTest ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.NodeFactory ;
 import org.apache.jena.rdf.model.AnonId ;
+import org.apache.jena.rdf.model.impl.Util ;
 import org.apache.jena.riot.system.PrefixMap ;
 import org.apache.jena.riot.system.PrefixMapFactory ;
 import org.apache.jena.riot.thrift.TRDF ;
@@ -74,11 +76,17 @@ public class TestThriftTerm extends BaseTest {
     }
     
     @Test public void term_literal_01() {
-        testTerm("'foo'") ;
+        RDF_Term rt = testTerm("'foo'") ;
+        assertFalse(rt.getLiteral().isSetDatatype()) ;
+        assertFalse(rt.getLiteral().isSetDtPrefix()) ;
+        assertFalse(rt.getLiteral().isSetLangtag()) ;
     }
 
     @Test public void term_literal_02() {
-        testTerm("'foo'@en") ;
+        RDF_Term rt = testTerm("'foo'@en") ;
+        assertFalse(rt.getLiteral().isSetDatatype()) ;
+        assertFalse(rt.getLiteral().isSetDtPrefix()) ;
+        assertTrue(rt.getLiteral().isSetLangtag()) ;
     }    
 
     @Test public void term_literal_03() {
@@ -104,7 +112,6 @@ public class TestThriftTerm extends BaseTest {
         assertEquals(rt.getLiteral().getDtPrefix().getLocalName(), "") ;
     }
 
-    
     @Test public void term_var_01() {
         testTerm("?var") ;
     }
@@ -246,9 +253,40 @@ public class TestThriftTerm extends BaseTest {
             RDF_Literal lit = rt.getLiteral() ;
             assertTrue(lit.isSetLex()) ;
             assertEquals(node.getLiteralLexicalForm(), lit.getLex()) ;
+            
             // RDF 1.1
-            if ( node.getLiteralDatatype() != null ) {
-                assertTrue(lit.isSetDatatype() || lit.isSetDtPrefix()) ;
+            if (JenaRuntime.isRDF11) {
+                if ( Util.isSimpleString(node) ) {
+                    assertFalse(lit.isSetDatatype()) ;
+                    assertFalse(lit.isSetDtPrefix()) ;
+                    assertFalse(lit.isSetLangtag()) ;
+                } else if ( Util.isLangString(node) ) {
+                    assertFalse(lit.isSetDatatype()) ;
+                    assertFalse(lit.isSetDtPrefix()) ;
+                    assertTrue(lit.isSetLangtag()) ;
+                }
+                else {
+                    // Regular typed literal.
+                    assertTrue(lit.isSetDatatype() || lit.isSetDtPrefix()) ;
+                    assertFalse(lit.isSetLangtag()) ;
+                }
+                    
+            } else {
+                // RDF 1.0
+                if ( node.getLiteralDatatype() == null ) {
+                    if ( Util.isLangString(node ) ) {
+                        assertFalse(lit.isSetDatatype()) ;
+                        assertFalse(lit.isSetDtPrefix()) ;
+                        assertTrue(lit.isSetLangtag()) ;
+                    } else {
+                        assertFalse(lit.isSetDatatype()) ;
+                        assertFalse(lit.isSetDtPrefix()) ;
+                        assertFalse(lit.isSetLangtag()) ;
+                    }                        
+                } else {
+                    assertTrue(lit.isSetDatatype() || lit.isSetDtPrefix()) ;
+                }
+                    
             }
         } else if ( node.isBlank() ) {
             assertTrue(rt.isSetBnode()) ;