[Fwd: Re: Collaborative editing and AbiCollab...]

From: Martin Sevior <msevior_at_physics.unimelb.edu.au>
Date: Thu Jun 08 2006 - 02:01:15 CEST

Some interesting conversations I thought I should share with everyone.

Cheers

Martin

-------- Forwarded Message --------
From: Pascal Molli <momo54@gmail.com>
Reply-To: Pascal.Molli@loria.fr
To: msevior@physics.unimelb.edu.au
Cc: Gérald Oster <gerald.oster@inf.ethz.ch>, Urso Pascal
<Pascal.Urso@loria.fr>, Hala Skaf <hala.skaf@loria.fr>, J.M. Maurer
<uwog@uwog.net>
Subject: Re: Collaborative editing and AbiCollab...
Date: Wed, 7 Jun 2006 17:23:44 +0200

On 6/7/06, Martin Sevior <msevior@physics.unimelb.edu.au> wrote:
        HI Pascal,
                  I'm definitely interested. We have our own plans for
        how to
        handle undo but we haven't done much work on it yet. Getting
        collaborative editing to work for abiword will certainly require
        keeping
        shared linear structures in in synchronization. Our document
        model is a
        linear structure and operations on it require knowing precisely
        where in
        the document the change will take place.
        
        We've read a bit about Operational Transformation. The way we do
        things
        does involve changing some of the operations on our model by
        predicting
        what the remote user expects to happen. Basically we adjust the
        position
        of the operation on the local document to what the remote user
        expects
        based on information about the remote user has received.
        We use this to correct for internet lag and we have some working
        code
        that appears to handle the case of two users working in
        different parts
        of the document.

OT (Operational Transformation) has been designed to handle the
internet
lag. Currently, it exists several algorithms :

1/ The Ressel Model approach : Adopted or SOCT2 or GOTO + adequate
transformation functions (many publication at CSCW conferences and
TOCHI)

   Resel Model: http://portal.acm.org/citation.cfm?doid=240080.240305

2/ the Mark and retrace algorithm (published at Group05)

    http://portal.acm.org/citation.cfm?id=1099250&dl=ACM&coll=portal

3/ the LBT/ABT approach (published at CollaborateCom)
  

Our approach is based on SOCT2 + TTF transformation functions. :

SOCT2 :
http://www.informatik.uni-trier.de/~ley/db/conf/icde/SuleimanCF98.html
TTF functions :
ftp://ftp.inria.fr/INRIA/publication/publi-pdf/RR/RR-5795.pdf

We have implemented a demonstrator in JAVA...
We can clean the code and send it to you if you want...

        Regarding undo, my plan is to only undo changes made by the
        local user
        by transforming her operations based on what she expects to
        happen if
        she were the only editor of the document. Once again this
        involves
        adjusting the position of the various undo operations.

Currently, it exists several algorithms to handle the group undo
feature:
1/ Mirror and Fold from Ressel (Ressel96)
2/ Undo with C3 and C4 from vidot (coopis)
3/ AnyUndo from Chengzheng Sun (Tochi)
 
We proposed a new simpler algorithm not yet published based
on compensation...

 
        I think this will work provided the users are not directly
        jumping on
        each others toes and making immediate changes to the same part
        of the
        document at the same time.

OT allows to work synchronously, asynchronously and multi-synchronously.
It means
that , on a group of 10 people, 3 can work at the same time while others
prefer to work
in isolation. OT just consider that like a longer lag and will integrate
different contribution
smoothly.

We have already demonstrated this feature in the SAMS prototype. This
feature is also available
in the new "writely"
product.( http://www2.writely.com/info/WritelyOverflowWelcome.htm)

-- 
Pascal Molli
Maître de Conférences
Université Henri Poincaré, Nancy 1 
http://www.loria.fr/~molli
Received on Thu Jun 8 02:01:36 2006

This archive was generated by hypermail 2.1.8 : Thu Jun 08 2006 - 02:01:36 CEST