Pretty busy time since Christmas getting Halo ready for the Chatterbox Challenge. Since I started writing her last year I've made a couple of major design changes:
- Originally I kept hard fact type data in a database format and accessed it by keyword matching, while keeping conversational and smalltalk type stuff in pure AIML format. But I kept finding I wanted to use AIML tags in the database (template side), and keywords for the conversations. A couple of weeks ago I took the decision to merge the two. All data is now stored in a database format, different files for different knowledge domains but all to the same format. One field identifies whether the record matches by keyword or pattern, and another has the relevant keyword stream or pattern. Another field carries any
pattern, and another the template response - with any valid template side AIML.
- I have started being a bit liberal with my AIML and have implemented several bespoke fields, eg prompt for visual data and mood for mood data.
- Having created those tags I then moved some of them out of template field and in to their own fields, it set it, mood, prompt. This results in far cleaner AIML in the template field and easier to maintain data ( a key concern if I'm looking to others to help maintain Halo and other bots), and quicker bulk programming and visual inspection.
- Halo's matching scoring has been through several versions. Currently all patterns/keywords are scored out of nominally 1 and the highest score gets to be played. The current algorithm was developed on the fly and is a bit unpredictable, I may move to an orders of magnitude based on after the Challenge.
- The RSS feed has now been implemented and works well. Ask for Newsfeed Index
Well that's about it for now. Fingers crossed for the Challenge, - there's some pretty good opposition.
***Imported from old blog***