1. A computer-readable storage 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 a concept 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; associate a first term from the document with a first concept from the plurality of concepts; associate a second term from the document with a second concept from the plurality of concepts; prohibit a link between the first term and the second term when a link between the first concept and the second concept is prohibited based on a link between a parent concept of the first concept and a parent concept of the second concept, the link between the first concept and the second concept being a substantially similar type as the link between the parent concept of the first concept and the parent concept of the second concept; and index the portion of the document based on said meaning extracted from the portion of the document.