1. A computer-implemented method of providing search results, the method comprising: accessing an ontology providing a plurality of classifications, where each classification comprises a set of terms; accessing a fact table comprising at least two facts, wherein each fact comprises a document and each fact is associated with one or more classification from the plurality of classifications and there is at least one classification that relates at least one fact to multiple terms of the at least one classification; receiving a user query request specifying one or more condition terms from one or more classifications or text words or text phrases; having a set of predetermined report patterns, where each report pattern comprises one or more report classifications representing one or more dimensions of visualization of the reports corresponding to the report pattern, and wherein the set of predetermined report pattern is used to compute and output reports to users; receiving a user query and associating the user query with a report pattern; and computing the requested report by assigning one or more numeric aggregate measures to each combination of a particular report term in the report pattern classifications, wherein at least one aggregate measure is computed after receiving the user query from a set of qualifying facts that are associated with every combination of the particular report terms and also relate to the condition terms or text words or text phrases in the user query request.