1. 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 disambiguation/confirmation 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 disambiguation/confirmation module; analyzing attributes 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 disambiguation/confirmation module to the control flow logic for continued execution.