PDP-10 / its

Incompatible Timesharing System
Other
857 stars 81 forks source link

SHRDLU #147

Open larsbrinkhoff opened 7 years ago

larsbrinkhoff commented 7 years ago

Source code here:

larsbrinkhoff commented 6 years ago

Lyle Bickley has looked into running SHRDLU in ITS. He'd like it to be able to display graphics on a 340 display.

larsbrinkhoff commented 6 years ago

Checked in the code on a branch lars/shrdlu.

Renamed the files according to FILE INFO.

larsbrinkhoff commented 6 years ago

Reference to the semi-mythical MIT tape archive:

I often get requests from people who want a running version, and always ask them to let me know if they find one. And there it was back at MIT all the time! (I had looked on AI, but not MC).

Well, it was on backup tape and CENT@AI retrieved it for some reason.

larsbrinkhoff commented 6 years ago

Another version here:
https://github.com/PDP-10/its-vault/tree/master/files/shrdlu

Seemingly, it can display on a 340. There's a call to DISINI, and calls to DISARR looks like they are 340 display lists. DISARR maybe is defined in LAP code.

larsbrinkhoff commented 6 years ago

@lbickley, are you working on SHRDLU? Did you get any reply from Winograd?

larsbrinkhoff commented 5 years ago

Hello @lbickley,

I tested the display slave from Lisp, and it wasn't an immediate success:


*(load "lisp; slave")
;Loading SLAVE 8
127303
(disini)
PDP6 NOT AVAILABLE TRYING PDP10 SLAVE
BADPI;(ILOPR;) 212>>0   
lbickley commented 5 years ago

Hi Lars,

On Mon, 10 Dec 2018 09:17:08 +0000 (UTC) Lars Brinkhoff notifications@github.com wrote:

Hello @lbickley,

I tested the display slave from Lisp, and it wasn't an immediate success:


*(load "lisp; slave")
;Loading SLAVE 8
127303
(disini)
PDP6 NOT AVAILABLE TRYING PDP10 SLAVE
BADPI;(ILOPR;) 212>>0   

Glad you tried before I did ;)

You know a LOT more about how to interpret (and "fix") the error than I do!

Cheers, Lyle

-- 73 NM6Y Bickley Consulting West Inc. http://bickleywest.com

"Black holes are where God is dividing by zero"

larsbrinkhoff commented 5 years ago

This is now fixed, see #1461.

larsbrinkhoff commented 5 years ago

How about rather than trying to run the old (1973) SHRDLU Lisp code on a recent (1986) Maclisp, we instead try to run it on a Maclisp of similar vintage? With some luck, there may be working binaries. If the match is close, SHRDLU should run more or less as is.

CC @lbickley

larsbrinkhoff commented 5 years ago

That went rather well. shrdlu

turbo commented 5 years ago

@larsbrinkhoff Does it complete the sample dialogs (both the variant on Winograds page and the one from the book)? Do the visualizations fit the what the robot said it did?

larsbrinkhoff commented 5 years ago

This is the SHDRDLU; TS TWDEMO program. I'm not sure if there is an interactive mode; it seems to replay a fixed script.

I sat half way through the demo and compared against this: http://hci.stanford.edu/~winograd/shrdlu/, and it seemed to match verbatim.

There's some kind of timing problem: when the robot moves things around, it's very fast. I suppose there's a delay which is too short when run on the emulator.

turbo commented 5 years ago

So I guess ^S quits instead of going into the command mode?

The book contains more parsing tests of ownership, such as "I own" and "I like", which don't appear on the website. If you get a prompt running, it would be nice to test the full book dialog to assess the completeness of that SHRDLU version.

lbickley commented 5 years ago

Lars,

As I wrote you privately, this is absolutely terrific!!! Hooray!

Cheers, Lyle

On Sun, 28 Jul 2019 02:26:05 -0700 Lars Brinkhoff notifications@github.com wrote:

