1968 Demo - Douglas C. Engelbart, PhD et.al.












I hope you値l go along with this rather unusual setting and the fact that I remain seated when I get introduced, and the fact that I知 going to come to you mostly through this medium here for the rest of the show, and I should tell you that I知 backed up by quite a staff of people between here and Menlo Park where Stanford Research is located some 30 miles south of here and if everyone of us does our job well, it値l all go very interesting, I think.












The research program that I知 going to describe to you is quickly characterizable by saying, if in your office, you as an intellectual worker were supplied with a computer display, backed up by a computer that was alive for you all day and was instantly responsible, responsive























Instantly responsive to every action you had, how much value could you derive from that? Well, this basically characterizes what we致e been pursuing for many years in what we call the Augmented Human Intellect Research Center at Stanford Research Institute. Now the whole session is going to be devoted to trying to describe and present to you the nature of this program, but unfortunately or fortunately, the products of this program, the technology of it lends itself well to an interesting way to portray it for you, so we池e going to try our best to show you rather than tell you about this program.


A very essential part of what we have developed technologically, as what does come through as displayed to us, and I知 going to start out without telling you very much about the program and just run through a little bit of the action that this provides us. So in my office, I have a console like this and there池e 12 others at our computer supplies, and we try nowadays to do our daily work on here. So this characterizes the way I could sit here and look it up. Give me a blank piece of paper, that痴 the way I start many projects. So with my system, that痴 a good start. I値l sit here and say I壇 like to load that in.






[Clicking noise]






Sosorry about that!






[Clicking noise]






So I知 putting in an entity called a statement and that痴 full of other entities called words.






[Clicking noise]






And if I make some mistakes, I can back up a little bit.






[Clicking noise]






So I have a statement with some entities words and I can do some operations on these and copy a word because that word likes to copy after itself. In fact there are a pair of words I壇 like to copy after itself and I can just do this a few times and get a bit of a trail there and there are other entities like text, say after there I壇 like to copy from that entity; point to that point, and it値l copy it, right, so I could get myself some material on my blank piece of paper and then I壇 say, well, this is going to be more important than it looks. So I壇 like to set up a file. So I tell the machine, alright I値l put through a file and it says, oh, I need a name. I値l give it a name. I値l say it痴 a sample file.


























And I値l say, please output it. It says it did and then it comes back automatically with an origin statement or header, telling me the name of the file and the date and the time and who established it, and thereafter I can always do something. I can ask for the status of a file and it値l tell me that information. Very small file now, owned by me, last written by me, very shortly ago, that set another interesting data in there. So we致e seen how we can start with a blank piece of paper and go to developing a file. This file is one statement with a few words in it. Let痴 make more statements. I値l say, copy that statement and lo and behold, I have another one, copy that one, another one, I can even copy groups of statements. I can say, after that one, copy the group from there to there, and it does. I can look at that and say hmmprobably goes off the screen.

It値l be interesting if I could ask the computer to collapse that. Perhaps to show me just the first line of each of those statements. Alright, please do that. So it did. This is one aspect of what we値l use over and over again through this presentation, what we call, view control where no matter where in a file we池e looking, we can ask it to use any amount of a large number of parameters for constructing a view at that point in the file that best suits our need at the time. This one wants us to give an overview of the thing. So I値l say, well I have this, I don稚 want them all to be statement ones, so I値l just replace the word therewith a two and how about that one with a three.






[Clicking and beeping noise]






Just to place to forget how to count. So I can look and say alright, that statements one, two, three and four. If I壇 like to make them a little prettier; I can now, hmmm






[Clicking noise]






I can go to work and neaten them up a little, which I don稚 want, I always do. Oops






[Clicking noise]






You can tell that I have not warmed up yet.












I hope you can tell












[Clicking noise]


















Alrightalright, so I知 going to lean it up, line it up and I can say for instance, other entities like an invisible string. I don稚 know whether that tabs or characters in there but I can say if I want to and place that invisiblereplace that invisible string with just one character, not that character, that one, space and it値l do it. So I can look at that and say, I have files; one, two, three, four, five, six and I壇 name them that way but that痴 usually a sort of a pain to do that, so I値l ask it to number them themselves and one of the views is such that it値l give you a list of numbering for each of those statements, and I can also open them all up or ask for them without numbers, however I wish, then I can output them.

So we致e seen ways to work fairly fast with the entities of a statement in a file, create a file. I can delete that file or mess it up considerably. I can findI was going to say I want to delete that word by accidentally hitting that entity instead, watch what happens. Sort of replaces just the whole thing, it's nothing. That occasionally happens where you say, alright, I値l load that file.






[Clicking noise]






It値l come back in, as it was I last saved it, telling me the date that I wrote it, unfortunately I didn稚 save enough. Well, I知 through with this example right now. Let me go to a file that I prepared just after my wife called me and said, on the way home, would you do a little shopping for me. So as soon as she said that, I got my system.






[Clicking noise]












[Long beep]
















And made a shopping list, soIt痴 got quite a few items on it and if want to, I can see that, yes, those are numbered statements and I can say there池e ways I can scan down it, like I can point to ten and say put it at the top and I scan up, I point to 23 and I got quite a few, and I remembered that痴 about as far as it got when she said, well call me back when you池e ready to go shopping and I値l tell you the rest of the things. So let me jump back ahead of the list and I can do things like, begin to reorganize a little bit.


Well, I say after bananas, it痴 more likely that I値l take the carrots there and so carrots move right up behind bananas, and aspirin doesn稚 really belong there. I think aspirin goes after paper towels in the order. Well, pretty soon I wouldI would begin to have a lot of trouble keeping that straight. So let me organize it by saying, um






[Clicking noise]






Just generally produce












Alright, I知 going to try that again.












I entered a statement that says, hey that痴 fine.












Right there, I suspect that something is going wrong and I would call the programmer or the hardware man. And tell him; I made it.












Produce, I really haven稚 warmed up to this thing yet, so I値l say what produce, I値l categorize things. Let me look at it that way and I値l say, let me move a statement, for produce, carrots and I壇 like to sub-categorize in it. So it moved












There it is. I gothey, that痴 what happened.






[Long beep]






Alright, produce I've got carrots and I値l move under there also bananas.






[Long beep]






And in fact, I could move a whole group under there, saying oranges and apples also






[Long beep]






So I can begin categorizing things like that and if I looked at the numbers now, I壇 find that thesethese items fit under there as a subset and I realize I can categorize quite extensively, I could introduce a new thing under there..






[Clicking noise]






That was






[Clicking noise]






Something I just invented; skinless banana but I.












Have to go there












And look at it. So part of our view control besides this thing we致e shown you, of showing numbers or not, as also whether we can show you some of these different levels or not. I can say all I want is C 2 levels or only one level deep in there. That makes it very nice for studying it or I can do something like; when I say, let痴 put produce at the top. Let痴 open up one level below it and only show me what痴 below it. And then another level if I wish and then no numbers, so these moving around with jump to identities.












There池e many ways to move around and to make views and thisthis is one of the basic features of this tool we have. Well, suppose I work for sometime at this and then call up my wife to get the rest of the list. I壇 eventually end up






[Clicking and beeping noise]


















The whole structure or I could say gee, there were a lot of things and market痴 shoe store, I have to stop to. Let me see what I知 supposed to get in the market.





















Whole produce, cans, cereals; what about cereals? Oh, cereals, bread, noodles, I like that, okay, back up there if I want to look at the numbers, that痴 what I can. If I want to open up everything, see that or any lines. There are many ways in which I can look at that andbut one interesting thing here that I haven稚 told you about, is that when the numbers are on, I can do something like say, sort of jump to identity and pointing to that and having it bring to the top or jumping return back.


