1. A method of generating answers to questions, comprising: receiving an input query; formulating a plurality of different subqueries; conducting a search in one or more data sources to identify at least one candidate answer to each of the subqueries; for each of the candidate answers for each of the subqueries, applying a candidate ranking function to determine a ranking for said each of the candidate answers; for each of the subqueries, selecting one of the candidate answers to the subquery based on the ranking of said one of the candidate answers; and applying a logical synthesis component to synthesize a candidate answer for the input query from the selected ones of the candidate answers to the subqueries, including the logical synthesis component receiving the selected ones of the candidate answers to the subqueries as input, and outputting the candidate answer to the input query.