1. A method of generating an answer to a question, comprising: receiving an input query; using the input query to determine a plurality of sub-queries, wherein each of the subqueries has an associated answer, and the answers to the subqueries are used to determine an answer to the input query; 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 subqueries, selecting one of the candidate answers to the subquery; using the input query to determine a procedure for using the selected ones of the candidate answers to determine a candidate answer to the input query; and using said determined procedure to use the selected ones of the candidate answers to determine a candidate answer to the input query; and wherein the using the logical synthesis component includes using the logical synthesis component to form an intersection of the selected candidate answers to synthesize the candidate answer for the input query.