1. A method for providing query results in response to a user query, comprising using a computing device to perform steps for: receiving a current user query having multiple search terms; evaluating the current user query to identify one or more subqueries, each subquery comprised of one or more of the search terms of the current user query; evaluating each subquery to select one or more structured data sets from among a plurality of structured data sets from which to retrieve a partial answer corresponding each subquery; for each partial answer retrieved from a selected structured data set, reformulating the current user query to construct a reformulated query by replacing the corresponding subquery of the current user query with the corresponding partial answer; retrieving a set of ranked search results corresponding to reformulated query; iteratively repeating the preceding steps, with the resulting reformulated query being used to replace the current user query in each iteration, until one or more of the ranked search results have a sufficiently high confidence level; and when one or more of the ranked search results have a sufficiently high confidence level, presenting the set of ranked search results on a display device.