So I was reading the Spring 2003 Natural Language and the Computer Representation of Knowledge from the good folks at MIT and an idea struck me... one that I now recall already stuck Roland. Use Genetic Programming to evolve a Natural Language Processor. Roland did a first run of this here. My idea is to use this technique for VladimirBot. Up until this point I've been trying to create an Earley Parser grammar so that Vladimir could understand all things relating to scheduling (the idea being for him to become my own personal scheduling agent). This isn't very hard to do, but not very interesting.
So, the new idea. I will create a list of things myself or others might say to Vladimir. I will also create the appropriate semantic representation I want for each of the sentences. Then I hand this off to a GP to create the grammar and translator. Perhaps, however, a simple grammar is not enough. In that case I'd get my GP to output actual code to be run. Hmm.
The biggest issue is the knowledge representation language, I think. I've been thinking about this a lot lately, which is why I was reading the MIT course. But for this domain I think a fairly simple knowledge representation will work well. The two fundamental things which need to be expresible are the obvious -- querying the existing knowledge and adding new knowledge. The real question is whether the knowledge should encompas rules in addition to facts.