What is the point in hard coding common knowledge when it can be queried from a Wiki, where is it constantly updated/edited? Or do you have a different meaning of “common knowledge” than what I am thinking of (which is, as a just described, basically Wikipedia). It seems an accurate and precise NLP system is, at its core, what any really good info bot needs.
I think I have proven over about a decade of integrating web search engines/services/pages that this is the preferred way to go to answer “factoid questions”. I have employed “cascading search engines”, if one search fails, a fallback search takes place. Different search engines provide different quality of results based on the query. I now direct different queries to the best available services. Most of the advanced chatbot are now starting to adopt this practice.
I agree- the “cascading search engines” idea our Chatbot Laybia now uses came from one of your descriptions of Skynet-AI, and works pretty well for a lot of basic fact info, but can, as you point out, result in some pretty interesting and unexpected responses from our bot when the cascade gets desperate (after Wordnik and Wikipedia definitions come up blank and the bot is forced to retreive a reply by web crawling (“Fuzzy Association” mode).
One practical reason to hard code common knowledge is to score better in chatbot competitions. In the latest competitions, organizers are giving higher scores to “embedded knowledge”. Although I disagree with this, I am not the one who writes the contest rules.
More importantly, I believe that by taking knowledge and formatting/modifying the data I can make it much more “bot friendly”. At minimum, the bot can access the data faster. Also, it may allow me to dynamically download topic data and store it on the user device on an as needed basis.
After 6 months of displaying wiki pages integrated into the conversations, users are now asking the bot to parse the wiki page and integrate the information into the conversation. I have started looking into this, but I have yet to convince myself that I can do this on the fly during the wiki page download. Currently I am more optimistic that I can preprocess wiki data for later use. Taking that step off-line allows me to retain the speed of the bot.
Excellent answer- that clears it up completely for me. Thanks for the detailed reply!