[Standards] whiteboarding and shared editing

Joonas Govenius joonas.govenius at gmail.com
Tue Aug 28 15:31:55 UTC 2007


On 8/27/07, Peter Saint-Andre <stpeter at stpeter.im> wrote:
> Joonas Govenius wrote:
> > On 8/24/07, Peter Saint-Andre <stpeter at stpeter.im> wrote:
> >>>
> >>> I know that the Abiword people have something similar in AbiCollab
> >>> running over DBus tunnelled in XMMP,
> >> Cool, I didn't know about that.
> >>
> >>> so it may be useful to look at
> >>> their conflict resolution algorithm and their way to send changes.
> >> It seems to be described here:
> >>
> >> uwog.net/~uwog/abiword/abicollab.pdf
> >>
> >
> > That's a really nice description.
> >
> > It's actually quite similar to Mats' method (that sxde is using for
> > synchronizing individual elements) except that their basic principle
> > is "the master is always right" where as Mats' principle could be
> > described as "no one is right" in the case of a collision. I.e.
> > Abicollab forces the slave to always revert colliding changes while
> > Mats forces all clients to revert colliding changes. In both cases
> > however, the idea is to keep an undo stack that can be used in case of
> > a collision.
>
> Right. I think the approach that you and Mats have outlined is a bit
> more flexible, since it does not depend on having a master.
>
> > Abicollab also has a more complex method of determining which changes
> > collide. This is a good idea for them as it seems that they treat the
> > whole document as one long string, otherwise collisions would happen
> > all the time. We could use the same algorithm for synchronizing
> > individual text nodes
>
> That's a good way to put it.
>
> > but, while this maximizes the number of
> > commutative edits (req. 2.3.5 in XEP-228), I think it would be
> > unnecessarily complex and would lead to useful results only in the
> > case of long text nodes.

BTW, what I meant with the lack of usefulness in the case of short
text nodes was that I don't think it's useful to combine simultaneous
edits to, say, the same sentence.

>
> Isn't the source format for Abiword XML?
>

Maybe the storage format is XML but at the core of their
implementation seems to be this class called PieceTable. According to
http://www.abisource.com/doxygen/, "It presents an interface to access
the document content as a sequence of (Unicode) characters."

Given that, it makes sense that their synchronization protocol treats
the document as a sequence of characters as well.

This is based on my superficial glance at the documentation though so
please correct me if you know better.


Joonas



More information about the Standards mailing list