I can say jump to a name and say, got to 2 A 4. And it値l do it or return, so I can jump to a location number just by giving it or if I wish, I can add it.












Added as text in there, and say, jump to name or just point to that and it値l go to A, did I say that, carrots alright.












Alright carrots, 2 A 4, so I gave it the name of that, can go to it, I can give it the names ofI don稚 want to do thatthat












I can say, go to one, which is out of sight from here now. Say jump to that, number one












Different views, so it痴 very easy to jump around and make cross references. It turns out if I wish, I can also make a cross reference to something where I give it a label or a name such as you do in your programming. I can call this alpha.






[Clicking and beeping]






AhaI can say jump to name and I can type it. I think I made a mistake when I type it. So what I should really do, say I壇 like to re-conform my whole picture.






[Clicking and beeping]






So there






[Clicking and beeping]






It痴 willing to say, name.






[Clicking and beeping]






And I jumped to something named alpha there.






[Clicking and beeping]






Alright, so I can give names and I can say in here.






[Clicking and beeping]






A reference like that or I can say, jump to name or point to that, and lo and behold, output of this thing that was, I壇 named alpha. So I can name it and if I want to






[Clicking and beeping]






I can ask to see the name or I can ask not to see the names, depending on which, right now we have, not to be seeing the names.






[Clicking and beeping]






So look what else we can do in here. I've got this file that痴 structured, if I want to see what痴 in there I can walk down






[Clicking and beeping]






The hierarchy levels, and see or return.






[Clicking and beeping]






But there is another thing I can do. There is a route I've said I have here.






[Long beep and clicking]






So here I知 afraid I値l need a different picture of the view.












So here痴 what I drew with a picture drawing capability. Here is a slight map, if I start from work and here痴 the route I seem to have to go to; to pick up all the materials. And that's my plan for getting home tonight but if I want to I can say, the library, what am I supposed to pick up there? I can just point to that and oh, I see, overdue books and all. Well, there was a statement there with that name on it. Go back, what if I, what am I supposed to pick up at the drug store. MmmI see, very interesting. Alright, market; well, I've already seen that. Why did it snow like that?












Gee, that痴 too much. Anyway, so we have this feature of structuring our material hierarchically; being able to move around it very well; when we get a hierarchy






[Long beep]






Such as I can show you here now






[Long beep]






I can do things if I want to, just say, I壇 like to interchange produce and canned materials, bingo and they池e all numbered rightly, if I cared to look. Interchanging them very quickly; cans are going to interinterget interchanged with produce. They do it and all gets re-numbered. So I have ways of studying over, making different views, moving around, going to specified points and modifying the structure, at the same time I've seen that I have a repertoire of different entities; like character, knock off that character, replace the character, make that P. So I have entities of all sorts that I can say, I want to do operations on, and this basic structure that I can move over and study and get about very quickly. So that is the essence now.













































That痴 the essence of the tool we have. There池e a lot of details that I've left out for you. And now I壇 like to stop a minute and just make sure you understand we池e shifting from illustrative material to the real working stuff. In case you wouldn稚 recognize it otherwise. We致e hadwe致e used this tool to do our daily work and it痴, our system has been build as time sharing system for about six months now, it痴 been working. And in that time, we致e gone from getting one console to getting about six working now with twelvesix more due with the rest of spring. This is our fourth computer, which we致e had this kind of a system. So we致e learned a lot about the user features we want and how to be fairly skillful, but this next step about learning how, when you池e faced with having this in your office all day as I now do, very exciting sense. How do you put that to work for yourself? How do you organize your files? What kind of things do you do? So, to get going on this, let痴 switch away from the tool we have here and talk about some of the general features of the program, some of the ways it痴 built, get back a little later to the nature of theof our usage of it. Alright, let me get back, this material. Here痴 just the outline I知 going to use. You can realize that it痴 a file. These are statements and we池e probably looking at the top level of them and the first one, the introduction you can consider we致e done and the next one, overall about program; it痴 what I知 going to do now. Well, I知 doing to do something called, jump on a link and the link is something that値l go between files.


So what it痴 going to do, it says I知 going to go to your file name at CNRO and the link also says where in that file and just what view it wants. So I do it like that. I知 in the middle of that other file, looking at this particular material that痴 been carved out by the specifications on that link, and this is telling me to make a preparation to start on our presentation but I should also remember






[Background noise]






I知 going back to this other file because what I want to do is restore.






[Background noise]






Restore a different kind












[Clicking noise]






I had to go to a different file on whichbecause I made a hitch in my rehearsing for this thing in which I havehave many types of format structures set up and numbered, and I just reset the kind that I want to use to show you this material. We池e very flexible, whether for instance I can say I壇 like to restorenumber seven is a horrible example. See, I can have many ways in which I can control all of the parameters; character size, spacing locations, everything else but I don稚 usually go to this extreme, but just showing you that I can.












What I want right now is the one that shows you a simple large view. We usually work with a view






[Clicking noise]






We usually work with something like this. But when we池e working with our close spaces, we can do quite well but it痴 felt thatthat would be a little hard for people to see. So we池e using it like this but we don稚 see as much material but they池e larger and clear. So now let me backgo back to that file I came here from and say alright, now I知 ready. I壇 like to jump and learn about the program. When I get in here, it looks different as it should. Here is the






[Clicking noise]














Here痴this is another file and in this file, I致e prepared a chain of views and Iusing some of the tools, I have it all set; it痴 like from one scene to the other. I could study them in the fashion I've shown you before, but it痴 sort of fun to set up these changes and it represents to you the way in which we work too. So to do it, I知 going to freeze a statement, it痴 named 羨 and I知 going to put on a certain parameter when I do it.


Then I知 going to jump to a link. Here is the link. It says you want to go to statement 羨 but after the colon, all this garbage tells a bunch of abbreviated ways in which you壇 like to control the view when you get there. Many parameters as you値l notice, so I値l just say I値l go to that one and I知 looking at statement 羨. Now it痴 telling me, this presentation is devoted to the AHIRC, natural question is, what痴 that?
































That was another boo-boo I made. I left several statements frozen. This statement I've asked to be frozen, that was a set-up operation. It痴 just going to stay there above that dotted line as the viewing part of my screen from there down jumps around on the links I have setup. Okay, the first jump took me to this statement saying alright, Augmented Human Intellect Research Center is what AHIRC stands for, a hidden link will take me to the next one, telling me where it痴 located but in SRI, it痴 an explicit organization entity, what we call it group level. But also I壇 like to point out there池e other manned computer work going on at SRI and ours is but one. So I jump on a link. Incidentally, I should just stop and reveal to you that the link is hidden under there. I was very clever to set the viewing parameters so they wouldn稚 show the link, but when I say jump the link and mark it there, the computer goes looking from there on for that link and obeys it, and I知 not showing the statement names either but there痴 a statement named P obviously. So that program involves about 17 people together with the special laboratory facilities we have.


It痴 sponsored by government agencies exclusively ARPA, NASA, and RIDC now. And in the past, AFOSR and ESD and these were the people that first clubbed status many years ago. Alright, and there痴 been a goal oriented pursuit for many years and I think we can just go off and get a quick little picturized sketch to show this is the staffing over the years from 1950 on and has had slightly bumpy history. During these years, there was only one of us.



























