Locutus is a portable natural language interface to databases (NLIDB), allowing end users to query a relational database using unrestricted natural language questions. End-user input is parsed into syntactic analyses. Although the current implementation makes use of Lexical Functional Grammar (LFG) f-structures, Locutus can be configured to use analyses from any suitably informative parser/grammar. Syntactic analyses are interpreted into semantic mobile structures (SMSs), a system of semantic representations. Mobile structures are converted into SQL queries and sent to a database management system for execution. Some effort is involved in porting Locutus to new database domains, but very good performance is achievable with a small amount of effort Additional effort can increase performance even further. Locutus maintains high precision by using high precision syntactic grammars and a resource-sensitive interpretation system. High recall is maintained through the use of broad-coverage syntactic grammars, extrinsic parse selection and word-sense disambiguation, a powerful system of interpretation rules, and a system of semantic transformations. |