Since cooperation is an essential aspect of human conversation, it is a necessary feature in a natural language interface. Previous work has shown that it is possible to incorporate principles of cooperative behaviour into a system allowing natural language access to a database. It is shown here that some of these principles can also be applied fruitfully in a formal language environment. Specifically, when a query retrieves an empty result set, it is possible, by analyzing the question and running related queries against the database, to give a useful explanation of the zero result. A precise specification of the information that should be presented to the user is described for queries consisting of boolean combinations of predicates of a single variable. Such cooperative responses to boolean queries have been implemented on the large bibliographic database of the Research Libraries Group. The size of the database has motivated a careful optimization of the algorithm, which is discussed.
展开▼