6.8 KiB
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!