1. A computer-readable medium storing code representing instructions that when executed by a computer cause the computer to: receive as an input at least a portion of a document; extract a meaning contained in the portion of the document based on a comparison of the portion to a plurality of concepts included in a computer implemented formal ontology and arranged in a hierarchy, said hierarchy having a primary concept defined based on a set of criteria, each concept from the plurality of concepts hierarchically linked to and below the primary concept being defined based on all criteria from the set of criteria and based on at least one additional criterion different than each criterion from the set of criteria; and index the portion of the document based on said meaning extracted from the portion of the document.