[alicebot-developer] AIML .Net
Nicholas H.Tollervey
alicebot-developer@list.alicebot.org
Sat, 12 Mar 2005 15:58:46 +0000
Hi,
Thanks for the positive reply!
With regard to a .NET .exe file for non-programmers: it should be
relatively easy to implement and I hope to have such a thing available
in the coming weeks (assuming life doesn't get in the way).
However, I have in mind something a bit more advanced than a simple
Windows.Forms application. I've recently been writing an application for
work using some of Microsoft's (freely available) smart-client
architecture (smart client is Microsoft's term for fat/rich client
software). I think it would be interesting to write an AIML smart client.
What is a smart client? Well, to precis Microsoft
(http://msdn.microsoft.com/smartclient/), a smart client is basically a
"standard" desktop application with intelligent networking capabilities
built in. You're already using one (by reading this email)! However,
"smart client" is usually used in the context non-traditional network
traffic (traditional being email, ftp, www etc) and where the
application intelligently uses the networking capabilities to help
itself work (such as downloading updates, sharing content, consuming
web-services and so on). You'll soon get the idea if you read the
Microsoft blurb.
So whats this got to do with AIML and Alice? Well... I can imagine all
sorts of interesting possibilities:
* Getting hold of AIML technology: The initial "smart client" download
only needs to be small enough to set itself up and process AIML. Smart
clients (on windows) use "click once" for installation - i.e. a single
click on a link on a web-site starts the install process (see
http://msdn.microsoft.com/msdnmag/issues/04/05/clickonce/default.aspx
and this rather cool video:
http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20040108ClickOnceJC/manifest.xml)
and also include technology to update themselves (all covered in the
above two links).
* Once installed the smart-client should be able to detect the locale
and download a set of aiml files in the appropriate language to a local
cache. Furthermore, the user should be able to select which aiml files
(in addition to some pre-set core) to use depending on what they want
their bot to talk about.
* Should the smart client include some sort of editor, then I can't see
any reason why users shouldn't be allowed to submit to the online AIML
caches. Some sort of wiki like collaboration system for AIML could
ensure most of the rubbish doesn't get through (or is at least
appropriately tagged and classified).
* On that note, should AIML content evolve in a wiki-like fashion the
smart client should be able to intelligently grab updates in the
background at certain pre-specified times (in a similar way to how my
Debian box "apt-get updates" itself at pre-set intervals) or consume
(and cache) AIML in realtime by using web-services. Furthermore, thin
clients (such as web-applications) might leverage this technology
through an AIML interpreter linked to online AIML content delivered as a
web-service (in fact any net-aware client should be able to consume
web-services). When the smart-client detects itself as being offline -
it merely reverts to its local cache of aiml files.
So thats my off the wall idea... I suppose a summary of it would be that
whereas current ALICE implementations are self contained instances of a
static AIML set, there is a multi-platform and "free" (in both senses of
the word) technology emerging to enable a networked ALICE - something
analogous to a hive mind or perhaps akin to grid computing. I think
there are all sorts of interesting problems to be overcome and potential
benefits to be gained.
As Windows.Forms are implemented in the next version of Mono (1.1.4)
such smart clients should be multi-platform and completely "free" in
both senses of the word. Furthermore, as the binding glue for networked
ALICE are web-services and AIML, and both are language neutral, then
there is no reason why Java, Python, PHP et al implementations of the
graphmaster shouldn't take advantage of them. Using the hackneyed term
"Internet as the platform" would be entirely accurate in this instance.
Problems with this idea include: an initial reliance on non-free
software, an immense task of organising and standardising a protocol
(built upon web-services and AIML), standardising client-side behaviour
guidelines and actually writing, implementing and testing the thing. I'm
sure there are other problems that I haven't seen but then that's why
I'm elaborating here.
Anyway, just a thought...
Regards,
Nicholas
Dr. Rich Wallace wrote:
>Wow, this is awesome! Really, developments like this are what make
>running the AIF web site and mailing lists etc. worth it. Your efforts
>are appreciated greatly by me, and I am sure, by all members of the AIML
>community. Thank you!
>
>I will get a link to "Program#" up in the Downloads section and a news
>item posted at the next opportunity.
>
>One question: how about a .exe download for non-programmers?
>
>Also, I hope you can make it to the ALICE 10th anniversary symposium on
>November 25. See http://www.alicebot.org/bbbbbbb.html
>
>Rich
>
>
>
>>Hi,
>>
>>About 18 months ago when I was learning C# and the .NET platform I wrote
>> a simple implementation of the AIML specification. Well, after some
>>nudging, I've commented the code and tidied it up a bit. A lot still
>>needs to be done (especially at making it work more efficiently).
>>However, it works and I feel it has potential. It is released under the
>>GPL and can be found at:
>>
>>http://www.ntoll.org/projects/aiml/
>>
>>It was developed using the 1.1 version of .NET but I see no reason why
>>1.0 shouldn't work. I'm also pleased to say that it works with Mono
>>(tested with v1.0.5). I've had quite a bit of fun integrating it into
>>Windows.Forms applications, Windows services and Web services. I've also
>> implemented a couple of "custom tags" (not included) that will do silly
>> things like search Wikipedia and translate using Babelfish.
>>
>>I suppose it should have a "Program" designation too. As the rules for
>>deciding such a designation are even more complex than those for the
>>Mornington Crescent game
>>(http://www.bbc.co.uk/bbc7/comedy/progpages/clue.shtml) I'll just
>>suggest "Program#" as that seems most obvious.
>>
>>I've also written a ToDo file that explains what I feel needs to be done
>> and improved. As always, comments, suggestions and especially
>>improvments are most welcome!
>>
>>Regards,
>>
>>Nicholas
>>
>>_______________________________________________
>>alicebot-developer mailing list
>>alicebot-developer@list.alicebot.org
>>http://list.alicebot.org/mailman/listinfo/alicebot-developer
>>
>>
>
>
>
>