Update: jena-core & jena-arq status
If you want to play, set:
JenaRuntime.isRDF11 = true
Do not run on persistent storage yet.
** jena-core:
Notes:
The Literal.getInt etc operations now cast xsd;strings, not just plain
literals. Its the most compatible way forward. Personally, I think the
whole casting thing in this area id now wrong (it's an XML-centric
feature because of prevalence of <property>123</property>).
Todo-1/
There is one RDF/XML-ABBREV writer thing to sort out - it is not using
attributes for simple strings because they have type xsd:string now.
** jena-arq:
Todo-2/
ARQ sorts deterministically, even where the SPARQL spec does not require
it. The spec requires simple literals before datatype literals. ARQ
then sorts by lexical form then by datatype URI.
So in SPARQL/RDF-1.0 :
"5" < "5"^^xsd:integer < "5"^^xsd:string
but RDF-1.1 makes "abc" the same term as "abc"^^xsd:String.
Generally, 1.0->1.1 is about treating xsd:string like simple literals
(no datatpe, no language) so that becomes:
"5" < "5"^^xsd:integer
There are 3 tests that catch this.
Todo-3/
Similarly, it's sorting rdf:langString as a datatype, not as a language
literal. 2 tests.
Todo-4/
Some of the scripted tests need fixing, including some WG ones which use
DISTINCT and now "a" and "a"^^xsd:string are the same when they use dot
be different.
Note: Bonus: TransformFilterEquality can now process the string case as
an optimization.
Note: Discovery:
SimpleSelector(null, null, 5) does not find "5"^^xsd:integer, only "5"
which I find bizarre in the extreme. It always been this way - it's not
an RDF-1.1-ism.
Andy