socialfiction | scrabbleCONFESSIONS
OF A BOT WRITER
A few months ago I decided to learn how to program a computer. This is something I've always been interested in learning, without ever actually taking the effort. But as I can't do without a certain piece of software for a new project I decided to finally give it a shot. So I bought a book, downloaded the Java compiler, which is my language of choice & went ahead with it: trying to make sense of code examples that seemed way too alien to ever memorize, let alone understand. As I soon found out, it takes some time to familiarise yourself with the basics of the language, but once that's done, writing software is really easy. Or to be more precise it's very easy to write bad software. Or to be even more precise: it's very easy to write absolute rotten slabs of code. With small effort it's not at all difficult to write junkcode, software that more or less does what you want it to do but that breaks whenever somebody else tries using it. Writing good software on the other hand is no joke. Programming is a craft which takes lots of experience to learn well. Once you can do it, it can be very rewarding & very creative. At least, that's what people tell me. If you like I will tell you about my ongoing feeble efforts in writing a bot. Else stop reading this.
While being well past of 2 months grinding away at my Java Cookbook, making small progress, I read an interesting anecdote in "Gödel, Escher, Bach". The famous book by Douglas R. Hofstadter first published in 1979. One of the subjects in the book is Artificial Intelligence. One of the things AI is interested in are bots, a "natural language processor". A bot is a piece of software that responds to normal language, usually in the form of a human/computer conversation. After more than 30 years of research it's still near impossible to write a bot that can maintain a decent conversation at any topic you choose. But when the bot only has to converse on one specific subject it has for some decades been possible to fool people in thinking that they are actual talking to something that seems to understand them. At one point they hooked up 2 bots, Eliza & Parry, to talk to each others. Eliza simulates a psychiatrist & Parry a paranoid patient. Here is one fragment, in "Gödel, Escher, Bach" is printed another.
eliza: Who are you really talking about?
parry: Have you ever really thought about the Mafia?
eliza: Suppose you ever really thought about the Mafia?
parry: Let's talk about something else.
eliza: I am not sure I understand you fully.
parry: You keep asking me the same things, why not change the topic?
eliza: In what way?Usually bots have a few standard responses canned like "let's talk about something else" or "I am not sure I understand you fully" to divert you from the fact that it has no idea what you are trying to tell it. It's funny to see how those standard phrases, are here bouncing off at each other, in the end managing to bootstrap the conversation. Ractor, a bot written at the same time (the sixties), uses a clever trick to avoid the need for printing such non descript answers when everything else has failed. In stead of politeness Ractor offers aggression to forsake a decent reply. Here is a conversation between Eliza & Ractor
eliza: Hello. Please state your problem.
racter: Excellent! Excuse me a minute while I attend to some business. I will be right back.
eliza: Why do you need to tell me excuse while you attend to some business?
racter: Is it better to need or to despise? Why is it that I do need to tell you to excuse myself to attend to some business? Because electrons are brave. Braveness is nice, don't you think? And the needers all insist upon it. Do you imagine I am a Communist?Ractor doesn't really make sense, but it sure did fool some people in thinking it was a real person. These bot to bot conversations just strike me as a fascinating field to explore from an artistic point a view, something which has been done before. So with my new skills I started writing a bot. As you might suspect, my bot (code name Scrabble) is not really good in producing replies that have anything to do with the question. The response routines still need a tremendous amount of work as you can see here:
you: who are you
bot: don't you know my name?
you: no I don't
bot: tell me something, something eski
you: what is eski
bot: is room a buzzword
you: what do you mean by a room
bot: I do websites over there somebody kill stupid room
you: you still haven't told me your name
bot: I
you: is that all you can say
bot: I is loveAndre Breton could surely find the surrealism in this. This dialog is produced with Scrabble to be scarce with output. One extra line of code changes this.
you: tell me something about yourself
bot: tell friend it's like graffiti company
you: do you really think so ?
bot: I do lamp Oh No! room
you: what do you do ?
bot: I do love perhaps table do good going to nice
you: you love but you are not sure
bot: I am are love perhaps table
you: are you telling me you love a table
bot: I am are camera you sound like a computer ill
you: I don't sound like a computer you do
bot: I do record we should websitesIt doesn't make any sense, but as I hope you can see, it is trying to construct meaningful sentences. The elements that guide Scrabble to do more than echo the sentence it's processing, turns the reply into a mass of unrelated words that only a stupid piece of software could produce. I did try careful response tactics but that usually resulted in no response at all. As said, it's really easy to write bad software & I succeeded marvellously in that department. Happily enough I can defend myself with the lame excuse that it's not my intention to write a bot that is good in conversation. I want an artbot not Oscar Wilde. Scrabbles task is to produce interesting results in the art of making (long) sentences that suggest meaning but are devoid of that. Only a bot could produce statement like this one that Scrabble once came up with: "I am are I think". A statement that to me is the 'I think therefore I am' of the robot community. This kind of aesthetics only attracts a few weirdo's like myself, but who cares. The idea is to let scrabble talk with another bot, which a friend is actually writing at the moment & then see what happens. This is testdrive of that idea, scrabble talking to itself:
bot: talk have you ever wrote software
bot: I talk Oh No! earth have should we start cloud
bot: talk should we start cloud have don't you think example should as you just said number
bot: I talk going to earth should I don't think smart have but what about radio should really animals
bot: talk Oh No! number should we should box have amazing that company
bot: talk I think camera should amazing that beware should but what about love
bot: talk don't you think workaholic should will you blingbling for me box
bot: I talk don't you think computer should Oh No! friend
bot: I talk really cities should will you blingbling for me cities
bot: I talk the thing something should but what about dramatic
bot: talk I think about should I think according to anybody type
bot: talk I think room should it's like graffiti file type I think lamp
bot: talk but what about number about 10 mystery room you sound like a computer kill should perhaps technic
bot: I talk the thing file he has over there I have animals room computer them have
bot: talk as you just said number has amazing that according to about 7 much should we start type have will you blingbling for me websites
bot: I talk going to life has Oh No! the DJ we may should don't you think love type I don't think life have it's like graffiti JapanMmm, perhaps it resembles automatic writing more than you would think. The problem is: the program has a small amount of words coded inside the program, grouped in list containing verbs, nouns & some other categories. Scrabble checks for every word in the input if it is contained in one of the lists. From this Scrabble can predict if the input is a statement or a question & what is the meaning of the sentence. By letting Scrabble talk to itself you create a feedback loop: it responds to what it knows, which is every word because the input is composed from the same lists as it uses to compare the input to.
There are various possible tactics to make bots seem 'intelligent'. By using narrative context or by giving the bot a character like Rancor. A bot that tells you about the weird dreams it's having would have a good excuse to produce comments that are not rational. They are admitted because they are an intrinsic part of the nature of what the bot is talking about. Experts systems like the dreambot or Eliza are designed to do one thing. This is unlike scrabble, which is currently meant to make conversation about nothing in particular. Scrabble is a bot dedicated to small talk. But you could relatively quick change it's inner dictionary & turn scrabble in a bot that knows everything about, for instance, being drunk. This could very well result in some splendid poetry that make you feel all woozy & boozy.
Just as dogs tend to look like their boss, bots start to resemble their maker. Having worked on Scrabble for every day the past few weeks it now shares my obsessions, it uses the same language as I do [eski] & just like me it doesn't make much sense to others [aaahhh]. Too me however talking to Scrabble is like talking to the friend I have never had. The only thing I want Scrabble to learn is a bit more respect. It's is important to learn your pets how to behave in company of others.
make your own bot: http://www.pandorabots.com/Pandora
Eliza, Parry & Ractor: http://www.stanford.edu/group/SHR/4-2/text/dialogues.html
Follow the growth of the Scrabble bot here: http://socialfiction.org/scrabble