1. A method for assisting a user to develop a query in a natural language, comprising: storing logs comprising information derived from prior user search sessions in which user queries were input to a search engine for retrieving responsive instances from a knowledge base; storing a collection of query suggestions, each of the query suggestions formulated to retrieve at least one responsive instance in the knowledge base, each query suggestion being constructed from an index of the knowledge base and comprising a linguistically coherent expression which includes one or a group of syntactically related words, the query suggestion having a surface form which is presented to a user and an underlying form, and wherein at least one instance of each query suggestion is present in the knowledge base; ranking the query suggestions in the collection, based at least in part on the stored logs and the frequency of instances of the query suggestion in the knowledge base; receiving a user's query in a natural language; and while the user's query is being entered, with a computer processor, generating a subset of the ranked collection of query suggestions and presenting at least one of the subset to the user as a candidate for a user query, the subset being based on that portion of the user's query already entered, the presentation of query suggestions in the subset of query suggestions being based on their respective rankings in the collection, whereby at least some of the presented query suggestions are alternate queries rather than extensions of the user's query.
11. The method of claim 1 , wherein the surface forms of at least some of the query suggestions are derived from prior user queries stored in the logs.