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/master Commit: 6c2d522c9ffdf5b1571ea8890d978bda4850d260 Parents: cfaa3d7 Author: Andy Seaborne <[email protected]> Authored: Mon May 18 17:02:54 2015 +0100 Committer: Andy Seaborne <[email protected]> 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()) ;
