1. A method comprising: receiving a base word selected by a user using a user interface; receiving one or more parts of speech of the base word selected by the user using the user interface; determining a word ontology of the base word in a source language, the word ontology comprising words associated with a part of speech selected by the user if one part of speech is selected by the user, the word ontology comprising words associated with more than one part of speech if more than one part of speech is selected by the user, the word ontology of the base word comprising at least two of a synonym, a homonym, a hypernym and a hyponym of the base word; generating, in the source language using a processor, a first set of words comprising the word ontology and a definition of each word in the word ontology; receiving a subset of the first set of words selected by the user using the user interface; translating the subset of the first set of words selected by the user from the source language into a second set of words in a target language; translating the second set of words selected by the user from the target language into a third set of words in the source language; receiving a subset of the second set of words in the target language selected by the user using the user interface after the user observes the third set of words in the source language; and querying, using the processor, the subset of the second set of words.
15. The method of claim 1 , further comprising rendering in a template the second set of words with the third set of words using the user interface; the template being configured to allow the user to select the subset of the second set of words.