On 15/12/15 12:27, Martynas Jusevičius wrote:
Hey all,

I refactored HTTP I/O code which previously combined Jena's
DataManager, DatasetGraphAccessorHTTP, and QueryEngineHTTP using
Jersey Client 1.x API.

I think the code became much more higher-level, flexible and
consistent. ClientResponse provides a rich interface with full
metadata about the response. The serialization logic is orthogonal to
HTTP and is separated nicely into JAX-RS MessageBodyReaders/Writers.
JAX-RS 2.x provides even more features.

I'd like to suggest that Jena 3 evaluates both JAX-RS and Client API
as dependencies instead of Apache HTTPClient.

Refactored DataManager.loadModel():
https://github.com/Graphity/graphity-core/blob/de8d9c201ea95ec5f8978052697a515c747137b1/src/main/java/org/graphity/core/util/jena/DataManager.java#L130

SPARQL and GSP clients:
https://github.com/Graphity/graphity-core/blob/de8d9c201ea95ec5f8978052697a515c747137b1/src/main/java/org/graphity/core/client/SPARQLClient.java
https://github.com/Graphity/graphity-core/blob/de8d9c201ea95ec5f8978052697a515c747137b1/src/main/java/org/graphity/core/client/GraphStoreClient.java

Model provider:
https://github.com/Graphity/graphity-core/blob/de8d9c201ea95ec5f8978052697a515c747137b1/src/main/java/org/graphity/core/provider/ModelProvider.java


Martynas
graphityhq.com


Hi Martynas,

The Jersey Client API is quite nice. The Jena APIs aim to be one step removed, so that they work in terms of RDF concepts rather than the network details.

What effect does this have on the application and application writer? When I go to those links, I then have to go to a lot more graphity code so it looks to me like a new API. (e.g. GraphStoreClient.getModel does not actually get a model - it returns an HTTP response that the caller then needs to do something with).

Having different APIs with different styles even if covering the same functionality is no bad thing. In fact, it does not even have to be part of jena itself - I would hope that new ideas can be published without the project being a bottleneck. Then a group of adventurous people can work to create something that works for them.

There has been a discussion about a new API. I combined several set of ideas that there were into:

https://github.com/afs/jena-rdfconnection/

which brings all the SPARQL operations into one place making it more familiar and works local or remote.

Would your ideas fit as an implementation of that interface?

        Andy

PS FileManager is effective subsumed by RDFDataMgr.

Reply via email to