Tree Automata for Extracting Consensus from Partial Replicas of a Structured Document
- 1 Department of Mathematics and Computer Science, Faculty of Sciences, University of Dschang, Dschang, Cameroon
- 2 Department of Mathematics and Computer Science, Faculty of Sciences, University of Dschang, Dschang, Cameroon
Abstract
In an asynchronous cooperative editing workflow of a structured document, each of the co-authors receives in the different phases of the editing process, a copy of the document to insert its contribution. For confidentiality reasons, this copy may be only a partial replica containing only parts of the (global) document which are of demonstrated interest for the considered co-author. Note that some parts may be a demonstrated interest over a co-author; they will therefore be accessible concurrently. When it’s synchronization time (e.g. at the end of an asynchronous editing phase of the process), we want to merge all contributions of all authors in a single document. Due to the asynchronism of edition and to the potential existence of the document parts offering concurrent access, conflicts may arise and make partial replicas unmergeable in their entirety: they are inconsistent, meaning that they contain conflictual parts. The purpose of this paper is to propose a merging approach said by consensus of such partial replicas using tree automata. Specifically, from the partial replicas updates, we build a tree automaton that accepts exactly the consensus documents. These documents are the maximum prefixes containing no conflict of partial replicas merged.
- W3C. eXtensible Markup Language (xml) (2000) W3C Recommendation 1.0. 2nd Edition. http://www.w3.org/TR/2000/REC-xml-20001006
- Official Site of the Open Source Version of Etherpad. http://www.etherpad.org/
- Official Site of Google Docs. https://docs.google.com/
- Wilm, J. and Frebel, D. (2015) Real-World Challenges to Collaborative Text Creation. Proceedings of the 2nd International Workshop on (Document) Changes: Modeling, Detection, Storage and Visualization, New York, 1-4.
- Ward Cunningham (2014) Wikiwikiweb History. http://c2.com/cgi/wiki?WikiHistory
- Wikimedia. Wikipedia: The Free Encyclopedia That Anyone Can Edit. https://en.wikipedia.org/
- Scott Chacon. Official Site of Git. https://git-scm.com/
- Wikipédia. git—Wikipédia. https://fr.wikipedia.org/wiki/git
- Badouel, E. and Tchoupé, M. (2008) Merging Hierarchically Structured Documents in Workflow Systems. Electronic Notes in Theoretical Computer Science, 203, 3-24.
- Berstel, J. and Boasson, L. (2000) Xml-Grammars. In: Nielsen, M. and Rovan, B., Eds., Mathematical Foundations of Computer Science 2000. MFCS 2000. Lecture Notes in Computer Science, Vol. 1893, Springer, Berlin, Heidelberg, 182-191.
- Timo, B. and Erhard, R. (2004) Supporting Efficient Streaming and Insertion of XML Data in RDBMS. 3rd International Workshop on Data Integration over the Web, 8 June 2004, Riga, Latvia, 70-81.
- Saito, Y. and Shapiro, M. (2005) Optimistic Replication. ACM Computing Surveys, 37, 42-81.
- Comon, H., Dauchet, M., Gilleron, R., Lugiez, D., Tison, S. and Tommasi, M. (2005) Tree Automata Techniques and Applications. Draft. http://www.grappa.univ-lille3.fr/tata/
- Balasubramaniam, S. and Pierce, B.C. (1998) What Is a File Synchronizer? Proceeding of 4th International Conference on Mobile Computing and Networking (MOBICOM), ACM/IEEE, Dallas, TX, 25-30 October 1998, 98-108. https://doi.org/10.1145/288235.288261
- Mens, T. (2002) A State-of-the-Art Survey on Software Merging. IEEE Transactions on Software Engineering, 28, 449-462. https://doi.org/10.1109/TSE.2002.1000449
- Haskell, A Purely Functional Language. http://www.haskell.org
- Davie, A. (1992) An Introduction to Functional Programming Systems Using Haskell. Cambridge University Press, Cambridge.