Chapter 11
The enigmatic world of bots and personal agents
What is a bot or personal electronic agent?
Sitting in the Fairmont Hotel in San Francisco, the evening before the BOT2001 seminar, with Brian Proffitt Managing Editor of BotSpot, the bi-weekly e-magazine on bots and Dr. Stephen Thaler, one of the other speakers whose speciality was neural nets and bot intelligence, the question arose as to what exactly was the definition of a bot. None of us could provide a definitive answer.
The speakers at the seminar were interpreting bots in a number of different ways. Some saw bots as Web crawlers or spiders, that traveled around Web sites picking up selected information. Others saw them as search engines that identified locations on the Web where information, described by key words or phrases, could be found. There were those who thought of bots as on-line avatars, who had a pictorial representation as a real person or cartoon character on a Web site, who could answer questions in an animated way; some responding in text, other speaking with voices, even some with animated emotional expressions.
There were several varieties of intelligent bots that could search through posts sent in to list serves and news groups, searching for rude words and phrases, or, detecting the spread of rumours and spam messages. Dr. Thaler was introducing learning capabilities into bots, to give them an ability to deal with vague instructions and fuzzy logic.
With all the huge variety of different forms that bots could take, it was very hard to come up with a description that fitted all categories of bots and electronic agents. It then occurred to me that this problem of bot definition was the same frustrating difficulty I'd encountered when trying to explain what an object was in object oriented programming. It's not that the concept is at all complex to understand, it's just that it requires a paradigm shift.
In the book "Lingo Sorcery - the magic of lists objects and intelligent agents", I'd explained the experience of understanding objects in an object oriented world as being similar to that of learning to ride a bicycle. When you begin learning to ride a bike, it seems impossible to be able to cycle along on two wheels because, every time you start off, you fall to one side or the other. Then suddenly, for some unaccountable reason, you find yourself cycling along and not being able to understand how you had every thought it was so very difficult.
The problem with cycling, objects and bots is that they are impossible to explain because of their simplicity rather than their difficulty. In cycling, it is momentum that keeps you upright, which cannot be appreciated until you are actually moving. With objects, the understanding comes not through looking at the complex ways in which objects can be used, but, by realising that they can be anything you want them to be. This can be as simple as giving a space in memory a name, put a program that performs a function into that space and arrange for that function to be performed when a particular message is sent to the named space. Whatever name you give that space then becomes the object that can perform a function when you (or another object) tells it to.
For example, you can give a space in memory a name like "greenFrog". You can then put into that memory space a little program that will put a picture of a little green frog on the screen when a message is sent to that memory space: "greenFrog showYourself". You could do things like putting a program in that "greenFrog" memory space that will turn off the computer when you send it the message: "greenFrog turnComputerOff".
By adding all kinds of little functional programs into this "greenFrog" memory space you can make this "green Frog" perform all kinds of useful functions on your computer. Then, when a neighbour pops into your house and sees you working at your computer and tells you they wish they could learn how to use a computer, you can tell them that you don't know yourself, but, you've got a little green frog in there that does everything for you.
This is the conceptual breakthrough that has to be made with objects and bots. They are an illusion that is used to obscure underlying complexity. Once you fill your computer memory space with green frogs, pink elephants, alien life forms or any other object you care to imagine, then you can think about what they do rather than how they do it.
Bots and personal agents are like the objects that can be created in the memory space of a computer. They are simple images that can be used to get away from the underlying complexity to be able to think about the functions they perform.
In my talk at BOT2001, I tried to convey this concept by telling a joke that was going around in the 1970's when computing was largely confined to main frames:
A man is at an airport waiting for his flight to be called when he notices a woman opposite him fiddling around with her wrist watch. The wrist watch looks unusual and instead of a clock face it has a little screen.
Curiosity gets the better of him and he goes over to the woman and asked her about this strange looking watch she is fiddling with. She then explains it is not a watch but a computer. She asks him to give her a difficult mathematical calculation to solve. The man does this and after a few taps on her wrist watch she shows him the screen and it gives the right answer.
The man is astounded (it is at a time before micro chips). "What else can it do", he asks. She then tells him to ask her a few general knowledge questions. He does this and every time she taps around on her wrist watch and up come the answer on the little screen.
"I must have this wrist watch", he tells the woman." I'm a very rich man and I'll give you any price you name". She names a price and he writes her a cheque on the spot and puts the wrist watch on his wrist.
At that moment, the man's flight is called. "Sorry", he says to the woman. "I have to go now" and starts toward the boarding gates. She calls out to him, "you've forgotten to take these" and points to two large suitcases on the floor. "They are not mine", he calls back. "Yes they are" she tells him. "You've just bought them. You need to connect the wrist watch to the electronic equipment in these cases to be able to get the computer to perform its functions".
Nobody laughed at my joke. I then explained that this wrist watch was an analogy for a bot. It was the visible interface to a complex programming environment from which it is not possible to be separated. For bots, the equivalent of the two heavy suitcases is always some kind of database or information source, together with sophisticated algorithms to search, sort and process data.
As was discussed in the last chapter, databases are very inefficient and expensive to maintain when dealing with volatile information. This is the wrist watch equivalent of having suitcases that are too heavy to carry. Thus when thinking about bots, you have to look beyond the neat little image they convey and think about what has to go into the suitcases that allow them to function properly.
Think now of a little green frog on your wrist, that is connected up to a set of algorithms, a large database and the Web. In theory you could ask the little green frog on your wrist to find all kinds of information for you on the Web, but, in most areas of technical knowledge, where the knowledge base is continuously evolving and expanding, the little green frog will give you unsatisfactory information no matter how big the suitcases are that it is connected to.
It is this limitation of bots only being able to deal with information that has some kind of order and permanence that greatly limits what can be done with them. Sure, you can use artificial intelligence techniques, rule based systems, fuzzy logic, neural nets and genetic algorithms, but, nobody has succeeded yet in giving bots or electronic agents any real intelligence: at least, not of the kind that can deal with conflicting data, uncertainty or ambiguity.
This gives rise to a paradox because you can let bots or intelligent agents be anything you want them to be, you can use bots to help solve problems that bots are not very good at solving. To resolve this paradox, we need another paradigm shift that would see a database record as a personal agent that can represent a person on the Web.