That went rather well. shrdlu

-- 73 NM6Y Bickley Consulting West Inc. https://bickleywest.com

"Black holes are where God is dividing by zero"

larsbrinkhoff commented 5 years ago

Trying to load SHRDLU from source files.

================================================== 
 THE FOLLOWING ARE SHRDLU'S SWITCHES WITH THEIR 
 DEFAULT VALUES.   FOR EACH SWITCH: 
   TO KEEP           - TYPE <CAR-RET>
   TO CHANGE         - TYPE <DOT> FOLLOWED BY NEW VALUE
   FOR ENLIGHTENMENT - TYPE ?
   TO QUIT           - TYPE <ALTMODE>
================================================== 
     WANT-DISPLAY     NIL       ===>
larsbrinkhoff commented 5 years ago

@turbo, I don't have the book. Is it the 1972 Understanding Natural Language?

turbo commented 5 years ago

Yes. Google Books should have it. Otherwise I can scan you the pages the week after next week. Even the thesis had slight differences from the final book IIRC.

Lars Brinkhoff notifications@github.com schrieb am So., 28. Juli 2019, 18:25:

@turbo https://github.com/turbo, I don't have the book. Is it the 1972 Understanding Natural Language?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/PDP-10/its/issues/147?email_source=notifications&email_token=AB5G35YYATVB3QMYT5IXLODQBXB65A5CNFSM4CYRBGYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD27B3UI#issuecomment-515775953, or mute the thread https://github.com/notifications/unsubscribe-auth/AB5G35YXATITL67FKQQ3AZLQBXB65ANCNFSM4CYRBGYA .

larsbrinkhoff commented 5 years ago

Thanks, please do scan those pages.

larsbrinkhoff commented 5 years ago

SHRDLU; MANUAL 1 says "BIG NUMBER LISP 229" was used to run SHRDLU at CMU.

I tried to assemble the file LISP; LISP 229DC. It seems these symbols need to be expunged: MAP,FIX,.FUNCT,COMMEN,EDIT,.ARRAY. Even so I get "Multiply defined" for propably every symbol defined in the program.

turbo commented 5 years ago

More notes.

People who might be able to assist:

Attached is one archive of a few mails with more debugging info and other demo dialogs. There's also an elusive text amalgamation of other emails somewhere in one of the code archives which goes into more detail on MACLISP and SHRDLU versions but I can't find it now. I think it's called MAIL

Edit: [Shrdlu] Bug list.txt contains some test cases for I like... declarations.

Sutterfield on display routines:

The original display code is missing, says Keldon... So I'm wondering.. surely some part of the program still exists that CALLS that missing display stuff? I mean, yeah, the actual code that displays the world is probably not something we're interested in, but we want to know what part of code calls, or used to call, the display stuff. I guess the thing to worry about initially is finding a way to have Java work with Lisp. I bet Ralph Wilkerson would have some advice on that... I'll mail him.

larsbrinkhoff commented 5 years ago

LISP; LISPTTY 229DC says this Lisp version was compiled with MIDAS 104. I tried 108, but got an MPV.

Also tried MIDAS 135, which seems to do the job with just EXPUNGE COMMEN. There is one error, but maybe harmless.

larsbrinkhoff commented 5 years ago

@turbo, scanning will not be necessary. i got a PDF now.

larsbrinkhoff commented 5 years ago

Hello @mrkeldon, @greg-sharp, @davemcdonald,

Please read this GitHub issue for information about running the original SHRDLU on ITS, using a PDP-10 emulator. 340 display is included.

larsbrinkhoff commented 5 years ago

I wonder who's behind this page?
http://maf.directory/misc/shrdlu.html

This quote is from Dave McDonald:

In the rush to get [SHRDLU] ready for his thesis defense [Terry] made some direct patches to the Lisp assembly code and never back propagated them to his Lisp source... We kept around the very program image that Terry constructed and used it whenever we could. As an image, [SHRDLU] couldn't keep up with the periodic changes to the ITS, and gradually more and more bit rot set in. One of the last times we used it we only got it to display a couple of lines.

