Will the finished bot have any capabilities that some
other current bots do not?
Tricky question. From the start, most of the features can probably also be done in other platforms, though I tried to make it all as easy as possible. I still have a couple of things up my sleeve though (from an AI point of view, that is). I've already got an algorithm mostly done for handling visual input (simple things like letters and vector drawings) + there's this genetic algorithm, coupled with a tool box and the 'asset structure' (aka memory), which has been burning on my retina for far too long (I really want to get it to 'create' things by itself, like software - for which it already has an output: it can generate .net assemblies, though not yet tested). Both features aren't for the coming year, I think.
That said, I have been wondering for a while now if it would be possible to create an answering system like watson with the current version (it has some good, scripted support for 'context') + how much of the search algorithms would need refining, as the data set grows.
It there a provision for it
to learn other than for the botmaster to imput data
from which it can choose or can it gather and report
pertinent data autonomously?
I have tried to provide as many ways possible as I could for feeding it data. Here's a list:
-you can input data manually: either as patterns, in the thesaurus, asset data (aka memory)
-the thesaurus can also be filled fairly quickly by using the clipboard and comma delimited lists.
-patterns, thesaurus (full or part) and asset data can be exported/imported from/to xml files. So you can also generate an xml file from a db file and import this.
-you can add statements (do patterns) that store thesaurus and asset data, but not yet patterns. This is the auto learn feature. You can combine this with the '.net' integration for instance, and have it retrieve some data from somewhere and store it in the bot, so it can use this later on.
In theory, I can do the same for patterns (so make it behave a little like cleverbot). I haven't yet included this for a few reasons. First, to do this, I had to understand the structure of the underlying network part that stores the patterns, very well, which I didn't yet at the time (getting better at it). Secondly, I find it a bit of a 'tricky' way of learning things: I've been trying to find a way by which you can control this process so that the bot doesn't learn 'any' response, but only those that are appropriate, which I haven't figured out yet.
Have you left it in a somewhat modular fashion where
modules could be tested and added if desired without
doing a major rewrite?
I think so, but from my experience, this is usually a hit or miss kind of thing. The core itself (the actual functionality), is completely modular and tested, cause of the web app. The GUI section still needs some refactoring, though the whole class structure is fairly clean (some of the core of the GUI is actually a left over from an other app I once worked on).
Keep going and if you're in need of any Beta testers, don't
hesitate to ask as it would be my pleasure!
Thanks. I definitely will, not to long from now, I hope.