Multiple meanings of a word are not a problem. My AI doesnt try or attempt to understand a word. It only looks for patterns. Thats all.
It works using key words. Once it has constructed a sentence using key words, it then looks for previous input (ie something which the user has previously input, or it has read on the internet) and then constructs a sentence by putting in words between the key words. In this way, the sentence is constructed without the AI actually understand what it has written.
So, for example:
Question: What colour are my eyes
AI's preliminary answer: eyes,,green (my AI already does this)
AI now use word combination patterns to turn the key words into a proper sentence
AI's final answer: [Your] eyes [are] green.
My belief is that the above method will give similar output to what your AI will give, only it will use far less resources and give answers quicker.
The only problem is that if my AI is asked a complicated question such as, "What is the meaning of life." it will struggle. Your AI on the other hand, may well give a decent answer.
Using the above technique, my AI never needs to understand what it is outputting, just that the format/pattern of words which it is using is correct. It knows that it is correct, because that same pattern of words has been used before, by the user or on the internet.
By breaking down the English language and defining each and every word, your AI is definitely more advanced, however, my gut feeling is that my AI shall be able to give similar output to your's, using fewer resources. But only time will tell.
If I feel that my AI needs to break down the English language (in a similar way to yours), then I shall have to add extra code to allow for this. At this point in time though, I don't want to go down that route, due to the sheer amount of code which will be required and the extra memory/hard disk space the program will use.
Note: I'm not saying that your AI is bad in anyway. If I had 2 years to play with, I think I would take the route you have taken, but I want to produce my AI as fast as possible, which is why I want to use different method. For commercial reasons, the faster the program can be produced, the better.
Another point is that my AI already uses multiple algorithms to come up with answers to questions. I think your AI must also have this ability. In otherwords, if it comes up with an answer using your default algorithm, your AI should analyse that answer to see if it makes sense. If not, it can then use a different algorithm and see if a better answer can be found. I'm not sure if your AI incorporates this way of thinking, but it might be something you could look into.
I shall definitely keep an eye on this thread and we can definitely compare answers (ie. of what eachother's program gives, as an answer).