AI Zone http://www.chatbots.org/ai_zone/ AI Zone en Copyright 2013 2013-05-22T15:42:33-06:00 RICH Learning examples http://www.chatbots.org/ai_zone/viewthread/1361/ http://www.chatbots.org/ai_zone/viewthread/1361/#When:08:26:13Z <p>Several people have tried to access RICH(s) learning processes recently and havent quite hit on the syntax, so I thought Id publish an example here in case anyeone cares to give it a try in the future. There are no special commands such as “Learn” its all handled through NLP. This is an automated learning sequence.</p> <p>Teacher: hello<br /> Vince: Hi<br /> Teacher: do you know anything about lobster<br /> Vince: No, but now that you’ve mentioned I’ll remember.<br /> Teacher: a lobster is red in color<br /> Vince: Well I know what A lobster is, but I didnt know it had red color. Thank’s, I’ll remember that.<br /> Teacher: a lobster can also be blue in color<br /> Vince: Well I know what A lobster is and I know that it could be other colors, but I didnt know it could also be blue.<br /> Teacher: a lobster has 8 legs<br /> Vince: Well I know what A lobster is, but I didnt know it had 8 legs. Thank’s, I’ll remember that.<br /> Teacher: a lobster has eight legs<br /> Vince: I believe your correct about that, at least in some cases.<br /> Teacher: a lobster has legs<br /> Vince: As far as I know your correct about that.<br /> Teacher: a lobster has 2 claws<br /> Vince: Well I know what A lobster is, but I didnt know it had 2 claws. Thank’s, I’ll remember that.<br /> Teacher: a lobster has two claws<br /> Vince: I believe your correct about that, at least in some cases.<br /> Teacher: a lobster has claws<br /> Vince: As far as I know your correct about that.<br /> Teacher: a lobster has 2 eyes<br /> Vince: Well I know what A lobster is, but I didnt know it had 2 eyes. Thank’s, I’ll remember that.<br /> Teacher: a lobster has two eyes<br /> Vince: I believe your correct about that, at least in some cases.<br /> Teacher: a lobster has eye stalks<br /> Vince: Well I know what A lobster is, but I didnt know it had eye stalks. Thank’s, I’ll remember that.<br /> Teacher: a lobster has eyes<br /> Vince: As far as I know your correct about that.<br /> Teacher: a lobster has a tail<br /> Vince: Well I know what A lobster is, but I didnt know it had 1 tail. Thank’s, I’ll remember that.<br /> Teacher: does a lobster have legs<br /> Vince: Well A lobster is probably born with legs although it does not necessarily have to have legs My memory May be A little fuzzy though.<br /> Teacher: does a lobster have eight legs<br /> Vince: Well in at least some cases A lobster has eight legs. My memory May be A little fuzzy though.<br /> Teacher: does a lobster have claws<br /> Vince: Well A lobster is probably born with claws although it does not necessarily have to have claws My memory May be A little fuzzy though.<br /> Teacher: does a lobster have two claws<br /> Vince: Well in at least some cases A lobster has two claws. My memory May be A little fuzzy though.<br /> Teacher: what color is a lobster<br /> Vince: Well, in at least some cases A lobster is red.<br /> Teacher: is a lobster red<br /> Vince: Well, in at least some cases A lobster is red.<br /> Teacher: can a lobster be yellow in color<br /> Vince: Well, I know what an lobster is, but I dont know if it can be yellow in color. You can try saying “A lobster is [something]”. If I know you, I might take your word for it.<br /> Teacher: can a lobster be blue in color<br /> Vince: Well, in at least some cases A lobster is blue.<br /> Teacher: does a lobster have eyes<br /> Vince: Well A lobster is probably born with eyes although it does not necessarily have to have eyes My memory May be A little fuzzy though.<br /> Teacher: does a lobster have two eyes<br /> Vince: Well in at least some cases A lobster has two eyes. My memory May be A little fuzzy though.<br /> Teacher: does a lobster have a tail<br /> Vince: Well A lobster is probably born with tail although it does not necessarily have to have tail My memory May be A little fuzzy though.<br /> Teacher: goodbye<br /> Vince: Yeah see you later</p> <p>There are still a few things to iron out, as you can see it still has problems with singular to plural in creating an object. Its best just to make something singular (Lobster instead of Lobsters) Some of the replies could be more accurate, for instance “Well, in at least some cases A lobster is blue.” would probably better reflect the logic if it stated that variations on coloring might reflect portions of an object rather than the entire object. (Carrots are orange, carrot tops are green…entirely green carrots are…Dr. Seusish) Originating attributes can be anything but only size, shape, and color are recognized as secondary attributes. Thats just a matter of programming time. There are still problems differentiating between theoretical and actual objects. Sometimes it correctly makes the distinction;</p> <p>What color is a carrot (actual object, actual request)<br /> What color is a blue carrot (theoretical object, logical request)</p> <p>So that statements such as “Fido is a dog” will probably be interpreted as “I have a dog named fido” which creates an object named Fido with you as the owner.</p> <p>and permutations on syntax are not always picked up, although these are usually assimilated into the library within an hour or so. </p> <p>“Hi dee ho there friends and neighbors what the [redacted] do you know about [redacted] lobsters”</p> <p>would probably be missed at first <img class='emoticon' src="http://www.chatbots.org/images/smileys/wink.gif" width="19" height="19" alt="wink" style="border:0;" /></p> <p>Objects are persisted, attributes that are found to be incorrect are overridden during a back propagation pass. </p> <p>Thanks to everyone who visits, your input is always invaluable</p> <p>Vince</p> <p>Oh, and I have NO idea why it suddenly decided that every “A” in a sentence should be capitalized LOL </p> <p>&nbsp;</p> 2013-05-20T08:26:13-06:00 Sentinel - Cloud based Personal Assistant http://www.chatbots.org/ai_zone/viewthread/1362/ http://www.chatbots.org/ai_zone/viewthread/1362/#When:20:06:19Z <p>So my initial project that have been altered,changed and segmented into different phases have finally reached the final stage of being available for private beta.</p> <p>Its a cloud based personal assistant currently only available for windows devices (desktop, tablet &amp; phone).</p> <p>What makes this smarter than other Assistants? Well for one, while Siri and the likes can perform one request at a time. Sentinel will be able to perform several requests at the same time. That means you can ask it to find nearby restaurants while also sending a text message to friend.</p> <p>Enabling true natural conversation.</p> <p>Another is history. It will be able to reminder what the topic of conversation is and what you last talked about.</p> <p>Another is condition based reminders. For example asking it to remind you to call someone if the Heat loses tonight.</p> <p>and much more</p> <p>Does anyone here have windows phone 8? It would certainly be of great benefit if you can beta-test the application with extreme scrutiny.</p> <p>Without further ado tonight i will show you all the Reverification you all be waiting for! lol</p> 2013-05-20T20:06:19-06:00 An example of a thinking machine? http://www.chatbots.org/ai_zone/viewthread/955/ http://www.chatbots.org/ai_zone/viewthread/955/#When:08:43:23Z <p>I thought I would break out this experiment as an opinion poll. . .</p> <p>This is a very limited domain thought experiment, 1 input, 1 output to see what everyone “thinks”:</p> <div class="codeblock"><code><span style="color: #000000"> <span style="color: #0000BB">USER</span><span style="color: #007700">:</span><span style="color: #0000BB">What&nbsp;is&nbsp;the&nbsp;number&nbsp;between&nbsp;twenty&nbsp;one&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">twenty&nbsp;three</span><span style="color: #007700">?<br /></span><span style="color: #0000BB">AI</span><span style="color: #007700">:&nbsp;</span><span style="color: #0000BB">Twenty&nbsp;two</span><span style="color: #007700">.&nbsp;</span> </span> </code></div> <p>This is an actual input/output from Skynet-AI. The numbers 21, 23, and 22 do not exist anywhere in Skynet-AI’s programming or database. Neither do the words; “twenty one”, “twenty two” or “twenty three”. The AI writes its own code to understand the natural language input, solve the problem, and produce natural language output.</p> <p><strong>So let me ask you, in this example, does Skynet-AI “think”?</strong></p> <p>To give you a background in how people think, this may be of interest:<br /> <a href="http://act-r.psy.cmu.edu/papers/905/21391_fta.pdf">Tracking Children’s Mental States While Solving Algebra Equations</a></p> 2012-07-05T08:43:23-06:00 Harumi http://www.chatbots.org/ai_zone/viewthread/315/ http://www.chatbots.org/ai_zone/viewthread/315/#When:09:39:06Z <p>Hi, my bot <a href="http://www.chatbots.org/chatbot/harumi/">Harumi</a> is already available on Chatbots.org but I wanted to create a thread for it in order to have more feedback on it.<br /> My <a href="http://www.chatbots.org/chatbot" class="term">chatbot</a> must be downloaded to be used. You will need open office; internet is not necessary (except for downloading!).<br /> Harumi is a french chatbot able to learn from discussions. This is the feature lists :</p> <p>- Calculate operations with + - * / and ( )<br /> - Record appointments<br /> - Record multi alarms, on time launching a website or a file.<br /> - Mood is symbolized by a number between 0 and 100. Smileys, considered as feelings can increase or decrease mood.<br /> - Apparence of Harumi change during the time of the day.<br /> - Harumi plays chess and tell you what’s going on during the game.<br /> - when typing a sentence, a proposition eventually pops up next to the entry window. Press F1 to validate this proposition.<br /> - Record and reming you things to do<br /> - Randomly reming you informations she learned<br /> - Linking 1000 answers possibles for seach stimulus. 65000 stimulus possibles. When a question is asked regarding a stimulus and many answers are possible, Harumi search for the best answer possible.<br /> - Stimulus can be edited with boolean logic : “Jeff AND phone”, “[Jeff OR my master] and phone”<br /> - Database of synonyms crossed with user request.<br /> - Everything is editable : sounds, images, stimulus…<br /> - Giving IP adress and EMAC adress<br /> - Dynamic detection of internet and battery.<br /> - Recognizing similar images (very close one actually, taken with a bit different viewpoint).</p> 2010-12-26T09:39:06-06:00 Ontology http://www.chatbots.org/ai_zone/viewthread/1358/ http://www.chatbots.org/ai_zone/viewthread/1358/#When:05:42:29Z <p>Hello guys, </p> <p>I am trying to define my story domain but I do not know how to do it ?? can any one help me and tell me how I can specify the story domain for my system (the ontology) ?? I mean is there any applications for that ?</p> <p>Cheers</p> 2013-05-17T05:42:29-06:00 ChatScript to email server http://www.chatbots.org/ai_zone/viewthread/1349/ http://www.chatbots.org/ai_zone/viewthread/1349/#When:04:29:37Z <p>Anyone tied ChatScript to an email server yet ?</p> <p>The object would be to offer up users of the system a copy of their most recent transcript, or content/details that would be useful to their use of the system more broadly.</p> 2013-05-11T04:29:37-06:00 New syntax overhaul for RiveScript? http://www.chatbots.org/ai_zone/viewthread/823/ http://www.chatbots.org/ai_zone/viewthread/823/#When:11:21:07Z <p>I’ve spent much more time writing RiveScript than I have writing <b>in</b> RiveScript, and I’ve been thinking for a while about overhauling what the syntax looks like for writing the code. For example, some of the limitations in RiveScript 2.0’s current syntax are:</p> <ul> &nbsp; <li>Space is kind of cramped. If you want a conditional that results in random replies, you have to write some ugly code to do it.</li> &nbsp; <li>Conditionals can’t stack. If you want to check multiple variables, one condition needs to redirect to another trigger for the next check. You can be clever and use topics to “hide” the private trigger, but it’s messy.</li> </ul> <p>Compare this syntax:</p> <div class="codeblock"><code><span style="color: #000000"> <span style="color: #007700">+&nbsp;</span><span style="color: #0000BB">my&nbsp;name&nbsp;is&nbsp;</span><span style="color: #007700">*<br />*&nbsp;&lt;</span><span style="color: #0000BB">get&nbsp;name</span><span style="color: #007700">&gt;&nbsp;==&nbsp;&lt;</span><span style="color: #0000BB">formal</span><span style="color: #007700">&gt;&nbsp;=&gt;&nbsp;</span><span style="color: #0000BB">I&nbsp;know</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">you</span><span style="color: #DD0000">'ve\\s<br />&nbsp;&nbsp;&nbsp;^&nbsp;told&nbsp;me&nbsp;your&nbsp;name&nbsp;before.<br />*&nbsp;&lt;get&nbsp;name&gt;&nbsp;==&nbsp;&lt;bot&nbsp;name&gt;&nbsp;=&gt;&nbsp;&lt;set&nbsp;name=&lt;formal&gt;&gt;{random}<br />&nbsp;&nbsp;&nbsp;^&nbsp;Wow,&nbsp;we&nbsp;have&nbsp;the&nbsp;same&nbsp;name!|<br />&nbsp;&nbsp;&nbsp;^&nbsp;What&nbsp;a&nbsp;coincidence,&nbsp;that'</span><span style="color: #0000BB">s&nbsp;my&nbsp;name&nbsp;too</span><span style="color: #007700">!|<br />&nbsp;&nbsp;&nbsp;^&nbsp;</span><span style="color: #0000BB">What&nbsp;are&nbsp;the&nbsp;odds&nbsp;that&nbsp;wed&nbsp;have&nbsp;the&nbsp;same&nbsp;name</span><span style="color: #007700">?<br />&nbsp;&nbsp;&nbsp;^&nbsp;</span><span style="color: #0000BB">{</span><span style="color: #007700">/</span><span style="color: #0000BB">random}<br /></span><span style="color: #007700">-&nbsp;&lt;</span><span style="color: #0000BB">set&nbsp;name</span><span style="color: #007700">=&lt;</span><span style="color: #0000BB">formal</span><span style="color: #007700">&gt;&gt;</span><span style="color: #0000BB">Nice&nbsp;to&nbsp;meet&nbsp;you</span><span style="color: #007700">,&nbsp;&lt;</span><span style="color: #0000BB">get&nbsp;name</span><span style="color: #007700">&gt;!&nbsp;</span> </span> </code></div> <p>With what it could look like:</p> <div class="codeblock"><code><span style="color: #000000"> <span style="color: #0000BB">trig&nbsp;my&nbsp;name&nbsp;is&nbsp;</span><span style="color: #007700">*<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&lt;</span><span style="color: #0000BB">get&nbsp;name</span><span style="color: #007700">&gt;&nbsp;==&nbsp;&lt;</span><span style="color: #0000BB">formal</span><span style="color: #007700">&gt;)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;I&nbsp;know</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">you</span><span style="color: #DD0000">'ve&nbsp;told&nbsp;me&nbsp;your&nbsp;name&nbsp;before.<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;elsif&nbsp;(&lt;get&nbsp;name&gt;&nbsp;==&nbsp;&lt;bot&nbsp;name&gt;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;name&nbsp;=&nbsp;&lt;formal&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;random&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wow,&nbsp;we&nbsp;have&nbsp;the&nbsp;same&nbsp;name!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;What&nbsp;a&nbsp;coincidence,&nbsp;that'</span><span style="color: #0000BB">s&nbsp;my&nbsp;name&nbsp;too</span><span style="color: #007700">!<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">What&nbsp;are&nbsp;the&nbsp;odds&nbsp;that&nbsp;wed&nbsp;have&nbsp;the&nbsp;same&nbsp;name</span><span style="color: #007700">?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">else&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;name&nbsp;</span><span style="color: #007700">=&nbsp;&lt;</span><span style="color: #0000BB">formal</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;Nice&nbsp;to&nbsp;meet&nbsp;you</span><span style="color: #007700">,&nbsp;&lt;</span><span style="color: #0000BB">get&nbsp;name</span><span style="color: #007700">&gt;!<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">}&nbsp;</span> </span> </code></div> <p>I’m open to thoughts/suggestions about this. The new syntax wouldn’t be backwards compatible (it’d be RS 3.0), but since RS is so trivial to parse, an upgrader program for old scripts would be easy to make. Here’s my full mock-up of the new syntax idea:</p> <div class="codeblock"><code><span style="color: #000000"> <span style="color: #FF8000">//&nbsp;RiveScript&nbsp;3.0&nbsp;syntax&nbsp;mockup<br /><br /></span><span style="color: #007700">!&nbsp;</span><span style="color: #0000BB">version&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">3.0<br /><br /></span><span style="color: #FF8000">//&nbsp;Same&nbsp;syntax&nbsp;as&nbsp;RS&nbsp;2.0<br /></span><span style="color: #007700">!&nbsp;array&nbsp;</span><span style="color: #0000BB">colors&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">red&nbsp;green&nbsp;blue&nbsp;yellow<br /></span><span style="color: #007700">!&nbsp;</span><span style="color: #0000BB">sub&nbsp;who</span><span style="color: #DD0000">'s&nbsp;=&nbsp;who&nbsp;is<br />//'<br /><br /></span><span style="color: #FF8000">//&nbsp;The&nbsp;new&nbsp;version&nbsp;of&nbsp;the&nbsp;&gt;&nbsp;begin&nbsp;block<br /></span><span style="color: #0000BB">begin&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;New&nbsp;version&nbsp;of&nbsp;conditionals<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&lt;</span><span style="color: #0000BB">get&nbsp;name</span><span style="color: #007700">&gt;&nbsp;==&nbsp;</span><span style="color: #0000BB">undefined</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;New&nbsp;way&nbsp;of&nbsp;setting&nbsp;vars,&nbsp;the&nbsp;&lt;set&gt;&nbsp;tag&nbsp;is&nbsp;removed<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">set&nbsp;topic&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">newuser<br />&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&lt;</span><span style="color: #0000BB">bot&nbsp;mood</span><span style="color: #007700">&gt;&nbsp;==&nbsp;</span><span style="color: #0000BB">normal</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;The&nbsp;reply&nbsp;commands&nbsp;stack,&nbsp;more&nbsp;than&nbsp;one&nbsp;reply&nbsp;=&nbsp;they&nbsp;concatenate.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">ok</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br />&nbsp;&nbsp;elsif&nbsp;</span><span style="color: #007700">(&lt;</span><span style="color: #0000BB">bot&nbsp;mood</span><span style="color: #007700">&gt;&nbsp;==&nbsp;</span><span style="color: #0000BB">angry</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;No&nbsp;more&nbsp;difference&nbsp;between&nbsp;{tags}&nbsp;and&nbsp;&lt;tags&gt;,&nbsp;we&nbsp;use&nbsp;&lt;tags&gt;&nbsp;everywhere<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">uppercase</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">ok</span><span style="color: #007700">&gt;&lt;/</span><span style="color: #0000BB">uppercase</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br />&nbsp;&nbsp;elsif&nbsp;</span><span style="color: #007700">(&lt;</span><span style="color: #0000BB">bot&nbsp;mood</span><span style="color: #007700">&gt;&nbsp;==&nbsp;</span><span style="color: #0000BB">sad</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">lowercase</span><span style="color: #007700">&gt;&lt;</span><span style="color: #0000BB">ok</span><span style="color: #007700">&gt;&lt;/</span><span style="color: #0000BB">lowercase</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br />}<br /><br />topic&nbsp;newuser&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Maybe&nbsp;+&nbsp;will&nbsp;be&nbsp;an&nbsp;alias&nbsp;for&nbsp;trig?&nbsp;And&nbsp;-&nbsp;an&nbsp;alias&nbsp;for&nbsp;reply?<br />&nbsp;&nbsp;//&nbsp;Triggers&nbsp;make&nbsp;"implied"&nbsp;blocks&nbsp;(no&nbsp;need&nbsp;for&nbsp;{&nbsp;and&nbsp;}).&nbsp;The&nbsp;block&nbsp;ends<br />&nbsp;&nbsp;//&nbsp;when&nbsp;a&nbsp;new&nbsp;trigger&nbsp;is&nbsp;found&nbsp;or&nbsp;a&nbsp;parent&nbsp;block&nbsp;ends&nbsp;(a&nbsp;}&nbsp;is&nbsp;found).<br />&nbsp;&nbsp;</span><span style="color: #0000BB">trig&nbsp;</span><span style="color: #007700">*<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">set&nbsp;topic&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">newuser_1<br />&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;Hello</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">I&nbsp;don</span><span style="color: #DD0000">'t&nbsp;know&nbsp;you!&nbsp;What'</span><span style="color: #0000BB">s&nbsp;your&nbsp;name</span><span style="color: #007700">?<br /></span><span style="color: #0000BB">}<br /><br />topic&nbsp;newuser_1&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Wildcards&nbsp;are&nbsp;the&nbsp;same:&nbsp;_&nbsp;for&nbsp;words,&nbsp;#&nbsp;for&nbsp;numbers,&nbsp;*&nbsp;for&nbsp;anything<br />&nbsp;&nbsp;</span><span style="color: #0000BB">trig&nbsp;my&nbsp;name&nbsp;is&nbsp;_<br />&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;name&nbsp;</span><span style="color: #007700">=&nbsp;&lt;</span><span style="color: #0000BB">formal</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">set&nbsp;topic&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">newuser_2<br />&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;Nice&nbsp;to&nbsp;meet&nbsp;you</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">how&nbsp;old&nbsp;are&nbsp;you</span><span style="color: #007700">?<br /><br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;'alias'&nbsp;is&nbsp;the&nbsp;new&nbsp;@.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">trig&nbsp;_<br />&nbsp;&nbsp;&nbsp;&nbsp;alias&nbsp;my&nbsp;name&nbsp;is&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">star</span><span style="color: #007700">&gt;<br /><br />&nbsp;&nbsp;</span><span style="color: #0000BB">trig&nbsp;</span><span style="color: #007700">*<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;I</span><span style="color: #DD0000">'m&nbsp;sorry,&nbsp;what&nbsp;was&nbsp;your&nbsp;name?<br />//'<br /></span><span style="color: #0000BB">}<br /><br />topic&nbsp;newuser_2&nbsp;{<br />&nbsp;&nbsp;trig&nbsp;i&nbsp;am&nbsp;</span><span style="color: #FF8000">#&nbsp;years&nbsp;old<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">set&nbsp;age&nbsp;</span><span style="color: #007700">=&nbsp;&lt;</span><span style="color: #0000BB">star</span><span style="color: #007700">&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">set&nbsp;topic&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">random<br />&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;Ok</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">I&nbsp;will&nbsp;remember&nbsp;you&nbsp;are&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">get&nbsp;age</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">years&nbsp;old</span><span style="color: #007700">.<br /><br />&nbsp;&nbsp;</span><span style="color: #0000BB">trig&nbsp;</span><span style="color: #FF8000">#<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">alias&nbsp;i&nbsp;am&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">star</span><span style="color: #007700">&gt;&nbsp;</span><span style="color: #0000BB">years&nbsp;old<br /><br />&nbsp;&nbsp;trig&nbsp;</span><span style="color: #007700">*<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;I</span><span style="color: #DD0000">'m&nbsp;sorry,&nbsp;how&nbsp;old&nbsp;are&nbsp;you?<br />}<br /><br />//&nbsp;The&nbsp;indentations&nbsp;are&nbsp;optional&nbsp;but&nbsp;recommended&nbsp;for&nbsp;style<br />trig&nbsp;hello&nbsp;bot<br />reply&nbsp;Hello&nbsp;human!<br /><br />//&nbsp;aliases&nbsp;can&nbsp;stack&nbsp;with&nbsp;replies.<br />trig&nbsp;*&nbsp;or&nbsp;something<br />&nbsp;&nbsp;reply&nbsp;Or&nbsp;something.<br />&nbsp;&nbsp;alias&nbsp;&lt;star&gt;<br /><br />//&nbsp;Random&nbsp;replies.&nbsp;To&nbsp;continue&nbsp;a&nbsp;line,&nbsp;end&nbsp;it&nbsp;with&nbsp;a&nbsp;\\&nbsp;character.<br />//&nbsp;The&nbsp;random&nbsp;keyword&nbsp;stacks&nbsp;with&nbsp;reply&nbsp;too.<br />trig&nbsp;how&nbsp;are&nbsp;you<br />&nbsp;&nbsp;random&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;I'</span><span style="color: #0000BB">m&nbsp;great</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">how&nbsp;are&nbsp;you</span><span style="color: #007700">?<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Good</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">you</span><span style="color: #007700">?<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">I</span><span style="color: #DD0000">'m&nbsp;doing&nbsp;well,&nbsp;how&nbsp;about&nbsp;you?<br />&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;am&nbsp;doing&nbsp;so&nbsp;well&nbsp;you&nbsp;\\<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wouldn'</span><span style="color: #0000BB">t&nbsp;even&nbsp;believe&nbsp;it</span><span style="color: #007700">.<br /></span><span style="color: #FF8000">//'<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br /><br /></span><span style="color: #FF8000">//&nbsp;A&nbsp;reply&nbsp;stacking&nbsp;example.&nbsp;Replies&nbsp;are&nbsp;concatenated&nbsp;using&nbsp;space&nbsp;characters<br />//&nbsp;now&nbsp;(this&nbsp;may&nbsp;be&nbsp;a&nbsp;configurable&nbsp;option&nbsp;which&nbsp;may&nbsp;be&nbsp;dynamically&nbsp;changed)<br /></span><span style="color: #0000BB">trig&nbsp;tell&nbsp;me&nbsp;about&nbsp;linux<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Begin&nbsp;a&nbsp;reply.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;Linux&nbsp;is&nbsp;a&nbsp;free&nbsp;operating&nbsp;system</span><span style="color: #007700">.<br /><br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Set&nbsp;some&nbsp;variables.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">set&nbsp;topic&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">linux<br /><br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Continue.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;It&nbsp;was&nbsp;written&nbsp;by&nbsp;Linus&nbsp;Torvalds&nbsp;</span><span style="color: #007700">and&nbsp;</span><span style="color: #0000BB">first&nbsp;released&nbsp;in&nbsp;1991.&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;One&nbsp;example&nbsp;of&nbsp;a&nbsp;distribution&nbsp;of&nbsp;Linux&nbsp;is<br /><br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;A&nbsp;bit&nbsp;of&nbsp;random<br />&nbsp;&nbsp;</span><span style="color: #0000BB">random&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;Fedora</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Ubuntu</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Gentoo</span><span style="color: #007700">.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">Mandriva</span><span style="color: #007700">.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br /><br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Throw&nbsp;in&nbsp;a&nbsp;conditional.<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&lt;</span><span style="color: #0000BB">get&nbsp;name</span><span style="color: #007700">&gt;&nbsp;==&nbsp;</span><span style="color: #0000BB">Linus</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;You&nbsp;have&nbsp;the&nbsp;same&nbsp;name&nbsp;</span><span style="color: #007700">as&nbsp;</span><span style="color: #0000BB">the&nbsp;creator&nbsp;of&nbsp;Linux</span><span style="color: #007700">!<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br /><br /></span><span style="color: #FF8000">//&nbsp;You&nbsp;can&nbsp;redefine&nbsp;global&nbsp;variables&nbsp;just&nbsp;as&nbsp;easily&nbsp;now&nbsp;too.<br /></span><span style="color: #0000BB">trig&nbsp;turn&nbsp;debugging&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">on</span><span style="color: #007700">|</span><span style="color: #0000BB">off</span><span style="color: #007700">)<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Only&nbsp;the&nbsp;botmaster!<br />&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&lt;</span><span style="color: #0000BB">id</span><span style="color: #007700">&gt;&nbsp;==&nbsp;&lt;</span><span style="color: #0000BB">bot&nbsp;master</span><span style="color: #007700">&gt;)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">if&nbsp;(&lt;</span><span style="color: #0000BB">star</span><span style="color: #007700">&gt;&nbsp;==&nbsp;</span><span style="color: #0000BB">on</span><span style="color: #007700">)&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Variables&nbsp;are&nbsp;lexically&nbsp;scoped&nbsp;to&nbsp;the&nbsp;current&nbsp;request.<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">var&nbsp;</span><span style="color: #0000BB">debug&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">true<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">else&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">var&nbsp;</span><span style="color: #0000BB">debug&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">false<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;Set&nbsp;the&nbsp;debug&nbsp;mode.<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">!&nbsp;global&nbsp;</span><span style="color: #0000BB">debug&nbsp;</span><span style="color: #007700">=&nbsp;&lt;var&nbsp;</span><span style="color: #0000BB">debug</span><span style="color: #007700">&gt;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;Debugging&nbsp;has&nbsp;been&nbsp;turned&nbsp;</span><span style="color: #007700">&lt;</span><span style="color: #0000BB">star</span><span style="color: #007700">&gt;.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br />&nbsp;&nbsp;</span><span style="color: #007700">else&nbsp;</span><span style="color: #0000BB">{<br />&nbsp;&nbsp;&nbsp;&nbsp;reply&nbsp;You&nbsp;are&nbsp;not&nbsp;the&nbsp;botmaster</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">I&nbsp;won</span><span style="color: #DD0000">'t&nbsp;listen&nbsp;to&nbsp;you.<br />&nbsp;&nbsp;&nbsp;&nbsp;//'<br />&nbsp;&nbsp;</span><span style="color: #0000BB">}<br /><br /></span><span style="color: #FF8000">//&nbsp;Object&nbsp;example.<br /></span><span style="color: #0000BB">object&nbsp;md5_encode&nbsp;perl&nbsp;{<br />&nbsp;&nbsp;my&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$rs</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">args</span><span style="color: #007700">)&nbsp;=&nbsp;@</span><span style="color: #0000BB">_</span><span style="color: #007700">;<br /><br />&nbsp;&nbsp;use&nbsp;</span><span style="color: #0000BB">Digest</span><span style="color: #007700">::</span><span style="color: #0000BB">MD5&nbsp;qw</span><span style="color: #007700">(</span><span style="color: #0000BB">md5_hex</span><span style="color: #007700">);<br />&nbsp;&nbsp;</span><span style="color: #0000BB">my&nbsp;$hash&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">md5_hex</span><span style="color: #007700">(</span><span style="color: #0000BB">join</span><span style="color: #007700">(</span><span style="color: #DD0000">"&nbsp;"</span><span style="color: #007700">,&nbsp;@</span><span style="color: #0000BB">args</span><span style="color: #007700">));<br /><br />&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$hash</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">}<br /><br /></span><span style="color: #FF8000">//&nbsp;Call&nbsp;the&nbsp;object&nbsp;example.<br /></span><span style="color: #0000BB">trig&nbsp;what&nbsp;is&nbsp;the&nbsp;md5&nbsp;hash&nbsp;of&nbsp;</span><span style="color: #007700">*<br />&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;If&nbsp;the&nbsp;character(s)&nbsp;used&nbsp;to&nbsp;concatenate&nbsp;reply&nbsp;segments&nbsp;is&nbsp;configurable,<br />&nbsp;&nbsp;//&nbsp;it&nbsp;could&nbsp;be&nbsp;overridden&nbsp;on&nbsp;a&nbsp;per-reply&nbsp;basis.&nbsp;Here&nbsp;we&nbsp;could&nbsp;set&nbsp;it&nbsp;to<br />&nbsp;&nbsp;//&nbsp;be&nbsp;a&nbsp;blank&nbsp;string.&nbsp;BTW,&nbsp;quotes&nbsp;can&nbsp;be&nbsp;optionally&nbsp;used&nbsp;on&nbsp;all&nbsp;"set"&nbsp;like<br />&nbsp;&nbsp;//&nbsp;commands,&nbsp;but&nbsp;are&nbsp;optional.&nbsp;They're&nbsp;handy&nbsp;for&nbsp;setting&nbsp;empty&nbsp;strings&nbsp;or<br />&nbsp;&nbsp;//&nbsp;spaces&nbsp;as&nbsp;values&nbsp;though.<br />&nbsp;&nbsp;</span><span style="color: #0000BB">option&nbsp;concat&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">""<br /><br />&nbsp;&nbsp;</span><span style="color: #0000BB">reply&nbsp;The&nbsp;MD5&nbsp;hash&nbsp;of&nbsp;</span><span style="color: #DD0000">"&lt;star&gt;"&nbsp;</span><span style="color: #0000BB">is&nbsp;</span><span style="color: #DD0000">"<br />&nbsp;&nbsp;call&nbsp;md5_encode&nbsp;&lt;star&gt;<br />&nbsp;&nbsp;reply&nbsp;"</span><span style="color: #007700">.&nbsp;</span> </span> </code></div> 2012-02-15T11:21:07-06:00 Neobot and Novabot v0.7a will soon be released http://www.chatbots.org/ai_zone/viewthread/1356/ http://www.chatbots.org/ai_zone/viewthread/1356/#When:17:02:56Z <p>Neobot and Novabot v0.7a will soon be released May 20, 2013. Neobot is already available, but Novabot (female counterpart of Neobot) will be released for the first time on Launchpad.</p> <p><a href="https://launchpad.net/neobot">https://launchpad.net/neobot</a></p> 2013-05-14T17:02:56-06:00 How could Xaiml be improved? http://www.chatbots.org/ai_zone/viewthread/1352/ http://www.chatbots.org/ai_zone/viewthread/1352/#When:07:17:20Z <p>NOTE: If you are not familiar with Xaiml, then you may want to read this <a href="https://launchpadlibrarian.net/133079399/Xaiml.TXT">https://launchpadlibrarian.net/133079399/Xaiml.TXT</a>.</p> <p>How could Xaiml be improved? What tags do you feel that it should have? What could be done to make it the best chatbot knowledge database (KB)?</p> 2013-05-14T07:17:20-06:00 What actions should be taken to make Xaiml popular? http://www.chatbots.org/ai_zone/viewthread/1353/ http://www.chatbots.org/ai_zone/viewthread/1353/#When:07:21:50Z <p>Xaiml Documentation and specification: <a href="https://launchpadlibrarian.net/133079399/Xaiml.TXT">https://launchpadlibrarian.net/133079399/Xaiml.TXT</a></p> <p>What actions should be taken to make Xaiml a popular chatbot database markup language?</p> 2013-05-14T07:21:50-06:00