larsbrinkhoff commented 5 years ago

I tested SHRDLU running under ITS 724 from 1972, but it behaved the same way.

larsbrinkhoff commented 4 years ago

Trying to compile a list of directories related to SHRDLU:

Also SYS; TS LISP and JONL; TSCOMP *.

larsbrinkhoff commented 4 years ago

Some pre compiled binaries to try:

File Timestamp Size
SHRDLU; MOBY DUMP 1971
SHRDLU; MOBY DUMP 1972-03-18 79
SHRDLU; MOBY DMP1 1972-03-18 79
SHRDLU; TW DUMP 1972-04-08 70
ANDEE; TS SHRDLU 1972-12-13 128
ANDEE; TS SHRDL1 1973-02-13 111
DDM; SHRDLU WHRS 1973-03-06 104
SYS; TS SHRDLM 1973-07-05 79
SHRDLU; 105 1 1973-11-08 116
SHRDLU; 105 2 1973-11-26 111
SHRDLU; 106 1 1974-08-26 24
SHRDLU; SHRDLU 107 1974-11-11 40
SHRDLU; SHRDLU 108 1974-11-11 40

Note the considerably smaller file sizes in 1974.

larsbrinkhoff commented 4 years ago

Well, SHRDLU 106 is not a valid binary file, and 107 and 108 just say

SHRDLU has gone away till the new memory arrives and it can be debugged. Sorry, gripe to DDM

larsbrinkhoff commented 4 years ago

SHRDLU; 105 1 seems promising. When I answer Y to the question about the display, I do get a block world on the 340. "PICK GREEN BLOCK." seems to be accepted as input, but then starts cons lists until memory runs out.

               SHRDLU       VERSION 105 - CREATED 11/7/73 

DO YOU WANT THE DISPLAY (TYPE Y OR N) 
Y
(LOADING INITIAL DISPLAY) 
PDP6 NOT AVAILABLE TRYING PDP10 SLAVE

TYPE "? " FOR HELP TYPE "GO " TO ENTER READY STATE 

>>> GO 
READY 
PICK GREEN BLOCK. 
[1] 
;GC DUE TO LIST SPACE
;24531[10%] LIST, 7165[35%] FIXNUM, 13745[99%] FLONUM WORDS FREE

shrdlu105

larsbrinkhoff commented 4 years ago

I had success with this interaction from the demo dialog:

GRASP THE PYRAMID.
[1] 
[3] I DON'T KNOW WHICH PYRAMID YOU MEAN. 
READY 

However, most other things I try run into the ANS-AFTERFORMULATION-PAUSE UNBOUND VARIABLE problem. Or sometimes this:


GRASP THE RED PYRAMID. 
[1] 
ISTENSE -- NO TENSE 
larsbrinkhoff commented 3 years ago

"An Interview withTERRY ALLEN WINOGRADOH Conducted by Arthur L. Norberg on 11 December 1991 Stanford, CA"

https://conservancy.umn.edu/bitstream/handle/11299/107717/oh237taw.pdf

This passage suggest SHRDLU never was very reliable:

Well, implementation and product are two stages. That is, implementation was always there as the coin of the realm. Implementation meant something you could show off. It didn't mean something that somebody else could use. So - I mean, my thesis was certainly that way. I mean, you know, 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.

larsbrinkhoff commented 10 months ago

Some relevant AI memos:

lbickley commented 10 months ago

Lars,

I forwarded this to Terry Winograd. I'm sure it'll make him smile :)

Cheers, Lyle

On Tue, 05 Dec 2023 23:13:06 -0800

Lars Brinkhoff @.***> wrote:

Some relevant AI memos:

-- 73 NM6Y Bickley Consulting West https://bickleywest.com

"Black holes are where God is dividing by zero"