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.

[The dialog is taken from "Artificial Intelligence: a philosophical introduction" by John Copeland, Blackwell Publishers, Cambridge, MA 1993; pages 16-18.]

Winograd's questions are shown in boldface. SHRDLU's responses are shown in capital letters indicated by a green dot (). Copeland'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.)

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

 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 he 
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?

YES, THE RED CUBE.

Is it supported?

YES, BY THE GREEN BLOCK.

Can the table pick up blocks?

 NO.

Can a pyramid be supported by a block?

 YES.

Can a pyramid support a pyramid?

I DON'T KNOW.

Stack up two pyramids.

(The robot tries and fails.)

 I CAN'T.

The blue pyramid is mine.

 I UNDERSTAND.

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

 I UNDERSTAND.

(The next four questions give SHRDLU an opportunity to display his 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 he encounters a word that he doesn't know.)

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

 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 his stack, he 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.

When did you pick it up?

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

Why?

 TO GET RID OF IT.

Why did you do that?

 TO CLEAR OFF THE RED CUBE.

Why did you clear off that cube?

  TO PUT IT ON A LARGE GREEN CUBE.

Why did you do that?

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

Why did you do that?

 BECAUSE YOU ASKED ME TO.