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: Time Travel or playing the shell game of changes.. (document synchronization)


The greatest difficulty in collaboration is to keep an eye on the
changes. It could be compared with playing a shell game.

If you take a look the latest update of the presentation
https://www.oasis-open.org/committees/document.php?document_id=47221&wg_abbrev=office-collab


Slide 17 Operation Queue/Stack
There is the time sorted stack. Like a stack of cards every change is
being placed upon the stack, so the latest operation is on top.
If the first operation is to change the third paragraph it will be
placed at the bottom. If there is afterwards the insertion of a new
second paragraph it will be placed on top of it, as it had occurred
afterwards.
If these two operations should be switched it is like time travel as the
insertion of paragraph should happen before the change on the third
paragraph.
In this case, it would be no longer the third paragraph, but the fourth
due to the insertion ahead. Still the user wants that the same paragraph
is being addressed, therefore the position is being adapted.

This adaption will always occur when a component being a preceding
sibling or ancestor has been deleted or added.

How could this time travel the sorting of operation be useful?

Take a look at 19, the Merge.
Two users started with the same document, but after a while both of them
have created a stack of operations and would like to synchronize their
changes.
This scenario occurs often in decentralized version systems as git.
Similar to git one user (application) pulls the changes and simply
places them on top of its own.
Now the new stack of changes will moved through one's own to the bottom
(the version both user had in common). During this movement OT and
adoptions of position will happen.

If there are collisions, as you have changed a cell and I have deleted
the table, those changes will be kept on top of the stack and being
marked to be handled by the user.
The application might show similar to a traffic light red in such a case.
A red (or at least yellow) could be as well, if both users have added a
component at the same place.
Think of:
<add s="/0">Hello</add> // I neglected the paragraph type as being the
default operation with text content

and the second user would write
<add s="/0"> World!</add>

Aside of having a heuristic finding the quotation mark in the end and
the space in the beginning, indicating the following part, the user
usually have to review and to decide what takes precedence.
<add s="/0"> World!</add>
<add s="/0">Hello</add>

Would result in "Hello World!".

Switching now the operations is interesting, but as the same result have
to occur, OT have to occur:
<add s="/0">Hello</add>
<add s="/1"> World!</add>

Expanding our OT rule, that if two operations adding content at the same
point are being switched,  the operation being moved to the past will be
incremented by +1

Note: There are comments on the slides.

Hope I answer some earlier questions by this,
Svante


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