Natural-Language Interface for an Instructable Robot

This article is concerned with the problems of understanding the grammar and semantics of English as it would be used to instruct a robot. We describe a working prototype system, programmed in Standard LISP, which translates English sentences into an operator language and then executes them. Imperatives become actions that are performed while declaratives become assertions that are checked for truth. We describe the context-free grammar and parser that are the first stage of translation, the postparser that uses context-sensitive information to eliminate the many bad parses permitted by the context-free grammar, and the table-driven final stage of translation. We also describe the semantics of the operators and arguments, including the context-referent mechanisms we invented to construct loops rather than the artificial means (such as labels and goto, or begin-end pairs) usually employed in programming languages. Finally, we discuss the general question of designing systems which build new procedures out of already-known procedures in ways that are similar to how a human being is taught new procedures in terms of old procedures.