1. A method of searching for information using a knowledge base, comprising: receiving a query; formulizing the query, including dividing the query into a plurality of parts and forming a semantic representation of each of the plurality of parts; for each of said parts, identifying one or more documents, using the knowledge base and the semantic representation of said each part, that provides relevant information for said each part in a defined manner; and combining the information from said documents to provide an answer to the query.