Query Combinators
Clark C. Evans, Kyrylo Simonov

TL;DR
Rabbit is a combinator-based query language that uses categorical semantics to enable intuitive, step-by-step database querying for data analysts and accidental programmers.
Contribution
It introduces Rabbit, a novel query language grounded in categorical semantics, allowing expressive, modular, and testable database queries.
Findings
Supports complex data navigation and manipulation
Enables pipeline-style query construction
Facilitates practical data analytics applications
Abstract
We introduce Rabbit, a combinator-based query language. Rabbit is designed to let data analysts and other accidental programmers query complex structured data. We combine the functional data model and the categorical semantics of computations to develop denotational semantics of database queries. In Rabbit, a query is modeled as a Kleisli arrow for a monadic container determined by the query cardinality. In this model, monadic composition can be used to navigate the database, while other query combinators can aggregate, filter, sort and paginate data; construct compound data; connect self-referential data; and reorganize data with grouping and data cube operations. A context-aware query model, with the input context represented as a comonadic container, can express query parameters and window functions. Rabbit semantics enables pipeline notation, encouraging its users to construct…
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.
Taxonomy
TopicsAdvanced Database Systems and Queries
