Encyclopedia > SHRDLU

  Article Content


SHRDLU was an early natural language understanding computer program, developed by Terry Winograd at MIT. It was written in the Lisp programming language on the DEC PDP-6 computer and a DEC graphics terminal. Later additions were made at the computer graphics labs at the University of Utah, adding a full 3D rendering of SHRDLU's "world".

SHRDLU allowed user interaction using English terms. The user instructed SHRDLU to move various objects around in a small "blocks world" containing various basic objects: blocks, cones, balls, etc. What made SHRDLU unique was the combination of four simple ideas that added up to make the simulation of "understanding" far more convincing.

One was that SHRDLU's world was so simple that the entire set of objects and locations could be described by including as few as perhaps 50 words, nouns like "block" and "cone", verbs like "place on" and "move to", and adjectives like "big" and "blue". The possible combinations of these basic language building blocks were quite simple, and the program was fairly adept at figuring out what the user meant.

SHRDLU also included a basic memory to supply context. One could ask SHRDLU to "put the green cone on the red block" and then "take the cone off"; "the cone" would be taken to mean the cone one had just talked about. SHRDLU could search back further to find the proper context in most cases when additional adjectives were supplied. One could also ask questions about the history, for instance one could ask "did you pick up anything before the cone?"

A side effect of this memory, and the original rules SHRDLU was supplied with, is that the program could answer questions about what was possible in the world and what was not. For instance, SHRDLU would deduce that blocks could be stacked by looking for examples, but would realize that triangles couldn't be stacked, after having tried it. The "world" contained basic physics to make blocks fall over, independent of the language parser.

Finally, SHRDLU could also remember names given to objects, or arrangements of them. For instance one could say "a steeple is a small triangle on top of a tall rectangle"; SHRDLU could then answer questions about steeples in the blocks world, and build new ones.

The result was a tremendously successful demonstration of AI. This led other AI researchers to excessive optimism which was soon lost when later systems attempted to deal with more realistic situations with real-world ambiguity and complexity. Continuing efforts in the original SHRDLU stream have tended to focus on providing the program with considerably more information from which it can draw conclusions, leading to efforts like Cyc.

Winograd has since distanced himself from SHRDLU and the field of AI, believing SHRDLU a research dead end.

The name SHRDLU was derived from ETAOIN SHRDLU, the arrangement of the alpha keys on a Linotype machine.


  • Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT AI Technical Report 235, February 1971

See also:

adventure game

External links

SHRDLU (http://hci.stanford.edu/~winograd/shrdlu/)
- Terry Winograd's SHRDLU page, includes source code
Conversation with SHRDLU (http://www.ee.cooper.edu/courses/course_pages/past_courses/EE459/shrdlu/)
- includes an annotated version of the sample conversation found above
SHRDLU resurrection (http://www.semaphorecorp.com/misc/shrdlu)
- re-written versions of SHRDLU, including a Java3D version

All Wikipedia text is available under the terms of the GNU Free Documentation License

  Search Encyclopedia

Search over one million articles, find something about almost anything!
  Featured Article
Quadratic formula

... the expression to the left of "=", that will make it a perfect square trinomial of the form x2 + 2xy + y2. Since "2xy" in this case is (b/a)x, we must have y = b/(2a), so ...

This page was created in 38.7 ms