ProgramAB - writeAIML() bug

Hi all !

I need some help and invoke a java king

Afficher l'image d'origine

The command chatBot.writeAIML() from programAB broke UTF8 aiml files. because the new file encode format change to ANSI and must be UTF8

The command chatBot.writeAIMLIF() create a .csv as ANSI format too

Thank you for help if you can change this format it will be so great !

calamity's picture

Hi moz4r those function are

Hi moz4r

those function are in the programAB library, not on the MRL code that wrap that library.

Do you need those method?

writeAIML just rewrite the AIML files.

I had some problem with AIMLIF files,but if I delete all the files in the aimlif folder after I edit a aiml file and all work nicely

moz4r's picture

Hi !! Yes like you I delete

Hi !! Yes like you I delete those files. writeAIML is usefull about Learn Tag if I remember my previous test. personaly I don't use it but a homemade learning storage . maybe others want to use this official tag.

I will disable it into the french base bot. If one day we want use learn tag, is mod of programAB library  possible ?

Mats's picture


I Googled around a bit searching for ProgramAB. Seems like ProgramAB is very little maintained since 2013.

Most of the searches for ProgramAB end up in MyRobotLab. 

Perhaps we should make ProgramAB part of MRL in a way so that it will be possible to improve it.

kwatters's picture

We have a custom build of program ab already.

A long time ago, we took over the code for ProgramAB.  I forked it on github here:

We are currently using the jar file that was built from that version of elastic search.  So we can extend/update it to ensure that it's utf-8 compliant.


moz4r's picture

wahooo a fork, great news ! I

wahooo a fork, great news ! I like great news. don't want to abuse, is it possible to load multiple folders too?

to easy sort things and debug ( main chatbot / gestures / inmoovApps ... )

kwatters's picture

test case help

Hi moz4r,  

  I think I have a fix for it in programab

but i think i could use some help to test it .. what are you using the writeAIML for ?  Do you have new categories that are getting learned that you are saving out?  

Do you have some example AIML / test case that we could work up.  I maintain a JUnit test for ProgramAB to make sure if we fix things like this that they stay fixed.  So,  I'd like to update it with a test case to make sure ProgramAB is utf-8 compliant.  

Reality is, there's a lot of things that I'd like to clean up in program ab, including logging.

Aynway...  if you can help with some test case that shows it broken, I can test to make sure it's fixed and I'll check in a new build of programab into the repo.


moz4r's picture

Hi kevin ! I think this fix

Hi kevin !

I think this fix is the way to do . I try to explain to you what I do :

this is a test aiml

I use aiml learn tag. It worky great if I didnt restart mrl.

I I want the bot save the data learned, I must use chatBot.writeAIMLIF() . So a file null.aiml.csv is created.
The file fomat at this time is ANSI but accents seem to be parsed correctly.

Now at this time because of AIMLIF folder creation , AIML folder is not parsed anymore, it is now AIMLIF folder the reference. And if I mod an original AIML file of course it is not parsed.

So we need to use chatBot.writeAIML(), after chatbot.writeAIMLIF()

This is the problem, now AIML files have lost every UTF8 things like accents.

If it is not clear enough I can give you more informations, like screenshots

A question why an AIMLIF folder + AIML folder ? csv files are parsed more quickly ?