On 28/08/2020 02:12, [email protected] wrote:
I have have used the following to work around legacy issues with
RDF1.0/1.1:
JenaRuntime.isRDF11 = false;
This might be a good place to allow for a
JenaRuntime.isRDFStar = false;
The JenaRuntime.isRDF11 flag switches the semantics of Jena between RDF
1.0 and RDF 1.1 (xsd:string, rdf:langString).
So it does not throw exceptions or reject any data or go wrong.
Presumably JenaRuntime.isRDFStar would cause an exception and crash the
"existing code" application? Or is the suggestion something different to
handle "new data, old code".
Andy
Cheers,
Claus
Quoting Holger Knublauch <[email protected]>:
It's good to see the recently introduced RDF* features in Jena. But as
someone with a lot of existing Jena code, this low-level change poses
a number of challenges. For example we have many of places with
variations of
if(rdfNode.isResource()) { if(rdfNode.isURIResource()) { } else { //
Here we now assume it's a blank node, yet this is no longer true //
and they node may also be a triple node } } else { // Must be a
literal - this hasn't changed }
which now need to be changed to handle rdfNode.isStmtResource() too.
And it should of course do so in a meaningful way.
I guess properly adjusting our code base will take many months, and it
will require a lot of testing and iterating.
In the meantime, is there a flag that we can set to deactivate RDF*
support in the parsers and SPARQL*? The page
https://jena.apache.org/documentation/rdfstar/ only states "it is
active by default in Fuseki" but doesn't show an API to do the same
programmatically.
Could you also give some background on the implications on TDB? I
guess if such new nodes end up in a database, then this database can
no longer work with older Jena versions?
Thanks
Holger