office-collab — archive
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
— [Date Index]
| [Thread Index]
| [Month Index]
| [List Home]
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]
| [Month Index]
| [List Home]