skip to main content
research-article

Static and dynamic semantics of NoSQL languages

Published:23 January 2013Publication History
Skip Abstract Section

Abstract

We present a calculus for processing semistructured data that spans differences of application area among several novel query languages, broadly categorized as "NoSQL". This calculus lets users define their own operators, capturing a wider range of data processing capabilities, whilst providing a typing precision so far typical only of primitive hard-coded operators. The type inference algorithm is based on semantic type checking, resulting in type information that is both precise, and flexible enough to handle structured and semistructured data. We illustrate the use of this calculus by encoding a large fragment of Jaql, including operations and iterators over JSON, embedded SQL expressions, and co-grouping, and show how the encoding directly yields a typing discipline for Jaql as it is, namely without the addition of any type definition or type annotation in the code.

Skip Supplemental Material Section

Supplemental Material

r1d1_talk9.mp4

References

  1. A. Albano, G. Ghelli, and R. Orsini. Fibonacci: A programming language for object databases. The VLDB Journal, 4:403--444, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. N. Alon, T. Milo, F. Neven, D. Suciu, and V. Vianu. XML with data values: typechecking revisited. In PODS\,'01. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. N. Alon, T. Milo, F. Neven, D. Suciu, and V. Vianu. Typechecking XML views of relational databases. ACM Trans. Comput. Logic, 4:315--354, July 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Behm phet al. Asterix: towards a scalable, semistructured data platform for evolving-world models. DAPD, 29(3):185--216, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. V. Benzaken, G. Castagna, and A. Frisch. CDuce: an XML-friendly general purpose language. In ICFP\,'03. ACM, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. K. Beyer phet al. Jaql: A scripting language for large scale semistructured data analysis. PVLDB, 4(12):1272--1283, 2011.Google ScholarGoogle Scholar
  7. S. Boag, D. Chamberlain, M. F. Fernández, D. Florescu, J. Robie, and J. Siméon. XQuery 1.0: An XML query language, W3C rec., 2007.Google ScholarGoogle Scholar
  8. P. Buneman, L. Libkin, D. Suciu, V. Tannen, and L. Wong. Comprehension syntax. SIGMOD Record, 23(1):87--96, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. P. Buneman, R. Nikhil, and R. Frankel. A Practical Functional Programming System for Databases. In Proc. Conference on Functional Programming and Architecture. ACM, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Castagna and K. Nguyen. Typed iterators for XML. In ICFP'08. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. H. Comon, M. Dauchet, R. Gilleron, F. Jacquemard, C. Löding, D. Lugiez, S. Tison, and M. Tommasi. Tree automata techniques and applications. http://www.grappa.univ-lille3.fr/tata, 2007.Google ScholarGoogle Scholar
  12. G. Copeland and D. Maier. Making Smalltalk a database system. In ACM SIGMOD Conf., 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. Engelfriet. Top-down tree transducers with regular look-ahead. Mathematical Systems Theory, 10(1):289--303, Dec. 1976.Google ScholarGoogle ScholarCross RefCross Ref
  14. A. Frisch. Théorie, conception et réalisation d'un langage de programmation adapté à XML. PhD thesis, Université Paris 7 Denis Diderot, 2004.Google ScholarGoogle Scholar
  15. A. Frisch, G. Castagna, and V. Benzaken. Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types. Journal of the ACM, 55(4):1--64, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Jaql.texttthttp://code.google.com/p/jaql.Google ScholarGoogle Scholar
  17. JavaScript Object Notation (JSON).texttthttp://json.org/.Google ScholarGoogle Scholar
  18. W. Martens and F. Neven. Typechecking top-down uniform unranked tree transducers. In ICDT\,'03. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. E. Meijer. The world according to LINQ. ACM Queue, 9(8):60, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. E. Meijer and G. Bierman. A co-relational model of data for large shared data banks. Communications of the ACM, 54(4):49--58, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. K. Nguyen. Language of Combinators for XML: Conception, Typing, Implementation. PhD thesis, Université Paris-Sud 11, 2008.Google ScholarGoogle Scholar
  22. Odata.texttthttp://www.odata.org/.Google ScholarGoogle Scholar
  23. A. Ohori and P. Buneman. Type Inference in a Database Programming Language. In LISP and Functional Programming, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. A. Ohori, P. Buneman, and V. Tannen. Database Programming in Machiavelli --a Polymorphic Language with Static Type Inference. In ACM SIGMOD Conf., 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Ohori and K. Ueno. Making standard ML a practical database programming language. In ICFP\,'11, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. C. Olston, B. Reed, U. Srivastava, R. Kumar, and A. Tomkins. Pig latin: a not-so-foreign language for data processing. In ACM SIGMOD Conf., 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. F. Özcan phet al. Emerging trends in the enterprise data analytics: connecting Hadoop and DB2 warehouse. In ACM SIGMOD Conf., 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. J. Robie (editor). JSONiq. http://jsoniq.org.Google ScholarGoogle Scholar
  29. J. Schmidt and M. Mall. Pascal/R Report. Technical Report 66, Fachbereich Informatik, université de Hamburg, 1980.Google ScholarGoogle Scholar
  30. Squeryl: A Scala ORM and DSL for talking with Databases with minimum verbosity and maximum type safety.texttthttp://squeryl.org/.Google ScholarGoogle Scholar
  31. V. Tannen, P. Buneman, and L. Wong. Naturally embedded query languages. In ICDT, pages 140--154, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. P. Trinder and P. Wadler. Improving list comprehension database queries. In 4th IEEE Region 10 Conference (TENCON), 1989.Google ScholarGoogle ScholarCross RefCross Ref
  33. Unql.texttthttp://www.unqlspec.org/.Google ScholarGoogle Scholar

Index Terms

  1. Static and dynamic semantics of NoSQL languages

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM SIGPLAN Notices
              ACM SIGPLAN Notices  Volume 48, Issue 1
              POPL '13
              January 2013
              561 pages
              ISSN:0362-1340
              EISSN:1558-1160
              DOI:10.1145/2480359
              Issue’s Table of Contents
              • cover image ACM Conferences
                POPL '13: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                January 2013
                586 pages
                ISBN:9781450318327
                DOI:10.1145/2429069

              Copyright © 2013 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 23 January 2013

              Check for updates

              Qualifiers

              • research-article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader
            About Cookies On This Site

            We use cookies to ensure that we give you the best experience on our website.

            Learn more

            Got it!