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
>
>