============================== BILLY v2.1 Created by Greg Leedberg, 2000 ============================== This program is FREEWARE and may be distributed freely. ============================== ********************************************* *I. WELCOME TO THE WONDERFUL WORLD OF BILLY!* ********************************************* Yes, welcome to the wonderful world of Billy! Actually, maybe I'm moving too fast. You're probably wondering who this "Billy" character is. Well, let's start from the beginning. Billy is not a real person, even though I constantly refer to Billy as a he, rather than an it. Billy is an artificial intelligence program. In technical terms, he is a natural language processor / generator. You can just call him a conversation simulator. Or, just call him Billy (I do). Billy is a (somewhat) complex AI program that can take input (from you, the user), and actually understand it and generate a (sometimes) intelligent response. Billy can even learn things from talking to you that I never programmed into him. This memory can used to get the most fun out of Billy. Let multiple different people talk to Billy. Teach Billy facts. Teach Billy "facts" about other people. In general, just try and have fun with Billy. It's not too hard. :) :::::::::::::: : DISCLAIMER : :::::::::::::: The BILLY software is an attempt to simulate human intelligence and language. To accomplish this goal, the BILLY software is capable of learning. The software uses many learning models to simulate intelligence, and all of these models involve storing data it has seen used by the humans it interacts with. Much of this stored data will eventually be used by the software to generate intelligent responses. Upon initialization, the BILLY software contains no objectionable material. However, the author, Greg Leedberg, cannot be held responsible for any material stored in the software's files after initialization, or any offensive responses generated by the learned data. ********************** *II. HOW TO RUN BILLY* ********************** To run Billy, execute BILLY.EXE. It is very preferable to run Billy from a hard disk, as the program needs to access the disk quite a bit. However, it should run perferctly fine from a floppy disk as well. *************************** *III. HOW TO TALK TO BILLY* *************************** Once you're in the BILLY program, there are really no rules for conversation (just like in real life). You can say whatever you want and talk about whatever you want. One important note: try and use correct spelling and grammar when talking to Billy!! The computer can only be as smart as you are! When you're done talking, just type BYE. Actually... there is one "rule" when talking to Billy. No possessives! What does that mean? Don't say this: "That is Greg's cat." Or this: "The car's wheel is flat." If you want to say something like that, rephrase it. For instance, say: "That is the cat who belongs to Greg." Or: "The wheel of the car is flat." Same meaning, less confusion (for Billy, at least). Also, when you first try talking to Billy, he will be less intelligent than usual, because all of his "brain" files are empty. Be forgiving at first. As he is exposed to more coversation, he will become smarter. Maybe. In theory. ***************************************************** *IV. HOW TO STOP BILLY FROM MAKING A FOOL OF HIMSELF* ***************************************************** If Billy says something that is very very stupid, you can make him "unlearn" it by typing DON'T SAY THAT, or DO NOT SAY THAT. Beware that his compliance is not always guaranteed, however... ************************************************************* *V. VIEWING TRANSCRIPTS OF CHATS (or, SAVORING THE MEMORIES)* ************************************************************* BILLY automatically keeps a transcript of every conversation he takes part in. If you want to view the complete log for "educational purposes", just open up BILLY.TXT. ********************************************************* *VI. OPTIONS ********************************************************* Billy is slightly customizable, through special "option commands" which you can input during a conversation. All option commands start with a forward slash ("/"), and require some sort of parameter. If you do not give a parameter, help text will be displayed to show you how to use the given option. All commands should be typed in lower case. ::::::::::::::::::: : /pause [amount] : ::::::::::::::::::: If you aren't pleased with Billy's typing rate, you can adjust it by typing /pause, followed by the number to increase or decrease it by. If you wanted to increase it by 100ms, you would type: /pause +100 If you wanted to decreased it by 2ms, you would type: /pause -2 The ideal speed may vary from processor to processor, so play around with this setting (ideally, it should just about the same speed as a human's typing, maybe a little faster). In testing, the ideal rate was found to be 50ms. :::::::::::::::::::: : /color [color #] : :::::::::::::::::::: This command allows you to change the color of Billy's text. The parameter for this command is a number from 1 to 15, which corresponds to a color. For a list of all the possible colors, type /color with no parameter. :::::::::::::::::::::: : /mycolor [color #] : :::::::::::::::::::::: This command allows you to change the color of the user's text. The parameter for this command is a number from 1 to 15, which corresponds to a color. For a list of all the possible colors, type /mycolor with no paramter. **************** *VII. LINK MODE* **************** If you have a friend who has a copy of Billy, you can allow the two Billies to talk to each other using the Link Mode! To use Link Mode, you need two copies of Billy, which must be in separate directories, or on different disks. To link the two Billies together: 1) Run the HOST copy as you would normally (it doesn't really matter which one is the HOST and which is the VISITOR, but only the HOST will have a transcript of the chat). 2) When Billy asks for your name, enter LINK as the name. 3) Billy will ask for the path to the visitor copy. This is the drive and directory where the version you want to link to is located. Example: A:\ or C:\BILLY\ *** Make sure that this is NOT the same directory you are running the host copy from!! *** The rest is easy sailing -- the two Billies will talk about whatever comes to their minds, until one gets bored. Oh yes, Link Mode can be amusing. It also goes to show the extent (ahem) of Billy's intelligence as he carries on a conversation with not just a human, but also another inherently non-intelligent being! And yes, the two Billies can learn from each other based on what is said in the conversation. Have fun. **** NEW TO VERSION 2.1 **** One of the primary new features of Billy 2.1 is the addition of UDLP (Universal Dynamic Link Protocol). UDLP is a new method I developed for linking chat programs together. The main difference from the older link mode is that with UDLP, both programs are actually running at the same time, interacting with each other in real time, dynamically. Also of note about UDLP is that any program that supports UDLP can link with any other program that supports UDLP. So, in the future, Billy generation 14 will still be able to talk to all the earlier generations, including this one. UDLP is powerful enough to provide everything neccessary for two programs to interact with each other in real time, while also being simple enough to not limit the technological growth of artificial intelligence. *********************************** *VIII. INITIALIZING BILLY'S MEMORY* *********************************** For the most part, you will probably never want to do this. Initializing will be neccessary, however if you accidentally delete one of the .BFB files, or if one of these files become corrupt. You may also want to do this if you just want to start from scratch with Billy, as this clears his memory. To initialize Billy's memory, run INIT.EXE from the directory/disk that you run Billy from. ****************************** *IX. QUESTION AND ANSWER TIME* ****************************** Q: Billy crashed while I was talking to him. What do I do? A: E-mail GregL2@ix.netcom.com, and wait for an updated revision. You may also want to try running Billy on another computer. Q: Billy won't start. Why, why, why? A: Make sure all of Billy's "brain" files are in your current directory. This should be: AD.BFB, BR.BFB, IS1.BFB, IS2.BFB, IS3.BFB, NOUNS.BFB, PAUSE.BFB, PEOPLE.BFB, SENT.BFB, SR.BFB, and BILLY.TXT. If they aren't, see section VIII. Q: Can I link version 2.1 with future versions of Billy? A: Yes! Any chat bot that supports UDLP is able to talk to Billy 2.1. This means not only future versions of Billy, but also any other artificial intelligence programs I develop in the future. Q: Can I link version 2.1 with versions 2.0 or 2.0.1? A: Since version 2.1 uses UDLP to link with other software, as opposed to the "hack" that 2.0 used, this version cannot link with those older versions. It will, however, be able to link with all future versions. If you know someone still using version 2.0 or 2.0.1 (*especially* 2.0), tell them to upgrade to 2.1. It's worth it. Q: What if Billy grows really smart and tries to take over the world? A: Then we have a problem on our hands. Q: In reference to section VII, is "Billies" really the plural form of Billy? A: Probably not. Q: Billy just said something intelligent for the first time. What should I do? A: Cherish the moment, because it probably won't happen again. Q: Why is Billy SO STUPID??? A: That's it! No more questions! ******************************************* *X. HOW TO GET THE LATEST VERSION OF BILLY* ******************************************** There's always room for improvement when it comes to Billy. The 2.x generation of Billy will continue to be improved over time, and successive generations will be introduced as well. Each new "generation" will be created from scratch, and will take a different approach to simulating intelligence. Should be exciting. The latest version of Billy (as well as his successors) will ALWAYS be available on the internet at: http://greg.simplenet.com/billy/ ************* *XI. CREDITS* ************* BILLY v2.1 was entirely created by: GREG LEEDBERG!!! (GregL2@ix.netcom.com) *********************** *XII. REVISION HISTORY* *********************** BILLY v1.0 - (~1994) The first generation of Billy recognized only complete sentences that were preprogrammed into it. Any other sentence generated a random response of about 4 preprogrammed responses. Billy v1.0 was so dumb his I.Q. test came back negative... :) BILLY v2.0 - (12/21/1999) The 2.x generation, rather than only looking at complete sentences, breaks the sentences into individual words, and generates a response based on the words it finds. Unlike other keyword-based NLPs, Billy 2.x is able to also learn from it's conversations. It can learn complete sentences, individual words, as well as how to respond to certain phrases, using humans as "models". It also maintains a "knowledge web" of facts it learns from the user, which it can then use to answer questions. BILLY v2.0.1 - (12/26/1999) Fixed a bug which caused Billy to crash with a "Division by zero" runtime error on some processors. Also fixed a glitch that caused Billy to start for the first time with a "blank" name in his list of people he knows. There was also a typo, which has been corrected. BILLY v2.1 - (1/30/2000) **Rewrote the link mode, now uses UDLP (Universal Dynamic Link Protocol). **Billy now remembers who told him facts. **Now knows the day of the week and the part of the day, which can be used in the intro or when leaving. **Intro text now slightly more variable -- if Billy has been told something about you, he'll say that. **No longer gives milliseconds when asked for the time. **In addition to learning nouns, Billy now also learns the sentence in which they were used, and is able to plug other nouns into those sentences in the future. **Occassionally adds a smiley face to sentences. **In addition to recognizing adjectives, Billy can recognize modifiers. **Parsing engine has been partially re-written, it is now slightly more accurate and efficient. **When taught facts, can now reverse words like YOU and YOUR when the fact is repeated by Billy. ("GREG IS YOUR PROGRAMMER", => "GREG IS MY PROGRAMMER") **Can change pronouns, such as changing HE to HIM, when neccessary. **User can now customize colors. **Whole lot of various new responses added, for both old and new contexts. Some awkward ones removed ("Sweet deal!").