1. A method for extracting information from a natural language text corpus based on a natural language query, comprising the steps of: indexing and storing the natural language text corpus; analyzing a natural language query with respect to phrases, phrase types, syntactic roles, word tokens of phrases, and lexical meaning of word tokens; creating one or more surface variants for at least one phrase of the natural language query, said one or more surface variants each having the same phrase type as said at least one phrase of the natural language query, and each comprising a word token being a lexical head and having the same lexical meaning as a word token being a lexical head of said at least one phrase of the natural language query; comparing said one or more surface variants and said at least one phrase of the natural language query with the indexed and stored natural language text corpus; and extracting from said indexed and stored natural language text corpus, portions of text comprising a string of word tokens that matches any one of said surface variants or said at least one phrase of the natural language query.