You are on page 1of 3

SHRDLU

Page 1 of 3

Restoration of SHRDLU
Phase III
ProjectPlan January 25, 2000 Overview
SHRDLU is a program that manipulates a virtual "block world," and interfaces with the user in English conversation. SHRDLU was written almost 30 years ago, in a now-obsolete language (MACLISP), to run on a now-obsolete system, and as such has been relegated to the texts of Philosophy and Computer Science, where it provides a remarkable example of "intelligence" through the understanding of natural language. The goal of this project is to "breathe life" into SHRDLU, by porting it to a modern language that will run on a variety of systems. Additionally, the edition will be re -released as free software so that additions and other ports may be made. By doing this, we will have recovered not only a valuable historical artifact, but also a wonderful learning tool.

Requirements
Our project contact, Dr. Carol Ann Smith, set the project requirements. It is her goal to have a working copy that she can demonstrate to her philosophy students. While this seems to be a simple concept on the outside, it contains several intrinsic requirements. In order to be usable by all of her students, now and in the future, it needs to be written in a widely and freely available language. Additionally, it needs to be released under a public license to ensure that her students will be able to use it at school or at their homes. Also, it will need to be usable on the general purpose UNIX machines and in the labs in the Humanities -Social Sciences building. For this reason, our port will run on HP -UX and Windows NT/9x.
Note that these two operating systems are not exclusive, due to the portable nature of the language we are choosing, the ported Shrdlu should be able to run on any system that supports GNU Common LISP and Java.

Current State
During the first semester of work on SHRDLU, a tremendous amount of knowledge about SHRDLU was gathered. As the work progressed, project members saw more and more how complex the system was, but the focus was on a straightforward porting of MACLISP operations to their LISP equivalents. It seemed most important to turn the source completely into LISP, even if it was not "correct." Once this was done, testing could provide valuable clues as to how to port more "correctly." Unfortunately, SHRDLU's various components are very "entangled," with each component depending heavily on many of the others. Our assumption that we could port SHRDLU with minimal knowledge of how the system worked proved to be costly. By the conclusion of the first phase, a few isolated pieces of the source could be compiled by our LISP interpreter. MicroPlanner, which is actually considered a separate language, was by far the most independent piece of the puzzle, and thus proved the most testable. Even still, it was far from "functional." The next most independent component is Programmar, also considered a language in its own right. Programmar is a tool by which english grammar can be parsed into a form from which meaning can be more readily extracted. Since the start of the second phase of the project, Programmar has been brought to a point beyond that of MicroPlanner. It (with the help of other components) can now accept many English sentences and successfully output MicroPlanner code. The MicroPlanner code is also parsed correctly in most instances to result in a mostly -functional system. There remains some major bugs in the system, however. Such as the parsing of some forms of questions, and the functionality of the history database.

Present Work: Tentative Schedule & Testing Plan


Our main goal for this semester is to complete the work of previous semesters by fixing the remaining bugs. With a fully -functional system we can develop a web or client/server based implementation for general distribution. We will also look into copyright options. Mid-February: l Everyone comfortable with programming in LISP and the system as it stands now.

http://web.umr.edu/~shrdlu/project_plan.html

8/16/2004

SHRDLU

Page 2 of 3

Mid March:
l l l

Fully functional English parsing, with semantics enabled. Combined testing: asking of English questions about the state of the world, or commands to manipulate that world. Begin integration of Java web or client/server implementation.

Remaining time:
l

Integration of the remaining components into a fully interactive system with Java front-end.

Key Issues Starting From Scratch -- Again


A major challenge to the project is that only one member in the group is returning from last semester. In another sense, it may be greatly beneficial to have fresh new perspectives. Also, only the returning member of the group has any experience with functional languages such as LISP. This will most likely set us back by a few weeks in order for the new members to become familiar with the peculiarities of functional languages, and those of the code we have to work with.

Understanding the System


As was discovered, SHRDLU is quite complicated, due to its "entangled" structure, in which there is no clear-cut hierarchy of dependence. As such, blindly porting and testing the system is unwise. The effectiveness of our work in porting SHRDLU will be in direct proportion to how well we understand how it's supposed to work, even (and perhaps especially) when it comes down to the minute details we will be working with this semester.

Risks & Alternatives


The main risks this semester involve how quickly the new members can familiarize themselves with the code. It is quite cryptic and not documented well, and therefore will take some time to understand it to a level high enough to fix the remaining bugs. There aren't really any alternatives to speak of. This is the final phase of the project, and after this semester, there won't be anyone at UMR who has previously worked on the project at all. Therefore, there will be no extension on the time allowed to complete the project.

Initial Code Breakdown


Name blockl blockp data dictio ginter gramar init loader macros morpho newans parser Language MACLisp MicroPlanner MicroPlanner MACLisp Programmar Programmar MACLisp MACLisp MACLisp MACLisp both Programmar Lines of Code Description 340 code for world 860 code for world 190 database for world 1800 words 50 grammar interpreter (commented) 1800 grammar recognition (commented) 70 initialization functions 120 core loading functions 170 precompiler macros? 350 morphological sentence analysis 1500 answer-finding 400 parsing code setup

http://web.umr.edu/~shrdlu/project_plan.html

8/16/2004

SHRDLU plnr progmr setup show smass smspec smutil syscom thtrac MACLisp MACLisp LISP MACLisp MACLisp MACLisp MicroPlanner MACLisp MicroPlanner 2400 MicroPlanner Interpreter 500 Programmar Interpreter 250 Init files for SHRDLU 1000 Show -Tell program 100 semantic utilities 1000 semantic specialists 1200 semantic utilities 600 toplevel utility funtions 200 planner system functions

Page 3 of 3

This document was revised and adapted from the original "Porting SHRDLU" written by Matthew Fischer

http://web.umr.edu/~shrdlu/project_plan.html

8/16/2004

You might also like