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] Connection of MCT and OT?


On 07.02.2013 00:01, Dennis E. Hamilton wrote:
I was in a Google Hangout earlier today and one of the participants
mentioned "OT," explained as "Operational Transformation" when I asked.  I
must be very late to the party, because the basic idea was published in
1989.
Out of curiosity : Google Hangout as a chat or some physical event?

Is MCT somehow inspired by this?
< http://en.wikipedia.org/wiki/Operational_transformation>.
Definitely very close related, see as well
http://www.waveprotocol.org/whitepapers/operational-transform
http://www.heise.de/developer/artikel/Synchronisationsalgorithmen-verstehen-1562877.html?artikelseite=1 (very easy, but need to translate German - e.g. use Chrome browser context menu to translate)
http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation

First I did not now about CT, I just realized the only way to allow real-time-collaboration is to work on the same base/model.
A browser office (HTML) with a OpenOffice (ODF) only could work together, when they abstracted from the HTML/ODF details and work on what the documents had in common. Some user semantics (table, paragraph, characters) -> components were born.

When I had the scenario of real-time collaboration with one participant sitting in a train driving into a tunnel, with the urge to finish his work and save his changes in a standardized way into document (to later synch it back with his friends). I realized that the user would like that his changes are being saved in the document in a standardized way, which is basically similar to change-tracking.

It was easy without knowing OT, that that for merging changes only the position parameter have to be incremented - e.g. when working on the third paragraph and someone inserts a new second one, the working paragraph becomes the fourth. Like a shell game, but instead watching at the shell with the pearl, someone keeping track of its own change position.
After that point Florian Reuter was so kind to tell me about OT.
From the first reference (last part) above, I was impressed from the scenario of the single server synchronization, where the client might wait a few seconds. I extended it, as when waiting a few seconds, why not making it a week-end, allowing to merge the work back on Monday.

So merging is done by adapting the reference position numbers, similar to OT, the merge principles are rather aligned to distributed revision control systems such as git/mercurial, requiring that one of the clients (all participants are clients) to pull & merge to the same level before a push can take place (but this might be a story for itself)

Finally, it become obvious that documents could be expressed only by changes and changes could be sorted, even normalized (for instance as much compressed as possible and in document order). AFAIK Google Docs are only stored as normalized changes/operations.

I was told that OT has some very rigid conditions with regard to their being
a linear text stream.
Yes, but linearity is just a design decision. OT is from the 80ths, why not keeping the O(log n) of a tree, creating a component tree, when mapping ODF XML trees.

It occurred to me that this might apply for change-tracking (with or without
the collaboration case) but that it applies *not* to the XML structure but
to some canonical *presentation* (i.e., what users perceive themselves as
editing) that can be taken as semi-unstructured.
The latter point has to be discussed (perhaps you start a new mail thread for clarity).
I agree that ODF XML structures might be different, but they still have the same 'relevant' information set that may be mapped to operations.
As an example for irrelevant information, I could rename the XML namespace prefixes and use them as a vehicle of information. For instance, instead of <office:body> I could write <someNiceStoryInThePrefix:office>. But an ODF application would not gather such information and is allowed to remove it as irrelevant. Similar the start and end of SPAN elements are irrelevant, for instance the elements for colors of <red/><yellow/><red/> is equivalent to <red> <yellow/></red>
Is that what you meant with canonical presentation?

Regards,
Svante

Just curious.

 - Dennis

PS: I think the subsequent acceptance and rejection of changes in various
sequences can be thought of as OT operations and that is where the
"asynchrony" comes up even though there is not concern about coordination
replicated copies.


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