I'm looking to build a simple conversational/text UI for an existing application.<p>Need to support about 20 "commands" (ex: How many visitors did I get last week?).<p>Considered just creating a Domain Specific Language (many libraries for that), but want to support something closer to natural language.<p>What libraries should I look at? I'm primarily a Python guy, but am open to other languages.
Being on Python, you have the great advantage of having access to NLTK :-) <a href="http://www.nltk.org/" rel="nofollow">http://www.nltk.org/</a> - it's pretty intense and offers a lot, but also includes some example bots: <a href="http://www.nltk.org/api/nltk.chat.html" rel="nofollow">http://www.nltk.org/api/nltk.chat.html</a><p>My personal advice, though, is while you can definitely try to support a more 'natural' type of language, you do want to define fixed formats for commands in your documentation/help so as not to confuse users or encourage them to keep trying all sorts of variations to figure out what magic combo makes your bot work.
You might find AIML useful. I don't know much about the state of AIML interpreters in Python, but I'm guessing there is at least one good one.