I used lua to create a simple AI. This AI can learn words and store them in a dictionary. It can link one word with another, having some resemblance or relationship. Also I implemented a "emotional link" between them; one word can be either in a GOOD or BAD relationship with another. Like the word "rat" will have a BAD relationship with "cat". It is based on meaning of words, rather than acting like a mere processor of vocabulary crawler!
This AI can communicate with me.. asks me questions that it generates from meaningful concepts. Ofcourse, it is very basic right now and makes errors. But it will grow.
The bottomline is that you must implement "from the roots". Perception and recognition are built over these roots. Hope you got on idea what I am attempting to build.
One thing most required right now is adding a solid grammer engine to it. If I were not a lazy programmer, I would have done it already. :D