[Source](http://hci.stanford.edu/winograd/shrdlu/ "Permalink to SHRDLU")
# 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][1] 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][2] of SHRDLU implemented in Common Lisp, or a [graphical 3-D][3] 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][4] <[winograd@cs.stanford.edu][5]>. You can also see the story of [how SHRDLU got its name.][6]
>
> See more about shrdlu at [Wikipedia][7]
>
>
[ ][8]
>
>
| ----- |
| ![][9] | ![][10] |
| 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 SINCEWE 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 OFTHE 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!`