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.