TODO ==== Essentials (toward a version 1.0) ---------- * provide online help? * Write documentation * Write sample AIML, possibly to be preloaded with new bots Ongoing ---- * Implement error handling and check for common data malformations * Fix obvious bugs * Get installer to ask for admin username & any other pertinent settings * Continue cleaning up [PROGRESSING] * Improvements to database admin; pandora-bots as a model UI * pandora-bots style training interface * include facility to see what inputs triggered a default (or low-IQ) response * obviously AIML export! --- --- USE COOKIES ON CLIENT - NOT SESSIONS - DELETE OLD SESSIONS: [DONE] * will need to expire conversations forcibly after 15-minutes inactivity on the session side, and reissue the cookie/issue new session ID * provide historical stats & dash information [DONE] * configure so easiest settings are on first tab of each section[DONE] * improve the import mechanism to allow background operation, entirely independant [DONE] of javascript once triggered (potentially via iframe/ajax) * handle duplicate pattern error more gracefully [DONE] * could use a log purge feature; old conversations or beyond a certain date [DONE] * have age and birthday special bot predicates, with age auto-calculated [DONE] * Substitution maintenance [maps, DONE] - use whitespace prefixed & postfix'd content, prior to punctuation norm * Finish set functionality [DONE] * bulk import & replace from server folder feature? [DONE] * implement substitutions in normalisation [DONE] * Registration of THAT and TOPIC; which currently require category UPDATEs and for example, during AIML loading, are not working correctly. [DONE] * implemented prototype `tag` feature and with support for: * question = 'yes' * emotion = 'happy' * laughter = 'yes' * recursion is an issue with the default AIML sets - too much sraing - could adopt an alternative /optional mechanism wherein the same category can't be entered twice recursively as a switch turned on by default. [DONE] * failures shouldn't stop logging - ie. catch the exception [DONE] varchar v text for category that, topic & pattern, value, that, topic. pattern that, topic redundant? Roadmap ------- * 1.1 - implement some kind of cache * Remaining AIML v2 features? * date formats * learn, learnf, eval * loop * interval * checks for questions and provides a question flag/predicate to aid writing creative responses to unknown statements * consider adding 'Tags' wherein information that is usually filtered out, such as punctuation, laughter, etc. is picked up and converted to 'tags' which are applied to the sentence, and which are accessible via a custom or predicate relative to each sentence / the whole thing (index=) * tags could be a map too, ie. search string => tag name * potentially things like web addresses and dates could be tagged and prevented from the usual normalisation, and required to match a wildcard/built-in set which would make this side of things a bit neater * auto-correct and spelling checker? Server Configuration -------------------- * check setting of session.gc_maxlifetime and write a note in documentation about this, as well as JxBot session handling + integration with other 3rd-party systems, eg. Wordpress Normalisation Sequence ---------------------- - split sentences - (AIML 1 has this below substitutions but it shouldn't matter too much; can review later) - apply `tags` to sentences - run spelling corrections? - run substitutions (abbreviations, contractions, etc.) - strip punctuation & accents (if required) & split into words & uppercase There may be performance issues with the AIML 1 proposed normalisation sequence. It's essentially got to be run rule by rule. To be reviewed later. Spelling might be better processed in a different way.