0% found this document useful (0 votes)
658 views

Brief Description of Shrdlu

SHRDLU was an early natural language processing program developed by Terry Winograd at MIT in the late 1960s. It carried on simple dialogs about moving blocks and objects in a simulated "BLOCKS world" displayed on an early computer screen. SHRDLU demonstrated an ability to understand language in context, identify objects, answer questions and carry out commands by manipulating representations of the blocks world in its knowledge base. The example dialog shows it engaging in a back-and-forth question and answer exchange to discuss the state of the blocks world and carry out requested actions.

Uploaded by

Sati Sivan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
658 views

Brief Description of Shrdlu

SHRDLU was an early natural language processing program developed by Terry Winograd at MIT in the late 1960s. It carried on simple dialogs about moving blocks and objects in a simulated "BLOCKS world" displayed on an early computer screen. SHRDLU demonstrated an ability to understand language in context, identify objects, answer questions and carry out commands by manipulating representations of the blocks world in its knowledge base. The example dialog shows it engaging in a back-and-forth question and answer exchange to discuss the state of the blocks world and carry out requested actions.

Uploaded by

Sati Sivan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

BRIEF DESCRIPTION OF SHRDLU

---------------------------
SHRDLU IS A SYSTEM FOR THE COMPUTER UNDERSTANDING
OF ENGLISH. THE SYSTEM ANSWERS QUESTIONS, EXECUTES
COMMANDS, AND ACCEPTS INFORMATION IN NORMAL ENGLISH
DIALOG. IT USES SEMANTIC INFORMATION AND CONTEXT TO
UNDERSTAND DISCOURSE AND TO DISAMBIGUATE SENTENCES. IT
COMBINES A COMPLETE SYNTACTIC ANALYSIS OF EACH SENTENCE
WITH A "HEURISTIC UNDERSTANDER" WHICH USES DIFFERENT
KINDS OF INFORMATION ABOUT A SENTENCE, OTHER PARTS OF
THE DISCOURSE, AND GENERAL INFORMATION ABOUT THE WORLD
IN DECIDING WHAT THE SENTENCE MEANS.

SHRDLU IS BASED ON THE BELIEF THAT A COMPUTER


CANNOT DEAL REASONABLY WITH LANGUAGE UNLESS IT CAN
"UNDERSTAND" THE SUBJECT IT IS DISCUSSING. THE PROGRAM
IS GIVEN A DETAILED MODEL OF THE KNOWLEDGE NEEDED BY A
SIMPLE ROBOT HAVING ONLY A HAND AND AN EYE. THE USER
CAN GIVE IT INSTRUCTIONS TO MANIPULATE TOY OBJECTS,
INTERROGATE IT ABOUT THE SCENE, AND GIVE IT INFORMATION
IT WILL USE IN DEDUCTION. IN ADDITION TO KNOWING THE
PROPERTIES OF TOY OBJECTS, THE PROGRAM HAS A SIMPLE
MODEL OF ITS OWN MENTALITY. IT CAN REMEMBER AND
DISCUSS ITS PLANS AND ACTIONS AS WELL AS CARRY THEM OUT.
IT ENTERS INTO A DIALOG WITH A PERSON, RESPONDING TO
ENGLISH SENTENCES WITH ACTIONS AND ENGLISH REPLIES, AND
ASKING FOR CLARIFICATION WHEN ITS HEURISTIC PROGRAMS
CANNOT UNDERSTAND A SENTENCE THROUGH USE OF CONTEXT AND
PHYSICAL KNOWLEDGE.

IN THE PROGRAMS, SYNTAX, SEMANTICS, AND INFERENCE


ARE INTEGRATED IN A "VERTICAL" SYSTEM IN WHICH EACH PART
IS CONSTANTLY COMMUNICATING WITH THE OTHERS. SHRDLU USES
SYSTEMIC GRAMMAR, A TYPE OF SYNTACTIC ANALYSIS WHICH IS
DESIGNED TO DEAL WITH SEMANTICS. RATHER THAN
CONCENTRATING ON THE EXACT FORM OF RULES FOR THE SHAPE
OF LINGUISTIC CONSTITUENTS, IT IS STRUCTURED AROUND
CHOICES FOR CONVEYING MEANING. IT ABSTRACTS THE
RELEVANT FEATURES OF THE LINGUISTIC STRUCTURES WHICH ARE
IMPORTANT FOR INTERPRETING THEIR MEANING.

IN SHRDLU MANY KINDS OF KNOWLEDGE ARE REPRESENTED


IN THE FORM OF PROCEDURES RATHER THAN TABLES OF RULES OR
LISTS OF PATTERNS. BY DEVELOPING SPECIAL PROCEDURAL
LANGUAGES FOR GRAMMAR, SEMANTICS, AND DEDUCTIVE LOGIC,
THE FLEXIBILITY AND POWER OF PROGRAMMING LANGUAGES IS
GAINED WHILE RETAINING THE REGULARITY AND
UNDERSTANDABILITY OF SIMPLER RULE FORMS. EACH PIECE OF
KNOWLEDGE CAN BE A PROCEDURE, AND CAN CALL ON ANY OTHER
PIECE OF KNOWLEDGE IN THE SYSTEM.

IMPLEMENTATION AND VERSION INFORMATION


--------------------------------------
SHRDLU WAS PROGRAMMED AT THE MIT ARTIFICIAL
INTELLIGENCE LABORATORY BY T. WINOGRAD AS PART OF A
DOCTORAL DISSERTATION IN MATHEMATICS.

THE PROGRAM WAS MODIFIED DURING THE LAST YEAR BY T.


WINOGRAD, D. MACDONALD, J. HILL, AND S. CARD TO CHANGE
SOME OF ITS INTERNAL REPRESENTATIONS AND TO MAKE THE
CODE EASIER TO UNDERSTAND FOR PERSONS WISHING TO STUDY
THE PROGRAM. NO MAJOR ATTEMPTS WERE MADE TO INCREASE
ITS POWER.

THE PROGRAM RUNNING AT C-MU IS THE MODIFIED VERSION.


THE DISPLAY FACILITIES OF THE PROGRAM HAVE NOT BEEN
IMPLEMENTED AT C-MU. THE PROGRAM WAS COAXED AWAY FROM
MIT'S INCOMPATIBLE TIME-SHARING SYSTEM (ITS) AND
CONVERTED TO RUN UNDER THE DEC TOPS10 (10-50) OPERATING
SYSTEM BY CONVERTING MACLISP ITSELF (AND TO DO THAT,
CONVERTING THE MIDAS ASSEMBLY LANGUAGE). THE MACLISP
CONVERSION WAS DONE BY GEORGE ROBERTSON.

THE VERSION OF SHRDLU BEING DISTRIBUTED FROM CMU IS NAMED


THE C1 VERSION. IT IS CURRENT WITH THE MIT VERSION TO
JUNE 1972. THE SHOW AND TELL USER INTERFACE AND VARIOUS
CHANGES WERE ADDED FOR THE C-MU WORKSHOP ON NEW
TECHNOLOGIES IN COGNITIVE RESEARCH IN JUNE 1972.

SHRDLU IS WRITTEN IN MACLISP 1.6 (VINTAGE JUNE


1972). IT USES ABOUT 100 TO 140K 36-BIT WORDS OF MEMORY
ON A PDP-10.
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://www-
csli.stanford.edu/ftp-pub/shrdlu.tar.gz .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.
 

 
 Later color rendering (Univ. of
 Original screen display
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!

You might also like