1. A computer-implemented method for reusing information, comprising: receiving a query for a solution to a problem; extracting details from the query; performing a search on a set of data stored in at least one computer storage device using the details; generating a set of results based on the search; classifying the set of results into a set of categories; assessing a quality of each of the set of results based on a usefulness of the set of results, the usefulness being determined using language derived from a problem statement of the query; and ranking the set of results based on the quality as assessed.