Static and dynamic semantics of NoSQL languages
V\'eronique Benzaken (LRI), Giuseppe Castagna (PPS), Kim Nguy\~\^en, (LRI), J\'er\^ome Sim\'eon

TL;DR
This paper introduces a calculus for NoSQL query languages that enables flexible, precise type inference and operator definition, unifying various data processing paradigms within a formal framework.
Contribution
It presents a novel calculus with semantic type checking that captures diverse NoSQL operations and encodes a large fragment of Jaql without extra type annotations.
Findings
Type inference is both precise and flexible for structured and semistructured data.
The calculus can encode complex NoSQL operations like JSON processing and embedded SQL.
A typing discipline for Jaql is derived directly from the calculus encoding.
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
