hn-classics/_stories/1971/14351485.md

6.8 KiB

Source

SHRDLU

SHRDLU

SHRDLU is a program for understanding natural language, written by Terry Winograd at the M.I.T. Artificial Intelligence Laboratory in 1968-70. SHRDLU carried on a simple dialog (via teletype) with a user, about a small world of objects (the BLOCKS world) shown on an early display screen (DEC-340 attached to a PDP-6 computer). 

SHRDLU is described in Winograd's dissertation, which was issued as MIT AI Technical Report 235, February 1971 with the title Procedures as a Representation for Data in a Computer Program for Understanding Natural Language It was published as a full issue of the journal Cognitive Psychology Vol. 3 No 1, 1972, and as a book, Understanding Natural Language (Academic Press, 1972).

SHRDLU was written in MacLisp for the ITS system, vintage 1970. The source code is available at http://hci.stanford.edu/winograd/shrdlu/code and as a TAR file at http://hci.stanford.edu/winograd/shrdlu/code.tar .A discussion of various efforts is on the SHRDLU is at http://www.semaphorecorp.com/misc/shrdlu.html

You can download a Windows text-only console version of SHRDLU implemented in Common Lisp, or a graphical 3-D version implemented with an extra Java layer. Source code is included. These files were supplied by Greg Sharp, and were produced by the UMR student project to resurrect SHRDLU. Double-click the SHRDLU.BAT file in either version to start running. No guarantees.

If you have other questions, contact Terry Winograd <winograd@cs.stanford.edu>. You can also see the story of how SHRDLU got its name.

See more about shrdlu at Wikipedia

| ----- | |   |   |
|  Original screen display |  Later color rendering (Univ. of Utah) |

      

The dialog that was used as a SHRDLU demo:
Person: PICK UP A BIG RED BLOCK. : Computer: OK. (does it) : Person: GRASP THE PYRAMID. : Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN. : Person: FIND A BLOCK WHICH IS TALLER THAN THE ONE YOU ARE HOLDING AND PUT IT INTO THE BOX. : Computer: BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING. : Computer: OK. (does it) : Person: WHAT DOES THE BOX CONTAIN? : Computer: THE BLUE PYRAMID AND THE BLUE BLOCK. : Person: WHAT IS THE PYRAMID SUPPORTED BY? : Computer: THE BOX. : Person: HOW MANY BLOCKS ARE NOT IN THE BOX? : Computer: FOUR OF THEM. : Person: IS AT LEAST ONE OF THEM NARROWER THAN THE ONE WHICH I TOLD YOU TO PICK UP? : Computer: YES, THE RED CUBE. : Person: IS IT SUPPORTED? : Computer: YES, BY THE TABLE. : Person: CAN THE TABLE PICK UP BLOCKS? : Computer: NO. : Person: CAN A PYRAMID BE SUPPORTED BY A BLOCK? : Computer: YES. : Person: CAN A PYRAMID SUPPORT A PYRAMID? : Computer: I DON'T KNOW. : Person: STACK UP TWO PYRAMIDS. : Computer: I CAN'T. : Person: WILL YOU PLEASE STACK UP BOTH OF THE RED BLOCKS AND EITHER A GREEN CUBE OR A PYRAMID? : Computer: OK. (does it) : Person: WHICH CUBE IS SITTING ON THE TABLE? : Computer: THE LARGE GREEN ONE WHICH SUPPORTS THE RED PYRAMID. : Person: IS THERE A LARGE BLOCK BEHIND A PYRAMID? : Computer: YES, THREE OF THEM: A LARGE RED ONE, A LARGE GREEN CUBE, AND THE BLUE ONE. : Person: PUT A SMALL ONE ONTO THE GREEN CUBE WHICH SUPPORTS A PYRAMID. : Computer: OK. (does it) : Person: PUT THE LITTLEST PYRAMID ON TOP OF IT. : Computer: OK. (does it) : Person: DOES THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS SUPPORT ANYTHING GREEN? : Computer: YES, THE GREEN PYRAMID. : Person: WHAT COLOR IS IT? : Computer: BY "IT", I ASSUME YOU MEAN THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS. : Computer: RED : Person: HOW MANY THINGS ARE ON TOP OF GREEN CUBES? : Computer: I'M NOT SURE WHAT YOU MEAN BY "ON TOP OF "IN THE PHRASE "ON TOP OF GREEN CUBES " . :  DO YOU MEAN:

