1. A method for disambiguating natural language meaning, comprising: receiving a natural language input; storing a plurality of input nodes in a semantic network, wherein some of the input nodes have polysemy, stored as a plurality of candidate nodes in the semantic network, and wherein the semantic network includes a stored natural language context, the stored natural language context including a plurality of context nodes; identifying a plurality of links, wherein each of the plurality of links traverses from one of the plurality of candidate nodes to one of the plurality of context nodes; computing a plurality of contextual distances for each of the plurality of candidate nodes, each of the plurality of contextual distances occurring between one from the plurality of candidate nodes and one of the plurality of context nodes; comparing each of the plurality of contextual distances to determine an optimal contextual distance; selecting a subset of candidate nodes from the plurality of candidate nodes, wherein each of the subset of candidate nodes has an associated contextual distance approximating the optimal contextual distance, such that each of the input nodes has at least one candidate node selected from the subset of candidate nodes, the at least one associated candidate node being a best contextual meaning for the corresponding one from the set of input nodes; and outputting the best contextual meaning corresponding to the natural language input.