I go back to where I was and say, let痴 continue on in this file. That link took me up to a different file, to a statement for that view and I jumped back to this file where I was and now within this file, I make a link to another to say, the AHIRC is pursuing these goals, basic goal improve the effectiveness with which individuals and organizations work at intellectual tasks or does their ineffectiveness involve them, better solutions, faster solutions, solutions to more complex problems, better use of human capabilities. We need thinking about that. But a corollary goal is besides improving effectiveness to develop a system oriented discipline for designing the means by which greater effectiveness is achieved. It痴 very important to us. The approach for this shouldn稚 result in a system oriented discipline. Let me just show you how I constructed this file; you'll notice underneath there was that and that. It was just a link hidden here






[Clicking noise]






That went back to this view with slightly different view parameters






[Clicking noise]






To give you that view.






[Clicking noise]

































Alright, there痴 another one hidden here. It says the general approach for us, empirical but pursuing this monstrous goal, monstrously difficult to like building and trying empirically, and we池e approaching it evolutionary-wise because we feel that it痴 a whole system problem, you need to get a person in that environment, working and looking at the many aspects of his working system that are involved in his effectiveness. That痴 many more things than just these computerated tools. And in a large system like that, we need to do it evolutionary-wise because we can稚 be analytic enough about it at any one point, to decide what best our next thing should be. We can only decide from here as well as we can analyze it, where we can invest our next resources to get the most return that will increase of the effectiveness of the system we have and this item down here is the term boot-strapping applied in a slightly loose sense. We池e applying that to our approach. What we池e saying, we need a research subject group to give them these tools, put them to work with them, study them and improve them. Ahhawe値l do that by making ourselves be the subject group and studying ourselves, and making the tools so that they improve our ability to develop and study these kinds of systems, and to produce in the end, this kind of system discipline. So it痴 going toit痴 a struggle doing it that way but it痴 beginning to pay off. Alright, from there, sorry, I知 apologizing to my friend the computer. I said jump to link and hit it up here and it went and found these parenthesis starting here and so that痴 not a link.

I should have hit it here and it didn稚 find a real link and I知 back in this list here, and I've given you an overall picture about the program and that痴 out of the way and I can just move my marker down. And say, let痴 save that version.






[Clicking noise]






So this tool in pursuing those goals, when our principle tool is this computer aid system. Let痴 talk about it as a system. There痴 a link sequence to jump in there too. When we talk about NLS, I mean the online system, a very general term. It痴 going to be NLS for manymany years, an online system that will involveevolve. Right now we consider it to be primarily an instrument and a vehicle for helping humans to operate within the domain of complex information structures. Well, we






[Clicking noise]






What do we mean by operate?






[Clicking noise]






Well, composed study modifiers, a place we started now. We know there池e many other analytical things you could do but we want to get around, study and modify.






[Clicking noise]
















And then to further information about what does complex structure mean? We池e talking about complex structure, I知 emphasizing structure because we say although the content represents your concepts, there痴 a structure relationship between that content entities that should represent the relationship between the concepts of human thought.

Alright, we know, we can稚 do that very well with linear text, so inside the computer, we can represent that quite well, in fact we can represent information structures in a computer that will generally be far too complex for you to study directly. But nevertheless serves as a tool to roam over that.






[Clicking noise]
















Navigate through a complex structure, able to find your way in navigating, move about it rapidly and be able to see what you want to see at any given point. It's how we think in NLS as a tool. Alright, these are all very important concepts to us because these together with boot-strapping have told us where to start. We start by building an instrument that we can sit at and work during our day, to organize the kind of working information we need as a task force, developing systems. We need to write our specifications, our plans, our programs, our user痴 guides, our documentation, our reports and even our proposals.

So we致e been using these when we return back here and said I've finished that version and to help you keep track of where we are, and a little bit to help me too. We値l move that down. So having gone through these items, I壇 like to come and now begin to tell you something about the implementation.






[Clicking noise]






So I知 going to open up under here and talk to you about the control techniques, control devices, control dialogue and control mother language that we池e using. Okay, to talk about control devices, we値l use this overhead camera shot, where you can see the devices that I知 using. I use three and they池e not all standard. We have a plain device called a mouse, standard keyboard and a special key set we have here, and we池e going to go for a picture down in our laboratory and then we値l park and pipe it up, it値l show you from another point of view, more about how that mouse works. Come in Menlo Park.














































Okay, there is Don Andrew痴 hand in Menlo Park and in a second, we値l see the screen that he痴 working and the way the tracking spot moves in conjunction with movements of that mouse. I don稚 know why we call it a mouse, sometimes I apologize. It started that way and we never did change it. Alright, as it moves up or down or sideways, so does the tracking spot and thethe principles for this operation is quite easy to see if you値l turn it over, Don. Can you hear me Don, would you turn it over and we値l see you, right. Its principle is that, there池e two wheels that roll on the surface. It痴 inside right angles and kind of sharp edges, one値l roll and the other slide in one direction. Each of iteach of these wheels controls through potentiometer, with a voltage output sampled by an ADD converter. The numbers taken in by the computer at sample times as to what the horizontal verticalcomplements are to be, of where it should put the tracking spot and as the mouse moves over a surface, then you see those wheels either slide sideways without rolling or rolls in a motion that very closely duplicates the particular component of horizontal or vertical and the net motion it makes.

Alright, if you take a mouse and move it through some closed trajectory back to exactly the same point, usually the tracking spot won稚 come back to exactly the same place it was on the screen, and for that sense it wouldn稚 work well if you池e trying to trace maps or other figures and diagrams. But the way we use it continuously and exclusively as to watch the screen and to follow it around, and we use this merely as a device to move that tracking spot and you池e in the tracking spot, you really don稚 care whether it follows exactly this or not. In fact, we致e had it at times where our tracking device, you had to move in an arc like that to make the spot, the tracking spot go on a horizontal line and people adjusted to it and would go like that to go in a straight line and wouldn稚 even know that they were doing it.

Other features in the mouse are that it stays put. I can lift it and replace it without having the spot changed, so I can adjust where I want it for my comfort, and these control buttons on the top are used by that mouse. Show you a little bit later how some of those were used. Now the keyboard in the middle is essentially a standard typewriter keyboard except for a few special keys out inside. The computer knows it instantly when you get one and makes an appropriate response. This device over here is unique to us and we always have to justify and explain it. We値l do it in reverse order. We値l explain it first.






It provides for you the one hand equivalent of what you can do with a keyboard. The five keys are normally each finger sits on a key and depressing any one key at a time produces a character. And any two keys at a time also. And in fact, any combination of depressing of which there are 31 combinations. So Don soon learns he can type a messageinsert an I, C, select S, next












It値l offer you a character if I hit W, it値l say delete word. The arrow moves back and forth to give me feedback. My tracking spot changes. That gives me feedback. Now, tells me since it痴 an arrow that is armed, I can do something. We get a lot of feedback. Let me restore, a view like this to show you. This is more normally the way we work with feedback up here, or here I知 shown; not working. That痴 an echo register that normally gives you the last six characters that you used.






[Clicking noise]






Oopsnot working alright, the last six characters and left shifts continuously so you can look up anytime and see what have I just struck, and that痴 very good feedback. Here, the characters show me the different viewing parameters, few specks. They get large at times at which I can add, hit single strokes






[Clicking noise]






That change those view parameters.






[Clicking noise]






And each of those means something to me, and their being large at particular times tells me I can hit very quick abbreviation for changing the view. So I can say, I壇 like to go to produce but I壇 like






[Clicking noise]






