1. A method of generating an answer to a question, comprising: receiving an input query; analyzing the input query to identify a defined type of information to answer the input query; processing the input query to formulate a plurality of subqueries, wherein each of the subqueries has an answer, and the answers of the subqueries are of a specified type of data for determining 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 identified 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 the subqueries to determine the candidate answer to the input query.