Back in IRC, we had a java bot that had a very simple AI that could respond to questions. For example, I would say “sam is great” or “Londoners are awesome” and the bot would store those word ‘relationships’ in its database. Once these relationships have been established, the bot would try to create humor by randomly responding to questions in-channel, e.g. if someone said “Where is sam?” the bot might reply “I don’t know, but sam is great!”, or someone would ask “Why London?” and the bot would reply “because Londoners are awesome”.
In addition, as the bot has administrator privileges, it will on occasion change the topic in response to a statement/question containing a known keyword.
Finally, you could show statistics about word relationships the bot knows about with e.g. “count sam” and the bot would reply with all factoids it knows about identified by “sam”.
So far I’ve implemented a Discord bot that connects, has a basic command set, etc., but I’m struggling with implementing the weighted-randomness algorithm that decides whether or not the bot should send a random message to the channel.
I obviously need a database for this bot feature. I think I’d go for a table with columns for an array of words, timestamps, and an identifier for the user which caused the relationship to be added to the database.
Important note: this has all and will continue to been done in Visual Basic.NET.