1 - DIRECTLY ON THE SURFACE : 2 - ANWHERE ON TOP OF ? : Person: 2 : Computer: THREE OF THEM. : Person: HAD YOU TOUCHED ANY PYRAMID BEFORE YOU PUT THE GREEN ONE ON THE LITTLE CUBE? : Computer: YES, THE GREEN ONE. : Person: WHEN DID YOU PICK IT UP? : Computer: WHILE I WAS STACKING UP THE RED CUBE, A LARGE RED BLOCK AND A LARGE GREEN CUBE. : Person: WHY? : Computer: TO GET RID OF IT. : Person: WHY DID YOU DO THAT? : Computer: TO CLEAN OFF THE RED CUBE. : Person: WHY DID YOU CLEAR OFF THAT CUBE? : Computer: TO PUT IT ON A LARGE GREEN CUBE. : Person: WHY DID YOU DO THAT? : Computer: TO STACK UP THE RED CUBE , A LARGE RED BLOCK AND A LARGE GREEN CUBE. : Person: WHY DID YOU DO THAT? : Computer: BECAUSE YOU ASKED ME TO. : Person: HOW DID YOU DO IT? : Computer: BY PUTTING A LARGE RED BLOCK ON THE TABLE ; THEN LETTING GO OF IT ; THEN PUTTING A LARGE GREEN CUBE ON IT ; THEN LETTING GO OF THAT CUBE ; THEN PUTTING THE RED CUBE ON THAT CUBE; THEN LETTING GO OF THAT CUBE. : Person: HOW MANY OBJECTS DID YOU TOUCH WHILE YOU WERE DOING IT? : Computer: FOUR OF THEM. : Person: WHAT DID THE RED CUBE SUPPORT BEFORE YOU STARTED TO CLEAN IT OFF? : Computer: THE GREEN PYRAMID. : Person: THERE WERE FIVE BLOCKS TO THE LEFT OF THE BOX THEN. : Computer: NO, ONLY FOUR OF THEM: THE RED CUBE, TWO LARGE GREEN CUBES AND A LARGE RED BLOCK. : Person: PUT THE BLUE PYRAMID ON THE BLOCK IN THE BOX. : Computer: OK. (does it) : Person: IS THERE ANYTHING WHICH IS BIGGER THAN EVERY PYRAMID BUT IS NOT AS WIDE AS THE THING THAT SUPPORTS IT? : Computer: YES, THE BLUE BLOCK. : Person: DOES A STEEPLE : Computer interrupting: SORRY, I DON'T KNOW THE WORD "STEEPLE". : Person: A "STEEPLE" IS A STACK WHICH CONTAINS TWO GREEN CUBES AND A PYRAMID. : Computer: I UNDERSTAND. : Person: ARE THERE ANY STEEPLES NOW? : Computer: NO. : Person: BUILD ONE. : Computer: OK. (does it) : Person: CALL THE BIGGEST BLOCK "SUPERBLOCK". : Computer: OK. : Person: HAVE YOU PICKED SUPERBLOCK UP SINCE WE BEGAN? : Computer: YES. : Person: WHY DID YOU DROP IT? : Computer: BY "IT", I ASSUME YOU MEAN THE SUPERBLOCK. :  I CAN'T EXPLAIN A NON-EXISTENT EVENT. : Person: IS THERE ANYTHING TO THE RIGHT OF THE RED PYRAMID? : Computer: YES, FOUR THINGS: THE BOX , THE RED CUBE, THE BLUE PYRAMID AND THE BLOCK NAMED SUPERBLOCK : Person: THANK YOU. : Computer: YOU'RE WELCOME!