Duoquest: Dual-Specification Synthesis of Expressive SQL

Querying a relational database is difficult for users without training. Natural language and programming-by-example (PBE) are both promising alternatives to writing SQL by hand. Both of these approaches have downsides, in that natural language is often too ambiguous, even for human interpreters, and current PBE approaches require certain assumptions to be tractable for complex SQL queries such as those including aggregates and nesting. Duoquest is a system that enables users to provide both natural language and a PBE-like specification to enable users to more accurately construct expressive SQL.

Publications: CIDR 2020, SIGMOD 2020, Technical Report

Code: Github