On 25/04/2019 14:13, Marc Agate wrote:
Hi Andy,

We (https://www.tbrc.org/#!footer/about/newhome 
<https://www.tbrc.org/#!footer/about/newhome>) currently have all our data 
(this is quite huge) in a single fuseki based TDB instance. While we have 
successfully implemented the « read » part of our system, we are now planning to edit 
any resource or graph of this dataset as necessary.
So our main concern is not (for now) to maintain in sync various version of the 
same dataset across a network of fuseki servers. It is really to apply rdf 
changes to our dataset, from a web app using a sophisticated client UI and 
software.

The rdf update is actually one part of what we call an "edit transaction", 
since other actions need to be taken along with rdf patching, namely Logging and also 
updating a git repo containing turtle serializations of all the resources of our dataset 
(from which we can rebuild our TDB dataset when necessary, thanks to a custom java 
software).

Therefore, we thought about using RdfPatch and RdfChanges to apply rdf changes, 
while eventually leveraging any available logging features (and more features, 
if suited).

We will have to process batches as well and we are about to investigate what 
could be the best way to proceed in that situation and what would the patch 
look like in such a case (one transaction, many transactions, transaction 
rollback strategies, etc…)



For now, the basic question is: what is the best way to proceed when using an 
existing remote server ? (FYI: I tried to get a graph from a DatasetAccessor, 
then to get a RDFChangesApply object and a RDFPatchReaderText to apply the 
changes, but I was unable so far to make it work - I suppose I might have to 
put back the edited graph in the dataset, using the datasetAccessor...).

Is the code for that open somewhere?

1/
DatasetAccessorFactory.createHTTP? A graph from that is a copy. If that is then the default graph of a dataset, it'll not have the graph name in the RDFPatch (

If you can pull the graph (by name), edit it locally, you can PUT it back to replace the data. Practical for small graphs.

Or an RDFChanges that adds back the graph name.
add(dftGraph or null, s,p,o) -> add(graphname, s,p,o)

2/
General comment - RDFConnection is a better API. It pulls all the ways of accessing toegther into one place. RDFConnectionFuseki enables blank node handling such as fetching one graph with blank node labels not transformed by syntax issues of _:label.

    Andy


I am gonna check the docs and code in more details. Any input and advice from 
you will be greatly appreciated!

Marc

Le 25 avr. 2019 à 06:19, Andy Seaborne <[email protected]> a écrit :



On 24/04/2019 14:20, [email protected] wrote:
Hi,
We are planning to use RDF Patch and RDF Delta 
(https://github.com/afs/rdf-delta) to edit our TDB dataset served through a 
fuseki endpoint.

Interesting!

We took a look at various docs pertaining to Delta and Patch and browse the 
github repo, but we are still wondering about what could be the best approach 
for implementing a solution to our issue.

Can you say more about the solution?


Is there Delta java docs available somewhere (that would be a first step to be 
able to navigate easily through the various library packages).

There is javadoc with each artifact when you get the artifacts (maven, gradle 
etc)


e.g.
http://central.maven.org/maven2/org/seaborne/rdf-delta/rdf-delta-client/0.7.0/rdf-delta-client-0.7.0-javadoc.jar

Thanks
Marc.


Reply via email to