[Standards] whiteboarding and shared editing
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.
More information about the Standards