This is documentation for the Squirrel system. Squirrel is a portable natural language front-end. It is currently designed to run with SQL databases such as Ingres.
A question given in Natural Language (currently English) is parsed using information specified in a grammar and lexicon. The question is translated, by way of several representations and optimisations several representations and optimisations into an SQL query. This query is then presented to a relational database. In many cases, it is also possible to present the user with a paraphrase of the query as it has been disambiguated with respect to the domain.
One design goal of the system is for the front-end to be as independent as possible of the specific database being queried. In principle, just one collection of information needs to be changed to port the front-end to a different database. This collection of information consists of a model of the database and information used to indicate how to map the semantic constructions obtained by the parser onto the kinds of relations contained in the database. Collectively, this information is known as the Extended Data Model (EDM).
A demonstration of Squirrel exists which is accessible over the Web.
This currently works with a toy database consisting of information about a hypothetical company. There are some previously prepared examples which give an idea of the potential of the system.
Current work on Squirrel is being conducted within the SNAP project. This seeks to extend the system so that natural language questions can be used both to produce SQL relational queries and textbase search terms. Additionally, some effort is being directed at producing customisation tools for the system. These are intended to make it easier to extend and debug the grammar, the lexicon, and the Extended Data Model.