1. A computer implemented method for natural language processing ambiguity resolution, comprising: storing, in computer memory, an ontological library, wherein the ontological library stores an ontological hierarchy of classes and sub-classes, each class or sub-class representing a distinct grammatical function, and wherein the ontological library specifies a set of grammatical rules, wherein the grammatical rules store permissible positional relations between ontological classes and sub-classes; generating, using a computer processor, a dictionary for each class and subclass by compiling word instances belonging to the class or sub-class; receiving, using the processor, a phrase comprising at least one ambiguous word to be processed that is associated in the dictionary with at least one class and at least two sub-classes; annotating, using the processor, the ambiguous word with possible classes and sub-classes to which the ambiguous word belongs based on the generated dictionaries; retrieving, from the ontological library using the processor, grammatical rules associated with possible classes and sub-classes to which the ambiguous word belongs; eliminating, using the processor, one or more possible classes or sub-classes based on the retrieved grammatical rules and possible classes of one or more words in the phrase proximate to the ambiguous word; and determining, using the processor, a class and sub-class for the ambiguous word based on a possible class or sub-class not eliminated.