This directory contains the source files for SHRDLU, a program written by Terry Winograd at the MIT AI Lab in 1968-1970. For a full description, see Terry Winograd, Understanding Natural Language, Academic Press, 1972. The version here is a cleaned up version done by Stu Card, Andee Rubin, and Terry Winograd in 1972. The files are available for anyone who wants to use them (let me know if you get something running!). Terry Winograd (winograd@cs.stanford.edu) -------- Excerpt from the PROVISIONAL SHRDLU USERS' MANUAL (see file shrdlu/manual): 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.