From
http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation

" We do however want to retain() over the remainder of the document, seeing
as we don’t need to do anything else. "

On Mon, Jan 9, 2012 at 12:09 AM, Torben Weis <torben.w...@gmail.com> wrote:

> Hi Michael,
>
> I have once implemented Wave OT, so I hope I can be of some help. You
> mentioned that question 1 is till open to you:
>
> > 1) In order to compose operations I assume they don't have to have the
> same document width (how could they for successive inserts for example),
> but I assume they would need to span the same line?  Is that right?  In
> other words you wouldn't compose operations from one paragraph with
> operations from another?  Is the desire to compose one of the driving
> reasons for the retain operation?
>
> If you have two ops op1 and op2 and apply to doc as follows:
>
> apply(op2, apply(op1, doc))
>
> then (in Wave OT) is should hold that op2 covers the length of the
> document apply(op1, doc), whereas op1 covers the length of the
> document doc. So far so trivial.
>
> Two ops can either affect the same line, or they both retain the same
> line, or one modifies the line while another one retains it, or ...
> When it comes to composition there is IMHO no need to think about
> lines, it will just be confusing, because on op might delete '<line/>'
> and by doing so join two lines.
> But perhaps I misunderstood your question.
>
> The retain operation by itself is necessary even when not composing.
> You need some means to tell where you want to modify. Some OT systems
> do it differently, but in Wave OT you "retain" until you hit the place
> where you want to insert/delete/annotate.
>
> However, I see no forcing reason for Wave OT to make the last retain
> reach to the end of the document. The only reason I could think of is
> that this way it is easy to discover mutations which are too long
> without comparing the op with the document.
>
> Greetings
> Torben
>

Reply via email to