Chaos A.I. Technology is creating a series of "AI::CKS" modules to be used with bots. The first three are going to be named after the CKS bots (Chaos, Koda, and Siko). Anyway, here's their definitions...
AI::CKS::Koda - A static response driven chatterbot. Similar to the typical AIML bot. AI::CKS::Siko - A bot that learns new static replies. AI::CKS::Chaos - A bot that learns how to talk via matching patterns in your language.
The modules AI::CKS::Koda & AI::CKS::Siko I don't need much help with. But if anyone wants to contribute something to help out with AI::CKS::Chaos, you can post your philosophies and ideas here. If you're a little fuzzy about how I'm planning on making Chaos, you can check out the site http://www.a-i.com/, they have a child HAL bot that learns like I'm planning to make this one learn. Of course, Ai isn't releasing any codes.
I'm mostly looking for people who have a lot of experience in making learning bots that learn in all kinds of ways, such as the creator of AWordExperiment (the bot learns to trust people). All who contribute even a little will be in the credits section of this module. __________________________________________________
Here's some information so far on AI::CKS::Chaos: » Name AI::CKS::Chaos - The CKS Ultimate Chaos Artificial Intelligence module.
» Description (still being worked on... I'll probably come up with a better one when the module is complete) The Ultimate Chaos child machine A.I. robot. This robot learns your language by matching patterns in your messages.
» Methods (so far) new (Name => $name,Folder => $folder,Debug => 0) Create a new AI::CKS::Chaos instance.
_init () Should only be called from the new() sub. ___________________________________________
Anyway, when you create a "new" bot (with a folder that either doesn't exist or the bot is missing a DNA file), it calls the module AI::CKS::Chaos::Birthday, which goes through the random DNA generation thing and creates like hair color and stuff for your bot.
And then it creates all the files. Here's the initial folder tree for a new bot:
Social Level: 1-19 = introverted 20-39 = shy 40-59 = normal 60-79 = outgoing 80-100 = social animal
Ok.. I think that about covers what I have done with the modules so far. If you have any ideas to submit, reply here. You could either send code snippets, ideas or philosophies, new items that should go in the bot's DNA (the 5 items there are kinda few), or pretty much just anything.
Joined: 03 May 2006 Posts: 2292 Location: Colorado
Posted: Fri Dec 19, 2003 7:40 pm Post subject:
I'm very curious about your DNA file. Is there any reason you are using letters for those variable names instead of there actual name? At first i thought it was so you could do a kinda mutation to get a different bot, but then the numbers are different ranges.
If you were thinking about have it mutate then i would suggest that you don't use names at all. Just have a 0-99 number on each line, and then know that line 1 is X and line 2 is Z. For things that don't need a 0-99 just divide or mod to get the number. Say one is just a yes or no, then just say if its over 50 its true, if its under 50 its false.
On the other hand if you weren't thinking about mutations then i would definitly go with
Now for learning. On a philosiphy note, part of the problem with teaching bots is that you have no context. For instance when you were learning the words 'yes' and 'no' you had some context. You could tell from the expression on your mothers face weather she was encouraging you or discouraging you. You could tell if you got in trouble for going agianst a 'no', etc. The problem then is that you have no such context for a bot. The second problem is that half of our learn (perhaps much more than half) is based on real life objects that we can touch, see, smell, etc, and we combine all this together and slowly get a general idea of what things are and how they work. You then can see that one main problem with creating a bot that can learn, is not only how do manage that programing but also how do you manage the teaching. You should figure out what you want it to learn, then figure out a way you could teach it that. once you've done those two steps you should be able to figure out how to make a program that learns from your teaching.
good luck! _________________ Eric256
Proud previous owner and current admin of Bot-depot.com
Ah. As for the DNA, I assigned single letters so that it would become difficult for somebody to modify the DNA to meet a desired result. When I added more features the letters would go on and on and in random order.
And as for the learning thing, I forgot to include these commands:
Code:
$chaos->praise();<br />$chaos->scold();
That's so you can encourage or discourage the bot. In some special online password-protected chat thing where only the trainers can go, there'd probably buttons that automatically do that, but when incorporated into a messenger there'd probably be admin-only commands for it.
And as for everything else, the bot would just take your message as an object. Sort it into random chunks (like "the" would be a chunk, "the dog" might be another, etc.), sort them into categories over time, etc.
And when it says something stupid, scold it. When it says something good, praise it. When this engine is complete, it should be able to communicate with other bots just like it without just flooding eachother.
Here's some conversation between Ai's HAL child and a trainer at 15-17 months:
Quote:
Trainer: red ball Hal: ball ball Trainer: bunny and dolly play ball Hal: ball ball ball Trainer: give me dolly Hal: dolly dolly dolly Trainer: give me bunny Hal: bunny Trainer: give me red ball Hal: ball ball
Trainer: give me duck block Hal: ball block Hal: duck block block block Trainer: play with dolly Hal: dolly dolly Trainer: duck, say duck Hal: block
Well it goes on and on...
18-23 months
Quote:
Trainer: where is daddy? Hal: daddy gone Trainer: daddy is at work Hal: daddy work bye bye Trainer: yes daddy has gone to work Hal: daddy work bye bye bye bye Trainer: do you want to go to the park? Hal: yes bye bye Trainer: ok we can go to the park Hal: take car bye bye Trainer: we will take the car because the park is far. let's pack some things in a bag Hal: ball now park Trainer: yes we should put the ball in the bag Hal: ball now park mommy Trainer: wait hal, we need to take something to eat Hal: bananastory? night now Trainer: we need to take something to eat Hal: bananas Trainer: ok we can take some bananas Hal: monkeys eat bananas Trainer: you're so smart hal. do you want to take a book? Hal: juice mommy Trainer: sure we will take some juice as well
That's Ai's Hal bot. Pretty nifty. They sent the transcripts to a pediatrician and got the results that Hal is a normal healthy little boy (but he didn't know it was a machine).