  This paper is an introduction to natural language interfaces to databases
(NLIDBs). A brief overview of the history of NLIDBs is first given. Some
advantages and disadvantages of NLIDBs are then discussed, comparing NLIDBs to
formal query languages, form-based interfaces, and graphical interfaces. An
introduction to some of the linguistic problems NLIDBs have to confront
follows, for the benefit of readers less familiar with computational
linguistics. The discussion then moves on to NLIDB architectures, portability
issues, restricted natural language input systems (including menu-based
NLIDBs), and NLIDBs with reasoning capabilities. Some less explored areas of
NLIDB research are then presented, namely database updates, meta-knowledge
questions, temporal questions, and multi-modal NLIDBs. The paper ends with
reflections on the current state of the art.
