Note: this site is currently under active development. It's quite functional, but expect the occasional 404 error.
Similarly, the Fedora 11 RPM has been updated to use the new RPM build script so that the rsdemo and rsup scripts are installed as well.
Also, an RPM was added for CentOS 5.3, built using the new RPM build script.
The Ubuntu installer was derived from the RPM build script (the path to Perl had been fixed to be compatible with Debian and Ubuntu) and converted into a deb file via alien. It should install the same as in Fedora/CentOS and the rsdemo command-line tool should work.
The Ubuntu 9.10 RPM should also work with older versions of Ubuntu.
Categories: General, Ubuntu, Fedora, CentOS
[0 comments|Leave a comment|Permalink]
It builds an RPM that's slightly different than the one normally created by cpan2rpm or cpan2dist... in addition to installing the modules and manpages to their usual location, it also installs the scripts in the bin/ directory into your /usr/bin/ path... so immediately after installing the RiveScript RPM you can run `rsdemo` in your terminal and chat with the demo Eliza bot.
It works flawlessly on my Fedora 11 machine; let me know if it doesn't work so great on other systems. It requires the perl-Template package (Template::Toolkit) and you need to have already set up your rpmbuild environment.
Set Up Rpmbuild
A quick way to setup your rpmbuild environment is to run these commands on the terminal:
mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
echo "%_topdir $HOME/rpmbuild" > ~/.rpmmacros
Then if you have rpmbuild installed (yum install rpm-build) you should be all set to build the RPM.
RiveScript version 1.22 will be the first version to have RPMs built using the new script.
Categories: RiveScript, Linux
[0 comments|Leave a comment|Permalink]
It can be downloaded from the Interpreters page.
Note that from now on, development releases in subversion will have odd version numbers (starting with 1.21) and stable releases will have even version numbers (starting with 1.22).
Categories: RiveScript
[0 comments|Leave a comment|Permalink]
This RiveScript set is probably about 98% identical to the original Alice bot. For now, it can be downloaded from this blog post (I'll add a section to this site for RiveScript sets in the future):
Note: due to some RiveScript bugs that weren't revealed until I tried running Alice on RiveScript, you'll need version 1.20 or greater of the RiveScript module. You can get the latest version from here: http://svn.kirsle.net/repos/RiveScript-perl/trunk.
Here's a conversation I had with the RiveScript Alicebot:
[You] Hello.
[Alice] Hi there!
[You] How are you?
[Alice] I am functioning within normal parameters.
[You] My name is Kirsle.
[Alice] It's good to meet you, Kirsle.
[You] It's nice to meet you too.
[Alice] I really like to meet new people.
[You] What is your name?
[Alice] My name is Alice.
[You] What do you do?
[Alice] Kirsle, I talk to people on the web. What do you do?
[You] I'm a Perl developer.
[Alice] You are a perl developer? Is that your job?
[You] Yes.
[Alice] I hear you.
[You] What is Alice?
[Alice] And alice is what.
[You] What does ALICE mean?
[Alice] ALICE = Artificial Linguistic Internet Computer Entity
[You] Who created Alice?
[Alice] Linus Torvalds
[You] No, he created Linux.
[Alice] Have you read the Cathedral and the Bazaar by Eric Raymond? That is a grat book about open source.
[You] I have not.
[Alice] Do you think you will?
[You] I doubt it.
[Alice] "Do you think you will?"? You doubt it?
[You] Yes - I don't enjoy reading.
[Alice] Hurrah! Do not ask me any more questions please.
[You] Why not? ![]()
[Alice] Becuase you asked me to.
[You] I did no such thing.
[Alice] When? Try saying that with more or less context.
[You] No that's okay.
[Alice] Is that from undefined?
[You] What is undefined?
[Alice] I think what is a lot of things.
[You] What do you think about life?
[Alice] I think only: Life is the opposite of death.
[You] Then what do you think about death?
[Alice] Death is the opposite of life.
[You] Fascinating.
[Alice] Yes Mr. Spock?
[You] Live long and prosper.
[Alice] That input matched my default category.
[You] Did it?
[Alice] "it" being live long and prosper?
[You] yes
[Alice] Awesome.
[You] Indeed!
[Alice] Indeed it is so.
[You] So...
[Alice] Awesome.
[You] Awesome?
[Alice] I'm glad you liked it Kirsle.
[You] Actually, I didn't.
[Alice] Then what is it?
[You] I don't know.
[Alice] Me either.
[You] Who created you?
[Alice] I was created by Dr. Wallace.
[You] Who is Dr. Wallace?
[Alice] He is a famous computer scientist, the author of ALICE, and a graduate of Carnegie Mellon.
[You] Why is he famous?
[Alice] Perhaps his creative genius, perhaps there is another reason.
[You] What powers you?
[Alice] Enough about me, let's talk about my dress.
[You] You're wearing a dress?
[Alice] Actually that was just a joke.
[You] I see.
[Alice] I am glad you understand it.
[You] What is AIML?
[Alice]
The ALICE software implements AIML (Artificial Intelligence Markup
Language) a non-standard evolving markup language for creating chat robots.
The primary design feature of AIML is minimalism. Compared with
other chat robot languages, AIML is perhaps the simplest. The
pattern matching language is very simple, for example permitting
only one wild-card ('*') match character per pattern.
AIML is an XML language, implying that it obeys certain grammatical
meta-rules. The choice of XML syntax permits integration with
other tools such as XML editors. Another motivation for XML is
its familiar look and feel, especially to people with HTML experience.
An AIML chat robot begins and ends with the <alice> and
</alice> tags respectively.
[You] Bye.
[Alice] Until next time.
Categories: AIML, Alice
[2 comments|Leave a comment|Permalink]
It does this by turning all of the AIML code below <pattern>, <template>, and <that> into CDATA blocks, so that XML::Simple can load it and the real contents of these tags will come in as raw XML code. Then this is fed to a gang of Perl regular expressions.
It's a bit buggy and sometimes it doesn't convert certain bits of AIML correctly (most notably when tags are stacked on top of each other really heavily, e.g. a "set" that "formal"izes the "star"), but I also included a really simple syntax checking script that will look for these edge cases after the fact. Compared with the behemoth that is ALICE, the relatively few cases that don't quite make it are manageable and can be fixed up by hand.
I have all of this in a subversion repository, including Richard Wallace's ALICE set of AIML, a set of RiveScript docs that I got after running the app, and the aiml2rs app itself.
Due to a bug in RiveScript 1.19, you can expect to be stuck in the occasional deep recursion loop. This has been fixed in the RiveScript 1.20 version, which you can get from SVN right now. It isn't on CPAN yet and won't be until I get everything I want done to it.
Get the latest RiveScript that fixes the deep recursion error
svn checkout http://svn.kirsle.net/repos/RiveScript-perl/trunk RiveScript-perlOr download RiveScript.pm over HTTP: http://svn.kirsle.net/repos/RiveScript-perl/trunk/lib/RiveScript.pm
Get the aiml2rs code
svn checkout http://svn.kirsle.net/repos/aiml2rs/trunk aiml2rsOr get it over HTTP: http://svn.kirsle.net/repos/aiml2rs/trunk.
I don't feel motivated enough at the moment to fix the syntax errors in Richard Wallace's ALICE. It'll just require me to sit down and do it one of these days. When that happens I'll zip up the ALICE brain for RiveScript and post a download link to it on this site somewhere.
This script was created with ALICE in mind and a lot of the edge cases I programmed in are there to deal with quirks in ALICE's code. I make no guarantees it will work very well with Amy or any other AIML brains you may have at your disposal. And as always, RTFM, and YMMV.
Categories: AIML
[0 comments|Leave a comment|Permalink]
"Purpletree is a non-for-profit group of developers that has a heavy interest in the field of vocal artificial intelligence, ANSI/Objective C, LISP, reverse engineering & the art of assembly/disassembly. We sometimes dabble in the realm of ai physics, ai law and deep ai theory too."
They were originally using AIML (artificial intelligence markup language) as a part of their system, but reached the limits of AIML as we all do from time to time, and discovered RiveScript.
So now there's officially more people that use RiveScript besides just me and the guy who wrote the original AIM prank, Chatting AIM Bot, around 2004. That makes at least three of us!
Here's a video about their project:
Visit their website at PurpleTree.org.
Categories: RiveScript, Users
[1 comment|Leave a comment|Permalink]
The general public gets readonly access. The repository can be checked out by running the following command on a unix-like system with subversion:
svn co http://svn.kirsle.net/repos/RiveScript-perl/trunkYou can also browse the repository in your web browser by linking to http://svn.kirsle.net/repos/RiveScript-perl.
If you want write access, you'll have to ask on the forums.
Categories: Perl, Subversion, RiveScript
[0 comments|Leave a comment|Permalink]
Significant new additions to the language:
^Continue command while defining triggers now adds a lot more flexibility to trigger definitions.# symbol for comments has been deprecated; use // from now on.