Go to produce, they get big, I壇 like to say, one branch only and let me look just that low and I see it. Oh, I can say, I壇 like to see one line only. I can see it. So these ways I move around, the way I get feedback up here, the way I use both hands to coordinate to tell the computer what command and what sort of letters I want up, are all carefully designed to go together to make the repertoire.






[Clicking noise]

















We talk about the devices and now the nature of the dialogue with a kind of feedback we get from the computer for each of the discreet character strokes and actions that the user goes through when he痴 making, when he痴 executing a command. So that system is really represented to a user by the repertoire of commands he has, by the function of each of those commands and by the controlled dialogue he has for each of them. So they all together go in making a design and to do it well, you have to be very careful about the nature of the functions on that repertoire and the nature of the way they池e controlled. So we致e developed a very special language for talking with extreme precision about these controls, both the command functions and the control dialogue for them, and little bit later when we tell you about the programming, Jeff Wilson will bring in some special examples to you of the languages we致e used, actually the program at high level, these functions and the control feedback that we get and these control dialogues. But that痴 why we池e going to call the control mother language in there. Let痴 see how we池e doing here.






[Clicking noise]






Okay, let痴 move our little marker to say we致e now gotten control techniques by us, and let痴 talk about implementation of our online system. I put over here a reminder when I jump to here, I want the view on below it to unfold in a certain way so I just told myself, hit those parameter specks when this is large and then execute and yes, I see that underneath, I'm going to talk next about hardware design and then software design and that痴 going to be done by Jeff Wilson from Menlo Park. Hardware design invited me to jump on a link here. Ahha






[Clicking noise]






See, it told me there wasn稚 such a thing as a link under there; bring me back to remembering how I should have gone through this, to go down another level. In hardware design, there池e two features we want to talk about here, to bring out to you the way in which we gotten the kind of responsiveness and flexibility we need in this instrumentation environment. So way often Bill ______ file, those responsible for the design of all of our hardware. There痴 an outline he made of the way the controllers work for the aisle controlling. Now from this line to the right



























































So that system [Inaudible] one time-sharing computer takes care of a lot of stations. Let me talk to you about the display systems, the other aspect of the things that we致e built on in here that are slightly unusual. For that, I壇 like to switch to Menlo Park, and get a view from the camera there and actually looking at the hardware. So these are the units, it developed the displays, the computer constructs it right on a small high resolution CRT which you池e focusing on right now, and in fact that痴 the CRT whose camera on the right looking at it, is generating the text view that痴 being typed down here on my console.

So as those are faded in and out between the two, you can just sort of compare them. So that痴 very nice. There痴 my mouse moving around in Menlo Park, my tracking spot. So our displays work with those being watched by commercial cameras. Look at my black bug. Commercial TV cameras 875 lines scanning rates with a fairly high resolution; look at that, from now on to the display station a standard video microwave system. Now if you back up the camera shot little bit, we値l see that we have a whole rack full of equipment here serving 12 of them, but you'll notice quite a lack of cameras mounted on. We seem to have stolen them all for this show. So we池e going to have several consoles at work right now because the cameras are mounted to give you these different special views. I thought quite a few advantages; we use this particular display system, hard work technique, pretty much as expediency for an experimental system we had to build.

We originally were going to build storage to displays under here but we couldn稚 get them delivered a year and a half ago when we really had to firm up our design so we, as expediency wanted this. Ran has been developing some very nice video stuff. They were kind enough to show us how these, these controllers now would work with videos. So we went ahead with this very simple brute force way of having the video signal generated by looking at a small CRT. Well, it turns out that that little CRT, its incremental cost, the video camera, the controller and a marcher total about $5500 which is cheaper than most fairly good resolution random defection display monitors would be, so we come out well on the price of the hardware. It turns out that also that the cathode of the camera tube and in just black and white, you see it like this. You can back off the scanning current, so that it's a sticky cathode, so it's actually, it doesn稚 erase the image on it by each sweep, it may take three or four scans and so it痴 something like a 15 cycle per second refresh rate on those CRTs, the camera, the one that痴 generating this as well as the one that we looked at a few minutes ago have short-term storage in there.

It痴 quite different from long persistence but gives us the flicker-free display here, quite a flickery display there. There痴 lot of use on display generation hardware for 3 to 4 times as many display stations is otherwise. You値l notice if we just get the text alone that there's a small effect by that bug smearing, but it痴 not that bad. And that comes from the memory and the silicon tube. Okay, so much for that. I壇 like now to have us bring in Jeffrey Wilson from Menlo Park, and we値l switch to his console, he's sitting at one just like this and working independently. Hi Jeff!












We池e not hearing you very well.






You池e not hearing me? How about now?






That痴 fine. Okay. I知 sorry you can稚 see everybody here; well, I can't very well either, because of the lights.












I壇 like you to talk to them about the, the way the special languages have helped in making flexible design and study available for us of the user features, the functions and the repertoire of the commands as well as the control dialogue for them, and then also it壇 be an interesting example here because programmers, you programmers are the ones who most intensely found use for working online as we池e building up. Show them how you structured theyour system guide. Okay?



























Okay. I think we can do that. We can get sort of a good feeling for the way the whole system is put together by looking through the system guide. Thethe file is one that the system programmer sort of put together, help them get around. You know, that痴 right now is getting to be a fairly large program. It痴 not huge by a lot of standards, but it痴 getting pretty big. This picture on our system guide file is a picture of the overlaid structure. Our overlays are page sizes, so they're not too big in the 940 but, but each, each label in this picture names the code file and each, each one is 3 to 20 pages long, I mean 20 text pages if you printed them out.

Just to sort of show how user files like this can move around in the code and also how the code is put together. As I said each, each label in the picture is the name of an overlay which is also the name of that file, but it also happens to be the name of a statement in this file. By selecting one of these pictures and moving there, oh I was going to do something for you to let you see better. What did I do? Go back to the audience and start all over again. Bring it back, all the parameters. There. Now let me move up.

From the picture, I can move to a little section in this file which is an area that system programmers leave around notes for each other. It痴 nothing much interesting here. A little bit about the documentation and a fact space that痴 left. Right from this spot, I can actually move out to the file. Suppose that I were going out in that control mother language that Doug was talking about just try to see, for example the routines used in the delete word, or move word, let痴 go look at move word construct; I just select this link and here is the file. This file is written in a, one of these many special languages that we致e designed, so I致e just moved down through it find the move commands, movelet's look here for move word.






You want to point out how you know it痴 move word?






















































































Yeah, I was just going to look at that, Doug. As I was stepping down through that, I was sort of not only moving to the file but the structure of that, of that code is raked in such a way that it痴 a description of a finite state machine and so I was following the characters a person would type to execute that command. Down here underneath it, I see that the routine is QMW over in the overlaid text letter. So let's go back to that other file, move back to our picture again and find where overlaid text it is.

It's right down here, so we池e going, sort of moved down through that one. The, the text that is overlaid illustrates a lot of the different kinds of things that we致e done. This file has two major kinds of code in it. First one is, many of these different special languages that we built up, see I知 trying to find QMW, that痴 right. So, down here some place. There we go. See, two kinds of code. This is still the kind from the other file but the QMW routine, the first sub-routine, the second sub-routine that it calls which is sort of interesting is move word, the word ____ I'm sorry, this routine is written in, in our Console Analysis language and it takes the text string and finds the definition of a word, what's after punctuation and it finds any special blanks around it. It finds pointers that describe that word. Another interesting one is the next sub-routine here. If we look at it, it痴 in another special language that we built up. It takes the pointers left over from the limited routine and the text and the file and reconstructs the statement after the edit痴 been done. Let痴 see, where was I in this file? The other portion of the file is, is written in a language that we call MOL, and that stands for Machine Oriented Language.

