The task of the automatic dialogue system in many practical applications can be reduced to guiding the user towards a database query yielding a single nonempty answer. Starting from this remark, a generic dialogue strategy can be defined (and implemented in a modular way) which is neither structural nor Al-complete1. The kind of database application we are considering is characterized by a universal relation over a single parameter space, where the parameters represent various features of a common object the user and the system try to agree on, such as a seat on a given flight. The strategy is totally data-driven: no assumption is made about the a priori functional dependencies existing among these parameters. The generic part of the dialogue manager uses the description of the application to help the user specify a minimal set of constraints over the parameters yielding a unique solution. This is done incrementally, asking questions when the set of solutions is too large, and proposing a (possibly multiple) constraint relaxation when it is empty. The resulting dialogue type is a fluent combination of request negociations and corrective and suggestive answers. A complete system has been built atop this generic module, with separate modules for spoken input/output and natural language parsing and generation. It has been tested in a respectably sized flight reservation application (300,000 entries) on which it achieves real time on a workstation.