About Introduction Design Goals Tutorials Downloads

Design Goals

(by Gary Dubuque)

All the control and data used by the chat engine must be accessible by the text editor. It must be able to edit AIML from other sources like the Linux platforms. Wherever possible, output should be also in XML format, but flat text files are ok due to the limited environment of the Pocket PC. I mostly care about running on my Compaq iPaq, but the core AIML engine should be simple C code for portability. It has to respond in a respectable timeframe, delays over ten seconds will be tolerated only in rare circumstances. It has to be able to learn new AIML and output the same when the botmaster extends the database on-the-fly.

Sets and Gets need to organize their values. A calculator is required to work on those values. The values should be combined in a way to describe objects or situations using things like inheritance. Information should be driven towards simple kernel sentences so more sophisticated models of understanding can be explored later. A framework for building stories or knowledge domains instead of the simple list of named pairs must be established to facilitate playing logic games and simulating ethic problems that take conversation past the party talk stage. A good conversationalist must be a good listener. To do this the chatbot needs to have a way of organizing the facts it has "heard".

Since AIML is orientated to backwards chaining (bottom up), the script language should complement that with some old fashion forward chaining procedural processing. Parts of the conversation should be taken over when a predefined function is required like extracting the correct details for new AIML categories. The essence of this should be displaying text prompts and soliciting text replies. Even if it is an interruption, the scripts should be able to take control of the text editor to make script or AIML. It should be able to return the text editor to the state it was in before the interruption – to continue the chat.


About Introduction Design Goals Tutorials Downloads