AI Zone Admin Forum Add your forum

NEWS: survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..


Hello I have been browseing around on many diffrent sites and came apon your forum/community. Seems to be active community for the devolpment and research of chatbots, and AI Theory field also. I have been a php and mysql database programmer for about a year now and wanted to take some of my free time and work on the old winalice, which i came across along with the source code also. Jacco the oringal maker of winalice is no longer working on it, he did how ever release a 2011 fixed version which he fixed various bugs, Several buffer overflows, memory leaks and other problems which he released on march 4th, 2011 as open source. I just have a simple objective here, which is to improve apon winalice’s current features, and also add on things that jacco never got the chance to, and to also bring this program back to life as it was a excllent stand alone program. Here is a list below of what Jacco wanted to add on and improve of winalice, this is Jacco’s list below not mine.

AI Beyond the original AIML and Alice:

Add cool utilities:
- Do websearches for images and so on
- Detect computers on the network using TCP/IP monitoring and a neural
  net .
- Use Boyler-Moore to improve the speed of string searches. This could
  significantly boost the overall speed of the application, especially
  on slower systems (like a Nino smile.

Display enhancements:
- WinAlice should look like the computers in SciFi movies. Ideas:
- Put a red box around ‘<star>’ and other variables in the user input.

Some more:
- The ‘dictionary’ could be expanded with information about words,
  like ‘horse’ can be prepended with ‘a’, and ‘work’ is both something
  you do and a ‘thing’. That way, seldom words can be used in
  later conversations. Also, using many text documents becomes
- See if voice recognition is interesting if the software is
  trained really well. The dictionary of the software should be
  seriously reduced so it matches my personal vocabulary better.
  That way, it will make far less mistakes.
- Add support for a camera to Alice. Alice could monitor changes
  in her invironment and respond to them. Willem is doing some
  neural network stuff to support this. Alice could also
  determine the current user that way.
- Scan news sites for headlines and detect changes to various
  other ‘interesting’ pages. Interesting pages are pages that
  are submitted by the user, news pages need some sort of
  description of where Alice can find the headlines. Of course,
  the layout of news pages should be very constant for that.
- Detect incoming e-mail and let the user know who wrote the
  mail. I’m not sure if this is possible at all.
- Link to Internet Explorer for sending e-mail (by Alice herself)
  and opening webpages.

Bugs and need-to-haves:
- Tell me more about your ‘need a good crash’ should have been
  ‘tell me more about your good crash’. The ‘need’ is wrong even
  with the current code, the ‘a’ would be nice if we could ditch it.
- Need lots of stuff for the condition tag, like ‘isquestion’.
  Many sentences ARE different with a question mark than without.
- Special topics can be used at certain dates, like a holiday
  topic, a friday night topic, a weekend topic etc.
- Topics should be accompanied by an AIML file containing responses
  to the most likely answers to the questions and remarks.
- Give the ‘generalizer’ some thought.
- I need a ‘logic’ analyzer, for ‘a=b, b=c, thus a=c’. Relations
  are ‘is’, ‘is not’, ‘is sometimes’, ‘likes’, does’, etc.
- Alice should try to prevent using the same reply twice in a short
  period, if there’s an alternative in the ‘random’ list.
- Add speech. smile
- Find seldom occurences of particular words: Those are often the real
  topic of the conversation. Ask for a definition to get info on it.
3.Make it possible to make arbitrary named variables using AIML.
  Syntax: <var_xyz=“some data”>; print it using </var_xyz>.
  This could ultimately completely replace the current variable stuff.
- Special variables: </var_question> becomes ‘true’ if the sentence
  ended with a question mark. Other useful variables:
  Can’t think of anything else right now.
- Many questions from Alice cause the user to respond with something
  simplistic like ‘yes’ or ‘no’. It might be a good idea to catch these
  user inputs.
- Alice should be nasty once a month, smile and late at night.
1.Scan the AIML for words that are not in the dictionary to prevent
  really odd situations. Export these words to a ‘suspicious.txt’ file.
- Scan 65percent.aiml for rare words and make sure there are replies
  when the user asks ‘what is <rare word>’. That way, responses that
  popped up during the Turing contest can be prevented. Alice already
  knows what a ‘seeker’ is, but there are many more examples of words that
  cause a user to ask what it is, and there are no proper responses for
2.Add the unique categories of Program B to WinAlice. I need a ‘merger’

I have done some miner things to the program all ready here is my changes so far.


1.0.0 3/15/2012
-Started over with a new base made by Jacco smile Thanks.

1.0.1 3/16/2012
-Removed uneeded aiml files Blet.aiml and Blettemplate.aiml.
-Fixed command open command promt, it now opens proberly.
-Fixed command open Calucatler, it now opens proberly.
-Added command open Explorer, Lacie can now open Explorer window.
-Added command open paint, Lacie can now open WIndows paintbye
in a window.

1.0.2 3/17/2012
-Edited the AIML Loading and Sorting Script.
-Edited the Dictinary Loading Script.
-Reorginzed the Botmaster.aiml file for better editting and redibilty.
-Reorginzed the Defaults.aiml file for better editting and redibilty.

1.0.3 3/22/2012
-Added Nature AIML Catigory which will have many subject about Nature and animals that live in it so Lacie can regonize when you are talking about this and respond to you in a more human manner.
-Added currency AIML from Squarbear now you can ask Laice what curreny is used in what country and she will tell you.
-Took out some non working commands in the Commands.aiml file.
-Fixed a small typo in Commands.aiml


I wanted to ask of some from this community, one is what do you think of winalice? What do you think winalice should be able to do? Is it worth working on again? Also is any one has any information on how to intigrate a Text to Speech Engine (TTS) THis would be very helpfull to me as I am use to php and C++ if very diffrent to say the least lol. I was able to write a TTS engine thanks to microsoft website but am unable to implement it in to winalice. Thanks for your time. Also I am using Microsoft Visual Studio 2010 Ultimate for my compilere and editer.



  [ # 1 ]

Where is this latest version of WinAlice available?

The current AIML PHP action seems to be at .

At the moment, the best AIML Windows speech integration seems to be .


  [ # 2 ]

Hi, Ethan, and welcome to! smile

I’ve never used WinAlice, personally, but it sounds like it has some potential. My biggest question about it relates to the AIML files. Are you restricted to just using the files the app comes with? Or can you use your own, instead? ALso, along the same lines, does WinAlice have a built-in editor for altering the responses “on the fly”? Or do you have to edit the AIML in some external program, and then restart?

A while back, I wrote a GUI for a different chatbot engine, called ChatScript, that used Windows’  native speech recognition and TTS, and it turned out pretty well (though I never really “finished” it). The code to use this functionality is fairly straightforward, but I programmed the GUI in, since I’m not at all familiar with C/C++/C# at all. I’ll look through my notes, and see if I wrote down where I found the information about incorporating SR/TTS into my app. It may just help. smile


  [ # 3 ]

Thanks for the welcome,

Current winalice is avaible here sence you seem to know about it “” go to that site and go down to the bottom, link there for file and source code.

I have checked out program-o also thanks for that though, but I want a standalone client to work on.

As for the AIML files, I am able to make and use my own this is correct. There is no built in editer for editing the AIML files on the fly, after you edit them you must restart the program for them to be sorted in the index file for winalice to use. I have examples of the Text to Speech intigration with other chat bots but my issue is also not being familer with C++ a lot, is that i am having trouble founding the output that is used to print the text to her graphics engine, for use. winalice uses a older graphics engine called OPENPTC, which is no longer in devolpment.


  [ # 4 ]

AIMLpad is based on WinAliCE and contains many of Jacco Bikker’s enhancements like emotions and second responses and saved/stacked topics.  It also has voice.  It has a dictionary and a lexicon.  It can “scan” websites and RSS feeds (looks like it uses the same winsocket code). It can announce an event based on a date and time. It can use the AIML graphmaster type of index instead of the sequential search Jacco first used to match the patterns.  It can use sorted or unsorted patterns sequentially to be efficient to the domain of the conversation and can change the active AIML set “on-the-fly”.  It has many more features beyond the original WinAlice.  Including handling punctuation through exits to an extended scripting language so you can deal with questions or even more complex dialog management through the experimental AIML tags called <context> which act like specialized <topic> tags. It can prevent <random> tags from repeating too.

AIMLpad is written in C++ using the Microsoft MFC framework to handle the graphics. It is a stand-alone client available open source at but new development on this stuff has stopped.  Take the code and add the rest of the feature list above if you want.


  [ # 5 ]

This is very interesting I will be taking a look at this source code and see what I can learn, thanks.


  [ # 6 ]

Yes, I will check out as well. Might find some ideas to use in my current project.



  login or register to react