I'm at the point of being ready to integrate RIOT and anew reader system
into Jena properly. This means we can remove the old parsers in
jena-core (not ARP).
There is a "but" however.
RIOT supports both triples and quads readers and model/graphs and
datasets/datasetgraphs ... but classes for all things quad are in ARQ.
I've created a JIRA but I thought I'd surface it here because it has the
potential to be disruptive.
https://issues.apache.org/jira/browse/JENA-300
== Integration
Possibilities:
1/ Put the code in ARQ
1a/ require a cal lto ARQ to initialize
1b/ make jena-core do as reflection call to ARQ initialization.
2/ Merge jena-arq and jena-core
The obvious issue for (2) is that the result is a big project to work
with. Whether a larger jena-core really makes a difference in the real
world., I don't know. Long term, some redivision into separate modules
would be good but it's quite hard to find any breakdown of core concepts
if you want testing by module. It's hard to do anything much without a
memory graph implementation!
If (2), it would be good to time this with making an uber jar
"jena-VERSION.jar" so that people switch to that and don't see any
future reorg of the modules unless they take a detailed look.
== Outline of the reader
There is a single class "WebReader2" that captures the process of
opening a connection to a resource/file/thing, deciding the syntax and
then calling the right parser. This adds full http content negotiation
over what Jena currently does.
You can add new content-types and connect to the appropriate parser code.
It includes going through FileManager and if/when that connected to
model.read, all the conneg, redirection and location mapping is made
fundamental. You can even could make all URLs of a pattern
http://myhost/data/turtle/file{n}
be Turtle files despite being served as text/plain.
== Code
In an "Experimental" project:
https://svn.apache.org/repos/asf/jena/Experimental/riot-reader/
Code browse;
https://svn.apache.org/viewvc/jena/Experimental/riot-reader/src/main/java/riot_reader/
The package layout isn't right for integration.