Also, you can try the experimental "jena-client" project. It is a work-in-progress for interacting with SPARQL endpoints (both local and remote).
Instructions for building: svn co https://svn.apache.org/repos/asf/jena/Experimental/jena-client/ jena-client cd jena-client mvn clean install Then include "target/jena-client-0.0.8-SNAPSHOT.jar" in your project's classpath. Quick user guide: Model m = ... // Your Model with the statements you want to add to the remote store Repository repo = RepositoryFactory.createRemote("http://localhost:3030/ds/query", "http://localhost:3030/ds/update"); Connection conn = repo.getConnection(); try { Updater up = conn.createStreamingUpdater(); try { // The first parameter is the named graph to insert the Triples into, null == default graph up.insert(null, m.getGraph()); } finally { up.close(); } } finally { conn.close(); } Among the benefits of this: 1) it generates the SPARQL Update request for you, and 2) it is fully streaming on the client side, so Model can be large (streaming isn't supported on the server yet, see JENA-330). 3) A single update request is transactional (a future goal would be transactions across remote queries / requests) If you do use it, or even play around with it for a while, I would love to get your feedback. -Stephen On Tue, Nov 27, 2012 at 6:16 AM, Andy Seaborne <[email protected]> wrote: > On 26/11/12 17:02, Olivier Rossel wrote: >> >> Hi folks! >> >> I have a Model full of triples, and I wish I could "inject" these >> data into a remote endpoint. is there a helper class to create a >> SPARQL/Insert query from the content of the Model? Otherwise, what is >> the best way to create such a query? (Iterating the triples, removing >> the blank nodes, appending SPARQL statements to a StringBuffer. And >> that's all? > > > DatasetAccessor (which for silly histroical reasons is in Fuseki) may help. > It is the GSP protocol for Jena. You can POST a model. > > And also no need to mess with bNodes in a INSERT DATA operation. > > >> More advanced question: is it possible to monitor the lifecycle of a >> Model (add/remove), and create a SPARQL/Update that mimicks that >> lifecycle (to be sent on a remote endpoint)? What is the best way to >> do that with Jena? ModelChangedListener (and string appending)? > > > Yes, probably. > > We have been discussing simplifying this to just have one "add" and one > "remove" call. > > >> >> Your points of view are highly welcome. >> > > Andy