The, the MOL is ain essence, it's a high level language in that it has great structure and good control constructs like IF statements and WHILE statements, but it痴 also very, very close to machine language, 940 machine language. People talk about the actual registers of the machine and you talk about doing indirect addressing. This language has helped us to write the kind of fast type code that we want, that we have to have to operate the time-sharing system, and at the same time it痴, it痴 given us a lot of flexibility. It痴 also the phrase structure of the MOL designed to sort of match with the broad structure of NLS, so we致e got a WHILE statement; to see what痴 in that WHILE statement I can move down and see, it痴 3 statements which is an IF statementthe IF statement is two, is a single IF statement which has an IF and ELSE part that the whole block opens up to all of that.

So by using the MOL like this, I知 able to move around very quickly in my MOL files, also able to sort of zoom in and out of things. One of the, besides these sort of program organizational benefits that we get from designing all the special purpose languages, we致e been able to design a syntax of these languages so that they shift with our linking structure in the conventions that we致e set up in the _______ to help us in NLS itself to move around between them. One of the ways we壇 managed to implement all of these languages is by designing a compiler complier which we call trimeter. All of our compilers are written in trimeter. I壇 like to add that we池e really thankful to some people at Systems Development Corporation for helping us get started on lot of notions in trimeter, Erwin Book and Val Shaurie have been just invaluable in helping us get started.

By having all of our compliers written in a high level language themselves, we致e been able to change them all the time so we池e not only able to quickly modify the syntax of the control language for NLS itself or the meaning itself of the commands by, by working on a high level language but we池e also able to go in and just change the compilers as quickly as we have to, to accommodate all sorts of new hardware features and experimenting that we do like that. See in a system guide file, there池e three sections. The first one serves as program structure in the picture and those fast links we looked at were sort of aids that the system programmers have built up. They just move back and forth and leave note.

Second section here is irretrievable, I think I値l let that go for a while right now. The third section, more notes the programmers leave around about bugs, things that are wrong with our system right now, I got my blank line, well, anyway, one of the interesting things that NLS does, just an advantage of being online here is it keeps track of who you are and what you池e doing all the time.

So on these statements, on everything, every statement that you write, it keeps track of who you are and when you did it, so not only can people leave notes around for each other but sort of automate it into how they, automated aids here that tells us who did it, when they did it. I can set up search patterns; I think these probably will be talked about later. So that痴 sort of summarizes what this thing look like and how it痴 put together. Is there anything that I haven稚 talked about Doug that we池e supposed to bring up? Looking at my notes right here.






You池e doing very well, Jeff.






Thank you.






You致e got to see yourself with a 15 foot face.






I壇 like to






It痴 great.






I guess I値l just turn it back to you thenI might add that if people want to come up to our room sometime, we池e more than anxious to talk to people about languages and data compliers and all of the games the system programmers like to play. So I think I値l sort of turn it back with that.






Well Jack can you, how about going back to that place in the control mother language where you start down the dialogue protocol a person would use.






Okay. Right over here in main control






Yeah. And off to another file we池e looking at real code now and there痴 a branch -------






Yeah. These top branches are all sub-routines that are pretty meaningless, in that WSE means, what case and it'swhat痴 the person going to ask for?






So open up one level down now, right! Now all those things in parentheses that in NLS are the names of those statements, are actually in the programming language that works here, the way it痴 identified that痴 the character a user hits. If he hits a D for instance






A 泥 here for delete






Right there! Here痴 a D that line tells you what the response is supposed to be that the computer is supposed to display certain material on top of the screen and then it痴 supposed to wait until the user does the next thing. Why don稚 you term it to one line?






Yeah, I was going to do that. Why doesn稚 my branch work? Oh that痴 all that branch. Okay.


















It痴 easy



































I don稚 want to insult you by saying that it痴 easy to get under view thedon稚 ever say I, and if he hits a 泥 and it sets up what it says there, you can now pop one level below it and that痴 the next block down in this special language and you see, well if after the 泥 he had something else like a 展 it goes on from there to say what it is the computer痴 supposed to do in response. So this language here and its hierarchical structure resembling the branching tree of choices the user makes, specifying it at every point at what the computer does, the feedback and the optional choices and down on the end then specifying the actual function like leading a word, what痴 a word and what do you mean by lead? And for what痴 the word that specified off the subroutine he showed you and the special language to find in there what a word is.

It doesn稚 take a lot of programming skill to learn how to read these languages because they池e at the concept level almost where the user wants to work. And so for us, in our experimental environment, our users are beginning to learn this so that we can look at that to find out how the system works and not at somebody痴 English text translation on specific domain. Well Jeff, you did a great presentation, especially the last part






Thank you.




























































































































Thanks very much. Well I知 back now, I値l get my prop with my text and we値l go on to talk about some of the, oh no wrong text, right there, thank you very much. Remember that we were talking about the hardware and software implementation, and if we go all the way back, we see that we致e finished controlled implementations, controlled techniques and the implementations and let痴 move out our little marker down here and keep track of where we are. We池e ready now; I壇 like to run through some of the ways in which we actually have used this. The programming itself represents a very good example for me, where following from the basic philosophy that concepts come in structure and you壇 like to structure your data base, or information base that way and have a tool of getting around it. I think that the way we致e got are records for programming organized and then the special languages using the hierarchy, using the names of places in there as labels of statements, so both NLS treats them as the name they can jump to, the complier that complies those files we池e looking at treats those as the labels for those sub-routines and procedures.

It all makes a very nice way to study and integrate, and it痴 a very powerful, exciting sort of thing to show. I hope people do come up to our open house and look at that. Let me go down here and open up under usage and say first some application examples, user documentation is a straight forward sort of use. If you were user here and came and sat down early, you want to get familiar with this file, let痴 go look. Dave Kansas has written a user痴 guide, so down the hall and Dave Kansas office in his drawer pulling out the file we go, and there you see it. The top _____ was the sort of the outline. Well I知 just interested in showing this very quickly. You池e, you want to find out the definitions of lot of terms. It痴 sort of a glossary. Well let痴 do the thing called the freezer statement and then open and say put that at the top, nobody hold that statement now, it痴 going to be frozen and our display scanning windows from the dotted line down and then we know about names and

jumping to name and so we can say, what痴 a bug?

Oh, down here tells you what a bug is. I see. Well. Let痴 see. What痴 a level? Select level, tells you what level is. What痴 a mouse? That痴 fun to look out. There痴 a mouse, you can just point. So you can set your point to successive terms and it goes there, the scanning window goes there, the frozen glossary stays and you can see the definitions. Right now you池e seeing some of the definitions you can recognize terms here. That痴 a ____, maybe that痴 the name. Let痴 just see. Oh, it痴 showing off. It痴 the sketch showing the mouse, the mouse buttons. Very nice to have documentation like this and you as a user could sit down and early find a way round and find the definitions, descriptions, procedures for commands like that. So let me go back to my guide and say the next thing you want to study your modified papers. Alright, it happens to be that we wrote a paper for these proceedings that痴 in the files. There it is. Top level. It痴 interesting to study something like that, what does it have to say about user systems. Go to there, open up a level and I only want to see that branch. Oh what about file studying? Open that up. Oh specifications of former view, what about that? Let痴 just open it all. Now I can read it. Gee, that痴 an interesting way to study.


