An Algebraic Approach to Bi-directional Updating

  • Shin-Cheng Mu
  • Zhenjiang Hu
  • Masato Takeichi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3302)


In many occasions would one encounter the task of maintaining the consistency of two pieces of structured data that are related by some transform — synchronising bookmarks in different web browsers, the source and the view in an editor, or views in databases, to name a few. This paper proposes a formal model of such tasks, basing on a programming language allowing injective functions only. The programmer designs the transformation as if she is writing a functional program, while the synchronisation behaviour is automatically derived by algebraic reasoning. The main advantage is being able to deal with duplication and structural changes. The result will be integrated to our structure XML editor in the Programmable Structured Document project.


Atomic Type Algebraic Approach Injective Function Document Designer Galois Connection 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abiteboul, S.: On views and XML. In: Proceedings of the 18th ACM SIGPLANSIGACT- SIGART Symposium on Principles of Database Systems, pp. 1–9. ACM Press, New York (1999)Google Scholar
  2. 2.
    Abramov, S.M., GIück, R.: The universal resolving algorithm and its correctness: inverse computation in a functional language. Science of Computer Programming 43, 193–299 (2002)MathSciNetCrossRefzbMATHGoogle Scholar
  3. 3.
  4. 4.
    Backus, J.: Can programming be liberated from the von Neumann style? a functional style and its algebra of programs. Communications of the ACM 21(8), 613–641 (1978)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Bancilhon, F., Spyratos, N.: Update semantics of relational views. ACM Transactions on Database Systems 6(4), 557–575 (1981)CrossRefzbMATHGoogle Scholar
  6. 6.
    Bird, R.S., de Moor, O.: Algebra of Programming. International Series in Computer Science. Prentice-Hall, Englewood Cliffs (1997)zbMATHGoogle Scholar
  7. 7.
    Dayal, U., Bernstein, P.A.: On the correct translation of update operations on relational views. ACM Transactions on Database Systems 7(3), 381–416 (1982)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    GIück, R., Kawabe, M.: A program inverter for a functional language with equality and constructors. In: Ohori, A. (ed.) APLAS 2003. LNCS, vol. 2895, pp. 246–264. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  9. 9.
    Glück, R., Kawabe, M.: Derivation of deterministic inverse programs based on LR parsing (extended abstract). In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 291–306. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  10. 10.
    Gottlob, G., Paolini, P., Zicari, R.: Properties and update semantics of consistent views. ACM Transactions on Database Systems 13(4), 486–524 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: A language for bi-directional tree transformations. Technical Report, MS-CIS-03-08, University of Pennsylvania (August 2003)Google Scholar
  12. 12.
    Meertens, L.: Designing constraint maintainers for user interaction (1998),
  13. 13.
    Mu, S.-C., Hu, Z., Takeichi, M.: An injective language for reversible computation. In: Kozen, D. (ed.) MPC 2004. LNCS, vol. 3125, pp. 289–313. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  14. 14.
    Ohori, A., Tajima, K.: A polymorphic calculus for views and object sharing. In: Proceedings of the 13th ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pp. 255–266. ACM Press, New York (1994)Google Scholar
  15. 15.
    Takeichi, M., Hu, Z., Kakehi, K., Hayashi, Y., Mu, S.-C., Nakano, K.: TreeCalc: towards programmable structured documents. In: The 20th Conference of Japan Society for Software Science and Technology (September 2003)Google Scholar
  16. 16.
    Wallace, M., Runciman, C.: Haskell and XML: generic combinators or typebased translation? In: Proceedings of the 1999 ACM SIGPLAN International Conference on Functional Programming, pp. 148–159. ACM Press, New York (1999)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Shin-Cheng Mu
    • 1
  • Zhenjiang Hu
    • 1
  • Masato Takeichi
    • 1
  1. 1.Department of Information EngineeringUniversity of TokyoTokyoJapan

Personalised recommendations