SHRDLU was an early
natural-language understanding
Natural-language understanding (NLU) or natural-language interpretation (NLI) is a subtopic of natural-language processing in artificial intelligence that deals with machine reading comprehension. Natural-language understanding is considered an A ...
computer program
A computer program is a sequence or set of instructions in a programming language for a computer to execute. Computer programs are one component of software, which also includes documentation and other intangible components.
A computer program ...
, developed by
Terry Winograd
Terry Allen Winograd (born February 24, 1946) is an American professor of computer science at Stanford University, and co-director of the Stanford Human–Computer Interaction Group. He is known within the philosophy of mind and artificial intell ...
at
MIT
The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the m ...
in 1968–1970. In the program, the user carries on a conversation with the computer, moving objects, naming collections and querying the state of a simplified "
blocks world
The blocks world is a Automated planning and scheduling, planning domain in artificial intelligence. The algorithm is similar to a set of wooden blocks of various shapes and colors sitting on a table. The goal is to build one or more vertical sta ...
", essentially a virtual box filled with different blocks.
SHRDLU was written in the
Micro Planner and
Lisp programming language
Lisp (historically LISP) is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation.
Originally specified in 1960, Lisp is the second-oldest high-level programming language still in common us ...
on the
DEC PDP-6
The PDP-6, short for Programmed Data Processor model 6, is a computer developed by Digital Equipment Corporation (DEC) during 1963 and first delivered in the summer of 1964.
It was an expansion of DEC's existing 18-bit systems to use a 36-bit da ...
computer and a DEC graphics
terminal
Terminal may refer to:
Computing Hardware
* Terminal (electronics), a device for joining electrical circuits together
* Terminal (telecommunication), a device communicating over a line
* Computer terminal, a set of primary input and output dev ...
. Later additions were made at the
computer graphics
Computer graphics deals with generating images with the aid of computers. Today, computer graphics is a core technology in digital photography, film, video games, cell phone and computer displays, and many specialized applications. A great de ...
labs at the
University of Utah
The University of Utah (U of U, UofU, or simply The U) is a public research university in Salt Lake City, Utah. It is the flagship institution of the Utah System of Higher Education. The university was established in 1850 as the University of De ...
, adding a full 3D rendering of SHRDLU's "world".
The name SHRDLU was derived from
ETAOIN SHRDLU, the arrangement of the letter keys on a
Linotype machine
The Linotype machine ( ) is a "line casting" machine used in printing; manufactured and sold by the former Mergenthaler Linotype Company and related It was a hot metal typesetting system that cast lines of metal type for individual uses. Lin ...
, arranged in descending order of usage frequency in English.
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
Physics is the natural science that studies matter, its fundamental constituents, its motion and behavior through space and time, and the related entities of energy and force. "Physical science is that department of knowledge which r ...
to make blocks fall over, independent of the language
parser
Parsing, syntax analysis, or syntactic analysis is the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from Lati ...
.
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.
Here is a famous demonstration of SHRDLU:
:Person: Pick up a big red block.
:Computer: OK.
:Person: Grasp the pyramid.
:Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN.
:Person (changing their mind): 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.
: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.
: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.
:Person: Put the littlest pyramid on top of it.
:Computer: OK.
: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.
: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.
: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!
Consequences
SHRDLU was considered a tremendously successful demonstration of
artificial intelligence
Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
(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
Cyc (pronounced ) is a long-term artificial intelligence project that aims to assemble a comprehensive ontology and knowledge base that spans the basic concepts and rules about how the world works. Hoping to capture common sense knowledge, Cyc f ...
, have tended to focus on providing the program with considerably more information from which it can draw conclusions.
In a 1991 interview, Winograd said about SHRDLU:
Though not intentionally developed as such, SHRDLU is considered the first known formal example of
interactive fiction
''
Interactive fiction, often abbreviated IF, is software simulating environments in which players use text commands to control characters and influence the environment. Works in this form can be understood as literary narratives, either in the ...
, 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
''Colossal Cave Adventure'' (also known as ''Adventure'' or ''ADVENT'') is a text-based adventure game, released in 1976 by developer Will Crowther for the PDP-10 mainframe computer. It was expanded upon in 1977 by Don Woods. In the game, the pl ...
'' is broadly considered to be the first true work of interactive fiction.
See also
*
Planner programming language
Planner (often seen in publications as "PLANNER" although it is not an acronym) is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro-Planner and Pico-Planner were implemented, and th ...
References
*
*
External links
* – Terry Winograd's SHRDLU page, includes source code
* - A re-written versions of SHRDLU, including a Java3D version
{{DEFAULTSORT:Shrdlu
History of artificial intelligence
Natural language processing software
Computer-related introductions in 1968