This material was extensively organized for printing and printed out and it痴 from this file directly we print it out, printed it out on the form we sent to the, to the printers and these things up in here, these three letters and equals are special directors we embed on our text, so when the output processor does it, it puts in things like headers like this is make the head on every page ______ to abstract, that's prescribed form. The number between lines, double-spacing, all these others have characteristics; you get line justification, page numbers, all kinds of control on there.


Alright, so much for paper writing. Well, print out directives, I値l fill the rest of the time; I知 going to skip that. That can show you a guide of all the directives for printing out. If you were user, you壇 want to go to that so you can have links to it. Joint file usage is something that is very powerful here. I went off to a file that we were working on as we were getting ready in the early parts of this presentation. And it was a message, it was something that three of us used a lot between us to coordinate the planning, task, contingency plans, the special needs and analysis for the fall joint and things like that, we developed a message technique so we could leave messages for each other under various user conventions and let me just tell you about that. Underneath here, we direct messages to each other that we can unfold and see, but many times you didn稚 want direct messages as much as you just like to go through and leave a message for somebody.


So we wrote down what the conventions would bewhere痴 an example? The convention that we池e going to use is that we would send a message to _____, if I want to send Bill WKE a message, I would put that in the file, WKE from DCE, with that pound sign in between. So any statement that痴 marked like that means that there痴 a message to him from me. If I want to, I can say it was also for Dave Evans like that. So that痴 from me to both of them. I, we致e this thing we call a content analyzer Jeff mentioned briefly, in which we can write expressions in the language, let痴 just come down here and look.


Here痴 a little expression in a special language. That means I知 going to look for Mr. XXX a message from him. Alright, what if I say I want that XXX to be DCE that痴 just some place in there I want to find a pound sign and a DCE, so we致e got a little complier let me say from their complier comes back and says I did it okay and now I can say alright only show me the statements that passed the test that some place in them may have that string. Here they are, so in every one of those that痴 from DCE, DCE. Go down and look for others that we池e going to have here, this is to anybody from DCE. Now I can say well turn off that filter, how about for so and so. So can I say this is for WKE, a message for Bill? The rest of this pattern here says that it痴 got be followed by any number of commas and letter triplets but eventually by a pound sign or it doesn稚 go. Well, let痴 compile and see. Okay. Passed the test. Alright, there's WKE, WKE for him.

And a dummy. Okay, so it wasn稚 through searching. Thing about time-sharing computers is that once in a while it gets a, it gets being asked for business from other places and the response we want runs into a fair amount of computation, we run into other people who pump us off to do it, and so sometimes it値l take a while to filter through all the patterns. But that content analyzer, sometimes


































































Now I'm disabled slightly because it seems to be hung up in the wrong place. I値l have to run by the keyboard method, real _____ you know, I知 so used to working with one hand and thus I can hardly remember what to do on the keyboard. Anyway, I want to go back to the file. The other guy痴 that are in the time-sharing system are going to go and see why and I hope some hardware guys are too. I want to bring in that file. And the categories that we have to set up for these people. Well, that means roles they池e going to play and that they can play and what the open house duty or duty back in the Menlo Park during those two days are going to be.


This is a terribleSo under here on the roles, we have quite a few roles, somebody play just coordinating that knows NLS software, then there痴 time sharing software, then there痴 display hardware, the transceiver hardware, user references we need to cover those at each session and we also say that these different sessions available. Well let痴 jump downJump down and look at this duty rooster again, where are we? Look underneath each guy and we realize we put a bunch of these code terms under there to say okay, that痴 Menlo Park Tuesday morning, open house Tuesday evening, Menlo Park Wednesday morning, he knows NLS and time-sharing system.


So these are the categories. Now I can go back in using that, using that content analyzer sort of thing. I can set up myself up fairly nicely. With special patterns, like I can say here痴 a pattern all set up, so it値l say I want to see those people that are open house Tuesday evening. So I just can compile. Hey, it痴 working now. I compile up successfully, I say, alright let痴 see it. So it does, it says open house Tuesday evenings, Andrews Evans, open head, you have to forgive me if I slightly rattle when this thing started giving me trouble. These four people are on Tuesday evenings. That's very handy. If I want to, I can go to a view that only shows me what category I was filtering out and I can use another thing I call markers. I haven稚 told you about that really before.


You致e noticed that many times when I知 doing something to operate on some entity, that I use this bug to point directly. Well it so happens we have a feature called markers such that any place in the given file; I can place the marker on the character and give it up to a three-letter name. Then at any time and any command, where it痴 appropriate to point and push this right hand button to say select, I can hold the button down and enter that name and let the button up and instead of it taking the character I'm pointing at with this bug, it takes the coinedit takes the character for an __ that I have named. Then I put that marker on a name. So, __ at those markers, on patterns already set up for OTE - Open-house Tuesday Evening and such.

So I can set execute compiler from here and I can type in Open-house Wednesday Afternoon - OWA and say, 摘xecute it. Says, 的 did. Say, 鄭lright, let痴 see what you致e got. 徹h, Open-house Wednesday Afternoon. These are the people that are going to be there. 徹h, what about Open-house Tuesday Evening? OTE, Execute. Open-house Tuesday Evening. So these kinds of pattern matchers and markers and freezing statements and jumping on things, give us a great deal of power jumping around and moving, something I'm studying.












Right, okay, the other things to show here.












I forgot that I need to freeze here. The design documentation for our hardware and system analysis recordI値l just go very quickly through that. Just to show you that we use the same kind of structured stuff in the design of our hardware. We致e here because of the design of the buffer register, and these are the different components labeled by comments and our language is going to digest this file and produce a wiring list. We can open up another level and see that underneath of these are all the logical equations. We can come in just as quickly as anything search, down, jump. Search for different patterns, jump on links, modify and put them out, recompile them and put them back.






Alright, I think I値l skip the rest of these because time is crowding us and I壇 like to go to a little sequence here that is really a very important one. We have seen most of the way through here how this serves as a very powerful tool for an individual to work when he痴 studying, doing his planning, designing, debugging, documenting. We also saw through the medium of leaving messages for each other and filtering them that people can collaborate quite well over a period of time by working on joint files. In fact, you can have a joint file and go leave a message and get a response, in a matter of minutes, because they池e all available instantly by anybody from one of these terminals.
















But there痴 another degree of collaboration which is very important and which we池e just going to be setting up in the next few months, the hardware to do computer aid. But here we池e going to set it up with a little bit of people aid too. So, I知 going to establish a collaborative mode between me and another terminal. Bill Paxton痴 had a terminal back at SRI and the first thing I do to do that, of course, would be to say, 滴ey! I知 going tooops, to call this command, we have to go into the executive mode and set execute __ at a special level.


Oops. And then continue with NLS. So that痴 a free demonstration of some of the versatility. Alright, special command. I壇 like to link to Bill and I don稚 know what his terminal is right now. So I have to ask for somebody to connect me to him audibly, audially. So Bill, will you come in through this intercom?






Hello, Doug.






Hi! I need to know what terminal you池e on, Bill.












Okay, I壇 like to have him see my text and so, this special thing if I label 13 will switch over, so on his display he sees my text. So I値l execute it and sure enough it does. But what痴 that running around? Well, if he痴 looking at my text, he壇 like to have something to say about it, so we put on a marker, a tracking spot that he controls, so he is sitting in Menlo Park, looking at this text and he can point to it, but we致e carefully reserved for me the right to control and operate on this. So my bug is more powerful than yours.


























