Bot Libre has several learning capabilities. Bots have a 'learning' setting that can be enabled for the bot to learn new responses from conversations or imported chat logs.
Bots also have a 'comprehension' setting that can be enabled for the bot to try to find patterns and rules while learning to build template and scripted responses. When comprehension is enabled the bot will program itself in Self using the last script in it set of scripts with new states and rules.
For example the testComprehension() test gives an example of this by teaching the bot to count.
Also the bots environment and knowledgebase are designed for learning. The bot has its own object based database where it stores all objects. Objects can have any relationship to any other object and each relationship stores a 'correctness'. This allows a bot to have multiple relationships and have some take precedence, even for a given context, and also allows for negative relationships (negative correctness) to define a bad or incorrect relationship (you are not a human).
Also the Understanding scripts lets the bot understand simple language and learn from it.