Hi this is what I use to give the chatbot some learning capacities:
It's a WIP
Short time memory:
I used <topic> tag and <set> vars
They are temporary informations that are used only, example to turn on specific subject of conversation
Set the conversation subject to SPEAKABOUTROBOTS
So all the AIML into
Are parsed in priority
<set tag> are used to set, example, the numbers of persons in front of the robot in time T
I use this to store some personal information like "What is my mothers name"
You can play with it with : <think><set name="whatismymothername"><star /></set></think>
like with short memory, BUT with the help from python : chatBot.savePredicates() it populate the local DB config ( from aiml/config folder ). And on the next restart with the help of chatBot.getPredicate() , the data are back
Shared memory between bots
I use a specific python function to send a record to an open Database . It's simple :
I dedicate some patern like :
<pattern>THE * IS *</pattern>
"THE SKY IS BLUE"
I do a python redirection to a webservice : http://www.myai.cloud/shared_memory.php?action=update&question=WHAT IS THE SKY&awnser="THE SKY IS BLUE"
Something I didn't use is : WriteAIML because I have some problems with it. And finaly did'nt need it.
This is embedded ProgramAb function that create an aiml from Data about specific <learn> aiml tag
Sorry I wrote this post very fast and maybe it's not accuracy enough
I add some videos later
Aiml ( french words )
Personnal memory : https://github.com/MyRobotLab/aiml/blob/master/bots/BOTS-FRENCH/Inmoov_…