But we can have an argument, yeah. Actually, it's called a bug fight. So, alright, in case you haven稚 been listening Bill, we致e been going through lots of examples and setting up a collaboration here, so that we can go on into information retrieval. And we set up now audio coupling and we池e both looking at the same display, and that will be very handy to work with. We can talk to each other and point and maybe later, I can hand you the chalk on this black board like saying, 滴ere, you control it. But let痴 stay in this mode now and add another feature that hardware-wise is available to the kind of display we have.


I壇 like to see you when I知 working on it. So, before I can do that, I have to set up my display in a certain way. Set it up, so I see it over like that. It leaves a corner up there and I say, 哲ow computer, do the automatic switching and it will bring in a camera picture from the camera mounted on his console such as the camera mounted on mine is. Hi, Bill. That痴 great. Now we池e connected audio, you can see my work, you can point out at it and I can see your face, we can talk. So let痴 do some collaborating. You池e silent.




What do you want me to say?




There痴 nobody here but a large audience, Bill.








So, let痴 go talk about information retrieval and there are a lot of things I致e been showing them, jumping around and finding your way, relating back to the portrayal I gave about NLS as an instrument on complex data structures. It shows them how we can get around and find things. I showed them the content analyzers, to help locate things locally. Okay, let痴you had a file kind of classifying retrieval stuff. Why don稚 we switch to it? Yeah. Good. Hey, I can稚 point.




Okay. You池e on 13 or 12?








On 12, okay!




You had executive




There you go.




Where am I?




There you are.




Alright, now, talking about half retrieval, that痴, you池e going to have to defend that.




Ha, ha, ha. Can you give it to me?








Okay. We致e been talking about retrieval all afternoon, really, that痴 one of the main things you池e involved in doing. Every time you池e changing a view here, you池e doing retrieval really. I致e broken it up here into two main categories, the first where you have a known destination, and the second where the destination is unknown. These really present two different problems and there池e different commands in the system naturally to take care of these two different things. Let痴 open this up. Take a look at what we have under here. Oops.


















Good, both direct and indirect, the first where you池e making an explicit specification and the second with an implicit. To explain what I mean by this, in the first case you池e actually able to point at what you want, at the information you池e trying to retrieve and move it into view. With the jump to identity command, you池e able to point out at either by the cursor or by using a pointer as you致e shown. Jump to name, jump to link, again here you池e explicitly specifying by giving the name or having the name occur in the text.


For implicit specification, by this I mean, using information that痴 been stored by the system in order to specify where you want to go. In the first case, the information has been stored in the form of a memory of what you致e been doing recently, so that you池e able to say, 笛ump to the view that I previously had. So I can say, 笛ump, return. And it will take me back to the view, or 屠ump, return and I will go to the view that I had just before that. Or I can say, 笛ump Ahead. And move back down again. Jumps referring to the structure, by this I mean the structure of the files, so that you池e able to say, take me to the successor of this statement I知 pointing at or to the head of this branch, things like that. Content analysis, we致e covered quite thoroughly.




Let痴 go on to the other main branch of retrieval that we池e talking about. Here again, I致e broken it into direct and indirect. This is the case where the destination is unknown and by this I mean, you don稚 know where the information is, but you池e able to describe it or you know enough about it, and you can find it either in a hierarchy or by describing it with key words. By the use of a hierarchy here, I mean, working down through the hierarchical structure of the file, making use of the categorization that痴 built into the file. This, we致e seen several times.
























Let痴 just as another example, to really make this clear, we致e talked about the desire to get a hard copy of a file, wanting to get something printed out. There's quite a large system that takes care of making a file for hard copy. You池e able to specify, how you want the hard copy to look like by giving various directives. One of the things you might want may be Roman numeral page numbers, so let痴 go off to a directive file, see what the directive is to get Roman numeral page numbers.


I知 into the file now, here痴 the first level of the hierarchy. Let痴 open up page formatting, we look; we want page numbering, so we値l open that up. We find, yes, here it is - Roman numerals. We find out the directive, yeah, your bugs right on it already, Doug. Here痴 the directive we want. So we work down quite a way into a hierarchy, as you can see. This is quite a nice way to be able to very quickly find what you池e after. Let痴 go back to the previous file now. Look at this last type. By keywords and associative re-ordering, I mean, the use of terms from a specified vocabulary to describe what it is that you池e after.


Perhaps the best way to show this would be just to draw a little picture. The key words can be selected from a listput the list over here. You can have any number of key words. I'll just put down that to give us an idea of what it is. Then we also - oops, spelt that one wrong.




Need any help?




Yeah, how do you spell catalogue? There it is. Isn稚 that close enough? There値l be several items in the catalogue, but what we want to do then, is select things out of this catalogue.




What does the R stand for?




Those are the numbers that are used just like serial numbers. That痴 my own dual decimal system.




Oh! Any reference three, reference __ or something?




Alright! And then the K, I guess would be keyword, uh? How痴 that?




Ha, ha, ha. That痴 fine.





















Each keyword then will point to various items in the catalogue. So the first keyword they point to those and then the nth keyword will point to other ones, and there値l be cases where they both point to the same one. When I select a keyword, I知 specifying that all of the items in the catalogue that it refers to, will be pulled out and given to me and in the cases where I致e selected several keywords that refer to one particular item, that item will be given special preference and will be put at the head of a list. And then with that list items from the catalogue, we値l be able to use the other forms of retrieval and jump off and look at the items and then continue the exploration. Okay, let痴 actually go ahead and do that. I値l go back to the systems guide file. We mentioned earlier that there is a large part of that, that痴 concerned with finding things.


This is our documentation index for the NLS system. It痴 broken into the two parts, the catalogue and the list of keywords. The catalogue is just a long list that goes off the screen that contains links of to the various items in the documentation. There is actually an entry here for each procedure in the system.




This is the same file that Jeff was looking at, isn稚 it?








System guide for programmers to find things in!




Here痴 your same picture. Let me get it down here. There we are. See, the first part is the catalogue; the second part contains the list of keywords. Let痴 open that up. They池e again categorized into the various categories that you would want to use to describe what you池e after. Let痴 look at file handling and open that up. Here we have the list of keywords that we can use to describe things that have to do with file handling.




The things in parentheses, the names of those are the keywords?




This is just the name that痴 used to keep track of it. The keyword can be referenced from any place in the text by this name. Then there痴 a phrase following that - it痴 a little more descriptive. It tells what it痴 about. Then following that, there痴 a list of the items in the catalogue that are referred to by that keyword.




You池e only looking at one line for each statement, so you only see the first few.












So now, I知 able to actually select the keywords that I want to use to describe what I知 interested in. I can do that just by pointing at it, and then it writes the word up here and another command to accept it. I can accept file control; I致e already accepted file referencing. I知 able toI知 also we池e still on?




Yes, we hear you.




So whosomebody hung up on us.




How do you say 組o ahead with a mouse?




We池e on?

















Doug, you back? Doug, I can稚 hear you, oh okay. So I selected several keywords here. I can go ahead and give particular keywords greater weight. The weighting refers to how important that key word is in describing what I知 after. So, I can give this one a weight of two. Whereas this one, previously will also, will just have a weight of one. That means that the items that are referred to by this keyword will occur earlier in the selection when we池e finished.


Okay, let痴 go ahead now and say, 適eyword execute. This will go off and get the items out of the catalogue and re-order them. And there we have the results. Now I haveI can use these to jump to various places in the file. I知 still in the systems file. The item here is the name of the utility. So I can jump and get the information about that utility in the file, to find out various things about it. Go back to the previous view.




