[alicebot-archcomm] request for inclusion
mehri
foreverlinux at yahoo.com
Wed Oct 18 09:29:34 PDT 2006
Here is the web page:
http://www.zeroc.com/ice.html
Really, you can get the same effect using XML RPC or web services and writing all the client sides yourself. ICE is just way faster, true object oriented, provides good callbacks, and you don't need an app server. But that doesn't mean I don't want a standardized open source webservice and XML RPC documents. I'd like to see and implement those just as well to cover all the bases and provide the most options for dev's.
> I assume that a Ruby binding (or Lisp, for that matter) would be just as simple, right?
Actually since ICE uses binary for their network packets (they're after speed) they provide the network api's for the different languages. At this time they support api's for:
C++, Java, php, C#, VB .NET, and python on the client side.
However, they're open source and it's always possible to write their client side libraries into another langauge under the GPL but for those languages it'd be a lot of work.
Here in a few more weeks (if all goes well) I will release the beta version of RebecaAIML ICE enabled along with the IDL I made. We can talk about other interpreter implementations on the server side at that point. programD would have to use the same IDL and implement those methods but it won't be difficult. You can always null out the ones you don't want/need to implement.
I know java fairly well so I can help out with the ICE implementation with programD too.
----- Original Message ----
From: Noel Bush <noel at aitools.org>
To: mehri <foreverlinux at yahoo.com>
Cc: sandro.g at ai-tech.com; drwallace at alicebot.org; daanens at hotmail.com; scheuring at gmail.com; ernest at virtualitas.net; a.teal at hud.ac.uk; Alicebot and AIML Architecture Committee Discussion <alicebot-archcomm at list.alicebot.org>
Sent: Wednesday, October 18, 2006 10:06:23 AM
Subject: Re: request for inclusion
Wow, this is all amazingly cool. It is great to have somebody with real
architecture expertise (unlike me) applying so much attention to this.
I am still trying to digest what all of this makes possible. It is
certainly appealing to reach a stage where swapping out interpreters is
so easy, because it reduces anybody's dependence on a particular
interpreter -- at the same time, the multiple language bindings avoid
the language wars. I assume that a Ruby binding (or Lisp, for that
matter) would be just as simple, right?
I am hoping to finally get to a 4.7 release of Program D soon that
addresses a number of important issues, but if you can point me in the
right direction to understanding what it would take to "use the same ICE
IDL", and if it looks like that will be pretty easy for me to do, I
would gladly incorporate that ASAP.
Noel
mehri wrote:
> Noel wrote:
>
> -------
> I was learning all the time, and really appreciated the dialogue, which was
> for surprisingly long stretches able to maintain a civility and level of
> pertinence to the subject matter that's rare in such an open
> environment. I doubt those days will return, but at the very least I'd
> like to be a part of any new discussions about AIML, at least within the
> context of alicebot.org, which I'll suspend disbelief and regard as that
> "neutral ground" we were always seeking, so long as it's possible for me
> to do so.
> -------
>
> Those days will return. I am not giving up. We have a lot of work to do as a community to unify and strengthen and I'm not planning on burning out any time soon. Work with RebeccaAIML has been happening every night and I'm more determined more than ever to continue.
>
> Currently this is what I have comming down the pipe and what I have sitting in CVS in beta right now and how this involves more than RebeccaAIML. It involves all participating interpreters:
>
> * Network server/client model now completed, the server runs in the background as a Windows service. I use an IDL and ICE (Internet Communications Engine) to accomplish this.
> * I have network client API's now in the following languages and simple console samples written to each of these languages:
> + C++
> + Java
> + C#
> + Python
>
> Yes, this now exists and is in beta. Yes, you can use any of those above languages to write code to RebeccaAIML and this is slated for the next release. Yes, I have samples written right now in each of those languages that works very well and yes it's checked into CVS.
>
>
> I plan on adding the following languages too:
> + php
> + Visual Basic .NET
>
> I also have in beta an admin console program called rs-admin.exe that can be used on the command line to adminster the server. Here's an example:
>
> c:\>rs-admin.exe --addDirectory C:\aiml\annotated_alice
> c:\>rs-admin.exe --createGraph
> c:\>rs-admin.exe --getResponse "what is your name?"
> Rebecca
> c:\>rs-admin.exe --setBotPredicate "name" "Cory"
> c:\>rs-admin.exe --getResponse "what is your name?"
> Cory
>
> I've accomplished all of this in less than 2 months. *gloats :-)* This next release is going to be a bombshell. It's going to include rpm's for Linux, and a Windows installer, along with graphical tools to adminster the server as well as the rs-admin console program.
>
> Once I have the php version done I will also create a web interface to configure and setup the server ontop of the console command line admin tools.
>
> How does programD and other interpreters fit into this? Using the same ICE IDL, if we agree upon it, and we write the server glue code to the IDL (which trust me isn't difficult) you could shut down RebeccaAIML as a service and instead start up programD as the server service.
>
> And then guess what?
>
> All those network language bindings I wrote, programs such as rs-admin.exe that's using them, and any graphical adminster tools will all work without changes to programD. You won't even have to recompile the client programs! Haha! Effectively now, the client side programming language api's, admin tools, etc will be interpreter independent. Want to switch programD back to RebeccaAIML? Just shut down RebeccaAIML in Windows Service and start programD. *Note this will also be available and work under Linux/Unix'es, it'll just be a dameon.
>
> I am aiming to allow programmers to write using any of the above languages they want to and then they can swap out the interperter engine on the back end for anything they want and not have to rewrite/recompile a single line of client side code.
>
> I can provide beta's of RebeccaAIML for windows right now today with these features -- I'm not talking about what I'm going to do I'm talking about what I have done. However, I'm holding off an official beta release to get the installer and more documentation and the Linux port completed. I believe in OCP (Open Closed principle) where I am closing the interfaces before making a release so they won't change much afterwards.
>
> We have to talk about this IDL I happen to have and we need to soldify it so that it's a standard IDL for ICE and can work with multiple interpreters such as programD, QAIML, etc.... We need to talk about writing a client side implementation of a regression test so that interpreters that write to the IDL and create their own server that can use the test cases. Imagine that! You will use the same code for regression testing for both programD and RebeccaAIML. Just shut down one service and start the other. We have to talk about these test cases and agree upon them and that if an interpreter passes them it can be called 1.0.1 complaint.
>
> Lots to discuss....
>
> Now we can do this together on the arch comm or we can do it elsewhere but I'm not stopping anytime soon and I'm not going to exclude anyone else. I also don't want the arch comm to exclude anyone else either.
>
> No past, no politics, no more BS!
>
> Let's just get together and just start writing these tools and begin showing the world the real meaning of AIML tools.
>
> I know I am going to. Are you?
>
>
>
>
>
>
More information about the alicebot-archcomm
mailing list