a method for answering at least one query directed by a user to a target comprises : obtaining a set of data from the target ; obtaining at least a first term of a query from the user ; searching within the set of data for at least the first term ; categorizing the query , wherein the categorization is based at least in part on the search within the set of data for at least the first term ; obtaining an initial set of one or more results for the query based at least in part on the first term ; filtering the initial set of one or more results for the query based at least in part on the categorization of the query ; and displaying the filtered initial set of one or more results to the user .