SHRDLU the Robot

SHRDLU is a computer program constructed at MIT by Terry Winograd. SHRDLU controls a robot arm that operates above a table top strewn with colored play blocks of various shapes and sizes. Both the arm and its environment are simulated by a computer which also synthesizes a TV display of the arm's activities. Communication between human and robot is via a keyboard, with the computer's replies appearing as 'subtitles' on the TV screen. Below is a representative dialog between SHRDLU and Winograd, which demonstrates SHRDLU's ability to handle natural English instructions and discuss the "motives"; of its own actions.

Winograd's questions are shown in boldface. SHRDLU's responses are shown in capital letters indicated by a green dot (). Winograd's comments are italicized in parentheses.






Pick up a big red block.

 OK.

(On the screen, the robot arm swings into action. Two red blocks are 
visible, one small, one large, as on figure above.  The large one has a 
green cube stacked on top of it. The robot first transfers the green cube 
to the table top, and then picks up the red block.)

Grasp the pyramid.

 I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.

(There are three pyramids in the scene, and SHRDLU knows that phrases
beginning with "the" are intended to refer to a specific object the speaker
has in mind.)

Find a block which is taller than the one you are holding and put it
into the box.

(SHRDLU has to figure out what is meant by "one" and "it", as well as using
deduction to decide which block it is holding.)

 BY 'IT', I ASSUME YOU MEAN THE BLOCK WHICH 
IS TALLER THAN THE ONE I AM HOLDING.

(SHRDLU puts down the red block, picks up a taller blue one, and places 
it in the box.)

What does the box contain?

 THE BLUE PYRAMID AND THE BLUE BLOCK.

What is the pyramid supported by?

 THE BOX.

(There are in fact two other pyramids on the table, a red one and a green 
one. SHRDLU rightly assumes that the question concerns the pyramid it 
just mentioned.)

How many blocks are not in the box?

 FOUR OF THEM.

Is at least one of them narrower than the one which I told you to pick up?

(The phrase "one of them" must be analyzed to refer back to the previous
question, and "the one which..." phrase must also refer to blocks.  The memory
of past events is used to deduce which block this refers to.)

 YES, THE RED CUBE.

Is it supported?

(SHRDLU has heuristics about what information is relevant to a person who
asks a question, even if the person does not provide that information
specifically.)

 YES, BY THE TABLE.

Can the table pick up blocks?

 NO.

(SHRDLU's semantic rules include the knowledge that "picking up" must be
done by an animate object, and that the table is not animate.)

Can a pyramid be supported by a block?

 YES.

(SHRDLU finds an actual example, so it knows this is possible.)

Can a pyramid support a pyramid?

 I DON'T KNOW.

(There is no example of this in the scene.)

Stack up two pyramids.

(The robot tries and fails.)

 I CAN'T.

The blue pyramid is mine.

 I UNDERSTAND.

(Possession is an unknown property of objects about which SHRDLU can be
told.  It stores this information in its data base.)

I own all blocks which are not red, but I don't own anything which supports
a pyramid.

 I UNDERSTAND.

(The result of understanding these sentences is the creation of new
procedures within SHRDLU for deducing whether you own something.  The next
four questions give SHRDLU an opportunity to display its powers of
deduction and logic.)

Do I own the box?

 NO.

Do I own anything in the box?

 YES, TWO THINGS: THE BLUE BLOCK AND THE BLUE PYRAMID.

Is there anything which is bigger than every pyramid but is not as wide 
as the thing that supports it?

 YES, THE BLUE BLOCK.

Does the shortest thing the tallest pyramid's support supports support 
anything green?

(SHRDLU took less than twenty seconds to make sense of this; I needed 
rather longer.)

 YES, THE GREEN PYRAMID.

What colour is it?

(SHRDLU sensibly assumes that the question is not about the green pyramid.)

 BY 'IT', I ASSUME YOU MEAN THE SHORTEST 
THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS. RED.

Does a steeple

 SORRY, I DON'T UNDERSTAND THE WORD 'STEEPLE'.

(SHRDLU interrupts as soon as it encounters a word that it doesn't know.)

A 'steeple' is a stack which contains two green cubes and a pyramid.

(The quote marks indicate that you are defining a new word.  The definition
is added to SHRDLU's dictionary in a form compatible with all the words it
already knows.)

 I UNDERSTAND.

Are there any steeples now?

 NO.

Will you please stack up both of the red blocks and either a green cube 
or a pyramid?

 OK.

(SHRDLU opts to stack the red blocks with a green cube. In the course of 
building its stack, it has to move the green pyramid off one of the red 
blocks.  Remember this.)

Which green block is sitting on the table?
 THE ONE WHICH SUPPORTS THE RED PYRAMID.

Put the littlest pyramid on top of it.

 OK.

(SHRDLU duly picks up the tiny green pyramid.)

Had you touched any pyramid before you put one on the green block?

 YES, THE GREEN ONE.

(SHRDLU deduces from its memory what event is being referred to, and can
relate other events to it in time.)

When did you pick it up?

 WHEN I WAS STACKING UP A RED CUBE, A LARGE 
GREEN CUBE AND A LARGE RED BLOCK.

Why?

(SHRDLU remembers immediately previous sentences to understand questions
like this and the following ones.)

 TO GET RID OF IT.

Why did you do that?

("That" refers to the action mentioned in SHRDLU's last answer.)

 TO CLEAR OFF THE RED CUBE.

Why did you clear off that cube?

(Here, "that" means the cube just referred to.)

 TO PUT IT ON A LARGE GREEN CUBE.

Why did you do that?

 TO STACK UP THE RED CUBE, A LARGE RED BLOCK, AND A
LARGE GREEN CUBE.

Why did you do that?

 BECAUSE YOU ASKED ME TO.