20. The method of claim 16 , wherein querying the user includes: generating a disambiguation user interface based on the top-sorted attribute with reference to one or more user interface documents; providing the generated disambiguation user interface to the user via a text-to-speech module; obtaining a user response via an automatic speech recognition module; and reducing the set of candidates based on the obtained user response.
16. A method for providing a voice application, comprising: executing control flow logic modeling a dialog flow with a user via a voice browser, the control flow logic producing a disambiguation/confirmation requirement; initiating a database disambiguation module in response to the disambiguation/confirmation requirement; sending a set of at least two candidates and partitioning criteria from the control flow logic to the database disambiguation module; retrieving a set of attributes for each candidate of the set from a database; analyzing the attributes of each candidate of the set of candidates to determine a partitioning score for each attribute indicative of that attribute's ability to distinguish between the at least two candidates based on the partitioning criteria; sorting the attributes based on their corresponding partitioning scores; querying the user based on a top-sorted attribute and using results of the query to at least reduce the set of candidates; repeating the steps of analyzing, sorting, and querying until the set of candidates is reduced to a single candidate; and returning the single candidate from the database disambiguation module to the control flow logic for continued execution.