|
While using the AliCE program written by Jacco Bikker which was developed (I think) from the AliceC version of the AIML engine, I became frustrated with its bad habit of locking up my Pocket PC. Furthermore I didn't like the way it wrote the conversation over the top of the input buttons. So first I rewrote it take input from a textbox in a dialog and display the conversation scrolling down a multi-line textbox. I was able to at least begin to hold a discussion with the machine.
I soon grew impatient to add to the list of responses. But AliCE had no editor. In fact, it did not even have a way of using AIML which is what I supposed it was based on. So I added the learn function and became immersed in the world of AIML. I discovered there are several versions with the latest standard being 1.01. So I set about upgrading the database in AliCE to become compliant with the last published language documentation.
In the course of this research, I had the opportunity to load various AIML sets that were available from the www.alicebot.org website. I had to get an emacs editor to read them because the Windows notepad would not correctly interpret the linefeeds. Of course, I got ALICE Program-D to try the AIML out on my desktop. I wanted to be able to edit the categories right at the Pocket PC. So then I decided that I needed an ASCII text editor that could look at the AIML when I was using it "out in the wild". Thus the notepad paradigm was adopted.
I had to fix the AIML engine to run the test suite I found on the alicebot website. I found that some of my test cases weren't correct. Finally I tracked it down to the spell checker that was replacing my words with ones that best matching in its dictionary. The spell checking had to go. Soon I was compliant down to only one main exception. I didn't have a Javascript parser in my program. I did have a text editor which also served as the I/O for my chatbot. I had replaced the targeting so I could see the results of the matching processes. As I considered adding more exits to the standard <system> hook, I made my big plunge. I would add my own script language in a pared-down version in place of the Javascript. Because it is non-standard, I just called it the <script> tag. (After all, I'm betting that is how the Javascript tag was invented in the first place – since the system tag probably already existed.)
I have an old script language I created about twenty years ago. It was designed to do interviews. Originally I was using it to gather information for a free dating service. I have taken out most of the fancy processing for interviews and added some options for manipulating the text editor and the AIML engine. While it is still experimental, I believe it can be used to dynamically create new AIML categories during the chat. I can get away with this because the editor is a stand-alone application with only the botmaster shaping the conversation. Perhaps this tool can be used to build that friend of your very own, like training a pet.
|