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.

Reply via email to