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.
Several lines of research have attempted to construct natural language interfaces to databases (NLIDBs) which can convert natural language queries (NLQ) to SQL. Several challenges exist in this translation process, and we believe that using information from a SQL query log, which is often readily available for existing databases, can assist a NLIDB in matching a NLQ to the most likely SQL interpretation.
Various oblique query specification (OQS) systems, such as query-by-example or natural language, attempt to discern a user’s desired SQL query from an indirect and imprecise specification. Often, users’ specifications lead to the generation of many candidate queries, and the system must determine which of the candidate queries is the user’s desired one. Litmus is a system that cherry-picks tuples from the result and solicits user feedback in order to select the user’s target query from a set of candidate queries.