Many people think Alan Turing is the father of Informatics because this English mathematician proposed the model in which almost every digital computer is based (they're all Turing machines). In the 50's, Turing proposed a test to find out whether a computer was intelligent: make a human talk to several "people", if the human can't tell whether she's talking to a human or a machine then the computer is intelligent (or at least silly in a convincingly human way). In the 60's, several programs were written so they could interact with a human through a screen and a keyboard (a chat, basically), one of the most popular implementations was Eliza which played the role of a psychologist asking you questions, although it was a very simple program (in fact, it didn't have any intelligence -artificial or natural- whatsoever), it was very good at deceiving people at least during the first interactions. Fast forward to 2006: most people chat like crazy with other people through Instant Messenger, what almost nobody knows is that you can write a chat robot, that is, a program that has an e-mail address which you can reach and talk to with IM. To test the idea add this guy email@example.com as a contact in IM and make him some questions (in English only, unfortunately):
Where is Guayaquil?
Guayaquil, in full Santiago de Guayaquil, city in western Ecuador, capital of Guayas Province. The city is situated on the Guayas River, near the....
Let me take you to a map of Guayaquil, Ecuador. =>
How many people live in Ecuador?
13,363,593 people live in Ecuador.
Sing a song
Do re mi fa sol la ti do.
Cómo te llamas?
I think you're trying to speak in spanish to me, but I don't speak it yet. Sorry!
As you can see this bot (that's how they are called) not only knows a lot of trivia but shows some sense of humor and even apologizes for not speaking Spanish (some humans would do good emulating it.) It is not only fun but useful and, at least for me, impressive. Here you will find several ideas for writing bots and, more intriguing, the e-mails of several bots. Finally, the best part, a pointer to an SDK that you can use for creating a bot yourself. Alas, if I only had the time for writing a bot that can talk about the Ecuadorian soccer team (we'll be in Germany 2006, of course, go Ecuador!)