1. A computer system method for matching an utterance of a user to a template comprising the steps of: (a) receiving by a processor the utterance from an input device, wherein the utterance includes at least one word; (b) accessing a set of template hierarchies from a database, wherein the set includes at least one template; (c) comparing by the processor the at least one word of the utterance to the at least one term of a template hierarchy in the set of template hierarchies; (d) determining by the processor whether the at least one word of the utterance matches the at least one term of the template hierarchy; (e) calculating by the processor a score based on the match between the at least one word of the utterance and the at least one term of the template hierarchy; (f) repeating steps (c)-(e) until there are no more words of the utterance for said comparing step; (g) populating the at least one template with at least one data element corresponding to the at least one term of the template hierarchy to obtain a populated template; (h) computing a total score based on the match between all words of the utterance to the populated template; (i) selecting by the processor the at least one template with the highest total score; (j) recording the populated template; and (k) communicating the populated template to the user.