A Semi-monad for Semi-structured Data (ICDT Version)

  • Mary Fernandez
  • Jerome Simeon
  • Philip Wadler
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1973)


This document proposes an algebra for XML Query. The algebra has been submitted to the W3C XML Query Working Group. A novel feature of the algebra is the use of regular-expression types, similar in power to DTDs or XML Schemas, and closely related to Hasoya and Pierce’s work on Xduce. The iteration construct is based on the notion of a monad, and involves novel typing rules not encountered elsewhere.


Type System Query Language Scalar Type Unit Type Typing Rule 
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.
    S. Abiteboul, R. Hull, V. Vianu. Foundations of Databases. Addison Wesley, 1995.Google Scholar
  2. 2.
    Richard Bird. Introduction to Functional Programming using Haskell. Prentice Hall, 1998.Google Scholar
  3. 3.
    P. Buneman, M. Fernandez, D. Suciu. UnQL: A query language and algebra for semistructured data based on structural recursion. VLDB Journal, to appear.Google Scholar
  4. 4.
    Catriel Beeri and Yoram Kornatzky. Algebraic Optimization of Object-Oriented Query Languages. Theoretical Computer Science 116(1&2):59–94, August 1993.zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Francois Bancilhon, Paris Kanellakis, Claude Delobel. Building an Object-Oriented Database System. Morgan Kaufmann, 1990.Google Scholar
  6. 6.
    Peter Buneman, Leonid Libkin, Dan Suciu, Van Tannen, and Limsoon Wong. Comprehension Syntax. SIGMOD Record, 23:87–96, 1994.CrossRefGoogle Scholar
  7. 7.
    David Beech, Ashok Malhotra, Michael Rys. A Formal Data Model and Algebra for XML. W3C XML Query working group note, September 1999.Google Scholar
  8. 8.
    Peter Buneman, Shamim Naqvi, Val Tannen, Limsoon Wong. Principles of programming with complex object and collection types. Theoretical Computer Science 149(1):3–48, 1995.zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    Catriel Beeri and Yariv Tzaban, SAL: An Algebra for Semistructured Data and XML, International Workshop on the Web and Databases (WebDB’99), Philadelphia, Pennsylvania, June 1999.Google Scholar
  10. 10.
    R. G. Cattell. The Object Database Standard: ODMG 2.0. Morgan Kaufmann, 1997.Google Scholar
  11. 11.
    Don Chamberlin, Jonathan Robie, and Daniela Florescu. Quilt: An XML Query Language for Heterogeneous Data Sources. International Workshop on the Web and Databases (WebDB’2000), Dallas, Texas, May 2000.Google Scholar
  12. 12.
    Vassilis Christophides and Sophie Cluet and Jér ome Siméon. On Wrapping Query Languages and Efficient XML Integration. Proceedings of ACM SIGMOD Conference on Management of Data, Dallas, Texas, May 2000.Google Scholar
  13. 13.
    S. Cluet and G. Moerkotte. Nested queries in object bases. Workshop on Database Programming Languages, pages 226–242, New York, August 1993.Google Scholar
  14. 14.
    S. Cluet, S. Jacqmin and J. Siméon The New YATL: Design and Specifications. Technical Report, INRIA, 1999.Google Scholar
  15. 15.
    L. S. Colby. A recursive algebra for nested relations. Information Systems 15(5):567–582, 1990.CrossRefMathSciNetGoogle Scholar
  16. 16.
    Hugh Darwen (Contributor) and Chris Date. Guide to the SQL Standard: A User’s Guide to the Standard Database Language SQL Addison-Wesley, 1997.Google Scholar
  17. 17.
    A. Deutsch, M. Fernandez, D. Florescu, A. Levy, and D. Suciu. A query language for XML. In International World Wide Web Conference, 1999.
  18. 18.
    Mary Fernandez, Jerome Simeon, Philip Wadler. An Algebra for XML Query, Draft manuscript, June 2000.Google Scholar
  19. 19.
    Mary Fernandez, Jerome Simeon, Philip Wadler. An Algebra for XML Query, Foundations of Software Technology and Theoretical Computer Science (FSTTCS 2000), New Delhi, December 2000.Google Scholar
  20. 20.
    J. A. Goguen, J. W. Thatcher, E. G. Wagner. An initial algebra approach to the specification, correctness, and implementation of abstract data types. In Current Trends in Programming Methodology, pages 80–149, Prentice Hall, 1978.Google Scholar
  21. 21.
    Haruo Hosoya, Benjamin Pierce, XDuce: A Typed XML Processing Language (Preliminary Report). In WebDB Workshop 2000.Google Scholar
  22. 22.
    Haruo Hosoya, Benjamin Pierce, Jerome Vouillon, Regular Expression Types for XML. In International Conference on Functional Programming (ICFP), September 2000.Google Scholar
  23. 23.
    M. Kifer, W. Kim, and Y. Sagiv. Querying object-oriented databases. In Proceedings of ACM SIGMOD Conference on Management of Data, pages 393–402, San Diego, California, June 1992.Google Scholar
  24. 24.
    Leonid Libkin and Limsoon Wong. Query languages for bags and aggregate functions. Journal of Computer and Systems Sciences, 55(2):241–272, October 1997.zbMATHCrossRefMathSciNetGoogle Scholar
  25. 25.
    Leonid Libkin, Rona Machlin, and Limsoon Wong. A query language for multidimensional arrays: Design, implementation, and optimization techniques. SIGMOD 1996.Google Scholar
  26. 26.
    John C. Mitchell Foundations for Programming Languages. MIT Press, 1998.Google Scholar
  27. 27.
    E. Moggi, Computational lambda-calculus and monads. In Symposium on Logic in Computer Science, Asilomar, California, IEEE, June 1989.Google Scholar
  28. 28.
    E. Moggi, Notions of computation and monads. Information and Computation, 93(1), 1991.Google Scholar
  29. 30.
    J. Robie, editor. XQL’ 99 Proposal, 1999.
  30. 31.
    H.-J. Schek and M. H. Scholl. The relational model with relational-valued attributes. Information Systems 11(2):137–147, 1986.zbMATHCrossRefGoogle Scholar
  31. 32.
    S. J. Thomas and P. C. Fischer. Nested Relational Structures. In Advances in Computing Research: The Theory of Databases, JAI Press, London, 1986.Google Scholar
  32. 33.
    Philip Wadler. Comprehending monads. Mathematical Structures in Computer Science, 2:461–493, 1992.zbMATHMathSciNetCrossRefGoogle Scholar
  33. 34.
    P. Wadler, Monads for functional programming. In M. Broy, editor, Program Design Calculi, NATO ASI Series, Springer Verlag, 1993. Also in J. Jeuring and E. Meijer, editors, Advanced Functional Programming, LNCS 925, Springer Verlag, 1995.Google Scholar
  34. 35.
    P. Wadler, How to declare an imperative. ACM Computing Surveys, 29(3):240–263, September 1997.CrossRefGoogle Scholar
  35. 36.
    Philip Wadler. A formal semantics of patterns in XSLT. Markup Technologies, Philadelphia, December 1999.Google Scholar
  36. 37.
    Limsoon Wong. An introduction to the Kleisli query system and a commentary on the influence of functional programming on its implementation. Journal of Functional Programming, to appear.Google Scholar
  37. 38.
    World-Wide Web Consortium, XML Query Data Model, Working Draft, May 2000.
  38. 39.
    World-Wide Web Consortium, XML Path Language (XPath): Version 1.0. November, 1999.
  39. 40.
    World-Wide Web Consortium, XML Query: Requirements, Working Draft. August 2000.
  40. 41.
    World-Wide Web Consortium, XML Query: Data Model, Working Draft. May 2000.
  41. 42.
    World-Wide Web Consortium, XML Schema Part 1: Structures, Working Draft. April 2000.
  42. 43.
    World-Wide Web Consortium, XML Schema Part 2: Datatypes, Working Draft, April 2000.
  43. 44.
    World-Wide Web Consortium, XSL Transformations (XSLT), Version 1.0. W3C Recommendation, November 1999.

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Mary Fernandez
    • 1
  • Jerome Simeon
    • 2
  • Philip Wadler
    • 3
  1. 1.ATT LabsCanada
  2. 2.Bell Labs, Lucent TechnologiesCanada
  3. 3.Avaya LabsCanada

Personalised recommendations