OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office-collab message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [office-collab] Shortest path analogy?


Interesting view. I believe you raised some interesting points, although I do have a different view on validation. I would follow the optimistic approach.

In the following I will compare the valid/well-formed problem of operations with the one with ODF XML..

Am 21.08.2013 16:57, schrieb Patrick Durusau:
Greetings!

I was thinking about change tracking while working in Carol's garden
this morning. ;-)

Is there a similarity to the shortest path problem in graphs?

That is for some change X, the first question I have to answer is:

Is that a valid path _expression_ for the state of the document as I
know it?

You might take the optimistic approach and assume it is valid, similar as we assume that XML is valid/well-formed.

If not, then I have to go backwards through changes until I find a
point where the path _expression_ is valid.
I am uncertain if we have a guaranteed way to fix it, similar as we do not have if we have not valid/well-formed XML.
We might have heuristics, but not a fool proof way to guarantee to fix every problem that might occur.


Thinking of Oliver's case where someone deletes the "third" paragraph
while I have made a change to what I know as the "fourth" paragraph.
The deletion (assuming only 4 paragraphs) throws off my path
_expression_ to the 4th paragraph.
The position argument of an operation is related to the position at the time the operation was triggered.
Imagine you want to add text to the fourth paragraph and afterwards Oliver wants to delete the third paragraph.
Olivers operation would be added. If the sequence would be executed as western writing top down, it would read like:

'add text /4/1 "hello World"'
'delete paragraph /3'

BUT if you now want to change the order of the above two operations. As you want to let the deletion of the paragraph happen before of the text insertion, the parameter would be adapted due to OT. The former 4th paragraph would fill the gap of the deleted third and would itself become the third:

'delete paragraph /3'
'add text /3/1 "hello World"'
 

But I should already know the other changes, in order. Yes?

Does above the text answer your question?
All of which is to say I think we need some simplifying assumptions
about change tracking for collaboration:

For collaboration change tracking (asynchronous change tracking), the
collaboration attribute (new attribute) is set to true.

The state of the document attribute (new attribute) has a hash value
for the document that represents its state at the time the
collaboration attribute has been set to true.

Once set to true, the collaboration attribute cannot be changed to
false. That is all changes we track are tracked from that point.

Non-collaboration change tracking is also tracked by operations but
can be turned on and off.

It puts a greater burden on collaboration change tracking applications
but then they are asking for a greater feature and should bear the
cost of using it.

Non-collaboration change tracking uses the same operations mechanism
but isn't troubled by coordination with others.

Does that help?
The problem is that if we load and save ODF XML with two applications, we would likely have different XML and different signature.
We can have normalized operations as well, like those compressed operations of a document that would be triggered when reading a document (no redundancy, e.g. no delete & in document order).

Nevertheless we need to have common starting points that we would identify via signatures. Like we have to be certain that we all started from the same template document.

Best regards,
Svante

Hope everyone is having a great week!

Patrick
>
> ---------------------------------------------------------------------
> To unsubscribe from this mail list, you must leave the OASIS TC that
> generates this mail.  Follow this link to all your TCs in OASIS at:
> https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
>





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]