1. A method for providing language translation, the method comprising: receiving at a computer device a plurality of words in an input language; determining, via a processor at the computer device, a linguistic structure of the plurality of words in the input language; determining, via the processor, semantics of the plurality of words in the input language; determining, via the processor, the plurality of words in the input language using linguistic descriptions of the input language; translating, via the processor, the plurality of words in the input language to an expression in an output language; identifying, via the processor, at least one word of the plurality of words in the input language that has a syntactic ambiguity or a semantic ambiguity; displaying on a user interface two or more options corresponding to two or more meanings associated with said syntactic ambiguity or said semantic ambiguity; receiving, at the processor, an indication of selection of one or more of the two or more options corresponding to two or more meanings; displaying an indication of the selection of the one or more of the two or more options corresponding to said two or more meanings; searching a subject area of further options, the subject area corresponding to one or more respective subject areas corresponding to the said one or more of the two or more options; and displaying on the user interface one or more further options.