← Prev in month ← Prev in thread
Next in thread → Next in month →

An ODF Implementor's View on Change Tracking

From
Rvante Rchubert
Date
2011-08-01T01:51:48+00:00
ID
Thread
An ODF Implementor's View on Change Tracking
Hi, 

    

    I am new to the SC mailing list as an active member.

    But instead of commenting right away on one of our current
    proposals, I would try to share some experience gained by working on
    collaboration for Oracle's Cloud Office.

    

    Dependencies of Change-Tracking

    The implementor of a new modern ODF office suite, which supports
    change-tracking, will recognize several office functionalities that
    work very closely together:

    
      
Versioning

      

      
Change tracking

      

      
Undo/redo 

      

      
Collaboration with other users

      

    
    There is a relationship between the items above. Roughly said: One
    item bundles multiple items listed directly below. More precisely:

    
      
One version contains several changes by one or more users

      

      
One change contains one or more undo/redo changes of one ODF
        component by a single user. Removing information undesired by
        the common user (e.g. it is irrelevant in what order the text of
        a paragraph has been added)

        NOTE: The ODF component is described in the presentation I
        mentioned earlier on the TC mailing list [1].

      

      
One undo/redo action might be a wired change event to other
        ODF clients

        (again there is usually a compression of information as text
        changed by undo/redo is in general not altered on character
        basis, but on larger granularity, e.g. words are undone/redone)
        

      

    
     Potential Change-Tracking Requirement

    From the above, our SC is currently focusing on serializing changes
    and postponed the run-time collaboration feature, as change-tracking
    is most important to our users. On the other hand when selecting the
    best change-tracking proposal we should as well have an eye on its
    interoperability with the upcoming collaboration feature otherwise
    we are loosing great potential for ODF applications:

    For example, imagine full interoperability between change-tracking
    and collaboration. In this case it would be to map the
    change-tracking changes to a queue of collaboration events and vice
    versa. A user might than be able to apply document changes to other
    documents and save collaboration directly as standardized changes.
    The example above is a feature that can be taken as potential
    requirement for any change-tracking proposal.

    

     Potential Change-Tracking Feature

    The following example shows a potential change-tracking feature that
    is only enabled when doing a certain kind of collaboration.

    Let me therefore take you a step further to common collaboration
    design to show you how collaboration features might influence the
    serialization of change-tracking. 

    User conflicts caused during collaboration are elegantly solved by
    the Operational Transformation (OT) approach [2] (OT is currently
    being used by Google's Web Office).

    Some explaining words on Operational Transformation (OT). The OT
    approach maps the editing of a document to event calls. In OT theory
    even a complete document might be mapped to a queue of event calls,
    creating the document by events starting from scratch.

    In OT the event is called operation and the transformation (the T
    from OT) occurs when an operation has to be adapted as a different
    operation happened earlier influencing it.

    For example, there is a table operation to insert a column at
    position 3, but someone else has already inserted a column at
    position 2, the table operation therefore has to be transformed to
    insert the table at position 4 instead of 3, as the original
    document was changed earlier.

    

    Now the nice side-effect: this transformation can not only be used
    for collaboration, but as well to move an operation (or a grouped
    set of operations) in the time-line of the queue.

    

    Let me give a real-world example to show the potential:

    Imagine you have to work on a version for the ODF specification.

    Editing directly on the ODF specification, changing what is required
    from a task in our OASIS bug-tracker and grouping those changes to
    be related to this certain bug task.

    When all changes for the version are completed, they are embraced to
    a new document version. 

    Now imagine the case where the deadline for the version arrives, but
    some issue is again under discussion. It was decided that the
    changes of that issue should not be part of that version, but still
    not be deleted as later still required. As the changes are only
    operations in a time-ordered queue they can be moved to the end of
    the queue, applying operational transformation when necessary.
    Moving the undesired change out of the version range.

    

    To summarize:

    Implementors do not care much about the implementation detail of the
    serialization of ODF change-tracking to ODF XML. But implementors do
    care very much to be able to map every single change to operations
    as used in collaboration to allow innovative ODF implementations.

    

    Best regards,

    Svante

    

    [1] http://lists.oasis-open.org/archives/office/201107/msg00026.html

    [2] http://www.waveprotocol.org/whitepapers/operational-transform

    

    
-- 

      
      
      
      
      
      
      

        Svante
              Schubert
              | ODF Standardization

              Phone: +49 40 23646 965

            Oracle Office
              GBU

      
ORACLE
              Deutschland B.V. & Co. KG | Nagelsweg 55 | 20097
              Hamburg

              Hauptverwaltung: Riesstr. 25,
              D-80992 München

              Registergericht: Amtsgericht München, HRA
              95603

              

              Komplementärin: ORACLE Deutschland Verwaltung
              B.V.

              Rijnzathe 6, 3454PV De Meern, Niederlande

              Handelsregister
              der Handelskammer Midden-Niederlande, Nr. 30143697

              Geschäftsführer:
              Jürgen Kunz, Marcel van de Molen, Alexander van der Ven 
      

      
        
          

            
              

            
            
              
Oracle is
                      committed to developing practices and products
                      that help protect the environment
← Prev in month ← Prev in thread
Next in thread → Next in month →