Merging Hierarchically-Structured Documents in Workflow Systems

We consider the manipulation of hierarchically-structured documents within a complex workflow system. Such a system may consist of several subsystems distributed over a computer network. These subsystems can concurrently update partial views of the document. At some points in time we need to reconcile the various local updates by merging the partial views into a coherent global document. For that purpose, we represent the potentially-infinite set of documents compatible with a given partial view as a coinductive data structure. This set is a regular set of trees that can be obtained as the image of the partial view of the document by the canonical morphism (anamorphism) associated with a coalgebra (some kind of tree automaton). Merging partial views then amounts to computing the intersection of the corresponding regular sets of trees which can be obtained using a synchronization operation on coalgebras.

[1]  S.-C. Mu,et al.  A calculational approach to program inversion , 2003 .

[2]  Tok Wang Ling,et al.  Designing Valid XML Views , 2002, ER.

[3]  Thomas Johnsson,et al.  Attribute grammars as a functional programming paradigm , 1987, FPCA.

[4]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[5]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[6]  Graham Hutton,et al.  Monadic parsing in Haskell , 1998, Journal of Functional Programming.

[7]  Vanessa Braganholo,et al.  UPDATING RELATIONAL DATABASES THROUGH XML VIEWS , 2001 .

[8]  Serge Abiteboul,et al.  Positive active XML , 2004, PODS '04.

[9]  Shin-Cheng Mu,et al.  Theory and applications of inverting functions as folds , 2004, Sci. Comput. Program..

[10]  Benjamin C. Pierce,et al.  What is a file synchronizer? , 1998, MobiCom '98.

[11]  Tancred Lindholm,et al.  A three-way merge for XML documents , 2004, DocEng '04.

[12]  Robin La Fontaine,et al.  Merging XML files: a new approach providing intelligent merge of XML data sets , 2002 .

[13]  Johan Jeuring,et al.  A translation from attribute grammars to catamorphisms , 1991 .

[14]  Shin-Cheng Mu,et al.  A programmable editor for developing structured documents based on bidirectional transformations , 2008, High. Order Symb. Comput..

[15]  Robert Glück,et al.  The Universal Resolving Algorithm: Inverse Computation in a Functional Language , 2000, MPC.

[16]  Jennifer Widom,et al.  Change detection in hierarchically structured information , 1996, SIGMOD '96.

[17]  Kevin Backhouse,et al.  A Functional Semantics of Attribute Grammars , 2002, TACAS.

[18]  Wil M. P. van der Aalst,et al.  Fundamentals of control flow in workflows , 2003, Acta Informatica.

[19]  Paul Hudak,et al.  A gentle introduction to Haskell , 1992, SIGP.

[20]  Ulf Asklund,et al.  Identifying Conflicts During Structural Merge , 1999 .

[21]  Frank Leymann,et al.  Production Workflow: Concepts and Techniques , 1999 .

[22]  Hector Garcia-Molina,et al.  Meaningful change detection in structured data , 1997, SIGMOD '97.

[23]  Ethan V. Munson Symposium on document engineering , 2002, SIGF.

[24]  Shin-Cheng Mu,et al.  An Algebraic Approach to Bi-directional Updating , 2004, APLAS.

[25]  Serge Abiteboul On Views and XML , 1999, PODS.

[26]  Tom Mens,et al.  A State-of-the-Art Survey on Software Merging , 2002, IEEE Trans. Software Eng..

[27]  Shin-Cheng Mu,et al.  A programmable editor for developing structured documents based on bidirectional transformations , 2004, PEPM '04.

[28]  Ana Sokolova,et al.  Generic Trace Semantics via Coinduction , 2007, Log. Methods Comput. Sci..

[29]  Gerhard Weikum,et al.  A Formal Foundation for Distributed Workflow Execution Based on State Charts , 1997, ICDT.

[30]  S-C. Mu,et al.  An algebraic approach to bidirectional updating , 2004 .

[31]  Jeroen D. Fokker,et al.  Functional Parsers , 1995, Advanced Functional Programming.

[32]  Thomas W. Reps,et al.  Integrating noninterfering versions of programs , 1989, TOPL.

[33]  Shin-Cheng Mu,et al.  An Injective Language for Reversible Computation , 2004, MPC.