Hi,

I encountered a problem while unit testing my OT code. Either I just found a
major flaw in the OT algorithm (i.e. a flaw that is almost impossible to
repair) or I am too tired to see the solution. Here is the problem:

Let "A, B ,C" be BOLD letters, and "a, b, c" denote the same letters, but
not in bold.
Now imagine a simple document with the content

doc := ABcd

i.e. "ab" in bold and "cd" not in bold. Now two users edit the document
concurrently.

mutation1 := delete:2, retain:2
mutation2 := retain:2, insert:"x", retain:2

i.e. user1 sees "cd" and user2 sees "ABXcd". Notice that the "x" is bold ->
"X", because in word processors you inherit the style from the left. This is
important here!

Now I transform both mutations and I get:

mutation1_t := delete:2 retain:3      // I skip the inserted "x" ->
therefore retain2
mutation2_t := insert"x", retain:2    // No need to skip "AB", because they
are already deleted

Now user1 one applies mutation2_t and user2 applies mutation1_t. They should
end up in the same state.

However, in the end user1 sees "xcd" and user2 sees "Xcd". The difference is
that x is not consistently annotated.

As far as can see right now, the transformation function cannot do anything
because it needs style annotation that is only in the document but not in
the mutations.

I hope that someone can enlighten me here, because otherwise the OT
algorithm is broken.

Greetings
Torben

-- 
You received this message because you are subscribed to the Google Groups "Wave 
Protocol" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/wave-protocol?hl=en.

Reply via email to