Abstract
This paper presents an application of bidirectional transformation to the design and implementation of a novel editor supporting interactive refinement in the development of structured documents. The user performs a sequence of editing operations on a view of the document, and the editor automatically derives an efficient and reliable document source and a transformation that produces the document view. The editor is unique in its programmability, in the sense that transformations can be obtained through editing operations. It uses the view-updating technique developed in the database community and a new bidirectional transformation language that can describe not only the relationship between the document source and its view, but also the data dependency in the view.
Similar content being viewed by others
References
Abiteboul, S.: On views and XML. In: Proceedings of ACM SIGPLAN-SIGACT Symposium on Principles of Database Systems, pp. 1–9. ACM, New York (1999)
Bancilhon, F., Spyratos, N.: Updating semantics of relational views. ACM Trans. Database Syst. 6(4), 557–575 (1981)
Bird, R.: Introduction to Functional Programming using Haskell. Prentice-Hall, Englewood Cliffs (1998)
Bray, T., Paoli, J., Sperberg-McQueen, C.M.: Extensible markup language (XML) 1.0 (1998)
Chidlovskii, B.: Schema extraction from XML collections. In: Proceedings of ACM/IEEE-CS Joint Conference on Digital Libraries, pp. 291–292. ACM, New York (2002)
Dayal, U., Bernstein, P.A.: On the correct translation of update operations on relational views. ACM Trans. Database Syst. 7(3), 381–416 (1982)
Foster, J.N., Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: Combinators for bi-directional tree transformations: a linguistic approach to the view update problem. In: Proceedings of ACM SIGPLAN–SIGACT Symposium on Principles of Programming Languages (POPL), Long Beach, California, pp. 233–246 (2005)
Furuta, R., Quint, V., André, J.: Interactively editing structured documents. Electron. Publ. Orig. Dissem. Des. 1(1), 19–44 (1988)
Garofalakis, M., Gionis, A., Rastogi, R., Seshadri, S., Shim, K.: XTRACT: a system for extracting document type descriptors from XML documents. In: Proceedings of ACM SIGMOD International Conference on Management of Data, pp. 165–176. ACM, New York (2000)
Glück, R., Kawabe, M.: A program inverter for a functional language with equality and constructors. In: Ohori, A. (ed.) Programming Languages and Systems. Proceedings. Lecture Notes in Computer Science, vol. 2895, pp. 246–264. Springer, New York (2003)
Gottlob, G., Paolini, P., Zicari, R.: Properties and update semantics of consistent views. ACM Trans. Database Syst. 13(4), 486–524 (1988)
Greenwald, M.B., Moore, J.T., Pierce, B.C., Schmitt, A.: A language for bi-directional tree transformations. Technical Report MS-CIS-03-08, Department of Computer and Information Science University of Pennsylvania (August 2003)
Jeuring, J.: Implementing a generic editor. In: Proceedings of Workshop on Programmable Structured Documents, Tokyo, Japan, February 2004
Kim, L.: The Official XMLSPY Handbook. Wiley, New York (2002)
Meertens, L.: Designing constraint maintainers for user interaction. http://www.cwi.nl/~lambert (June 1998)
Milo, T., Suciu, D., Vianu, V.: Typechecking for XML transformers. In: Proceedings of ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems, pp. 11–22. ACM, New York (2000)
Mu, S.-C., Hu, Z., Takeichi, M.: An algebraic approach to bi-directional updating. In: Proceedings of ASIAN Symposium on Programming Languages and Systems (APLAS 2004), Taipei, Taiwan, November 2004. Lecture Notes in Computer Science, vol. 3302, pp. 2–18. Springer, New York (2004)
Mu, S.-C., Hu, Z., Takeichi, M.: An injective language for reversible computation. In: Proceedings of International Conference on Mathematics of Program Construction (MPC 2004), Stirling, Scotland, July 2004. Lecture Notes in Computer Science, vol. 3215, pp. 289–313. Springer, New York (2004)
Ohori, A., Tajima, K.: A polymorphic calculus for views and object sharing. In: Proceedings of ACM Symposium on Principles of Database Systems (PODS), pp. 255–266 (1994)
Buneman, P., Khanna, S., Tan, W.-C.: On propagation of deletion and annotation through views. In: Proceedings of ACM Symposium on Principles of Database Systems (PODS), Wisconsin, Madison, June 2002
Schrage, M.M., Jeuring, J.: Xprez: a declarative presentation language for XML. Available at http://www.cs.uu.nl/research/projects/proxima/ (2003)
Takeichi, M., Hu, Z., Kakehi, K., Hayashi, Y., Mu, S.-C., Nakano, K.: Treecalc: towards programmable structured documents. In: Proceedings of JSSST Conference on Software Science and Technology, September 2003
Villard, L., Roisin, C., Layada, N.: An XML-based multimedia document processing model for content adaptation. In: Proceedings of International Conference on Digital Documents and Electronic Publishing. Lecture Notes in Computer Science, vol. 2023. Springer, New York (2000)
XML Software: A list of XML editors. See http://www.xmlsoftware.com/editors.html (2004)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Hu, Z., Mu, SC. & Takeichi, M. A programmable editor for developing structured documents based on bidirectional transformations. Higher-Order Symb Comput 21, 89–118 (2008). https://doi.org/10.1007/s10990-008-9025-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10990-008-9025-5