1. A method of processing a query directed to a database, said method comprising the steps of: obtaining said query from a user; disambiguating said query using a knowledge base to obtain a set of identifiable interpretations associated with words in said query; selecting one interpretation from said set of interpretations as a best interpretation based on a likelihood of intended meaning; identifying relevant results from said database based on said best interpretation; expanding said best interpretation to obtain related word meanings for said best interpretation to produce an expanded best interpretation of said query; comparing said expanded best interpretation of said query to an index associated with said database; selectively processing remaining interpretations of said set of interpretations by: re-disambiguating said query by excluding results associated with said best interpretation; selecting as a next best interpretation a best interpretation from said remaining interpretations; identifying relevant results from said database related to said next best interpretation; and identifying a term associated with said next best interpretation which distinguishes said next best interpretation from said best interpretation; obtaining results from said database based on said expanded best interpretation of said query; generating a question to said user based on said term to test whether said next best interpretation was the interpretation meant by said user; obtaining from said user a response to said question to identify an intended interpretation; and further disambiguating said query based on said user response.