You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Chris Tomlinson <ch...@gmail.com> on 2019/05/16 17:48:35 UTC

concatenating patches

Hello,

As part of our editing service development, using at least aspects of RDFPatch, we have a use-case that goes like this:

User U_A does some work on a number of resources resulting in patch P_01 and then stashes the patch on the editing service and requests user U_B to finish the work item represented by P_01
User U_B retrieves P_01 and begins a new patch P_02 that continues on from P_01 and then
User U_B requests the editing service to apply P_01 followed by P_02.
This seems like a case where RDF Patch Log <https://afs.github.io/rdf-delta/rdf-patch-logs.html> would be appropriate, but it isn’t clear from the docs or code exactly how one manages a Log of patches to be applied in sequence and then requests the sequence to be applied. I looked about for a PatchLog class but didn’t see such.

How would this kind of scenario be handled?

Thanks very much,
Chris


Re: concatenating patches

Posted by Chris Tomlinson <ch...@gmail.com>.
Hi Andy,

Thanks for the reply. We’ll look more deeply into the rdf-delta repo. I think there’s a lot there to at least help inform our design.

Regards,
Chris


> On May 17, 2019, at 8:06 AM, Andy Seaborne <an...@apache.org> wrote:
> 
> 
> 
> On 16/05/2019 18:48, Chris Tomlinson wrote:
>> Hello,
>> As part of our editing service development, using at least aspects of RDFPatch, we have a use-case that goes like this:
>> User U_A does some work on a number of resources resulting in patch P_01 and then stashes the patch on the editing service and requests user U_B to finish the work item represented by P_01
>> User U_B retrieves P_01 and begins a new patch P_02 that continues on from P_01 and then
>> User U_B requests the editing service to apply P_01 followed by P_02.
>> This seems like a case where RDF Patch Log <https://afs.github.io/rdf-delta/rdf-patch-logs.html> would be appropriate, but it isn’t clear from the docs or code exactly how one manages a Log of patches to be applied in sequence and then requests the sequence to be applied. I looked about for a PatchLog class but didn’t see such.
>> How would this kind of scenario be handled?
> 
> The id/prev headers provide a way to define a log (a linear sequence of patches with a head and tail).
> 
> There are many ways to use patches
> 
> The patch module on its own does not provide this - that is what modle rdf-delta-client does for the case of an HA dataset.
> 
> DeltaConnection with a SyncPolicy of NONE (not automatic) and call
> 
> DeltaConnection internally a DataState - it tracks the state/version of the dataset so sync() gets and applies the right patches in order.
> 
> Your case seems a little different so it may not apply out-of-the-box - there is a workflow between the two users that is managing the patch flow.
> 
> The DeltaClient class can also help - it is more focuses on managing and interrogating the state of the state of the patch log.
> 
> So one way may be to run a patch log server and add your workflow specifics to pull and apply patches.
> 
>    Andy
> 
>> Thanks very much,
>> Chris


Re: concatenating patches

Posted by Andy Seaborne <an...@apache.org>.

On 16/05/2019 18:48, Chris Tomlinson wrote:
> Hello,
> 
> As part of our editing service development, using at least aspects of RDFPatch, we have a use-case that goes like this:
> 
> User U_A does some work on a number of resources resulting in patch P_01 and then stashes the patch on the editing service and requests user U_B to finish the work item represented by P_01
> User U_B retrieves P_01 and begins a new patch P_02 that continues on from P_01 and then
> User U_B requests the editing service to apply P_01 followed by P_02.
> This seems like a case where RDF Patch Log <https://afs.github.io/rdf-delta/rdf-patch-logs.html> would be appropriate, but it isn’t clear from the docs or code exactly how one manages a Log of patches to be applied in sequence and then requests the sequence to be applied. I looked about for a PatchLog class but didn’t see such.
> 
> How would this kind of scenario be handled?

The id/prev headers provide a way to define a log (a linear sequence of 
patches with a head and tail).

There are many ways to use patches

The patch module on its own does not provide this - that is what modle 
rdf-delta-client does for the case of an HA dataset.

DeltaConnection with a SyncPolicy of NONE (not automatic) and call

DeltaConnection internally a DataState - it tracks the state/version of 
the dataset so sync() gets and applies the right patches in order.

Your case seems a little different so it may not apply out-of-the-box - 
there is a workflow between the two users that is managing the patch flow.

The DeltaClient class can also help - it is more focuses on managing and 
interrogating the state of the state of the patch log.

So one way may be to run a patch log server and add your workflow 
specifics to pull and apply patches.

     Andy

> 
> Thanks very much,
> Chris
> 
>