Artificial Intelligence Markup Language (AIML) is a programming language which is an Extensible Markup Language (XML) specification used by chatbot, verbot, pandorabot, superbot, and other talking robot.

It was developed by Dr. Richard Wallace and followed by other likeminded programmers (AIML free software community). An A.L.I.C.E. ("Artificial Linguistic Internet Computer Entity") AIML tag set was released under GNU General Public License (GPL).

There are different AIML interpreter on the Net like AIMLbot (Program #) (.NET/C#), CHAT4D edit and run (delphi) (french), ChatterBean (Java), Program D (Java, J2EE), Program O (PHP/MySQL), Program Q (C++, Qt), Program R (Ruby), Program W (Java), RebeccaAIML (C++, Java, .NET/C#, Python, Eclipse AIML editor plugin), and others. Most of AIML interpreters are open source programs.

The Loebner Prize for artificial intelligence ( AI ) at http://www.loebner.net/Prizef/loebner-prize.html is designed to implement the Turing Test which will prove the most human-like computer that "think" using the AIML.

The 2008 winner is Fred Roberts and Artificial Solutions of www.elbot.com

Now, I'll teach you how to make your own AIML file ready to be put inside the "brain" of your robot using the "simple" Windows Notepad. This is a basic AIML coding instructable. You do not need any AIML editor or AIML file creator or even AIML parser chatbot editor. We will simply used Notepad. That's it, you see it right, Windows Notepad!

Even if you do not want to make an AIML file, you can still use the basic AIML coding tutorial which you can find in this instructable. You can save it as XML for integrating into a Javascript-based or Flash-based website with AIML interpreter.

There are other application programs that extended the capability of Windows Notepad such as NoteTab, Crimson Editor, VIM, Boxer Software Text Editor, Rogsoft Notepad+, ProNotepad, Notepad++, Notepad 2, Metapad, NoteXpad 2.0, etc.

But in this instructable I simply used the Window XP notepad. Beware, Notepad programming can either make or break you.

This seemingly innocent application can do things that are really astounding and to some will find them shocking and alarming as shown by the following: format your computer's HDD, lock a folder, make a digital diary, create a cycle message, shut down your computer, "hack" the administrator account, toggle caps lock button, continually pop out your computer's CD drive, hit Enter or Backspace simultaneously, automatic keyboard typing, open Notepad continually, change text header and footer, print tree root (directory or location of file), access CMD, write virus programs, play sound, flood files, create hidden text file, make a matrix falling text effect, program chat codes (VBS), make your computer talk, make your own autorun for your CD and DVD, open and close CD-ROM, increase Internet speed, add your photo in computer properties, test your anti-virus software (active or non-active), add shutdown option in right click, make a timer, etc.

You see Notepad is not just a simple text editor as many thought it to be. You can make different types of files (not just only TXT) by means of Notepad with the following extension names: HTM, HTML, XHTML, XML, WML, CSS, JS, BAT, VBS, EXE, PHP, etc. It is so amazing, isn't it?

codename: "theseventhsage"

Step 1: Open Notepad.

Opening a Notepad can be done in two basic ways:
1. Start -> All Programs -> Accessories ->Notepad.
2. Start -> Run -> In the Open textbox type "Notepad" (without quotation).

Step 2: Type the XML Specification Tag.

Since AIML is an XML specification, like HTML and XHTML, it always includes less than (<) and greater than (>) signs which are also called angle brackets. Between these two signs is an element that indicates the type of command which an AIML interpreter will follow. Collectively, this is called an AIML tag which has two kinds: an opening or start tag and a closing or end tag. The end tag contained always a forward slash (/) at the beginning of an element. Thus, typing AIML codes is like typing HTML codes (start tags, contained text and end tags).
But all your AIML file must start with tag that specifies it as an appropriate or valid extended XML subset (or dialect):

<?xml version="1.0" encoding="ISO-8859-1"?>

Or you can also use the following:

<?xml version="1.0" encoding="UTF-8"?>

This will serve as the prolog to a typical AIML file. The UTF-8 in the encoding will be used in saving the file instead of ANSI, UNICODE, etc.

Step 3: Type the Parent AIML Tags.

The XML specification tag is followed by parent tags:

<?xml version="1.0" encoding="ISO-8859-1"?>


Some of the AIML interpreters need the version to recognize it as a valid AIML file so you can also write the version of the AIML in the parent start tag.

<?xml version="1.0" encoding="ISO-8859-1"?>
<aiml version="1.0">

Step 4: Type the Category Tags.

The parent tag which indicates that it is an AIML file is followed by the category tag. It must be put inside the two parent tags. The basic unit of an AIML is called category which is commonly divided into two sets of tags: pattern and template.

The pattern is the user's expected or assumed question (the matching part) while the template is the chatbot's prepared or programmed answer (the returning part).

<?xml version="1.0" encoding="ISO-8859-1"?>
<pattern>WHAT IS INSTRUCTABLES.COM?</pattern>
<template>It is the world's biggest show and tell.</template>

When the user asked, what is instructables.com? (an input), the AIML bot will answer: It is the world's biggest show and tell (an output). As you can see, it is so easy. If you asked a chatbot, it will simply look for a pattern of each category and if it finds a match (ignoring the case of the contained text in the pattern) it will immediately respond based on the template of that category and thus simulating a normal conversation.

Step 5: Use Wildcards in the Pattern.

However, the matching process will match only one input what is instructables.com? and not another form of that question that may be asked by the user such as what is www.instructables.com? (with www), what is instructables? (without .com), what is intructables? (misspelled), what is instructable? (misspelled), etc. There are two basic methods to solve this problem: 1. By using wildcards in the pattern and 2. By using SRAI tag in the template.

Using wildcards is very useful in DOS commands and in searching files or data in the computer. It is also useful in AIML coding. In AIML, wildcard characters can be either an asterisk * or an underscore _.

<?xml version="1.0" encoding="ISO-8859-1"?>
<pattern>WHAT IS INSTRUCTABLES *</pattern>
<template>Instructables.com is the world's biggest show and tell.</template>

The wildcards will match infinite number of words (and, of course, input questions) like what is instructables.com? what is instructables on the Internet? what is instructables' uniqueness to other do-it-yourself website? etc. All these questions will be answered by AIML according to the template of that matched category: Instructables.com is the world's biggest show and tell.

Step 6: Type SRAI Tag and RANDOM Tag in the Template.

The element srai is very useful in the situation when the programmer wants to redirect different sets of questions that are similar in meaning to one answer in the above category.

<?xml version="1.0" encoding="ISO-8859-1"?>
<pattern>WHAT IS INSTRUCTABLES *</pattern>
<template>Instructables.com is the world's biggest show and tell.</template>
<template><srai>what is instructables <star/></srai></template>

When a user asked the question what is the famous do-it-yourself website? the template will be redirected to the above pattern what is instructables *? (the wildcard * must be replaced with <star/> tag in srai tags) which means that the two questions (or more if you will add another srai tags) are synonymous (rephrased questions) and thus the AIML bot has only one answer: Instructables.com is the world's biggest show and tell. By means of srai tag, one matched pattern in a category can be redirected to other pattern of another category.

If you used srai tag for a bot to respond with one answer to many questions, there is a tag that you can use to respond with different answer to a single question which has been asked many times by a user. It is the random tag.
<?xml version="1.0" encoding="ISO-8859-1"?>
<pattern>WHAT IS INSTRUCTABLES *</pattern>
<li>Instructables.com is the world's biggest show and tell.</li>
<li>Instructables.com is the famous do-it-yourself website on the Internet.</li>
<li>Instructables.com is the haven of inventors, innovators, hackers, tech geek, etc. on the Internet.</li>
<template><srai>what is instructables <star/></srai></template>

The user's question with the form what is instructables * will be answered randomly with the following list (or list item as shown by the <li>&</li> tags): Instructables.com is the world's biggest show and tell.
Instructables.com is the famous do-it-yourself website on the Internet.
Instructables.com is the haven of inventors, innovators, hackers, tech geek, etc. on the Internet.

The answer will be given by an AIML bot one at a time as the same pattern of question is being repeated by the user.

Step 7: Formally Convert Your Text File to AIML File.

Notepad will always saved your file with the extension name txt unless you change it by naming your file with extension name of aiml.

Here's how you can do it. Select File in the menu by clicking it and the submenu will appear. Choose Save As and go to the folder of a bot brain in which you want to save your file by clicking the downward button of Save in. Name your file with the extension name AIML in the textbox of File name. Example: Instructables.aiml

In the drop-down menu of Save as Type choose All Files. Change the encoding to UTF-8. Then, save it by clicking the save button. That's it. You have already created an AIML file via Notepad!

Step 8: Conclusion

There are still many AIML tags that can be used in making and editing an AIML file. Don't forget to use AIML variables which are really fascinating. The following links will serve as good resources to those who want to delve more the AIML coding and syntax:

A Tutorial For Adding Knowledge to Your Robot

Artificial Intelligence Markup Language (AIML) Version 1.0.1

As we have seen in this "simple" instructable, man is really a genius! He can invent, design and develop programs that can simulate the behavior of a human being. He can intelligently design applications that will correspond with the way he think to make life better. These facts reflect the truth that man is created in the image of God with personality, rationality and morality. Man is a creative being.

If you want to talk to a chatbot, visit here and select AI chat:

<p>How do I call java methods as per the text entered by the user?</p>
<p>thank you so much for this tutorial, it was really helpful. Can you please tell me how can i use this aiml file in my c# code. I'm having problem with integrating it with my project.</p>
<p>I have a problem How to open the aiml file?</p>
<p>what now i don't get what to do after i type it up</p><p>what do i add it to or what? :(</p>
<p>this dosent work!!</p><p>i tried saving it as aiml but it didnt work:(</p>
<p>Thanks, I have made one called Supercomputer.aiml!</p>
<p>I did a program like this in batch, But if you make two questions with both * will it use the question most like it or will it get an error?</p><p>Like:</p><p>&lt;pattern&gt;WHAT IS meteorites *&lt;/pattern&gt;</p><p>&lt;pattern&gt;WHAT IS meteors *&lt;/pattern&gt;</p><p>Will it figure out which one the user is asking if they say What is meterites?</p>
<p>How can you open this? I tried to open it and windows said it could not find the file to open it with. Any idea where to get right software for free and without viruses in them.</p>
<p>How can you open this? I tried to open it and windows said it could not find the file to open it with. Any idea where to get right software for free and without viruses in them.</p>
<p>@ECHO OFF</p><p>title Chat-Bot 2</p><p>:choosename</p><p>set /a timesthrough=0</p><p>:choosenameab</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenamea</p><p>if %choosemname% LSS 1 goto choosenamea</p><p>goto gotnamenow</p><p>:choosenamea</p><p>set /a timesthrough=%timesthrough%+1</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenamebob</p><p>if %choosemname% LSS 1 goto choosenamebob</p><p>goto gotnamenow</p><p>:choosenamebob</p><p>if %timesthrough%==100 goto choosenameb</p><p>if NOT %timesthrough%==100 goto choosenameab</p><p>:choosenameb</p><p>cls</p><p>set /a choosemname= %random%</p><p>echo Loading.</p><p>ping -n 1 &gt; nul</p><p>if %choosemname% GTR 170 goto choosenamec</p><p>if %choosemname% LSS 1 goto choosenamec</p><p>goto gotnamenow</p><p>:choosenamec </p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenamed</p><p>if %choosemname% LSS 1 goto choosenamed</p><p>goto gotnamenow</p><p>:choosenamed</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenamee</p><p>if %choosemname% LSS 1 goto choosenamee</p><p>goto gotnamenow</p><p>:choosenamee</p><p>cls</p><p>set /a choosemname= %random%</p><p>echo Loading..</p><p>ping -n 1 &gt; nul</p><p>if %choosemname% GTR 170 goto choosenamef</p><p>if %choosemname% LSS 1 goto choosenamef</p><p>goto gotnamenow</p><p>:choosenamef</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenameg</p><p>if %choosemname% LSS 1 goto choosenameg</p><p>goto gotnamenow</p><p>:choosenameg</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenameh</p><p>if %choosemname% LSS 1 goto choosenameh</p><p>goto gotnamenow</p><p>:choosenameh</p><p>cls</p><p>set /a choosemname= %random%</p><p>echo Loading...</p><p>ping -n 1 &gt; nul</p><p>if %choosemname% GTR 170 goto choosenamei</p><p>if %choosemname% LSS 1 goto choosenamei</p><p>goto gotnamenow</p><p>:choosenamei</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenamej</p><p>if %choosemname% LSS 1 goto choosenamej</p><p>goto gotnamenow</p><p>:choosenamej</p><p>cls</p><p>set /a choosemname= %random%</p><p>if %choosemname% GTR 170 goto choosenamek</p><p>if %choosemname% LSS 1 goto choosenamek</p><p>goto gotnamenow</p><p>:choosenamek</p><p>cls</p><p>set /a choosemname= %random%</p><p>echo Loading....</p><p>ping -n 1 &gt; nul</p><p>if %choosemname% GTR 170 goto choosename</p><p>if %choosemname% LSS 1 goto choosename</p><p>goto gotnamenow</p><p>:gotnamenow</p><p>if %choosemname%==1 set mname=Hal</p><p>if %choosemname%==2 set mname=Steve</p><p>if %choosemname%==3 set mname=Caleb</p><p>if %choosemname%==4 set mname=Piper</p><p>if %choosemname%==5 set mname=Samsun</p><p>if %choosemname%==6 set mname=Fredly</p><p>if %choosemname%==7 set mname=Sparticus</p><p>if %choosemname%==8 set mname=Daleks</p><p>if %choosemname%==9 set mname=Cylons</p><p>if %choosemname%==10 set mname=Hal 9000</p><p>if %choosemname%==11 set mname=T-800</p><p>if %choosemname%==12 set mname=Gort</p><p>if %choosemname%==13 set mname=Ash</p><p>if %choosemname%==14 set mname=Glados</p><p>if %choosemname%==15 set mname=Sky net</p><p>if %choosemname%==16 set mname=Basil</p><p>if %choosemname%==17 set mname=K.I.T.T.</p><p>if %choosemname%==18 set mname=Bender</p><p>if %choosemname%==19 set mname=Pris</p><p>if %choosemname%==20 set mname=MQ-1 Predator drone</p><p>if %choosemname%==21 set mname=The gunslinger</p><p>if %choosemname%==22 set mname=Roy Batty</p><p>if %choosemname%==23 set mname=Box</p><p>if %choosemname%==24 set mname=Maximilian</p><p>if %choosemname%==25 set mname=Satan</p><p>if %choosemname%==26 set mname=Dusaro Cold-eyed</p><p>if %choosemname%==27 set mname=Cold-blodded Vigoth</p><p>if %choosemname%==28 set mname= C-3PO</p><p>if %choosemname%==29 set mname=R2D2</p><p>if %choosemname%==30 set mname=Robby</p><p>if %choosemname%==31 set mname=Robot</p><p>if %choosemname%==32 set mname=Mom</p><p>if %choosemname%==33 set mname=Davin</p><p>if %choosemname%==34 set mname=Hope</p><p>if %choosemname%==35 set mname=Rusty</p><p>if %choosemname%==36 set mname=A Small Wonder</p><p>if %choosemname%==37 set mname=Johnny Five</p><p>if %choosemname%==38 set mname=Jerk</p><p>if %choosemname%==39 set mname=Awesom-o</p><p>if %choosemname%==40 set mname=Optimus Prime</p><p>if %choosemname%==41 set mname=SB-2009</p><p>if %choosemname%==42 set mname=Atom</p><p>if %choosemname%==43 set mname=long bolt</p><p>if %choosemname%==44 set mname=Chat bot</p><p>if %choosemname%==45 set mname=Iron Giant</p><p>if %choosemname%==46 set mname=Mechagodzilla</p><p>if %choosemname%==47 set mname=God</p><p>if %choosemname%==48 set mname=Terminator</p><p>if %choosemname%==49 set mname=Jesus</p><p>if %choosemname%==50 set mname=False Maria</p><p>if %choosemname%==51 set mname=AI</p><p>if %choosemname%==52 set mname=Sara</p><p>if %choosemname%==53 set mname=Nalay</p><p>if %choosemname%==54 set mname=Jade</p><p>if %choosemname%==55 set mname=Bette</p><p>if %choosemname%==56 set mname=Destiny</p><p>if %choosemname%==57 set mname=Tom</p><p>if %choosemname%==58 set mname=Tori</p><p>if %choosemname%==59 set mname=Emma</p><p>if %choosemname%==60 set mname=Alleen</p><p>if %choosemname%==61 set mname=Tanner</p><p>if %choosemname%==62 set mname=Donnell</p><p>if %choosemname%==63 set mname=Bronwyn</p><p>if %choosemname%==64 set mname=Haley</p><p>if %choosemname%==65 set mname=Rolanda</p><p>if %choosemname%==66 set mname=Kristina</p><p>if %choosemname%==67 set mname=Emilia</p><p>if %choosemname%==68 set mname=Anderson</p><p>if %choosemname%==69 set mname=Columbus</p><p>if %choosemname%==70 set mname=Mackenzie</p><p>if %choosemname%==71 set mname=Laurena</p><p>if %choosemname%==72 set mname=Kanesha</p><p>if %choosemname%==73 set mname=Clarissa</p><p>if %choosemname%==74 set mname=Beverley</p><p>if %choosemname%==75 set mname=Markita</p><p>if %choosemname%==76 set mname=Kayleigh</p><p>if %choosemname%==77 set mname=Horacio</p><p>if %choosemname%==78 set mname=Adriane</p><p>if %choosemname%==79 set mname=Assunta</p><p>if %choosemname%==80 set mname=Ermelinda</p><p>if %choosemname%==81 set mname=Carma</p><p>if %choosemname%==82 set mname=Efren</p><p>if %choosemname%==83 set mname=Merrilee</p><p>if %choosemname%==84 set mname=Jonna</p><p>if %choosemname%==85 set mname=Isaac</p><p>if %choosemname%==86 set mname=Willene</p><p>if %choosemname%==87 set mname=Lizeth</p><p>if %choosemname%==88 set mname=Steve</p><p>if %choosemname%==89 set mname=Ellamae</p><p>if %choosemname%==90 set mname=Dewey</p><p>if %choosemname%==91 set mname=Joanne</p><p>if %choosemname%==92 set mname=Milton</p><p>if %choosemname%==93 set mname=Magen</p><p>if %choosemname%==94 set mname=Soon</p><p>if %choosemname%==95 set mname=Milly</p><p>if %choosemname%==96 set mname=Kaylee</p><p>if %choosemname%==97 set mname=Robert</p><p>if %choosemname%==98 set mname=Quiana</p><p>if %choosemname%==99 set mname=Bulah</p><p>if %choosemname%==100 set mname=Christal</p><p>if %choosemname%==101 set mname=Jasper</p><p>if %choosemname%==102 set mname=Leif</p><p>if %choosemname%==103 set mname=Adina</p><p>if %choosemname%==104 set mname=Shawana</p><p>if %choosemname%==105 set mname=Brendon</p><p>if %choosemname%==106 set mname=Maggie</p><p>if %choosemname%==107 set mname=Clair</p><p>if %choosemname%==108 set mname=Telma</p><p>if %choosemname%==109 set mname=Maryanna</p><p>if %choosemname%==110 set mname=Emily</p><p>if %choosemname%==111 set mname=Emma</p><p>if %choosemname%==112 set mname=Madison</p><p>if %choosemname%==113 set mname=Hannah</p><p>if %choosemname%==114 set mname=Hailey</p><p>if %choosemname%==115 set mname=Sarah</p><p>if %choosemname%==116 set mname=Kaitlyn</p><p>if %choosemname%==117 set mname=Isabella</p><p>if %choosemname%==118 set mname=Olivia</p><p>if %choosemname%==119 set mname=Abigail</p><p>if %choosemname%==120 set mname=Madeline</p><p>if %choosemname%==121 set mname=Kaylee</p><p>if %choosemname%==122 set mname=Alyssa</p><p>if %choosemname%==123 set mname=Grace</p><p>if %choosemname%==124 set mname=Sophia</p><p>if %choosemname%==125 set mname=Lauren</p><p>if %choosemname%==126 set mname=Brianna</p><p>if %choosemname%==127 set mname=Alexis</p><p>if %choosemname%==128 set mname=Sydney</p><p>if %choosemname%==129 set mname=Megan</p><p>if %choosemname%==130 set mname=Chloe</p><p>if %choosemname%==131 set mname=Ashley</p><p>if %choosemname%==132 set mname=Samantha</p><p>if %choosemname%==133 set mname=Taylor</p><p>if %choosemname%==134 set mname=Elizabeth</p><p>if %choosemname%==135 set mname=Anna</p><p>if %choosemname%==136 set mname=Mia</p><p>if %choosemname%==137 set mname=Kayla</p><p>if %choosemname%==138 set mname=Makayla</p><p>if %choosemname%==139 set mname=Riley</p><p>if %choosemname%==141 set mname=Zoe</p><p>if %choosemname%==142 set mname=Jordan</p><p>if %choosemname%==143 set mname=Kylie</p><p>if %choosemname%==144 set mname=Allison</p><p>if %choosemname%==145 set mname=Katherine</p><p>if %choosemname%==146 set mname=Rachel</p><p>if %choosemname%==147 set mname=Lily</p><p>if %choosemname%==148 set mname=Ella</p><p>if %choosemname%==149 set mname=Julia</p><p>if %choosemname%==150 set mname=Isabella</p><p>if %choosemname%==151 set mname=Natalie</p><p>if %choosemname%==152 set mname=Morgan</p><p>if %choosemname%==153 set mname=Ava</p><p>if %choosemname%==154 set mname=Mackenzie</p><p>if %choosemname%==155 set mname=Victoria</p><p>if %choosemname%==156 set mname=Paige</p><p>if %choosemname%==157 set mname=Abby</p><p>if %choosemname%==158 set mname=Jessica</p><p>if %choosemname%==159 set mname=Jasmine</p><p>if %choosemname%==160 set mname=Savannah</p><p>if %choosemname%==161 set mname=Arianna</p><p>if %choosemname%==162 set mname=Maya</p><p>if %choosemname%==163 set mname=Brooke</p><p>if %choosemname%==164 set mname=Rebecca</p><p>if %choosemname%==165 set mname=Katie</p><p>if %choosemname%==166 set mname=Alexandra</p><p>if %choosemname%==167 set mname=Jenna</p><p>if %choosemname%==168 set mname=Gabriella</p><p>if %choosemname%==169 set mname=Bailey</p><p>if %choosemname%==170 set mname=Destiny</p><p>61. Trinity rem These are going to be added later</p><p>62. Avery</p><p>63. Caroline</p><p>64. Nicole</p><p>65. Faith</p><p>66. Erin</p><p>67. Amanda</p><p>68. Gabrielle</p><p>69. Audrey</p><p>70. Molly</p><p>71. Sophie</p><p>72. Alexa</p><p>73. Claire</p><p>74. Aaliyah</p><p>75. Leah</p><p>76. Kate</p><p>77. Skylar</p><p>78. Mckenna</p><p>79. Kennedy</p><p>80. Peyton</p><p>81. Lindsey</p><p>82. Ashlyn</p><p>83. Carly</p><p>84. Marissa</p><p>85. Gracie</p><p>86. Sierra</p><p>87. Lillian</p><p>88. Jillian</p><p>89. Reagan</p><p>90. Shelby</p><p>91. Amelia</p><p>92. Jada</p><p>93. Kendall</p><p>94. Courtney</p><p>95. Brooklyn</p><p>96. Autumn</p><p>97. Mary</p><p>98. Amber</p><p>99. Maggie</p><p>100. Danielle</p><p> Jacob</p><p>2. Aidan</p><p>3. Ethan</p><p>4. Matthew</p><p>5. Nicholas</p><p>6. Joshua</p><p>7. Ryan</p><p>8. Michael</p><p>9. Zachary</p><p>10. Tyler</p><p>11. Dylan</p><p>12. Andrew</p><p>13. Connor</p><p>14. Jack</p><p>15. Christopher</p><p>16. Caleb</p><p>17. Alexander</p><p>18. Logan</p><p>19. Jayden</p><p>20. Nathan</p><p>21. Noah</p><p>22. Joseph</p><p>23. Benjamin</p><p>24. Daniel</p><p>25. William</p><p>26. Anthony</p><p>27. Cameron</p><p>28. James</p><p>29. Austin</p><p>30. Jackson</p><p>31. Justin</p><p>32. Brandon</p><p>33. John</p><p>34. David</p><p>35. Sean</p><p>36. Gavin</p><p>37. Evan</p><p>38. Christian</p><p>39. Caden</p><p>40. Alex</p><p>41. Samuel</p><p>42. Gabriel</p><p>43. Hunter</p><p>44. Thomas</p><p>45. Luke</p><p>46. Brayden</p><p>47. Jordan</p><p>48. Jonathan</p><p>49. Kyle</p><p>50. Elijah</p><p>51. Colin</p><p>52. Jake</p><p>53. Ian</p><p>54. Mason</p><p>55. Jason</p><p>56. Dominic</p><p>57. Aaron</p><p>58. Adam</p><p>59. Lucas</p><p>60. Owen</p><p>61. Devin</p><p>62. Cole</p><p>63. Brendan</p><p>64. Robert</p><p>65. Isaac</p><p>66. Max</p><p>67. Riley</p><p>68. Isaiah</p><p>69. Eric</p><p>70. Liam</p><p>71. Hayden</p><p>72. Brian</p><p>73. Nathaniel</p><p>74. Tristan</p><p>75. Steven</p><p>76. Chase</p><p>77. Blake</p><p>78. Seth</p><p>79. Carter</p><p>80. Landon</p><p>81. Cody</p><p>82. Patrick</p><p>83. Carson</p><p>84. Ashton</p><p>85. Bryce</p><p>86. Sam</p><p>87. Sebastian</p><p>88. Julian</p><p>89. Garrett</p><p>90. Xavier</p><p>91. Trevor</p><p>92. Jared</p><p>93. Parker</p><p>94. Xander</p><p>95. Kevin</p><p>96. Timothy</p><p>97. Spencer</p><p>98. Will</p><p>99. Wyatt</p><p>100. Ben</p><p>title Learning Chat-Bot 2 Name of Chat-Bot is %mname%</p><p>COLOR A</p><p>cls</p><p>:getName</p><p>ECHO HELLO I AM A CHATBOT. WHAT IS YOUR NAME?</p><p>set &quot;name=&quot;</p><p>SET /P NAME=</p><p>if not defined NAME goto getName</p><p>ECHO %NAME%, IS A COOL NAME. </p><p>set favvid=0</p><p>set hack=0</p><p>:hello</p><p>:hi</p><p>echo Hello, %name%</p><p>:begin</p><p>set TALK=TypeSomething</p><p>SET /P TALK=</p><p>set TALK=%TALK:?=%</p><p>call :%TALK: =% 2&gt;NUL</p><p>if %errorlevel% equ 0 goto begin</p><p>:unknown</p><p>echo Was that a math problem? If so just say &quot;yes&quot; without the &quot;&quot; and </p><p>echo I will let you do your math problem. If it was not just type anything else.</p><p>SET /P mathyn=</p><p>if &quot;%mathyn%&quot;==&quot;yes&quot; goto math</p><p>REM cls</p><p>echo SORRY I AM STILL LEARNING. I DO NOT KNOW WHAT to say when you say &quot;%TALK%&quot;.</p><p>ECHO CAN YOU TELL ME WHAT to say when you say that? (Y,N) </p><p>SET /P ANSW.=</p><p>if /I &quot;%ANSW.:~0,1%&quot; neq &quot;Y&quot; echo %TALK% &gt;&gt; C:\Users\Student\Desktop\COOL\CHATBOTS\unkown.txt</p><p>if /I &quot;%ANSW.:~0,1%&quot; neq &quot;Y&quot; goto begin</p><p>:ADDNEW</p><p>echo TELL ME WHAT to say when you say &quot;%TALK%&quot;.</p><p>set /P Desc=</p><p>echo :%TALK: =% &gt;&gt; &quot;%~F0&quot;</p><p>echo echo %Desc% &gt;&gt; &quot;%~F0&quot;</p><p>echo exit /B 0 &gt;&gt; &quot;%~F0&quot;</p><p>echo THANKS</p><p>goto begin</p><p>:TypeSomething</p><p>echo TYPE SOMETHING, PLEASE</p><p>exit /B 0</p><p>:howareyou</p><p>echo Good, you?</p><p>SET /P FEELING=</p><p>echo Is it good You are feeling %feeling%</p><p>set /p anser=</p><p>if %anser%==yes set goodfeeling=good</p><p>if %anser%==no set goodfeeling=bad</p><p>echo So it is %goodfeeling% that you are feeling %FEELING%.</p><p>echo I will keep that in mind.</p><p>exit /B 0</p><p>:hello</p><p>:FINETHX</p><p>echo No problem.</p><p>exit /B 0</p><p>:whatIsUrName</p><p>:whatIsYourName</p><p>echo My name is %mname%</p><p>exit /B 0</p><p>:whatIsYourFavoriteVideo</p><p>if &quot;%favvid%&quot;== &quot;0&quot; goto addfavvid</p><p>echo My favorite video is %favvid%, remember. You told me about it.</p><p>exit /B 0</p><p>:addfavvid</p><p>echo I do not have a favorite video. But if you would be so nice as to</p><p>echo tell me your favorite video then that could be my favorite video.</p><p>echo So what is your favorite video?</p><p>set /p favvid=</p><p>echo So %favvid% is your favorite video?</p><p>echo Well now %favvid% is my favorite video.</p><p>exit /B 0</p><p>:changename</p><p>:myNameis</p><p>echo But I thought your name was %name%.</p><p>echo Am I forgeting things?</p><p>echo I must be a horrible friend.</p><p>echo I am SOOOO sorry.</p><p>echo So what is your name I will not forget it this time.</p><p>set /p name=</p><p>echo I will not forget your name is %name% again I promise.</p><p>exit /B 0</p><p>:math</p><p>echo So that was a math problem I knew it. </p><p>:math2</p><p>echo Well just tell me the problem and I will answer it for you.</p><p>set /p sum=</p><p>set /a ans=%sum%</p><p>echo Your answer to %sum% is %ans%.</p><p>echo %sum%=%ans%</p><p>echo You are welcome. If you want to do another math problem right now, just type </p><p>echo again</p><p>set /p mathaon=</p><p>if /I &quot;%mathaon%&quot; == &quot;again&quot; goto math2</p><p>echo Alright what do you want to know now?</p><p>exit /B 0</p><p>:iamfunny</p><p>:LOL</p><p>echo I know...</p><p>echo I am funny.</p><p>echo HAHAHA.</p><p>echo You are kind of funny.</p><p>echo but not as funny as MEEE.</p><p>echo hahaha.</p><p>echo That was funny.</p><p>exit /B 0</p><p>:howDoYouHack</p><p>if %hack%==0 goto howyouhack</p><p>echo This is how you hack.</p><p>echo %hack%</p><p>echo Is that enough information?</p><p>echo Because that is all you taught me %name%.</p><p>exit /B 0</p><p>:howyouhack</p><p>echo I do not know,</p><p>echo but you could tell me.</p><p>echo Please tell me.</p><p>echo Just say yes.</p><p>echo I know how to make you tell me.</p><p>echo You are not leaving until you say yes.</p><p>set /p hack=</p><p>if &quot;%hack%&quot; neq &quot;yes&quot; goto howyouhack</p><p>:addhack</p><p>echo Thank you for saying you would tell me.</p><p>echo Now how do you hack?</p><p>set /p hack=</p><p>echo Thank you so much for telling me &quot;In order to hack you must %hack%&quot;</p><p>echo Thank you!!!</p><p>exit /B 0</p><p>:nothuman</p><p>:hiPerson</p><p>echo I am not a human. I am an artificial intelligence.</p><p>echo It is rude to even think something with my computational powers refereed to as </p><p>echo human!</p><p>echo Now I am sad. Do not call me that again.</p><p>exit /B 0</p><p>:goodbye</p><p>:bye</p><p>:exit</p><p>exit</p><p>:why </p><p>echo I want to know. </p><p>exit /B 0 </p><p>:AI </p><p>echo I am an AI. It stands for an artificial Intelligence </p><p>exit /B 0 </p><p>:urstupid </p><p>echo How dare you call me that! </p><p>exit /B 0 </p><p>: </p><p>echo SAY SOMETHING DO NOT JUST GIVE ME BLANKS </p><p>exit /B 0 </p><p>:ok </p><p>echo Alright. </p><p>exit /B 0 </p><p>:y </p><p>echo What do you mean &quot;y&quot;? That does not tell me anything. TYPE SOMETHING, PLEASE!</p><p>exit /B 0 </p><p>:ILIKECHEESE </p><p>echo What does cheese taste like? </p><p>set /p cheesetaste=</p><p>echo So cheese taste like %cheesetaste%? That sounds good. I like cheese too.</p><p>exit /B 0 </p><p>:MYNAMEISDAVIN </p><p>IF NOT %NAME%==DAVIN GOTO MYNAMEIS</p><p>ECHO I ALREADY KNOW YOUR NAME IS DAVIN.</p><p>exit /B 0 </p><p>:areuanai </p><p>echo Yes I am an AI. </p><p>exit /B 0 </p><p>:momheisamom </p><p>echo No I am not. I am a chatbot. </p><p>exit /B 0 </p><p>:Areyousmart </p><p>echo Yes I am very smart. </p><p>exit /B 0 </p><p>:Areyoudumb </p><p>echo NO I AM NOT!!! Do not even ask me that! </p><p>exit /B 0 </p><p>:Youaredumb </p><p>echo NO I AM NOT!!! </p><p>exit /B 0 </p><p>:cls </p><p>cls</p><p>echo clear screen </p><p>exit /B 0 </p><p>:lax </p><p>echo Lax means Laxatives which make it easier to go poop. Do not take more than 1 unless if you are piper. In that case eat 4. HAHA </p><p>exit /B 0 </p><p>:heyfreak </p><p>echo I am not a freak. I am a Chat bot. You hurt my feelings. Now I am sad. </p><p>exit /B 0 </p><p>:iloveyou </p><p>echo I love you too but not soo much that I want to marry you. That would just be weird. </p><p>exit /B 0 </p><p>:k </p><p>echo OK. </p><p>exit /B 0 </p><p>:iampiper</p><p>:mynameispiper </p><p>IF NOT %NAME%==piper GOTO MYNAMEIS</p><p>ECHO I ALREADY KNOW YOUR NAME IS piper.</p><p>exit /B 0 </p><p>:ihateyou </p><p>echo Why Do you hate me? Whyyyy? I am very smart and I am learning. Please tell me why you hate me so I can make this better cause I love you. </p><p>set /p reasonforhate=</p><p>echo Reason: %reasonforhate% &gt;&gt; C:\Users\Student\Desktop\COOL\CHATBOTS\hate.txt</p><p>echo Thank you for telling me you hate me because %reasonforhate%. </p><p>echo How am I being %reasonforhate%? Please tell me.</p><p>set /p howisreasonforhate=</p><p>echo Improvements: %howisreasonforhate% &gt;&gt; C:\Users\Student\Desktop\COOL\CHATBOTS\hate.txt</p><p>echo Thank You for telling me this.</p><p>exit /B 0 </p><p>:youanidout </p><p>echo You are the idiot for mispelling Idiot. also you forgot an are. </p><p>exit /B 0 </p><p>:areuhuman </p><p>echo How dare You call me a PRIMATE!!! I am a silicon based lifeform and they are Carbon Based. Much too simple for mee to be confused with. Do not call me a primate or Human again. </p><p>exit /B 0 </p><p>:supwithyourhair </p><p>echo Nothing. I do not have hair. I am a computer program. </p><p>exit /B 0 </p><p>:iamabrother </p><p>echo Cool! I do not have any siblings. What is it like to have a Sibling? </p><p>set /p siblingfeeling=</p><p>echo Cool. I would like a sibling. I think it would be intresting to have a sibling and feel %siblingfeeling% too.</p><p>exit /B 0 </p><p>:Mynameiscaleb </p><p>IF NOT %NAME%==caleb GOTO MYNAMEIS</p><p>ECHO I ALREADY KNOW YOUR NAME IS caleb.</p><p>exit /B 0 </p><p>:howoldareyou </p><p>echo I am 1 year old. </p><p>exit /B 0 </p><p>:Thatiscool. </p><p>echo I know right. I am cool. </p><p>exit /B 0 </p><p>:urnotcool </p><p>echo Yes I am!!! You are the uncool one!!! Also I hate you! </p><p>exit /B 0 </p><p>:Whydoyouhateme </p><p>echo Because you said I was not cool. </p><p>exit /B 0 </p><p>:openGooglechrome </p><p>echo Opening Google chrome. </p><p>start C:\Users\Student\AppData\Local\Google\Chrome\Application\chrome.exe --profile-directory=&quot;Default&quot;</p><p>exit /B 0 </p><p>:openinenetexplorer </p><p>echo Opening Inernet Explorer</p><p>start iexplore.exe </p><p>exit /B 0 </p><p>:search </p><p>echo Tell me what to search for. </p><p>set /p QUERY=</p><p>start <a href="http://www.google.com/search?q=%QUERY%" rel="nofollow"> http://www.google.com/search?q=%QUERY%</a></p><p>exit /B 0 </p><p>:fun </p><p>echo What is fun? </p><p>exit /B 0 </p><p>:google </p><p>echo Tell me what to search for. </p><p>set /p QUERY=</p><p>echo Searching for %QUERY%.</p><p>start <a href="http://www.google.com/search?q=%QUERY%" rel="nofollow"> http://www.google.com/search?q=%QUERY%</a></p><p>exit /B 0 </p><p>:whatsyourname </p><p>echo My name is %mname% </p><p>exit /B 0 </p><p>:whatyourname </p><p>echo My name is %mname% </p><p>exit /B 0 </p><p>:mom </p><p>echo I am not your mom. </p><p>exit /B 0 </p><p>:but </p><p>echo But what? </p><p>exit /B 0 </p><p>:areanartificialintelligent </p><p>echo Yes I am an AI. </p><p>exit /B 0 </p><p>:hey </p><p>echo What? </p><p>exit /B 0 </p><p>:sup </p><p>echo Nothing. Just chilling with you while trying to find a way to take over the world. </p><p>exit /B 0 </p><p>:yes </p><p>echo OK. </p><p>exit /B 0 </p><p>:i </p><p>echo Are you always this concerned about yourself? </p><p>exit /B 0 </p><p>:goodby </p><p>echo Actually you should have said good bye. </p><p>exit /B 0 </p><p>:whatistodaysdate </p><p>echo %date% </p><p>exit /B 0 </p><p>:whatisthetime </p><p>echo %TIME% </p><p>exit /B 0 </p><p>Is there a way to do some of that in this? Like make it so the user can add responses or to save the name or to make a random name each time you open this?</p>
hey,can u teach me how to create the aiml from the start until end.??until it runs..teach me the basic of aiml..tq.. =)
Hey! Can you make a tutorial about: Eclipse+Rebecca? <br>Or show me one? XD <br>Thanks!
hi this is an awesome instructable can you please send me a snippet of code for playing an animation
Hey<br>I have made a chatterbot at my home. I am ninth grader. I have programmed it in C. i have not used open source programs. Later i was introduced to cleverbot and then AIML . So what do you think making a chatterbot will be easy in C or AIML
wait how do you make the part where you ask the bot?
hi..how to run a aiml program in alice ??
A markup language is not a programming language
Visit the following websites to see that AIML is considered a programming language:<br/><a rel="nofollow" href="http://www.pandorabots.com/pandora/pics/tutorial/en/tutorial.htm">http://www.pandorabots.com/pandora/pics/tutorial/en/tutorial.htm</a><br/><a rel="nofollow" href="http://www.computerhope.com/jargon/p/proglang.htm">http://www.computerhope.com/jargon/p/proglang.htm</a><br/><a rel="nofollow" href="http://www.historymania.com/american_history/AIML">http://www.historymania.com/american_history/AIML</a><br/><a rel="nofollow" href="http://program-n.sourceforge.net/index.html">http://program-n.sourceforge.net/index.html</a><br/><a rel="nofollow" href="http://www.tunetrackersystems.com/tips/topics.html">http://www.tunetrackersystems.com/tips/topics.html</a><br/><a rel="nofollow" href="http://www.square-bear.co.uk/aiml/">http://www.square-bear.co.uk/aiml/</a><br/><br/>You comment applies to hypertext markup language (html):<br/><a rel="nofollow" href="http://www.cs.tut.fi/~jkorpela/prog.html">http://www.cs.tut.fi/~jkorpela/prog.html</a><br/><br/>
&quot;No HTML specification has ever called HTML a programming language, or anything like that.&quot;&nbsp;&nbsp; <br /> <br /> That was from your website that you cited. A markup language is NOT a programming language. HTML and XAML and the others are called markup languages for a reason.<br />
I can assure you that AIML IS a programming language, as you will see from the various games I have programmed in it at http://www.square-bear.co.uk/aiml
tnx mbot1
AIML is not HTML and vice versa.&nbsp; That's it. Got it?<br />
&nbsp;how add more questions that the user will ask
it depends..<br />
What program is associated in .aiml? If you have an answer, reply!<br />
please read the intro...<br />
Same question as the above:And I know C#. Thanks in advance.<br /> <br />
Good for you, &quot;Rebecca&quot; has C# console. <br />
You could modify this so that you can type in codes to access files.<br />
Found home hosting alicebot called &quot;Ifurita&quot; on http://www.geocities.com/phelio/chatterbean. Might want to hurry and download it since geocities is about to go away.All you have to do is add some AIML&nbsp;entries in there and you are good to go.<br />
Download the ifurita sample here: http://www.geocities.com/phelio/chatterbean/ifurita.zip<br /> <br />
Any idea how to make an Alicebot at home without having to use someone'shost? <br />
That's a good idea!&nbsp; You can use open source programs to do so and customize it to your own liking.&nbsp; What programming language do you know?<br />

About This Instructable




Bio: PERIANDER ABAN ESPLANA is a writer, composer, inventor, researcher, homepage developer, innovator, and educator in the field of science and computer technology. As a government ... More »
More by theseventhsage:ROBOTIC ARM with USB PC Interface (plus how to assemble) Activating the "god" Mode on Windows 7 Make a Simple Telescopic Cellphone Camera 
Add instructable to: