1. A computer implemented method for natural language processing ambiguity resolution, comprising: storing, in computer memory, an ontology specifying a set of grammatical rules, wherein the rules are associated with a word, with a sub-class of which the word belongs, and rules are associated with a greater class inclusive of the sub-class; receiving, using a computer processor, a phrase having a natural language processing ambiguity and comprising at least one current word to be processed; annotating, using the computer processor, each word from the phrase with an ontological class and sub-class to which the current word belongs according to the ontology, the subclass being associated with the class, the class further including at least one other sub-class, the class and sub-classes each having an associated one of the grammatical rules; retrieving, using the processor, the grammatical rules associated with the ontological classes and sub-classes to which the current word belongs; eliminating, using the processor, one or more ontological classes or sub-classes based on the grammatical rules associated with the respective classes and sub-classes; determining, using the processor, a surviving ontological class and sub-class to be an accurate ontological class and sub-class for each word to resolve the natural language processing ambiguity; storing, using the processor, the surviving ontological class and sub-class into an ontological library; receiving, using the computer processor, a request to generate a dictionary for a selected ontological classification or sub-classification; retrieving, using the computer processor, all word instances belonging to the selected ontological classification or sub-classification; and compiling the retrieved word instances into a list to generate the requested dictionary for the selected ontological classification or sub-classification.