Truckin' and the Knowledge Competition (1983)

Main Contributors: Dan Bobrow, Sanjay Mittal, and Mark Stefik

In the early 1980s, the fourth and fifth pods of the second floor of Xerox PARC were host to some bizarre and party-like events known as "knowledge competitions."

wpeB.jpg (478725 bytes)

This is a photo from one of the knowledge competitions. It shows a few PARC people who participated. Alan Bell is standing in the background, as are Dave Robson, Gaetano Borriello, and Mike Dixon. The man in a blue shirt pointing  at the screen is Danny Cohen from ISI. Seated next to him is Randy Katz from UCB. Mary Hausladen, the admin for KSA and organizational force behind our events, is seated on the couch behind them.

Xerox was in the business of selling "AI workstations" based on so-called dandelion, D0, and dorado computers. People in the knowledge systems area (KSA) at PARC had added an object-oriented extension to Interlisp to make a programming environment more suitable for building expert systems. (See LOOPS under Past Activities for more).  The Truckin' knowledge competition was the equivalent of a final exam for a one-week course that we offered periodically at PARC to teach people about object-oriented programming.

wpeB.jpg (478725 bytes)
Another photo from an early knowledge competition. PARC people in the picture include Bill van Melle and Cathy Marshall. Peter Denning is the man with the red badge second from the right.

Trucks, Commodities, and Road Stops

Truckin' was like a video game except that it was played by computer programs rather than by people. Each person taking the Loops course would program their truck to act for them in the simulation world.

board.jpg (59429 bytes)
Screen shot of the Truckin' game. There was a highway that ran from the upper left to the lower right of the screen. Player's trucks took turns driving on the highway. They could buy and sell goods at the various roadstops. Players could attach gauges to crucial quantities in their trucks, such as on the wallet (to show money), on the gas gauge, or on the current destination. Two trucks could park at any given road stop. The actual configuration of the board for a given game was determined by a random number generator at the beginning of the game.

Truckin' was like a video game except that it was played by computer programs rather than by people. Each person taking the Loops course would program their truck to act for them in the simulation world.

wpe9.jpg (661988 bytes)
Screen shot of the Loops class browser showing some of the objects in the simulation world. This shot shows classes for some of the goods that trucks could buy and sell at road stops. Every kind of good had physical attributes such as size and weight. They had a range of prices. Some commodities were perishable, meaning that they would spoil if kept too long in the truck. Other commoditites were fragile, meaning that they might break if they were transported at high speed over a section of rough road.

Knowledge and Challenges

To thrive in the simulation environment, a truck needed to buy and sell goods and make a profit. In a multi-player game, the winning truck was the one that made the most money and ended the game nearest "Alice's restaurant," a prominent road stop on the highway.

gameppl3.jpg (73501 bytes)
Another photograph from a Loops class.  Starting at the left in the back row are Mark Stefik, Lynn Conway, and and unknown person. Seated left to right are Sanjay Mittal, Daniel Bobrow, Yumi Iwasaki (Stanford), Jim Bennett (Stanford), Kris Halvorsen, Tom Dieterrich (Stanford), and Stu Card.

The Truckin' world had complications. Trucks consumed gasoline, according to their weight and load. Gasoline could be purchased at roadstops along the road. There was a gasoline crisis, and some gas stations ran out of gas. Stations were refilled periodically during the game. Parts of the road were hazardous. Fragile merchandise could break if carried at high speed over a rough road. Broken merchandise could not be sold at most roadstops, except at the flea market. To make life more complicated, the highway had other hazards. Two black sedans -- named Bonnie and Clyde -- roamed about at unpredictable intervals. They could rob a truck if they parked at the same roadstop. People used objects, rules, and Lisp to program the behavior of their trucks.

wpeC.jpg (1713457 bytes)
Screen shot of debugging in the Truckin'world. In this shot, someone has interrupted the simulation. The debug command   "stoppingplace" simply asks for the value of the instance variable "stoppingplace" for the current truck. The command "why stoppingplace" asks the system to check for an annotation on the instance variable, indicating what part of the program set the value. In this case, the rule-oriented part of the system set the value. The debugger traces back to the individual rule that was fired and which set the value. In the example shown, the rule says "If the goal is not to sit tight (an endgame strategy), and there is less than a quarter tank of gasoline, and there is a gas station within range, then make that gas station the destination. In the upper left window, a trace of rules is shown as they are executed. In this case, the last rule fired says that if a gas station is in range and is closer than the current destination (for commerce), then set the stopping place as the gas station.

Knowledge Ecologies in a Simulation World

To thrive in the simulation environment, a truck needed to buy and sell goods and make a profit. In a multi-player game, the winning truck was the one that made the most money and ended the game nearest "Alice's restaurant," a prominent road stop on the highway.

Strategies that worked well when a truck was alone in the simulation world sometimes proved ineffective when the truck was competing against others. For example, many people built their truck programs starting from a "luxury goods" specialist that we provided as a pedagogical example. This player did well by itself, because luxury goods (such as jewelry) tended to be lightweight and high value. They were not perishable and were not fragile, so they were relatively uncomplicated to transport and sell. However, in a competition (or "ecology") with many luxury good specialists, the supply was quickly exhausted.

When a knowledge competition started, some people got into the spirit of Truckin'. This shot shows the winning team of the first knowledge competition -- John Osterhout and Dave Patterson -- complete with their trucking hats and shades. In the background is Lynn Conway. Ron Kaplan is leaning against the wall behind them.

Sometimes the players interacted with the Truckin' environment in surprising ways. In one game, a player had taken an early lead speeding between truck stops only to break all of its merchandise by going too quickly over a rough road with fragile goods. The truck was languishing, unable to sell its merchandise, and slowly running out of money buying gasoline to keep going. As luck would have it, the hapless player was robbed by Bonnie or Clyde at a road stop. Relieved of its broken merchandise, the truck was back in the game, competing again.

Loops: The Movie

We made a movie to record some of the excitement we experience running the knowledge competitions and to document the loops course so that it could be taught by XSIS as part of their sales, marketing, and support effort. Here is a short clip of a knowledge competition.

alices.jpg (35676 bytes)

The Knowledge Competition (26 MB quicktime)

 

Here is a closing scenes from the complete Loops video made to document the course. Experience with the knowledge competition had sparked a lot of thinking for us as we began our expert systems projects and also the Colab project. A hint of the knowledge ecology ideas of the time is in the books that the three truckers are carrying. Daniel Bobrow carries Hawkin's The Selfish Gene, Sanjay Mittal carries Sun Tzu's The Art of War, and Mark Stefik carries Edwin O. Wilson's Sociobiology.