Now, if I want to go up and get the information, I just got to jump the link on this. And here I have the documentation on that particular procedure. After looking at that, I can go back again. And now, I知 set up again to go and continue looking. I can look at the next item. And here, I致e got the results on that. So I can continue to proceed in this way, looking at the various documentations and going back and continuing to explore or you can re-specify the search parameters, and look at new keywords. Doug, I don稚 know if you survived through that. We had the operator of the telephone company hung up on us I think, halfway through. You still back on?




No, I guess we壇 better come back and I知 sorry I can稚 say goodbye to Bill.




Oh, I can hear you now.




Oh great!




There you go. You致e been talking all this time?












I saw when you leaned over and hung up the phone for a while, so I couldn稚 interrupt you. Well, thanks, I知 sorry that we池e pushed by - pushed when we were trying to describe each of the features in this system. This particular one, the keyword, is very powerful and could very well warrant a whole paper on itself, because it gives us the power of keyword descriptive kind of organization but with the added feature of giving weights to the keyword, so the results of the search as you see right here are ordered, so that this one ended up meeting the most requirements and adding the most weight. And down here, could be one that only associated with one of the descriptors and the lowest weight one at that. So you have an order in this that's probably in relevance. And then right with us are all the links, use that as a link to go off to the file to find it. This is a directory of the set of procedures. So here痴 a procedure, here's a list of procedures for those keywords he chose that all describe certain things about file handling and this will take you off on the actual source code. It痴 like Don Andrews wrote them all in his files, the name of the place in his files and the views that you should open up so that when you follow this and I jump the link, you just see bingo - the overall view of that procedure. And then, as he pointed out, instead of saying, 笛ump the link. you can jump to a name within this file where these things have descriptive material about that too. So, I think for the software guide, it痴 very powerful. And thanks very much, Bill.




Very good, Doug!






































































And the combination of techniques for getting around inside of the structured software files and the way in which it is organized, the way in which a special purpose language as we've developed fit with the structure reviews, really give a very powerful set of techniques and I really enjoin all of you who are software people and interested, to come up and work your way through these. To have some of the software people there in our open house, really show you what痴 what by taking you through that. Let me see my text and I値l see what I can skip so we can get through in the time we were supposed to - like 10 minutes ago. Let me go back to that view. Andthey池e purposely making that dim, so that I値l hurry.

Other things we池e going to talk about very quickly are the range of activities underneath in our program and I will just go very quickly through these then. A service system development and user system development wouldto talk about those a bit only requires me to establish a distinction between those two kinds of systems. Really, we致e taken to splitting the overall main computer system into this dichotomy of these two systems, where the service system is what appears at the terminal - when I push button, this button, I get that response. When I do this, I get that. It痴 the repertoire of commands and the services that, that organization of software and hardware and sometimes people gives to me.


The user system is what痴 beyond that. Given all that, what do I do with it? What kinds of conventions for leaving messages, for using the content analyzer and for organizing our files? How do we use the links and the keyword thing, user system there? And this is something that is kind of a new element in systems research that we池e trying to establish whilst we can integrate that kind of user system more with the people痴 methods, the concepts that they use, the procedures, the skills - all are developed in coordination with the kinds of tools that they have.


Within our __, we also have an explicit activity they call management system where we池e taking some project money and developing our own set of management tools to help us manage the 17 people and all these diverse activities in this complex system. So we are beginning to develop some of those and we壇 be happy to talk to you about those during open house. And our forthcoming involvement is this __ computer network, the experimental network that痴 going to come into being in its first form in about a year and end up sometime later with some 20 experimental computers in the network.


And they hope to be able to transmit across the country, with bandwidths of something like 20 kbps, till 8 times of less than a tenth of a second, which will be enough so that I could be running a system in Cambridge over the network and getting the same kind of response on a CRT, and it may be that the people there, the next time they have a conference in Boston, are going to try this from there. Theand in that network, we池e going to try to develop a special service to provide network information - relevant network information for people. For the kind of information it takes to operate such a network - who痴 got what services, what protocol I used to get there, who痴 up today, what痴 the user痴 guide, where can I find the paper that describes the system that so-and-so offers. That痴 going to be a very interesting challenge for us to utilize our tools for organizing and retrieving information. And last thing here is - just a little comment about - after all of this, what痴 the product that we池e providing in this research?


Well, it痴 awe池e providing a sample augmentation system, the one we use, and not only that, it痴 an augmentation system that痴 provided to augment computer system development and beyond that, we池e also hoping that we池e developing quite a few design principles for developing our augmentation systems. And these, I hope are transferable things. Let me











































































I壇 like to close and give you some description of the support we致e gotten from the different people that produced this and to acknowledge that. And back in Menlo Park, we致e got quite a team of people, surrounded by better equipment, that have been busy listening to us and trying to control and switch these monitors up here, where all the displays went, the cameras went for what痴 on use, the displays go here, so they can monitor the different signals and switches and send us, what when we want. Alright? And I particularly want to give appreciation of __, not only designed all of the hardware or even been responsible for all of the hardware and software development that gives us our service system over these years.


But in the last few months put together the considerable network of intercoms and video switching and controls and mixers, begged, borrowed, stolen, that would provide the show to make it come off like that. To the supporting staff at __, Martin Hardy, Roger Bates, John __, Steve __, who just worked very, very hard to make all of this work out. Technically, Dave Evans in coordinating this and in managing the open house we池e going to have. Don Andrews, Jeff Lewis and Bill Paxton for preparing and presenting the material there. And beyond those two, we致e gotten a great deal of support from SRI, general preparation support, Stuart Grant from __ Institute has volunteered a good amount of time to help us. He was in that picture of people there. John Dusterberry of Ames Research Lab was very kind, saving our life by offering us the loan of this IDEFO projector - that痴 the machine that痴 projecting this video on the screen. We were just bowled over when we found out what sort of a display we could provide of what we're doing, and we very much appreciate the loan of that. And Gene Warren, from TNT Communications who handled this, we retained him to come and help us __ at work and he痴 just been a tremendous spark plug, running around fixing paging system for us and fantastic instruments, has done a lot of extra work lately. The telephone company has done a great deal, beyond what they needed to do too to fix this up, once they found out what kind of a wild thing we池e trying. And their video man yesterday was trying to help us out with phone circuits and all kinds of extra links.


A very interesting credit to bring up next is from another research company. This is an affiliate of Herman Miller Furniture Company. And why are they connected with a computer show? Well, they致e been bringing out some new office furnishings and we致e been very much interested in developing the whole environment for people working in a different way and that means walls, desks, surfaces, console and everything. We got so attracted to their line that they致e started working to help us equip offices and study it like that. And one of their designers, Jack Kelly, came one day, spent a day working with us about our ideas about our control consoles as being separated from display consoles and ended up making this - on a chair that I can get up, move around, sit down and swivel and rock and lean back and work very relaxed.


So, I think this is a very exciting stage we have just gotten and in the Open House, we have a full office which is equipped like this with this type of a console that we池e very excited about. We invite you to come too. And without being formal, I壇 like to really say that I知 backed up by a really very tremendous team of these 17 guys who致e caught the spirit of putting on this show tremendously and just done an overwhelming job of putting it all together. And by backing me all these years, in this wild dream of doing this sort of thing and they池e all catching fire and I just want to tell them all right now, I owe them a lot.


And a very final credit goes to my wife and daughters, who are out here, to whom I壇 like to dedicate this whole presentation because of what they致e put up with over these years, with a husband that痴 dedicated in a mono-maniacal way to something very wild. And so this whole presentation is dedicated to you four people there. And I thank all of the rest of you very much for coming to the dedication ceremonies. Good day!