Jena 2.12.0 will be the first release with Java7 as the base.

At the same time, how about making the final changes for RDF 1.1?

https://issues.apache.org/jira/browse/JENA-193


This could be controlled by a flag which defaults to OFF for this release.

At this stage, OFF seems wiser to me because the effects, while often quite small are widespread, and visible in application code.

** xsd:String

http://mail-archives.apache.org/mod_mbox/jena-dev/201310.mbox/%3C525A8428.1050207%40apache.org%3E

1/ xsd:string and simple literals become the same.

"ABC"^^xsd:string is the same term as "ABC"

2/ rdf:langString

The data type of a literal with language tag goes from null to rdf:langString.

If code has been checking language then datatype, typically formatting code, no change is needed for (2). But it needs testing and bedding down. (1) needs all output formats to be tweaked, which means two places; RIOT and RDF/XML


Changes needed:
+ NodeFactory to set up things appropriately

+ Output formatting to output as appropriate
  (that is, without ^^xsd:string).

+ (Optional) RIOT to ask the NodeFactory for correct nodes.

and testing.


* What will break

(some) Persistent data needs reloading.

Any persistent data system that currently distinguishes between simple literals (no datatype, no language tag) and xsd:strings will be affected.

TDB currently keeps these are distinct. With the change, it will write ^^xsd:string in short form internally so data that just uses plain literals (simple or with language tag), and not ""^^xsd:string will be unaffected.

Any data that is mixed or uses xsd:string exclusively will be affected.

It looks like it is very expensive to put in full compatibility code in TDB query solving - it would need pulling in the node lexical form all the time and currently TDB goes to a lot of effort to not do that and instead work in NodeIds (from a NodeId alone you can't tell if it's a simple string or xsd:string).

Unclear: external tools that rely on xsd:string (e.g. Protege maybe - it used to, don't know the current state).

* Good news

ARQ optimization of equality filters can become more aggressive and handle strings better.

** Bnodes for graphs
https://issues.apache.org/jira/browse/JENA-608

This is almost all done. Missing is bnodes in SPARQL INSERT-DELETE / GRAPH syntax and for INSERT DATA / GRAPH.

RDF syntax parsers (NQ and Trig) are already done.


        Andy

Reply via email to