SHRDLU
SHRDLU
Functionality
SHRDLU was primarily a language parser that allowed user interaction using English terms. The user
instructed SHRDLU to move various objects around in the "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 green cone one
had just talked about. SHRDLU could search back further through the interactions 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.
Consequences
SHRDLU was considered a tremendously successful demonstration of artificial intelligence (AI). This led
other AI researchers to excessive optimism which was soon lost when later systems attempted to deal with
situations with a more realistic level of ambiguity and complexity. Subsequent efforts of the SHRDLU
type, such as Cyc, have tended to focus on providing the program with considerably more information from
which it can draw conclusions.
[...] the famous dialogue with SHRDLU where you could pick up a block, and so on, I very
carefully worked through, line by line. If you sat down in front of it, and asked it a question
that wasn't in the dialogue, there was some probability it would answer it. I mean, if it was
reasonably close to one of the questions that was there in form and in content, it would
probably get it. But there was no attempt to get it to the point where you could actually hand it
to somebody and they could use it to move blocks around. And there was no pressure for that
whatsoever. Pressure was for something you could demo. Take a recent example,
Negroponte's Media Lab, where instead of "perish or publish" it's "demo or die." I think that's
a problem. I think AI suffered from that a lot, because it led to "Potemkin villages", things
which - for the things they actually did in the demo looked good, but when you looked behind
that there wasn't enough structure to make it really work more generally.
Though not intentionally developed as such, SHRDLU is considered the first known formal example of
interactive fiction, as the user interacts with simple commands to move objects around a virtual
environment, though lacking the distinct story-telling normally present in the interactive fiction genre. The
1976-1977 game Colossal Cave Adventure is broadly considered to be the first true work of interactive
fiction.[4]
See also
Planner programming language
References
1. Winograd, Terry (1971-01-01). "Procedures as a Representation for Data in a Computer
Program for Understanding Natural Language" (https://dspace.mit.edu/handle/1721.1/7095).
hdl:1721.1/7095 (https://hdl.handle.net/1721.1%2F7095).
2. "SHRDLU" (http://hci.stanford.edu/winograd/shrdlu/). Stanford Human-Computer Interaction
(HCI) Group.
3. "Oral history interview with Terry Allen Winograd" (https://conservancy.umn.edu/handle/1129
9/107717). Charles Babbage Institute. 1991-12-11. hdl:11299/107717 (https://hdl.handle.net/
11299%2F107717).
4. Montfort, Nick (2003). Twisty Little Passages: An Approach To Interactive Fiction (https://boo
ks.google.com/books?id=XiJFORKEm0oC&q=SHRDLU). Cambridge: The MIT Press.
pp. 84–85. ISBN 0-262-13436-5.
Winograd, Terry (1970-08-24). "Procedures as a Representation for Data in a Computer
Program for Understanding Natural Language" (http://dspace.mit.edu/bitstream/handle/1721.
1/7095/AITR-235.pdf) (PDF). MIT AI Technical Report 235. Archived (https://web.archive.org/
web/20201003212106/http://dspace.mit.edu/bitstream/handle/1721.1/7095/AITR-235.pdf)
(PDF) from the original on 2020-10-03.</ref>
Winograd, Terry (January 1972). "Understanding natural language". Cognitive Psychology.
3 (1): 1–191. doi:10.1016/0010-0285(72)90002-3 (https://doi.org/10.1016%2F0010-0285%2
872%2990002-3).
External links
Winograd, Terry (2001). "SHRDLU" (http://hci.stanford.edu/~winograd/shrdlu/). Archived (http
s://web.archive.org/web/20200817093131/http://hci.stanford.edu/~winograd/shrdlu/) from the
original on 2020-08-17. – Terry Winograd's SHRDLU page, includes source code