Computer Supported Cooperative Work (CSCW)

, Volume 17, Issue 5–6, pp 423–468 | Cite as

Multi-level Editing of Hierarchical Documents

Article

Abstract

Collaborative editing enables a group of people to edit documents collaboratively over a computer network. Customisation of the collaborative environment to different subcommunities of users at different points in time is an important issue. The model of the document is an important factor in achieving customisation. We have chosen a tree representation encompassing a large class of documents, such as text, XML and graphical documents and here we propose a multi-level editing approach for maintaining consistency over hierarchical-based documents. The multi-level editing approach involves logging edit operations that refer to each node. Keeping operations associated with the tree nodes to which they refer offers support for tracking user activity performed on various units of the document. This facilitates the computation of awareness information and the handling of conflicting changes referring to units of the document. Moreover, increased efficiency is obtained compared to existing approaches that use a linear structure for representing documents. The multi-level editing approach involves the recursive application of any linear merging algorithm over the document structure and we show how the approach was applied for real-time and asynchronous modes of collaboration.

Key words

consistency maintenance operational transformation merging of hierarchical documents real-time collaborative editing asynchronous collaborative editing multi-level editing computer-supported cooperative work 

References

  1. Allen, Larry, Gary Fernandez, Kenneth Kane, David B. Leblang, Debra Minard and John Posner (1995): ClearCase MultiSite: Supporting Geographically-Distributed Software Development. Lecture Notes in Computer Science, vol. 1005, pp. 194–214.Google Scholar
  2. Berlage, T. and A. Genau (1993): A Framework for Shared Applications with a Replicated Architecture. In Proceedings of the 6th Annual ACM Symposium on User Interface Software and Technology (UIST’93), pp. 249–57. Atlanta, Georgia, USA: ACM Press.Google Scholar
  3. Berliner, B. (1990): CVS II: Parallelizing Software Development. In Proceedings of the Winter 1990 USENIX Conference, pp. 341–352. Washington, District of Columbia, USA, January.Google Scholar
  4. Collins-Sussman, B., B.W. Fitzpatrick and C.M. Pilato (2004): Version Control with Subversion. Cambridge, Massachusetts, USA: O’Reilly.Google Scholar
  5. Davis, A.H., C. Sun and J. Lu (2002): Generalizing Operational Transformation to the Standard General Markup Language. In Proceedings of the 2002 ACM conference on Computer supported cooperative work (CSCW’02), pp. 58–67. New Orleans, Louisiana, USA: ACM Press.Google Scholar
  6. Ellis, C.A. and S.J. Gibbs (1989): Concurrency Control in Groupware Systems. SIGMOD Record (ACM Special Interest Group on Management of Data), vol. 18, no. 2, pp. 399–407, June.Google Scholar
  7. Horwitz, S., J. Prins and T. Reps (1988): Integrating Non-Interfering Versions of Programs. In ACM-SIGPLAN ACM-SIGACT (eds.): Conference Record of the 15th Annual ACM Symposium on Principles of Programming Languages (POPL’88), pp. 133–145. San Diego, California, USA: ACM Press, January.Google Scholar
  8. Ignat, C.-L., and M.C. Norrie (2002): Tree-Based Model Algorithm for Maintaining Consistency in Real-Time Collaborative Editing Systems. Fourth International Workshop on Collaborative Editing, CSCW 2002, IEEE Distributed Systems online.Google Scholar
  9. Ignat, C.-L. and M.C. Norrie (2003): Customizable Collaborative Editor Relying on treeOPT Algorithm. In K. Kuutti, E.H. Karsten, G. Fitzpatrick, P. Dourish and K. Schmidt (eds): Proceedings of the 8th European Conference on Computer-supported Cooperative Work (ECSCW’03), pp. 315–334. Dordrecht, NL: Kluwer Academic Publishers 2003.Google Scholar
  10. Ignat, C.-L. and M.C. Norrie (2006a): Flexible Collaboration Over XML Documents. In Proceedings of the International Conference on Cooperative Design, Visualization and Engineering (CDVE’06), pp. 267–274. Mallorca, Spain, September.Google Scholar
  11. Ignat, C.-L. and M.C. Norrie (2006b): Flexible Definition and Resolution of Conflicts Through Multi-Level Editing. In Proceedings of the 2nd International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom’06). Georgia, Atlanta, USA, November.Google Scholar
  12. Ignat, C.-L. and G. Oster (2007): Flexible Reconciliation of XML Documents in Asynchronous Editing. In Proceedings of the International Conference on Enterprise Information Systems (ICEIS’07). Funchal, Madeira, Portugal, June.Google Scholar
  13. Imine, A., P. Molli, G. Oster and M. Rusinowitch (2003): Proving Correctness of Transformation Functions in Real-Time Groupware. In Proceedings of the European Conference on Computer-Supported Cooperative Work (ECSCW’03), pp. 277–293. Helsinki, Finland: Kluwer Academic Publishers, September.Google Scholar
  14. Ionescu, M. and I. Marsic (2003): Tree-Based Concurrency Control in Distributed Groupware. Computer Supported Cooperative Work, vol. 12, no. 3, pp. 329–350.CrossRefGoogle Scholar
  15. Kermarrec, A.-M., A. Rowstron, M. Shapiro and P. Druschel (2001): The IceCube Approach to the Reconciliation of Divergent Replicas. In Proceedings of the twentieth annual ACM symposium on Principles of distributed computing (PODC’01), pp. 210–218. Newport, Rhode Island, USA: ACM Press.CrossRefGoogle Scholar
  16. Lamport, L. (1978): Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM, vol. 21, no. 7, pp. 558–565.MATHCrossRefGoogle Scholar
  17. Li, D. and R. Li (2004): Preserving Operation Effects Relation in Group Editors. In Proceedings of the 2004 ACM conference on Computer supported cooperative work (CSCW ’04), pp. 457–466. Chicago, Illinois, USA: ACM Press.CrossRefGoogle Scholar
  18. Li, R. and D. Li (2005): Commutativity-Based Concurrency Control in Groupware. In Proceedings of the IEEE Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom’05), pp. 1–10. San Jose, California, USA: IEEE Computer Society, December.Google Scholar
  19. Li, D. and R. Li (2006): A Performance Study of Group Editing Algorithms. In Proceedings of the 12th International Conference on Parallel and Distributed Systems (ICPADS’06), pp. 300–307. Washington, DC, USA: IEEE Computer Society.Google Scholar
  20. Li, D. and R. Li (2007): An Operational Transformation Algorithm and Performance Evaluation. Journal of Computer Supported Cooperative Work (in press).Google Scholar
  21. Lippe, E. and N. van Oosterom (1992): Operation-Based Merging. In Proceedings of the fifth ACM SIGSOFT symposium on Software development environments, pp. 78–87. Tyson’s Corner, Virginia, USA: ACM Press.CrossRefGoogle Scholar
  22. Molli, P., H. Skaf-Molli, G. Oster and S. Jourdain (2002): SAMS: Synchronous, Asynchronous, Multi-Synchronous Environments. In Proceedings of the Conference on Computer-Supported Cooperative Work in Design (CSCWD’02), pp. 80–85. Rio de Janeiro, Brazil, September.Google Scholar
  23. Molli, P., G. Oster, H. Skaf-Molli and A. Imine (2003): Using the Transformational Approach to Build a Safe and Generic Data Synchronizer. In Proceedings of the ACM SIGGROUP Conference on Supporting Group Work (GROUP’03), pp. 212–220. Sanibel Island, Florida, USA: ACM Press, November.Google Scholar
  24. Munson, J.P. and P. Dewan (1994): A Flexible Object Merging Framework. In Proceedings of the 1994 ACM conference on Computer supported cooperative work (CSCW ’94), pp. 231–242. Chapel Hill, North Carolina, USA: ACM Press.CrossRefGoogle Scholar
  25. Munson, J.P. and P. Dewan (1997) Sync: A Java Framework for Mobile Collaborative Applications. Computer, vol. 30, pp. 59–66.CrossRefGoogle Scholar
  26. Myers, E.W. (1986): An \({O}({ND})\) Difference Algorithm and its Variations. Algorithmica, vol. 1, pp. 251–266.MATHCrossRefMathSciNetGoogle Scholar
  27. Neuwirth, C.M., R. Chandhok, D.S. Kaufer, P. Erion, J. Morris and D. Miller (1992): Flexible Diff-Ing in a Collaborative Writing System. In Proceedings of the ACM Conference on Computer Supported Cooperative Work (CSCW92), Collaborative writing, pp. 147–154. Toronto, Ontario: ACM Press.Google Scholar
  28. Nichols, D.A., P. Curtis, M. Dixon and J. Lamping (1995) High-Latency, Low-Bandwidth Windowing in the Jupiter Collaboration System. In Proceedings of the ACM Symposium on User Interface Software and Technology, pp. 111–120.Google Scholar
  29. Oster, G., P. Molli, P. Urso and A. Imine (2006): Tombstone Transformation Functions for Ensuring Consistency in Collaborative Editing Systems. In Proceedings of the Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom06). Atlanta, Georgia, USA: IEEE Computer Society, November.Google Scholar
  30. Papadopoulou, S., C.-L. Ignat, G. Oster and M.C. Norrie (2006): Increasing Awareness in Collaborative Authoring Through Edit Profiling. In Proceedings of the 2nd International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom06). Georgia, Atlanta, USA.Google Scholar
  31. Prakash, A. and M.J. Knister (1994): A Framework for Undoing Actions in Collaborative Systems. ACM Transactions on Computer–Human Interaction, vol. 1, no. 4, pp. 295–330.CrossRefGoogle Scholar
  32. Preguica, N., M. Shapiro and C. Matheson (2003): Semantics-Based Reconciliation for Collaborative and Mobile Environments. In Proceedings of the Eleventh International Conference on Cooperative Information Systems (CoopIS03), volume 2888 of Lecture Notes in Computer Science, pp. 38–55. Catania, Sicily, Italy: Springer, November.Google Scholar
  33. Ressel, M., D. Nitsche-Ruhland and R. Gunzenhäuser (1996): An Integrating, Transformation-Oriented Approach to Concurrency Control and Undo in Group Editors. In Proceedings of the ACM Conference on Computer-Supported Cooperative Work (CSCW96), pp. 288–297. Boston, Massachusetts, USA: ACM Press, November.Google Scholar
  34. Shen, H. and C. Sun (2002): Flexible Merging for Asynchronous Collaborative Systems. In Proceeding of the Conference on Cooperative Information Systems (CoopIS02), volume 2519 of Lecture Notes in Computer Science, pp. 304–321. Irvine, California, USA: Springer-Verlag, November.Google Scholar
  35. Suleiman, M., M. Cart and J. Ferrié (1997): Serialization of Concurrent Operations in a Distributed Collaborative Environment. In Proceedings of the international ACM SIGGROUP conference on Supporting group work (GROUP97), pp. 435–445. Phoenix, Arizona, USA: ACM Press.CrossRefGoogle Scholar
  36. Suleiman, M., M. Cart and J. Ferrié (1998): Concurrent Operations in a Distributed and Mobile Collaborative Environment. In Proceedings of the International Conference on Data Engineering (ICDE’98), pp. 36–45. Orlando, Florida, USA: IEEE Computer Society, February.Google Scholar
  37. Sun, C. (2002): Undo as Concurrent Inverse in Group Editors. ACM Transactions on Computer–Human Interactions, vol. 9, no. 4, pp. 309–361.CrossRefGoogle Scholar
  38. Sun, C. and C.S. Ellis (1998): Operational Transformation in Real-Time Group Editors: Issues, Algorithms, and Achievements. In Proceedings of ACM CSCW’98 Conference on Computer-Supported Cooperative Work (CSCW’98), pp. 59–68.Google Scholar
  39. Sun, D. and C. Sun (2006): Operation Context and Context-Based Operational Transformation. In Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work (CSCW’06), pp. 279–288. New York, NY, USA: ACM Press.CrossRefGoogle Scholar
  40. Sun, C., X. Jia, Y. Zhang, Y. Yang and D. Chen (1998): Achieving Convergence, Causality Preservation, and Intention Preservation in Real-Time Cooperative Editing Systems. ACM Transactions on Computer–Human Interaction, vol. 5, no. 1, pp. 63–108, March.CrossRefGoogle Scholar
  41. Sun, D., S. Xia, C. Sun and D. Chen (2004): Operational Transformation for Collaborative Word Processing. In Proceedings of the 2004 ACM conference on Computer supported cooperative work (CSCW’04), pp. 437–446. Chicago, Illinois, USA: ACM Press.CrossRefGoogle Scholar
  42. Sun, C., S. Xia, D. Sun, D. Chen, H. Shen and W. Cai (2006): Transparent Adaptation of Single-User Applications for Multi-User Real-Time Collaboration. ACM Transactions on Computer–Human Interactions, vol. 13, no. 4, pp. 531–582.CrossRefGoogle Scholar
  43. Tichy, W.F. (1991): RCS – A system for version control, November.Google Scholar
  44. Vidot, N., M. Cart, J. Ferrié and M. Suleiman (2000): Copies Convergence in a Distributed Real-Time Collaborative Environment. In Proceedings of ACM Conference on Computer Supported Cooperative Work (CSCW’00), pp. 171–180.Google Scholar
  45. Xia, S., D. Sun, C. Sun and D. Chen (2005): Collaborative Object Grouping in Graphics Editing Systems. In Proceedings of International Conference in Collaborative Computing: Networking, Applications and Worksharing (Collaborate Com’05). San Jose, California, USA.Google Scholar
  46. Zaffer, A.A., C.A. Shaffer, R.W. Ehrich and M. Perez (2001): Netedit: A Collaborative Editor. Technical report, January.Google Scholar

Copyright information

© Springer Science+Business Media B.V. 2007

Authors and Affiliations

  1. 1.LORIAINRIA Nancy-Grand EstVandœuvre-lès-NancyFrance
  2. 2.ETH ZurichZurichSwitzerland

Personalised recommendations