PERSONALIZED MOVIES by Ralph J. Mayer B. Sc. (Arch) McGill University 1974 B. Arch. McGill University 1975 Submitted in Partial Fulfillment for the of the Requirements Degree of Master of Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY September 1979 OD M.I.T 1979 Signature of the Author /Depey*!tment of'Architecture June 19, 1979 Certified by Nicholas Negroponte Associate Professor of Computer Graphics Thesis Supervisor Ix Accepted by Pro essor Nicholas Negroponte Departmental Committee for Graduate Students - 1 - Archives MASSACHUSETTS INSTITUTE OF TECHNOLOGY SEP 27 1979 LIBRARIES Personalized Movies Page Table of Contents I. 4 Introduction II. Concepts of Personalized Repair A. Types of Personalized Repair 8 B. Interaction With the Viewer 10 C. Functions of the Movie Maker 16 III. Creating'the Videodisc film IV. A. Filming 22 B. Cutting and Editing 35 C. Narrating 38 Components of the Movie Maker A. The Database 42 B. The Editor 60 C. The Movie Player 66 D. The Story Teller 80 V. Program Documentation A. Conventions 81 B. Editor 84 C. Movie Player 91 D. Story Teller 101 VI. Continuation Work 103 VII. Looking Ahead 106 References 108 Acknowledgements 110 - 2 - Personalized Movies by Ralph J. Mayer submitted to the Department of Architecture on June 19, 1979 in partial fulfillment of the requirements for the degree of Master of Science. Abstract Personalized movies are used as an aid for instruction in Movies about bicycle overhaul are maintenance and repair. from an optical videodisc which sequences playing by created for the project. Movies specifically filmed material contains are personalized by means of an extensive profile describing each viewer's knowledge about the subject to be repaired and their preferences for presentation modes and teaching techniThe computer model of the videodisc is constructed so ques. that The viewer can request that movies are interactive. changes be made to the movie while it is being played, and those changes will appear without having to restart the movie. Thesis Supervisor: Ificholas Negro)_Jonte Title: Associate Professor of Computer Graphics - 3 - CHAPTER 1 Introduction A personalized movie is a movie which has especially for you. need, to see -- in been prepared It should contain only what you wish, or no more and no less. The storyline, the way which the story is told, and the speed of the movie should all be styles, attuned and to your individual requirements. cognitive At least in theory, no two people should ever see the same movie. pared preferences, If another movie were pre- for you, it would be different from the first one, par- tially for variety, first movie and partially because the viewing of changed you, and your needs in some way. sonalized movie would truly be one which is the A per- constructed uni- quely for you. One of the first questions which comes to mind about such a movie is: How does the movie maker know what kind of movie is best for me? movie maker The best way seems to be for you to tell what you would like to see, the and for the movie maker to prepare a movie based on that information. You could then watch the movie, and tell the movie maker whether this is satisfactory. tions. The movie maker would make appropriate However, correc- in order for you to be satisfied, the movie - 4 - maker must make some assumptions about what to show you; only not you be incapable or unwilling to describe exactly might what kind of movie you would like, but if you had to tell movie maker exactly what you wanted to see, there would be no point in having the movie maker. to change If you tell the movie able to maker the type of movie which is playing, then the movie maker should not necessary start another movie. continue watching the You should be continuation of the current movie, but in a manner better suited to you. ful the Thus a success- movie maker must be intelligent, interactive, and able to change movies as they are being made. The concept of personalized movies is an answer to a very real problem Naval Research. Navy in currently investigated by the Office of being The armed forces in particular, general, and the have trouble properly maintaining their equipment due to an increasing amount of equipment and creasing pool of qualified repair personnel. a de- The shortage of qualified people is due to many reasons, including the tion U.S. cessa- of the draft and the decreasing numbers of people enter- ing the armed forces to acquire method professional One of alleviating this problem is on-the-job training for these maintenance personnel, whose differ training. widely. experience and knowledge Personalized movies about maintenance and re- pair are a way of providing this training. Personalized movies are a marriage of two concepts study at the Architecture Machine Group: - 5 - under idiosyncratic sys- tems, and the merger of computer graphics and picture processIdiosyncratic ing. man-machine each systems attempt to personalize the interface by having computers adjust themselves to user. Computer graphics and picture processing use 'sto- rage devices to save and retrieve pictures, rather than recreating each picture as it is required. The joining of these two concepts was made possible in part by the advent of the optical videodisc. The optical videodisc plays televisison images stored on a disc approximately the size of a long-playing phonograph record Each disc currently contains 54,000 frames, or hour of video, with two accompanying one sound half tracks. Information is stored as FM encoded video in a series of which form a continuous "track". The disc is read using a laser beam and a light sensing diode; no pits where there is a pit, light is reflected back to the diode, and where there is a pit, light is sensed. signal which is These rapid fluctuations recorded therefore laser on beam each may revolution of videodisc is also randomly accessible. accessed by its frame number search (1 to the 54,000), time of approximately five seconds. stop One disc; frames. Any frame may be with a maximum Thus it is possi- ble to play and fit together sequences from any place disc. FM skip back to replay a frame. This permits slow motion, reverse playback, and The the then decoded into standard televsison. video frame is the form on the In short, the videodisc is a perfect way for the movie maker to play its movies. The investigation of personalized into three areas: the movies, and the movies is broken The preparation of the source material for the generation of a movie for a particular viewer, interaction between the viewer and the movie maker. Preparation of the source material involves creating a disc which up video- contains all the sequences which are to be played by the movie maker. The movie maker itself is a computer pro- gram which shows a movie by selectively playing sequences from the videodisc. The movie maker is concerned both with the ci- nematic problems of how to concatenate sequences, and with the dynamic tailoring of movies to each viewer. also interacts The movie maker with and models the viewer in such a way that the viewer can easily tell the movie maker the types of movies desired. - 7 - CHAPTER 2 Concepts of Personalized Repair A. Types of Personalized Repair Maintenance and repair was chosen as the subject for initial investigation of personalized movies. The repair process is generally sequential and easily defined, but also has suf- variability that instructions can be personalized for ficient each repair person. a For example, typical is sequence to first loosen a bolt, then remove the bolt, and then remove the A novice might be taken through each individual washer. and told what to do with each part, whereas an expert would just be told to remove the chosen specifically Overhaul bolt. because than diagnostic repair. they are more straight forward proceeds whereas diagnostic repair into volves making many decisions to identify the part It were operations The overhaul process always from step A to step B and so on, paired. step was felt that such diagnosis is re- be another topic al- together. A bicycle was chosen as the object to be overhauled. A bicycle is small enough in scope that its overhaul can be adequately covered using one side of a - 8 - videodisc, or in about half an hour. This is in contrast to other choices such as an Nonetheless, bicycle automobile or an air conditioner. haul embodies many maintenance of techniques over- and repair. Bicycle repair was also particularly suitable for being played on the videodisc. Since the front and back of a bicycle are similar, some sequences can be used to illustrate more than one operation, thus effectively increasing the number of operations which could be covered. Furthermore, sily obtainable and their repair is - 9 - bicycles are well documented. ea- Interaction With the Viewer B. outward After choosing the subject, the of characteristics the personalized maintenance and repair system were speci- fied. presenta- The first step was to generate a taxonomy of tion modes (see Table 1). written explanations, diagrams, exploded views (both live and drawn), highlight spoken expla- animation of the repair process, bicycle repair, nations, These included live action films of all stills, and computer these modes. movies using This is one way in which those modes preferred by the viewer. The to All modes of presentation should be available so that the movie maker can create movies are personalized. graphics generated ways other the are teaching style employed by the movie maker, and the knowledge level for which the movies are made. There are actually three ways in which a viewer may use a personalized repair system. The first way is for the viewer to ask the system for instructions part such as the front hub. on repairing on the axle. the order of the The third way is for the viewer to peruse all the information in the system about specific The second way is for the viewer to ask for specific instructions, such as parts a by requesting information a general topic such as bicycle wheels, or perhaps even bicycles in general. This project concentrates primarily on the first method, whereby the movie maker prepares a personalized movie about a chosen subject. Table 1. Presentation Modes Live Film Synchronous Sound Narration Animation Cartoons Exploded Views Sketches Diagrams Graphic Overlays Highlighting Computer Graphics Written Explanations Computer Synthesized Sound Slow Motion Reverse Motion Freeze frames - 11 - it know who is watching the movie, how much that viewer must The movie maker identi- the viewer prefers. presentation maker movie The keeps a list of all these names, as and what they information remembered about each user, the more The know they well as a description of how much like. her or his fies each viewer simply by asking the viewer for name. modes which already knows about the overhaul being done, and of movie, each to personalize In order for the movie maker the movies can be. more personalized The movie maker maintains a viewer module which specifies viewer each whether is or left-handed, whether they right prefer movies or exploded diagrams, about each type of bicycle overhaul. track of each viewer's knowledge about tion, since somone how and It is necessary to keep each viewer who has repaired many flat tires may not Each time a movie some knowledge should be imparted, watches increas- and therefore the knowledge of a viewer is generally ing. However, opera- overhaul have the slightest idea of how to take apart a hub. a know they much this is not always true. If a viewer has not repaired a bicycle for six months, some knowledge will be forKnowledge gotten. also becomes progressively harder to obfirst Much more will be learned the shown how to repair a hub than the tenth time. the one hundredth time the viewer will know hubs, and will someone time tain. Hopefully, by everything not need any further instruction. maker uses this constantly changing viewer profile - 12 - is about The movie to create movies which are personalized for a specific person at a specific point in time. Another issue is how the movie maker When overhauling bicycles, one of the most important viewer. pieces of information is to be overhauled. identifying Probably the easiest way for a viewer to do frame a displaying sensitive ticular part, query the viewer whether that is visually, par- and using a picture of that closest part of the bicycle, to be overhauled. the When screen. the movie maker can determine the the screen, touches by done This is from the videodisc on a monitor which is covered by a transparent touch viewer bicycle the the part of to point to a picture of a bicycle. this is the with interacts really the part chosen In this way, the choice of topic is and does not require the viewer to have any a priori knowledge of the names of parts on a bicycle. This informa- tion is provided by the repair system. While a movie is playing, any to time that indicate the viewer can interrupt something should be it at changed. Possible changes are to expand or condense the explanation, to the change mode of presentation, or simply to play the last sequence over because Such the viewer wasn't paying attention. changes are used by the movie maker in future movie preHowever, it is not neccessary to go back to the be- paration. ginning of the movie; the next sequences shown will simply reflect the updated knowledge or preferences of the viewer. The viewer indicates preferences to the movie - 13 - maker by The controls. special most expand/condense button, which the of viewer uses tedious. becoming hensible, or whether it is too long and is controls can be used for various types of audiovisual Similar For example, the viewer can indicate preferences. The on. so of with sequences However, prefer- a against movies, stills, drawings, diagrams, ex- or for ploded views, audio explanations, animation, and indicate to the explanation provided is too brief and not compre- whether ence an is these basic text, displayed movie maker attempts to provide the viewer the preferred whenever types possible. preferences of the viewer must be balanced aga- the inst the available material, and the fact that the viewer must be given suitable instruction for the object to be repaired. The instructions for each overhaul operation must contain a procedure for the over- The foremost is certain components. In addition, there should be an expanation of the func- haul. tion of each part in the assembly, how the parts fit together, and how the whole assembly functions. novices, for available experts, Explanations must and people inbetween. be For each operation it is also necessary to have an introduction to the operation, and a list of all the tools needed to perform the operation. For those viewers who do not know how, explanation on how to use the tools. instruct novices in tool use the first quired. If the there should be an The movie maker would time a tool is re- viewer requested more explanation, then the - 14 - movie maker would continue to instruct the viewer in the use of the tool until the use of the tools was percieved to be un- of instruc- derstood. tions, Although all movies contain a variety any particular movie will contain only a small portion of the information on the videodisk. Only that information applicable to the current viewer's knowledge, preferred learning methods, and presentation modes will be a part of the personalized movie. - 15 - Functions of the Movie Maker C. Having discussed the outward characteristics of the movie the next topic is the construction of the movie maker. maker, Some information can be obtained from previous research in the area of Reseach in this area Computer Assisted Instruction. has been done at M.I.T by the Laboratory for Computer Science. Out of this existing work came some ideas on computer inof struction students, our case, in or viewers. Computer aided instruction can apply a variety of teaching methods (see what These include telling the student what to do, 2). Table providing explaining why something should be done, not to do, the background and letting the student figure out what must be done, and using an analogy or refinement of a known procedure. is It is necessary to know how smart the modeling of the viewer. each viewer is, how fast they learn, methods research Instruction Another area 'of Computer Aided what of type teaching they prefer, and if they are being shown movies, what kind of movie presentation they prefer. It is also useful know what they dislike, as well as what they like. to It is pos- sible to model viewers using some predefined assumptions and a few basic questions, pair a bicycle. such as how well they feel they can re- Then the interaction between the movie maker and the viewer becomes very important in augmenting and changing the viewer model. condensation of a If the viewer then topic, - 16 - the asks for computer expansion or model of the Table 2. Teaching Methods Show Someone Else Doing It Show the Assembly Describe the Function of Each Part Describe How it Works Show Exploded Views of the Assembly Procedural Rules of Thumb Expand on Existing Knowledge Analogy to Existing Knowledge Show How Not to Do It Library of Common Techniques - 17 - the If change. viewer's knowledge and learning rate should asks for expansion or contraction again, then the com- viewer not is it Since puter model will change more drastically. getting the same type of feedback as does a system which tests maker's responses to specific questions, the movie It the viewer is based on very tenuous information. of therere- and thus update the viewer model. to change the movie, quests is specific get fore very important for the movie maker to model Viewer models can also be examined for group behavior. If the previous ten viewers have asked for amplification on a particular subject, then it makes sense to give the next viewer that amplification straight off. The movie maker must also have a model of all the mation on the videodisc. The models of the viewer and the vi- as movies of deodisc must be structured so that preparation done is they are being played and the movie maker can adjust The immediately without having to create a new movie. to structure method for accomplishing this is videodisc as a tree. to a Selective expansion of the tree, based on each viewers knowledge and This is generate personalized movies. basic the model of the Each node on the tree corresponds sequence or still frame on the videodisc. will infor- preferences, explained in more detail in Chapter 4. The movie maker plays movies system - 18 operating a videodisc It can instruct the videodisc under computer control. player to move to a particular by frame, - to play forwards or and backwards, to play the sequence at a specified speed. videodisc videodisc system must contain at least two with identical the can already be Another use of multiple vi- can deodiscs is that one videodisc another videodisc other for the next sequence. searching players This is so that while one video- videodiscs. disc is in play mode, A while sound playing be videodisc is playing a visual sequence from a differ- ent spot on the videodisc. playing both However, if videodiscs are then there will be a pause while the simultaneously, More than two next sequence is searched for. videodiscs can therefore be used to provide additional flexibility and ensure continuity. There are many different ways to combine the outputs from videodiscs. multiple As mentioned above, one can alternate between two videodiscs to provide a continuous picture made up of stills or film. Either sound track can be turned on and off as required since pauses in sound are not tionable. part Sound can be played an ferent. er objec- from of the disc while another videodisc is displaying a Thus a picture from another place on the disc. get all Two videodiscs can also be played simultaneously to present material in different ways. one at explanation which was briefer, longer, viewer could or simply dif- While one videodisc is playing a long sequence anoth- videodisc can be used to temporarily replace the picture with a closeup of the part being handled. Significant opera- tions can be replayed in slow motion, or perhaps backwards, to - 19 - illustrate a point. lighting or Computer generated graphics such as high- arrows can be overlaid on top of the videodisc image to point out a tool or a part. can be text displayed either to indicate a part or to amplify the The movie maker chooses between these spoken narration. play Computer generated dis- to play a movie containing various audio and techniques visual components from the videodisc. In order to generate personalized movies of pair re- a videodisc with all the different sequences which might be used in a movie was manufactured. disc bicycle video- Material for the was created by filming the overhaul of a bicycle. the movie was to be prepared and edited program, the frames repair. the movie maker filming was somewhat different from traditional In addition to live film footage training films. still by Since and there were exploded views taken from books on bicycle A narration to describe both the bicycle and its Because of the difficulty in pro- overhaul was also included. ducing animation none was included. Written explanations and graphic overlays were also not put on the videodisc since they can best be stored digitally, and the videodisc for this ject did -not contain a section Therefore, digital information was with stored pro- digital encoding. in computer. the However, in the future it should be possible to store such digital information on the videodisc itself. This videodisc is the source of material for the movie maker. Computer programs were written to perform - 20 - the functions of the movie maker. The two major programs are the Editor, used to create the database model of the videodisc, and the Movie Player, which interacts with the viewer and creates personalized movies. done The next two chapters describe to create the personalized movie system. the work Chapter 3 des- cribes the creation of the videodisc, and Chapter 4 describes the computer programs which make up the movie maker. The sys- tem is not yet complete, as some of the only partially satisfied. design criteria are However, the system was constructed with all these criteria in mind and its behavior is similar to that of the movie maker described here. - 21 - CHAPTER 3 Creating the videodisc Film A. Filming The filming was done in a private film studio. constructed, backdrop. consisting of a bicycle stand, a work bench, and A bicycle expert was brought in the bicycle. overhaul to be the actor and The filming was done with 16mm film in order to obtain a high quality print. eras A set was In addition, 35mm cam- were used to take still shots of the tools used for each operation, as well as each part after it was removed from the bicycle. These included closeups of individual nuts and ball bearings. A script was written required shots to which detailed document completely all bicycle of the overhaul. Included were shots from different angles and distances of all the overhaul operations. Most of the shots were designed to be from the point of view of the person actually doing the reThis pair. is a common training film technique, since there is a large difference between watching someone else take something apart and imagining yourself doing it. Other techniques were devised to take computer controlled 22 of the The selectivity of the movie videodisc. - advantage - - 23 - maker also permitted the inclusion of different many repair Since a particular viewer would not be shown all of methods. the possible repair techniques, it was possible to include information might interest only a minority of potential This approach simply cannot be taken in conventional viewers. film which making, where the material included should appeal to all viewers. was intended to film operations being done first It right-handed person, and then by a left-handed person. right and left-handed people do duplication would ensure that everyone considerations left-handed bicycle expert, the could see how they due However, the difficulty of only one fairly short and a Since differently, operations should place their hands to move the parts. time by to finding a operation was filmed both from the left-handed and right-handed point of view. Most of the filming was done with synchronous sound, that is sound which is recorded and played back at the same time as Such sound not only gives presence to the film, but the film. is also an important part of the repair process. it is very reassuring to hear the clang dustcap is tapped into place. of a hammer, as a Some procedures, such as the adjustment of derailleurs, can be done by sound is For example, alone. This done by listening to how the chain sounds as the bicycle is shifted from one gear to another. The script also included shots on how to - 24 - use tools and worms- perform common procedures, such as cleaning bearings, to how set shots of filming. The library was referred to as the "library". included shots of how to use each of the This operations. overhaul which are a part of many bicycle tools used in the These descriptions show the correct way to use each tool and various techniques to take full advantage of the features The cleaning procedures show how bicycle of each tool. parts in general should be cleaned, using all and dirt. grease solvent Throughout the film, remove to care was taken to use the correct procedure. made to alternate methods for performing various operations. It While preparing the script, an attempt was also find was felt that one would teach different techniques to pert is ex- However, it appears that although experts and a novice. and novices probably do not repair bicycles in the there an same way, a "best" technique which should be taught to every- one. The differences are mostly in the way in ques are explained. It which techni- is reasonable to tell an expert to tighten a nut "until it is hand tight". A novice needs a more quantitative description, such as, "until the wheel just stops spinning". mine A novice also needs information on how whe-ther a bolt is too tight or too loose. to deter- Illustrations of adjustment for both the expert and the novice are included for most of the overhaul operation in the film. Another method of instruction which was developed the filming was to how the parts fit together. illustrate - 26 during - - 27 - Good mechanics may be able to take any object apart once understand how the assembly fits together. To instruct this type of repair person, shots were filmed of how pieces on a bicycle are put together. the internal For example, an axle and its locking devices are filmed being put together instead they outside of inside the hub, thus illustrating how they must be taken apart. Two other similar types of instruction were at the same time. an assembly fits this mode The first such method is together, of teaching, but how it also filmed to explain not how works. To illustrate the function of important parts, as locking devices, was demonstrated. such Another teaching varia- tion is to simply show all the parts and their relationship to This is very similar to an exploded diagram, but one another. uses actual picture instead of a diagram. an An experienced repair person can quickly understand how to disassemble an object once the individual parts are. known. the bulk of the filming was Despite all these variations, devoted to traditional methods of instruction. ing the pupil a step-by-step procedure to due in follow. This was large part to the fact that performing each operation in its entirety is much more time consuming than cribing That is, show- the object to be overhauled. on a bicycle were filmed. filmed from various angles and distances. - 28 - des- Because of the time re- quired to film each operation, only a subset of operations simply the overhaul These operations were There were a number - 29 - of differences Contrary to normal practice, tional film. filmed were tions this film and a traditional instruc- between in opera- This is so the movie their entirety. maker may cut to a closeup at any time, closeups of and not be restricted to only those closeups which seemed appropriate while filming. During a personalized movie only a portion may be shown, the of operation and the type of closeups required may be differare ent depending on exactly which portions of the operations being shown to a particular viewer. Similarly, the amount of may movie differ, since kinds of information: detail required to create a type of shot shows different each A long shot may show how person the should stand next to the bicycle, a medium shot would show how ones hand is placed on the part, part is a closeup would show how the being handled, and an even tighter shot is needed to show how the shape of the part determines how it must be han- dled. Since different viewers need different types of infor- mation, all these various levels of detail should be included. However, the is enormous. number of shots required to satisfy any request Therefore, only those shots which were be fairly useful were filmed. to Even so, there was a tremendous amount of information. - felt 30 - - 31 - - 32 - - 33 - - 34 - Cutting and Editing B. and After getting back the developed film the there outakes, about one and a half hours of film In order to cut the film down to half an on a bicycle. First of all, much a lot of material had to be removed. hour, opera- somewhat over half of the possible overhaul describing tions were For example, removed. was duplication all removing two views of the same were subject which did not really have any content difference cut in half, so that half of the operation was seen from each Although angle. not ideal, the viewer does get to see both views and is this another from one angle and the other half thus gets a sense of space, the videodisc. while freeing up valuable room on In addition, shots which were repetitive, such as the derailleur adjustment, were These drastically. cut shots can be intercut and replayed as necessary to recreate an illustration of a derailleur adjustment. and cuts The closeups were carefully scanned, to remove frames those frame. For example, bench, there or workbench. operation where no action was going on in when a nut was being no action in the frame. put down on the the The movie maker can frame to simulate the time needed to put down the either still bolt, is made were can cut to a shot of the nut being placed on the Actually, in many instances is rather tedious,. and it watching the entire may be desireable to have the movie maker occasionally skip over pieces of film such - 35 - as the setting down of nuts. rear hubs were very similar. shots were removed. se- same the After removing all this film, slightly identical. half an hour of film still remained. ations such as brake adjustments, for use can illustrate those parts of the operation which are to quences and front many of the duplicate Therefore, The movie maker the of Some operations such as the overhaul than completeness than more Some of the simple oper- which had been included more for uniqueness, were discarded. This left a series of bicycle shots of just under half an hour. In addition to the film itself, taken shots exploded This was augmented by pictures, diagrams, views from a number of highly regarded books on bicycle repair. In total there were about to the film. added still 35mm were all the bicycle parts and all the tools used of for each operation. and there 500 frames still This is enough to make a formidable slide show, but seems rather insignifigant compared to forty the This was the visual information thousand plus frames of film. for the videodisc. The visual information had then to be laid sensible fashion some move, it is to have all the shots which are likely to be seen in se- quence very close together. done in Since search time varies on the videodisc. proportionately with how far the videodisc must best out on ject is videodisc layout since similar operations such - was The relationship of each sub- the basis of subject. also important, the Thus 36 - as the of the front and rear hubs have shots in common, and overhaul hence should be adjacent. Some operations must also before other operations. formed be disassembled, these subjects must also be adjacent. library sequences and still and subject, per- For example, the front wheel must be removed before the headset can therefore be Finally, the shots may be shown as part of therefore they are grouped in and any the middle of the The final videodisc layout consists of a number of videodisc. around the central resources. Within each subjects grouped subject, there Watching the videodisc from start to finish is rather confus- ing; it is be seen in are long cutaways, shots, and designed to be played by the movie maker, its entirety. - 37 - closeups. not to Narrating C. A narration was then the accompany to film. narration had been worked on throughout, it was the Although prepared impossible to fix the narration until the cutting of the had Since there are two sound tracks on the finished. been videodisc, there was a full hour available for narration. two tracks sound sound The One sound track were utilized as follows: and the track would contain additional information. The was designated to follow the action on other film the screen, first sound track also included the synchronous sound recorded Sound had been recorded during all the long filming. during and medium shots, and a few of the closeups. ups generally overlapped with another shot, sound is not are usually required. to shots Since the close- be The layout of the sound tracks permits most played with synchronous sound and a voice over The describing the operation being performed. second sound track is generally played with either a still frame, or with a picture from another part of the disc. deodiscs, but This requires two vi- even then there may be a pause while searching for the next sequence to play. Of course, with three or more videodiscs, this is not a problem. first sound the action in the film. This As mentioned above, the narration track was written to follow meant that in some cases when a lengthy quired it for the explanation was re- was necessary to move a part of the description to - 38 - In the second sound track. cutaways description is required, additional narration which no where as such cases, other was picture is not played with the included the on first A script was written to describe each operation as it track. was performed in the film. script the reading while Trial run-throughs were watching a videotape of the final edi- The script was typed up using a computerized text film. by made tor which made it easy to modify and move information from one be "play the Run-throughs were made until of the narration. this movie generate text on the screen using the computer file to maker the It is also possible for sound track to the other. play" pace of exactly matched that of the narration film. The one section of the film which did not lend itself type this leurs. not of description to was the adjustment of the derail- Unlike the other bicycle operations, the viewer could comprehend what was being done simply by watching the si- lent film. For this section of the film without regard to the picture, written the narration was with the idea that the movie maker will fit the picture to the narration instead of the other way around. In addition to procedural descriptions, there other things First of all, prepared to say bicycle overhaul about alternate procedures, many were (see Table 3). and summaries had to be These narrations were at a dif- for all operations. ferent pace than the procedural descriptions, and were - 39 - gener- Table 3. Types of Narration Procedure to be Followed Abreviated Procedure Introduction to Job Summary of Job Overview List of Tools and Materials Required Functional Description of Part Functional Description of Assembly Summary How the Parts Fit Together How to Positon Yourself Where the Work is Done (bench, stand) Why Things Are Done in a Particular Way Things to Check For Hints How Much is Left to be Done Possible Errors Results of Possible Errors Glossary of Terms Listing of Parts and Tools - 40 - of all the tools needed to perform the overhaul. list a introduction For each operation there was also an operation. and the cutaways and closeups for a particular with placed ally There was a description of each part and how it fit well as assembly, as an overall description of the assembly There were additional hints and expla- and how it functioned. nations, as such how to test whether a bolt was suggesting tight enough, and what might happen if it wasn't. comments on why the into were There certain proceudures should be done, the se- quence of operations to be followed, which operations were upcoming, and There how many operations were left to be done. was also a glossary containing the names of all the parts shown tools on the and The movie maker can use the videodisc. of glossary to say the name of a part while showing a picture it to the viewer. All of these alternate and additional explanations filled up most of the second track as well as the unused space on the portion first track, thus utilizing all of the audio videodisc. The the recording was done while viewing the actual videotape of the film, ensuring that the timing of the matched that of the film. tion of narra- The two sound tracks were re- corded scene by scene, and then cut to exactly match the film. As in the film, grouped together. all remarks about a particular topic were narration The first which contained the play-by-play description was mixed with the synchronous sound. Then the two sound tracks, and the picture, fornia to be manufactured into a videodisc. - 41 - were sent to Cali- CHAPTER 4 Components of the Movie Maker The Database A. be Once the film was on the videodisc, a database had to The data- to describe the film to the movie player. designed base describes the contents of the videodisc, both in terms of and considerations cinematic portion is general enough to be used for bicycle the repair Information on the videodisc is broken up corresponds segment any of type film; particular to this project. is portion The cinematic bicycle repair. A segments. into Thus a segment for a still to one shot. frame is only one frame long, whereas a film for segment a long overhaul operation may be several thousand frames long. Each segment is described by 1). figure a descriptor record (see A segment descriptor record contains not only the physical disc position of the segment (start and stop frames), also but cinematic This includes the cinematic type data. (audiovisual, audio only, visuals only, or still), of the angle view, and the degree of zoom (long shot, medium, closeup). There is ople, also data on whether the shot is left-handed people, how much detail is or both, - 42 for right-handed pe- - shown by 2 3 4 TYPE (AUDIO, VISUAL, AUDIO/ VISUAL , STILL)_ START FRAME NUMBERS END FRAME NUMBERS MEASURES OF --- 5 6 7 8 9 10 11 12 RIGHT/ LEFT AUDIO TRACK AVERAGE SEGMENT KNOWLEDGE ANGLE OF VIEW ZOOM STRETCHABILITY POINTER TO FIRST LINK POINTER TO FIRST KNOWLEDGE I FIGURE I SEGMENT DESCRIPTION RECORD HOW-TO WHAT- IS ABSTRACTION EXPLODED DETAIL the shot, whether it is an exploded view, and how much of content is or procedural the The distinction of descriptive. whether the mode of teaching tells the viewer how to do the operation, as opposed to describing the function and operation of the the parts and the assembly, is referred and "what-is" to as"how-to" This distinction is the way in respecitvely. which different teaching modes are recognized by descriptor record movie the player. Associated with each of number other records. descriptor segment are shown in subject segment descriptor of marks these a The subject des- (see Figure 3). record a Their relation to the The first Figure 2. are criptor record describes the function of the segment, the name of the operation being illustrated, and how much of the operation is shown. an introduction The function of segments include, to a a description of how to use a topic, tool, a long shot of the entire operation, name of the operation, for example, such as the hub, or a closeup. is The used to associate all the segments which describe the overhaul of hubs. The am- ount of the operation described by the segment is specified by of an estimated percentage of completion at the start and end the segment. operation, This is used to match up major sections of the so that the appropriate closeup can be overlapped onto a long shot of a bolt being removed. In addition to the subject descriptor record there are number of sub-subject descriptor records - 44 - (see Figure 4) . a Each SEGMENT SUBJECT ISUBSUBJECT #11 KNOWLEDGE *1 #2 LINK #1 FIGURE j #2 # 31 #4 #3 ILINK*2 *4 1 #5 #6 #5 LINK #3 RELATIONSHIP OF RECORD TYPES FOR A SEGMENT I 2 3 4 5 FIGURE TYPE (MASTER, DETAIL, CLOSEUP, ETC.) SUBJECT NAME START % COMPLETION END % COMPLETION POINTER TO FIRST SUBSUBJECT SUBJECT DESCRIPTION RECORD - 46 - TYPE (ALWAYS 1) 2 START FRAME NUMBERS 3 END FRAME NUMBERS 4 LOCATION (FRONT, BACK) I 5 6 7 8 PART NAME TOOL NAMES (2) OPERATION (APART, TOGETHER) SUBASSEMBLY USED 9 POINTER TO NEXT FIGURE 4 SUBSUBJECT DESCRIPTION RECORD - 47 - such of these describes one step within the segment, of removal a the There must be at part such as a bolt. single as least one sub-subject descriptor per segment, and there may be as many as required. A sub-subject descriptor record contains information on which part both, whether this sub-subject applies to back bicycle the of or the must included be as An example of an included operation this operation. of front the or both, which tools are required, and what other operations or subassemblies part installed, or removed being it being removed or installed or shows segment the whether is is that the front wheel must be removed before overhauling the headset or the front hub, or repairing the front tire. front wheel removal is therefore a considered The subassembly which must be done as part of these other operations. There are assumed to only be two since only people tools at a time. can be If have two hands, and can only handle two a third tool is used, record cord, the sub-subject description sub-subject. of completion then the subject Like the subject description re- subdivided further. percentage sub-subject per tools at the also begining contains and Once again, these percentages are used the end of the to con- trol the overlapping of segments which describe the same operation. the They are used by the automatic linker which is part of editor and is described below. It is also necessary to specify exactly where the sub-subject appears within the ment. In seg- order that this information can easily be verified - 48 - on the videodisc, the sub-subject position is stored using abnumbers, just as in the segment des- frame videodisc solute criptor. To accomplish this, each segment is knowledge descriptor records (see Figure 5). and in Knowledge Firstly they divide a has narration into short pieces, each of which which has one or two sentences. cut or one with associated descriptor records serve two purposes. segment into subdivided each segment is subdivided into cutable scenes. sub-subjects, more is subject the as way same In the This enables the movie player to out of a sequence without chopping it off in the middle of a sentence. Secondly each knowledge descriptor has, as its name indicates, the amount of knowledge associated with This information is used by each portion of the segment. the decide whether a particular portion of the segment should be played. There are two measures of knowledge movie player each for to segment The first is how knowledgeable a portion. is viewer should be before this segment portion example, to For a brief reminder would only be given to a viewer who had done the operation many times before; shown shown. a novice it would not to whom it would just be confusing. be The other measure of knowledge is how useful the sequence is likely to be to the viewer. The movie player would show only the highlights of an operation to a fast learner, whereas learner would be taken through 49 - slow all possible elaborations. Like the sub-subject descriptor records, - a the knowledge des- I 2 3 4 5 6 7 TYPE (SAME AS SEGMENT TYPE) START FRAME NUMBERS END FRAME NUMBERS STOP FRAME NUMBER KNOWLEDGE REQUIRED KNOWLEDGE GIVEN POINTER TO NEXT FIGURE 5 KNOWLEDGE DESCRIPTION RECORD - 50 - records criptor absolute videodisc frame numbers to contain representative a for the segment portion is speci- frame stop addition, In specifiy their position within the segment. fied. This stop frame is used by the movie player trate the illus- to portion when continuous motion is not de- segment sired. Lastly, each segment may also have (see cords 6). Figure descriptor link re- Link descriptor records specify that link A another segment may be spliced onto the current one. descriptor record specifies the segment which is to be linked, The and an exit and reentry position for the linked segment. segment with the link descriptor record is referred to as the and the segment segment linked from, descriptor in specified The exit refered to the linked segment. record is link the con- and reentry positions may be anywhere within the segment taining the link (see Figure 7). which case the linked segment is the current segment. They may be the same, in actually a diversion within For example, to illustrate the removal of the front wheel before the disassembly of the headset, segment the for the headset disassembly has a link to the segment describing the removal of the front wheel. The link exit and reentry position are both at the start of the headset segment; the movie player will therefore shown the removal of the front wheel before the overhaul of the headset. closeup, the exit and reentry positions would after the shot being replaced by the closeup. - 51 - In the case of a be before and For an abrevi- I 2 3 4 5 TYPE (SAME AS SUBJECT TYPE) EXIT FRAME NUMBERS REENTRY FRAME NUMBERS SEGMENT LINKING TO POINTER TO NEXT FIGURE 6 LINK DESCRIPTION RECORD - 52 - LINK #1 DIVERSION LINK #2 CLOSEUP LINK#3 ABRIDGED VERSION FIGURE 7 LINK USAGE LINK #4 ALTERNATE METHOD further be would thus creating a shorter route between two parts of the apart, As in all the other descriptor records, the original segment. positions reentry and exit reentry and ated sequence, the link exit videodisc absolute are frame numbers. In order to create a database describing an entire movie, One seg- segments are linked together in a sort of hierarchy. in ment is linked to a second, which third, is turn Thus the links form a tree, and so on. linked to with each seg- However, since a segment may be linked ment being a node. a by more than one other segment, the structure is actually a graph Still, (see Figure 8). a with tree it often usefull to think of it is segments, called link The being more These performed. those which show alternative ways of doing to things, which in turn link to closeups, and so on. actually There In ad- any level segment may link to a generally usefull seg- ment such a closeup, Master segments or a description of how to use a tool. may also link to other master segments which However, are to be used as subassemblies. ments are intermediary levels, thus accomodating all the variations which exist on the videodisc (see Table 4). dition, level top segments are medium or long shots "master" which describe the entire operation segments Within the common nodes just being duplicated. this structure there is an implied hierarchy. as in general, seg- only link to segments which are below them in the hier- archy. - 54 - TOPIC #2 TOPIC #1 FIGURE 8 THE DATABASE GRAPH TOPIC # 3 Table 4. Heirarchy of Segments Master Segments Sub-master Segments Different Ways of Doing the Operation Detail Shots Cutaways Closeups Macro Closeups Subassemblies Tool Usage Shots Introductions Overviews - 56 - The physical layout of the database is as follows: type record is kept in a separate file, or to descriptor of segment. Within each file there length records. There is a count of the use the MagicSix terminology, fixed multiple are allocating new records and when setting the length when This type, cord type. whose meaning varies from record to re- cord, is set to zero when a record is record per segment, a subject record segment record whenever created a and link descriptor The segment contains the record number of the first sub-subject, such is knowledge, variable number of sub-subject, records. segments For each segment there may be a created. is enabling there is exactly one subject descriptor Since created. as Segment records are allocated record to record. are thus deleted The rest of the fields vary from to be reclaimed. space re- The first field of each record contains the of the file. the is count This allocated records at the start of each file. used Each record then descriptor link and knowledge, records. Each the number of the next record of contains that type, with a zero signifying the end of the chain for the segment (see Figure 9). Links also contain the record number of the segment which is being linked. a very large array, Each file is defined as so that no explicit calculations have to be done to find a particular record within a file. It was mentioned above that the descriptor tain information on records con- operation is being performed and which Obviously it which part is being handled. - 57 - is desireable to SEGMENT DESCRIPTION RECORD *1 SUBJECT DESCRIPTION RECORD #1 * SUBSUBJECT DESCRIPTION RECORD SUBSUBJECT DESCRIPTION RECORD SUBSUBJECT DESCRIPTION RECORD SEGMENT #2 SUBJECT #2 SUBSUBJECT DESCRIPTION RECORD KNOWLEDGE DESCRIPTION RECORD KNOWLEDGE DESCRIPTION RECORD JREC LINK DESCRIPTION LINK DESCRIPTION RECORD KNOWLEDGE DESCRIPTION RECORD KNOWLEDGE DESCRIPTION RECORD KNOWLEDGE DESCRIPTION RECORD FIGURE 9 RELATIONSHIP OF DESCRIPTION RECORDS have this information displayed in English, rather than having to remember that operation and so on. 1 is the headset, 2 is the hub On the other hand, storing all these characters many times in each file would cause the files to get unmanageably big. Therefore, the last part of the database is a dic- tionary which keeps a record of all the numberical the descriptor records and what they mean. the next topic. - 59 - in This dictionary is updated automatically as new types are created. by the database editor, types This is done B. The Editor The database editor facilitates the entry and updating of the videodisc is only suitable for editing the as it The general mode of operation tion described by the database. the database, a great deal of knowledge about the type of informa- contains of This editor descriptor records in the database. various it opens one field at a time as follows: is editor within a given record, displays the old contents of the field, and At this time one can enter prompts for the new contents. See Table 5 for a either a new value, or any editing command. list of Editor Commands. Editing commands permit one to move to any segment within the Once database. within segment, a one may go to any sub-subject, knowledge, or link descriptor record. seg- The ment and subject descriptor records are viewed as a single record since there is a one-to-one correspondence between Whenever the editor them. to a new record, it first of all moves displays the entire record, and then opens the first field the record. If a new value is entered, the editor moves to the next field in the record. the next or deleted, in It is also possible to move or previous field or record. to Records may be copied and new ones may be added. The editor keeps track of all the pointers from a segment to its sub-subject, knowledge, and link descriptor records, as well as the linked list of descriptor records - 60 - of each type. Table 5. Editor Commands Add a new record go to Begining of record Copy a record Delete a record Error-go back to previous field * Field-go to next field Generate links automatically go to sub-subJect record go to Knowledge record go to Link record * * * Move to segment pointed to by link Next record * * Order the records for a segment Previous record * Quit go to Segment record * Type the entire database Up in tree (opposite of Move) View on videodisc Watch current frame "help" command * means the command uses a positive integer argument. - 61 - The editor attempts to be helpfull by initializing values whenever a new descriptor record is created; for example, when a knowledge record is created the start position of the re- new cord (its videodisc frame number) is calculated to be the frame end one of the previous knowledge record for the cur- plus The end position is initialized to be the rent segment. same Similar initializations are as the end of the entire segment. Assembled into the editor is in- done for other record types. formation about which type of information goes into each field of each type. record five are tionary, numerical values which have a pointer fields which fields of fields: minimum and maximum, are created and updated by the editor, The editor only prompts the and unused or spare fields. for types numbers, numberical types which use the dic- frame videodisc There user of the first three types, and checks the legality of information put into each field. As mentioned above, there is a dictionary containing meanings of all the the types within the data base. numerical Whenever the editor opens a field containing a numerical type, it prompts either a character string or a number. for If a character string is typed, the editor compares it with all the existing types the associated value is used. all the asks if updated If the entry already exists, for that field. existing Otherwise the editor prints out definitions for that field and dictionary a new entry should be made. If so, the dictionary is appropriately, otherwise an existing defintion can be - 62 - the numerical value, and its definition are shown. separate dictionaries for most fields the fields have the same numerical linked, being back or remembers through portion, editor will play any segment, sub-subject portion, up It the the to verify the database on the videodisc the order In since to link a and so on down the tree. the path taken so that one can also go tree. al- database, types. The editor also allows one to move from segment There are share the same dictionary entries, fields some though the in both displayed, are Whenever the contents of a field used. link portion on the videodisc. knowledge If the start or number end of the portion is incorrect, the appropriate frame adjusted, and then the portion previewed again. When playing a link, the editor will play part of the current seg- can be by followed ment, the segment being linked, and then by the current segment again. This allows one to preview cuts as they will be make by the movie player, and verify that the motion appears continuous from one sequence to another. The editor is also capable of creating links automatically. The auto-linker function of the editor uses the subject and sub-subject fields to determine whether one segment can be linked to another. One segment is linked to another whenever they describe the same portion (or portions) of the same overhaul operation, or when one segment describes a tool or subassembly used by another being linked to segment. In addition, the segment must be lower in the segment heirarchy than - 63 - the segment being linked from, except for the special case a Whenever subassembly. of the content of the segments match, link. and a link does not yet exist, the editor will create a Existing links are not replaced, so that automatic linking may be done after new segments are entered into the database, without replacing those links whose cut points have been optiThe auto-linker uses the mally adjusted. tion link overlaps linked from. sitions the positions, such and Although one must generally adjust the link manually after the previewing roughly positions them.. shots, or po- cuts, the automatic togeth- This is especially usefull for linking commonly used segments such as the tion that correct portion of the segment being linker does find all the segments which can be linked er, comple- fields in the subject and sub-subject descriptor records to calculate the link exit and reentry the percentage tool descrip- for any overhaul operation which has a large number of segments. The auto-linker starts at a specified segment. It cre- ates all the possible links for the starting segment, and then does the same for each segment which was linked to the ing segment. It then creates links for each segment which is linked by them, and so on. tree start- Thus the auto-linker will create a which describes an entire operation. The database crea- tion process consists of defining all the segments by means of segment, cords. subject, sub-subject, and knowledge decriptor re- Then the auto-linker is run to structure - 64 - the segment tree by means of the link descriptor records. are adjusted manually, and the database is the movie player. - 65 - Then the links ready to be used by The Movie Player C. The movie player is the program which actually plays personalized movies. the viewer model. the videodisc It interacts with the viewer and constucts The movie maker uses the viewer model and database to dtermine what segments should make up each movie. Movies are played using two videodisc under control of the movie maker program. players Each videodisc pla- yer has a copy of the bicycle disc described above, so all sequences can be played from either disc. The following des- has an overview of cription of the movie maker first how mo- vies are generated using the database, and then an explanation of how movies are personalized to the viewer. The movie player uses most of the data the editor, the movie as well as some files of its own. player does descriptor sub-subject not currently use describe each subject. data records. are In particular the subject or to trees create instead of the The movie player also has a file containing a profile of each person who has interacted profiles by All of the segments relevent to a subject can thus be accessed via the tree, subject created records, since it is assumed that the automatic linker has used the subject which base updated with it; whenever a movie is created. these Although one of the first things done by the movie player is to ask for the name of the viewer, it is best to first discuss the me- chanism for expanding the database tree and creating a - 66 - movie. a flowchart of this process. Figure 10 is The movie player first asks for the topic of the movie to be is currently done by displaying a list of This created. the possible topics and asking viewer to topic the enter Although this method is somewhat clumsy, the end re- number. of the viewer could point to a picture the same as if sult is Each the bicycle and indicate which part is to be overhauled. node start topic is associated with a within database the or segment, is the master segment for the node, tree. This topic. It is generally a long shot of the entire overhaul opThis eration. node is used as a start node for expansion of the tree. The first is expanded into what are called movie sequences. A se- done as follows: The expansion of the tree is node segment quence is an expansion of a Figure 11). descriptor A sequence descriptor record contains all of the segment descriptor fields, as well as additional data describ- ing how a linked segment is to interact with the sequence, cinematic data such as the speed the sequence is at, and audio/visual interaction. expanded. For one. of the segment for a short segment there may be In fact, due to the matching of the viewers knowl- edge with the knowledge description record, knowledge played long segment there may be twenty or a thirty sequences generated; only to be and Initially, one sequence is created for each knowledge descriptor record being (see record portions may be discarded. - 67 - some or all of the However, for now, the qSTART GET VIEWER NAME (GVIEWER) GET TOPIC (START SEGMENT) (GTOPIC) EXPAND CURRENT SEGMENT INTO SEQUENCES (KEXPAND) REMOVE SEQUENCES OVERLAPPED BY CURRENT EXPANSION (REPLACE) DUPLICATE IMPORTANT SEQUENCES IN SLOW MOTION (DUPLICATE) ATTACH LINKS FROM CURRENT SEGMENT TO SEQUENCES JUST CREATED (LEXPAND) |PLAY SEQUENCES WITHOUT LINKS (VIEW) SAVE WHAT WAS PLAYED (SAVE) FIND NEW SEGMENT AND POSITION TO INSERT IT (LINKSEG) YES ANY SEQUENCES LEFT NO UPDATE USER PROFILE DONE (UPDATE) FIGURE 10 THE MOVIE PLAYER FLOWCHART - 68 - I TYPE (AUDIO, VISUAL, AUDIO/VISUAL, STILL) 2 SUBJECT TYPE (MASTER, DETAIL, CLOSEUP, ETC.) 3 VISUAL START FRAME 4 VISUAL END FRAME 5 AUDIO START FRAME REQUIRED 6 AUDIO END FRAME GIVEN 7 MEASURES OF RANKING 8 ANGLE OF VIEW 9 AUDIO TRACK 10 RIGHT/LEFT HANDED 11 SPEED (STILL, NORMAL, I SLOW MOTION) 12 KNOWLEDGE DATA 13 LINK DATA AVERAGE SEGMENT KNOWLEDGE I POINTER TO LINKED SEGMENT 2 EXIT FRAME NUMBERS 3 REENTRY FRAME NUMBERS 4 LINK WEIGHT 5 LINK TYPE (BEFORE, DURING, AFTER) 6 TYPE OF LINKED SEGMENT 7 SUBJECT TYPE OF LINKED SEGMENT FIGURE II SEQUENCE DESCRIPTION RECORD - 69 - assumption will be that all expansions are used. After the knowledge records for a segment have been pro- cessed, the links for the segment must also be included. Each sequence can also specify one link. Therefore, each link is stored in the first sequence which overlaps the link exit po- sition. If more than one link overlaps a given sequence, then dummy are sequences created to hold subsequent sets of link various tests are made to Once again, information. determine a particular link should be included, and thus become whether part of the movie. current the After all the links for segment have been the movie player attemps to play sequences which do processed, not have any links to be expanded. Starting with the first the movie player will play each sequence in turn on sequence, the videodisc until a sequence containing a link is found. Sequences without links are sequences which cannot be expanded any further since there is nothing below Therefore, the tree. sequences have been played they are deleted. once On the other hand, sequences still containing expanded in them further (see Figure 12). links must If a master segment has just been expanded, then it is likely that all sequences contain still links and case the first remaining quence, nothing can yet be played. sequence be becomes the will In any current se- and the movie maker uses its link information to find the next segment to be linked. The segment being linked may go before, - 70 - after, or in the NO SEQUENCES SEGMENT KNOWLEDGE II 2I 31 I SEGMENT KNOWLEDGE I 2 I I 3 I 1 LINK SEGMENT I KNOWLEDGE 2 I LINK I 3 SEGMENT I KNOWLEDGE 2 LINK I PART I I 2 I 2 I 3 SEGMENT I KNOWLEDGE 2 PART I 2 1 2 2 SEGMENT KNOWLEDGE PART I I2 2 I PUT IN LINK FOR SEGMENT #1 PLAY SEQUENCES WITHOUT LINKS (SEGMENT #1, KNOWLEDGE #1 WERE PLAYED) 1 2 LINK I SEGMENT 2 KNOWLEDGE 2 LINK I 2 PART 2 3 SEGMENT 3 KNOWLEDGE I 2 2 I 2 PART 2 NO SEQUENCES EXPAND SEGMENT #1 I PREPARE TO EXPAND LINK SUBDIVIDE SEQUENCE I 2 2 2 PART 2 EXPAND 3 3 PUT IN LINKS LINKED SEGMENT FOR THAT SEGMENT I PLAY SEQUENCES I 3 WITHOUT LINKS EXPAND NOW ALL SEQUENCES FIGURE 12 THE SEQUENCE LIST THE LINK CAN BE PLAYED the master sequence described above. as way the in expanded into sequences The new segment is inserted. same derived from the linked segment should be sequences new where to In any case, a pointer is set the sequence in two. the and thus may require splitting sequence, the first of middle These se- quences are inserted into the sequence list at the appropriate After place. segment has been expanded, the succeeding the sequences must be checked to see if they will be overlapped by They may have to be deleted, or the newly inserted sequences. Then the movie player once again shortened. which sequences not contain unexpanded links, and expands the first do link found. segments plays This process continues until all the have appropriate been expanded, and all the resulting sequences have been played. That is the way in which movies are gener- ated. As mentioned above, all expansions of the tree ject to various viewer's preference. mine whether a pruning thus tests, the tree to fit each Some of these tests are made sequence with another, In order deter- the value of and other tests evaluate the cineand visual for a sequence to be played it has to matic problems of intercutting the various components. to is likely to wish (or need) to see a viewer given sequence, some tests are used to compare one sub- are audio pass all of these tests. Initially, when a segment is expanded into sequences, the knowledge levels of the viewer are compared with the knowledge - 72 - The viewer has levels in each knowledge descriptor record. a knowledge level for each segment, as well as each overhaul operation, or for the type of and a preference ("how-to" are calculated based on whether the Weights "what-is"). learning portion, viewer has sufficient knowledge to watch the segment how and how closely the mode of much will be learned from it, of teaching matches the preferred learning mode the viewer. This weight becomes the knowledge ranking of the sequence. order for a sequence to be created, the knowledge ranking a portion must exceed a certain value. In for This value differs de- pending on whether the segment is a master segment (their portions are the current knowledge portion would overlap another their When almost always used) or another subject type. knowledge rankings sequence, are compared to see which sequence should be used. When processing the links for a segment another series of tests The first test evaluates whether are made. description corresponds to the viewer preferences: ment the segment The seg- such as level of detail, mode of teaching, descriptors, are abstraction, matched with and measure of preferences to calculate a weight for the segment. visual components are also matched, the viewer Audio and and may even be removed if the viewer has a strong preference for one or the other. again, the weight must exceed a certain minimum in the high, segment to then other be included. tests are If made: - 73 - the weight is Existing order Once for sufficiently sequences are scanned to see if they contain links to overlapping segments, ma- thus implying that these other segments describe the same terial, likely most in a different manner. segment is found, the weights of the If a duplicate com- are segments two If one segment has a considerably higher weight it is pared. If used, and the other segment is discarded. segments both have roughly the same weight, the viewer profile is scanned to recently; see which segment has been shown to the viewer most This that segment is discarded and the other segment is used. test is designed to introduce as much variety as possible when equivalent material is available. The next test, which is made when for a processing links the segment, is to evaluate how each linked segment can be will be linked. intercut with the sequence from which it The cinematic considerations of intercutting audio and visual comFor example, two segments with ponents are used in this test. narration can only be played sequentially, since a narration cannot be interrupted in midsentence. On the other hand a picture may be interrupted by another picture, or may be overA segment lapped with a narrative segment. and visual components with both audio have the picture temporarily re- may placed by a closeup while the narration continues. There are many possibilities, and the decision involves not only whether how the combination is possible, but combinations, to resolve such as two narrations in parallel erally discarded). impossible (one is gen- In addition, some combinations need to - 74 - be played on two videodiscs concurrently; there is lowed if only one videodisc on the system. matic checks to avoid jump cuts. from similar The cut- also subject to some basic cine- picture segments is of ting hence they are not al- For example, two long shots angles cannot be played in succession, since it would be visually disturbing. After examining the cinematic interaction of each segment with the appropriate sequence, their relationship is deter- mined to be one of the following. discarded. It may be placed at the begining or the end of the sequence being linked from. quence Firstly, the segment may be being linked The segment may interrupt the seor it may be played concurrently from, with the sequence being linked from. being linked from is a without any effect at all. to avoid jump cuts. Lastly, if the sequence dummy, the segment may be included In fact, dummy sequences are used When a long segment is divided up into many portions, some of these portions will probably not become sequences, due to a low knowldege ranking. jump cuts, dummy sequences are created In order to avoid between the disjoint portions, and a special effort is made to link another segment Still diagrams are used to bridge into these dummy sequences. the jump cuts if no other segment is found to be appropriate. After passing through all these checks, almost ready to be included. the segment However, first its weight is compared with the link weight of any sequences which it laps. is over- Once again, if the segment link weight is considerably - 75 - lower than that of the sequence being overlapped, the is not included. segment This last check prevents the tree from being fully expanded when the viewer would actually prefer the ple explanation provided by the master segment for an opera- Thus by the time a sequence is tion. sim- actually played, it has been checked both against absolute criteria, and against other similar sequences, to verify that the sequence is appropriate for the particular viewer. Another feature of the movie player is that it will automatically replay valuable sequences in slow motion. If a se- quence has a particularly high knowledge ranking, and it is short closeup, it will be duplicated by the player, and thus be played twice, once at normal speed, and then once again slow motion. a The movie in player also saves the last few se- quences shown so that the viewer can request to have them re- played at any time. So far this discussion has alluded to the viewers preferactually explaining how they are kept and up- ences, without dated. Each viewer has a profile record, which is used in all of the checks and decisions described above (see Figure 13). When a viewer enters their name, the player looks the name in the is used. viewer viewer file. Otherwise, If the name exits, the existing profile a new viewer record is added to the file, and the movie player asks a few questions to aid in initialization of the profile whether up the viwer record. The quesions are is right or left handed, and how much the - 76 - VIEWER NAME NUMBER OF TIMES VIEWER HAS SEEN A MOVIE .LAST 50 SEGMENTS SEEN KNOWLEDGE RANKING FOR EACH SEGMENT KNOWLEDGE RANKING FOR EACH SUBJECT LAST PREFERENCE CHANGES MADE USER LEARNING RATE PREFERENCES FOR RIGHT/ LEFT HANDED HOW-TO WHAT-IS PICTURE NARRATION ABSTRACTION EXPLODED VIEWS DETAIL . , FIGURE 13 VIEWER PROFILE RECORD - 77 viewer know about bicycles, bicycle repair, and mechanical repair in general. file, together with neutral preferences narration, These answers are used in the viewers pro- amount of things such as detail, and exploded views. During a movie, the viewer can interrupt the player time, stills, for at any and indicate that he or she wishes to alter one or more of their preferences. The player prompts for type of and then alters the viewer profile appropriately. change, a viewer makes the same preference request then the twice in their profile is alterred more drastically. rect assumptions about the viewer can be a If row, Thus incor- corrected quite quickly. Each viewer profile also contains a list of the 50 last segments viewed, thus providing the player with the ability to vary the movie. The player will not show a segment time if an equivalent segment is available. also contain a measure topic, and also of the viewers for each segment in que. a subject, second Viewer profiles knowledge the database. knowledge ranking reflects both the viewers overall about a for each Thus the knowledge and specific knowledge about a given techni- The appropriate segment and subject values by the viewers learing rate whenever a movie is are updated finished. viewer's knowledge for all subjects and segments are set to certain minimum, which is with a a fraction of the viewers average knowledge for all subjects and segments. familiar The Thus a viewer who is one part of the bicycle is assumed to be some- 78- what familiar with the techniques of bicycle shown. not treated as a complete novice when a new subject is There are only a few facets of have not yet been discussed. the movie is and repair, player which One of these is that the player number This asks how many videodiscs are on the system. is used by the player to decide whether certain audio/visual combinations can be played. current If there run videodiscs (the player playing. This is very usefull for can also movies the save player The debugging which 79 - purposes. are created. However, this is really a part of the story teller. - can or can pause before playing without any videodiscs, each sequence. The two maximum), the player switches between them, searching on one videodisc while the other is also are D. Story Teller the The story teller is last component the of movie The story teller is a diagnostic aid which allows one maker. to save movies, replay them, and describe them in terms of the The movie player can optionally create a database. original file which contains all of the sequences shown during a movie. This can also be played back by the movie player, since file story teller is used to close the The tree. the expanding loop between the player and the editor. saved sequences quence. by This is done sub-subject, and of It reads the file the movie player, and describes each seby displaying the subject, segment, knowledge descriptor records which describe Of particular the sequence. by generated it is exactly the same as the list of sequences interest are the subject and sub-subject descriptor records since they describe the content of the movie in English. the format is When these records are making However, similar to that used by the editor. videodisc frame numbers and pointer fields are not thus displayed, displayed, the display shorter, and easier to read. numbers are included, Record to that one can go back to the editor to The story teller actually has much make any required changes. in common with the editor, and uses some of its subroutines. - 80 - CHAPTER 5 Program Documentation A. Conventions This chapter describes each program and subroutine in the maker, movie It and conventions used in accessing the database. intended as a document for those involved in is or work maintenance. each program. on It will first focus on general conven- tions which apply to the database, within follow and then on subroutines Appendix A containing complete program listings should also be referenced. The database consists of a fixed length records. number of files containing Each such file has a unique record for- mat which is defined using a PLI structure. For ease in ing, each structure has a one letter name as follows: - 81 - typ- s - segment descriptor record u - subject descriptor record j sub-subject descriptor record - k - knowledge descriptor record record 1 - link descriptor q - sequence descriptor record v - viewer profile record a ence particular type of record. For example the record count variables are SS, UU, JJ, KK, LL, and VV. defined the first XS(SS).TYPE is used to reference each location in The prefix For "X" is used to reference a record within the file. ple is A count of followed by the records themselves. This is file. Each file as an array of the appropriate structure. the number of records allocated is refer- to The proper letter is present in each variable used exam- the type field of a seg- ment decriptor record, and XQ(QQ).TYPE the type field of a sequence record. To facilitate the examination of fields within the same record, each structure defining the defined as a based variable. pointers SSP, QQP etc. to point is The structures are based on the Thus once the pointer SSP has been set Similarly, Q.TYPE references the type of sequence record pointed to by QQP. throughout, and makes specifications standable. type to a segment record, S.TYPE is sufficient to refer- ence its type field. a record This convention is used both short and under- The structures defining each record type are "in- 82 - "include" are there addition In clude" files, which are listed in the appendix. files which define the entire files for each record type. The files which make up the database are in the directory >U>RJM>BIKE. There is also an "exec" file, so on. all Their names are SEGMENT.DATA, SUBJECT.DATA, and of the data SEGMENT.SAVE, SUBJECT.SAVE and so on. the files are There back. >U>RJM>BIKE>PLAY contains has the >U>RJM>BIKE>TELL >U>RJM>BIKE>GOOD-VERSION the will copy sub-directories. >U>RJM>BIKE>EDIT contains all the modules which editor. named files RESTORE.EC four copies which corresponding into files SAVE.EC, make movie story up player, the and teller. is used to keep a working version of each program while development work is being done. - 83 - Editor B. entries for all of the edit commands. contains one the edit commands need to access more than particular file, Since most of record and counts. can't compiler anything that big. arguments. More all the editor main program is fairly Thus the Instead, com- some fairly major sections have been made into subroutines, which many a it is difficult to create subroutines which massive, and actually would be more so, except that piler of record don't have to be passed pointers to all of the files the it and The main program of the editor is called EDITOR, require traditional functions such as display routines, and command input are also subroutines. The editor tries wherever possible independently of to which record they are in. reference fields This reduces the lines of code, and makes changing the editor much easier since changes only need be made in one place. The editor has a cur- rent mode which defines the type of record currently being accessed. Modes are: 0 Subject record 1 Segment record 2 Sub-subject record 3 Knowledge record 4 Link record - 84 - 00 GCHARSI FIGURE 14 EDITOR SUBROUTINE FLOW For each record type there are variables the record contains, how long each field is, what type fields of value it contains, and what the name of the field is either referenced by These type. cord counts for each record variables subject For example UU, the number of the current mode. as XX(0) , and SS is can also be referenced can be as a function of the current or name when it is There are also pointers and re- on the screen. displayed cord, many how decribing re- equivalent to XX(l). These variables are defined in the EDIT and NAMES "in- clude" file. Upon program execution, the names and types of each field in each record type are initialized by subroutine. INAMES edited to initialize new types is This subroutine the or names when the usage of a field changes. entries The editor main program has each for command. Simple commands, such as moving to the next record or the next field within a record, are in EDITOR since it has pointers all the database files. These commands are done independently of mode whenever possible although commands Similarly, tions. done in EDITOR, checking for type of The Add, Copy, the EDITF module. EDITF also are always mode execp- change the mode are also change. called to do This subroutine, simply removes some code from ED- called NMODE (for new mode), ITOR. which there although a small subroutine is each to and Delete commands call entry points in Pointers to all the files are uses the file definition "include" passed, files. and deleting are not very difficult, but the updating - 86 - and Adding of po- counts and inters Segment and subject re- done separately for each record type. The Copy are always added and deleted as a unit. types cord and must be takes up a fair bit of space, command is just a special case of Add. The module EDITIO contains routines to display an entire for segment, sub-subject, knowledge, and link descriptor records. Subject There record. are points entry separate descriptor records are displayed together with their associatThe routines within EDITIO call ed segment descriptor record. a subroutine called GCHARS to obtain the contents of a specfic GCHARS returns not only the value of field. of the value. record, field, but field name (that set up by INAMES), and the meaning the also the specified The EDITIO routines loop through the displaying the name and contents of each field. The which was dictionary meaning of each field is stored in the This dictionary is created described in the previous chapter. and accessed by GCHARS. Input requests for the editor are done by the GETCMD rouSince the editor always opens a field within a record, tine. GETCMD first field. It displays the prompts for a new value. the field the calls GCHARS to get contents value of of current field, and then the GETCMD uses the the type paramater to prompt for a specific type of input. of It always If an input conversion error looks first for numerical input. occurs, GETCMD then uses the length of the character string to character distinguish between commands and - 87 - strings. GETCMD calls the REPLACE entry within GCHARS to enter a new value, or REPLACE updates values character string. well as the dictionary; as records, in the descriptor REPLACE prints the dic- tionary entries, and inserts new entries, as requested. The VIEW module runs the videodisc for the View and Watch The View command plays the videodisk sequence spec- commands. ified by the current descriptor record, and previews cuts In order to cut between a segment and a segment which links. VIEW must also access many records within the is linked to it, Therefore database. a for cords VIEW is also passed pointers to the enknowledge VIEW searches the tire database. segment description the playing result If there are of long sequences before cuts. two videodiscs then VIEW cues up both videodiscs before ing either one, another instantly. re- to find a reasonable starting position which is not in the middle of a sentence, but does not in for play- thus enabling it to cut from one segment to then If there is only one videodisc VIEW searches for and plays each segment in turn. The ORDER module puts all the sub-subject, knowledge, and link entries for a particular segment in order of their frame numbers. by This may be done while editing; it is always the movie player, to which the order is crucial. PUT module displays the entire database. It done The OUT- simply steps through each segment, calling EDITIO to display first the segment descriptor record, and then each sub-subject, and link descriptor record. - 88 - knowledge, The GLINK module is the most complicated part of the ediIt tor. is the module which creates links automatically. GLINK is a series of nested DO loops which scan the comparing database, the current segment and its subject and sub-subject records, with those of all the other segments in the database. firstly GLINK checks all other segments to see whether they are subassemblies or tool usage descriptions used by the segment. rent types. the This is done by matching the subject names and GLINK also looks for overviews and then GLINK subject. current cur- for introductions looks for other segments seg- which describe the same bicycle component as the current ment, and which do not conflict with the current segment re- garding assembly/disassembly or the front/back of the bicycle. For each match found, GLINK calls an internal routine called MLINK (maybe link) with an argument specifying the type of the link (subassembly, tool description, closeup etc.). MLINK first of all makes sure that no such link already exits. This is so auto-linking can be run again, without destroying previmanually ous links which have already been then MLINK creates the link by calling the same Add subroutine used by the Add command. tion adjusted. of the link MLINK calcuates he exit and reentry posiusing the starting and ending percentage fields from the current sub-subject description record and the subject description record of the newly linked segment. GLINK attempts to snap link points to the start or end positions knowledge portions so that links don't occur - 89 - of in the middle of sentences if possible. Most links have to be manually adjust- ed in any case. EDIT All of these modules are bound together to form the program which EDIT.BIND. is the The editor. Bind file Other command files of interest are is called GLIST.EC and LIST.EC which respectively generate and print listing files. - 90 - Movie Player C. to The movie player lends itself The main program is called PLA- than does the editor. easily of process in expanding the database tree (see figure 10). A global common area arguments are passed back and forth. This is used by all the subroutines. minimum a Each subroutine is fairly well self contained, and of steps to YER It calls major subroutines which correspond the more much structuring contains area common generally usefull variables such as the pointer to the current viewer, the number of sequences, a list of the segments so and a description of the segment currently being ex- far, panded. variables, as a external static by an include file called PLAY which is used by all subroutine modules. PLAY also defines some generally usefull such as the current sequence number, which are re- allocated in each module. are defined This common area is structure tine shown described The basic functions of each subrouspecific tests and decisions are below; documented in the code. The SEQSUB module contains subroutines the sequence quences. type list and initializing for inserting, copying, and deleting se- Sequences are allocated in the same way as any other of record; the first location in the file is a count of the total number of sequences allocated, and space imed by setting the type to zero on a delete. have to be inserted and deleted frequently, the - 91 - is recla- Since sequences actual order VCHECK KCHECK IlNSERTSEQ COPYSEQ DELETESEQI FIGURE 15 MOVIE PLAYER SUBROUTINE FLOW The rou- of sequences is kept in a pointer array called QPTR. The array makes it are no empty entries in the pointer array. quence file is changed and then pointers in the QPTR array are glob- QPTR is part of the shuffled to reflect the new order. se- the in entry one easy to insert or delete a sequence; there that sure tines in SEQSUB update this array and makes lal common area. The first subroutine called by viewer) which the asks (get GVIEWER is PLAYER If the viewer for his or her name. name exits in the viewer file the global pointer VVP is set to point to the viewer profile record. If the name is not known, a new profile record is created, and the new name is inserted. A few questions are then asked to obtain values used in initiand then VVP is alizing the viewer profile, the new viewer profile. This is the viewer profile primarily a debugging aid which allows the creation of "model" execute to The VIEWER subroutine also contains code to ask for values for each field in record. point to set Two GOTO's are viewers. used to either they may be included or com- or skip over this code; mented out as required. After the viewer has been chosen, GTOPIC (get called to find the start node for the movie. (1-8) and has a just asks for a topic number of the start node for each topic. - 93 - is Currently GTOPIC assembled value In the future, GTOPIC should be extended to use a picture of a bicycle, sensitive display. topic) and a touch After the topic has been chosen, the The node being expanded is expansion process is started. the always in the variable SS in PLAYER. in module only files, it the player movie through loop main Because the is PLAYER with pointers to all the of po- scans the knowledge file to accumulate a list inters to all the knowledge descriptor records for the current segment. out pand knowledge portions. the the knowledge KEXPAND goes through each (knowledge check) knowledge record and calls KCHECK late ex- PLAYER then calls KEXPAND (knowledge expand) to ranking for each record. calu- to KCHECK returns both the ranking and a yes/no response as to whether the tion should be used. por- If it is to be used, KEXPAND first scans other sequences from the current segment to see if the portion is part audio/visual combination which has different an of If knowledge records to reflect varying amounts of knowledge. this is the the new knowledge portion is combined with true the existing sequence containing its other half. new sequence is created. two segments being played Otherwise a KEXPAND also tests for the case of concurrently. Then the segment which was linked to is called a "baby" of the sequence linked from. When expanding a "baby" KEXPAND makes sure that the se- quence which contained the link now also contains a pointer to the sequence which describes the "baby". subroutine can This is play the two sequences concurrently. cuts are likely to occur because some knowledge not used, then so the - 94 - If jump portions KEXPAND creates a dummy seqeunce. VIEW are Dummy se- quences have links inserted into them by LEXPAND, as described KEXPAND below. also keeps track of which segments and sub- jects have been successfully expanded, so that the viewer's knowledge for them can be updated at the end of the movie. should also be noted that some of as such its type, the attributes, segment's are not read from the segment record, but process This is because in the from a globl common location. It of linking, a segment's attributes may have been changed; for example, a segment containing both audio and visual components may be treated as a segment having visuals only. After a segment has been expanded into sequences by then PAND, PLAYER calls REPLACE to update any segments which may have been overlapped. are KEX- REPLACE looks for which sequences If the seg- from the same node as the one just expanded. ment just being expanded is the start node for the topic, then nothing can be REPLACE uses the original link overlapped. exit and entry points to determine whether a sequence should end prematurely, start later, be removed altogher, or need not be affected. Because cannot audio be interrupted, audio visual segments which are shortened have their audio removed. After the REPLACE subroutine call, PLAYER then scans link description creates a list of the records for the segment being expanded, and of link pointers. This is just like knowledge pointers prepared for KEXPAND. the list PLAYER also pre- pares a corresponding list of pointers to each of the segments - 95 - linked. being This once is because the subroutines again don't have pointers to the entire files. If a segment has no PLAYER assumes that this segment might be rather quick links, calls PLAYER and will attempt to show it twice. DUPLICATE, checks to make sure that the sequence got a high knowl- which edge ranking, and that the segment is not long if tedious seen again. enough to be If the segment passes these tests, then DUPLICATE creates a dupliciate of the sequence immediately following the original. half speed. The new sequence is set to run at If the sequence is very short, then a portion of the sequences before and after the current one may also be duplicated to make the replay more continuous. If to there are any links, process them. LEXPAND exit point to see if ment being linked. an answer. the viewer to Like KCHECK, cuts. calls LEXPAND first weight VCHECK returns a and LEXPAND can influence the decsision of VCHECK by LEXPAND sets the initial ensure that the dummy sequences introduced by KEX- PAND have link information inserted, jump overlaps likely to wish to see the seg- is its initial setting of the weight. weight which This sequence is the one which of the link. will contain the link to the new segment. VCHECK called looks through the sequences just LEXPAND created by KEXPAND to find the first sequence the is (link expand) thus removing possible VCHECK calculates a weight based on the matching of viewer preferences and the segment in question. It then sees if any other sequence contains link information to a seg- 96 - segment is be to seen, which decides If so, VCHECK ment with the same information. and may remove the link information from an existing sequence. then LEXPAND (link LCHECK calls check) which looks at the types of the segments and decides if, (sequentially, played the two segments. how, and can they be or one interrupting the concurrently, LCHECK returns the type of other). acceptable, is segment If VCHECK says that the current visual between relation If a link can be made, then the information If describing the link is copied into the sequence. se- the quence already has a link, then a dummy sequence is created to the crucial linked. is variable link When saving contain the link information. the to the segment being pointer Other If this pointer is null, then no link exists. variables, such the segment number, are used as an audit as trail by the REPLACE subroutine after the link panded, information, and thus do has been ex- LEXPAND also does some not get reset. special checking of stills, attempting to fill in any possible gaps within the current segment with still frames. After all the links for the current segment have been expanded by LEXPAND, then PLAYER tries to play sequences which do not have links. This is done by the VIEW subroutine. simply plays sequences view subroutine first one which has an unexpanded link. It The until it finds the also attempts to combine sequences which are physically continuous on the videodisc. Such sequences are generally - 97 - from separate knowlege VIEW also skips portions which were part of the same segment. two videodiscs, there If over dummy sequences which are still present. are only wait- then VIEW alternates between them, ing for the first videodisc when the second one is cued up and to play. ready VIEW sets the registers in the videodisc conplaying, troller so that once the first videodisc has stopped only a single command has to be sent to start up the second VIEW returns to PLAYER the number of the first se- videodisc. quence which had an unexpanded link. played PLAYER then calls SAVE, which saves what was and For each then deletes those sequences from the sequence list. sequence shown, SAVE first of all saves the sequence in a push down of the last 5 sequences played. list SAVE then updates the viewer profile list of the last 50 segments viewer. If a story teller file is being created, also stores the played sequences in the storyteller. SAVE uses an "include" ouput by seen then SAVE for file the file from the story tellthe se- deleted, the Finally, SAVE deletes er to define the file format. the quence to remove it from the current sequence list. After all the played sequences first sequence is now the one with an unexpanded link. LINKSEG looks at calls LINKSEG to expand the link. information in ment goes before, quence. If the been have PLAYER the link the sequence and decides whether the new segafter, linked quence, then LINKSEG or the middle segment - 98 - the current se- interrupts the current securrent the splits of sequence in two. saves also LINKSEG information from the link block (such as which subsequently expand the linked segment. routines the by used locations its type) in global common LINKSEG returns the segment number of the segment just linked to, and the sition po- in the sequence list where new sequences should now be to back PLAYER then goes The main loop in inserted. expand this new segment into its sequences. UDPATE DATE. and for all the individual segments shown. a subassembly was than one subject may have been seen if UPDATE also decreases the rate as which the included. UP- simply makes the viewer more knowledgeable for the subject seen, More calls PLAYER When VIEW has played all the sequence, viewer learns, thus making knowledge progressively harder to obtain. The CHANGE subroutine the viewer profile. interacts with the viewer to change Whenever the viewer types a break charthe The CHANGE subroutine allows the CHANGE subroutine is called. of one to user to specify changes point, convenient acter, a flag is set, and at the next six These changes are immediately reflected preferences types. in the viewer profile, and thus in any subsequent decisions about which segments to The CHANGE routine remembers the last user request for play. each preference type, and another similar request changes the viewer preference by a larger amount. All the modules which make up the player gether by PLAY.BIND to are bound create the program PLAY. GLIST.EC and LIST.EC generate and print listing files - 99 - to- The files respec- tively. The file COMPILE.EC can be used to recompile all the modules in the player, should changes be made to "include" files. - 100 - one of the D. Story Teller The story teller program is called TELLER. It opens a specified sequence file previously created by the SAVE routine TELLER steps through each in the movie player. searches all sequence and the descriptor records for the segment which is shown by that sequence. the sequence are All descriptor records which The story teller uses a module displayed. called TELLIO to actually display the records. similar to EDITIO; overlap TELLIO is very the two modules have the same entry points but TELLIO does not display videodisc frame numbers or pointer fields. The story teller uses the INAMES and GCHARS routines from the editor so that all field names and ings it mean- The format of the saved file is defined are consistent. by an include file. dictionary The file contains the name of the viewer was prepared for, the number of sequences, and all the se- quences shown during the movie. The bind file TELL.BIND ates the program TELL. - 101 - cre- w qw I I I I i GCHARS FIGURE 16 STORYTELLER SUBROUTINE FLOW CHAPTER 6 Continuation Work There are a number of areas in which the does not live up.to its initial design. maker movie current The most glar- ing of these, at least to the viewer, is that interaction with the The viewer should be able movie player is rather clumsy. via to interact with the player touch a sensitive screen, using menus which include pictures of a bicycle from the videodisc. This would make the system much more accessible. Another part of the original design which was never im- plemented is animation. Originally animation and film were to be of equal importance. However, the current trates as system concen- almost totally on live film excluding other media such animation, and, to certain a extend, frames. still Therefore, inclusion of other medium is definitely an area for future investigations. Other areas of improvment are in movie player. the internals of Currently, the player does not access the sub- ject or sub-subject files, and thus does not really know not an intelligent program which does of what it is somewhat disturbing to have it is that is being played; Inclusion the understand its data. the subject data would not only make the player - 103 - smarter, but would also permit the implementation of whereby system, the could viewer Subject information given subject. a query request information on a the permit would movie to make better choices between large numbers of simple player togther segments, such as that needed to intelligently put as opposed to a movie. show slide a The inclusion of the sub- ject files, although not in itself difficult, would require a modification of the way files are accessed under MagicSix. scheduling the Another area which must be considered is interaction problems created when there are more than two and videodiscs in the system. Many of the film decisions making It is impor- depend on exactly how many videodiscs there are. tant to know how many different sources there for are audio and visual components, both for cueing and for concurrent pla- introduced by more than two videodiscs. videodisc rent possiblities The current player does not deal with the ying. videodiscs. between is scheduler only In addition, the cur- capable alternating of It does not play videodiscs concurrenly, One reason and would need to be expanded for more videodiscs. the that current scheduler is so restricted is that some of the functions necessary for effecient computer control of many videodiscs do not yet exit, and make such scheduling diffi- cult. The last area of improvement to the current is in the area of modeling the viewer. 104 - maker The current model is fine as far as it goes, but suffers from a lack - movie of feedback. Much of this is because the movie player has always operated in an artical environment, where "tyical" created. One should viewers have been let a large number of viewers interact with the player, and then use group preferences as a guide responding to future viewers. The current player does not at- tempt to relate one viewer with another. - in 105 - CHAPTER 7 Looking Ahead This project was an initial investigation into movies. ized A number of new avenues have been explored, and are suitable for more research. using a computer. movies personal- One area is the creation of This requires special filming tech- niques to prepare the material for access by the computer, and computer programs construct a a movie. The problems involved in fitting together various audio and visual much components were more complex than first realized, and should be investi- gated further. editing Such an investigation should consider both the decisions which are present in traditional film mak- ing, and the editing decisions which are introduced when sound and picture in many ways. become individual components, which can be mixed One use for a well developed program to movies would be to aid in editing film. By continually chang- ing the computer description of the material, many more ing possiblities could be previewed create edit, in a smaller amount of time and with much less effort than with present day editing techniques. The personalized movie system developed as a part of this project did not have a great deal of knowledge about the sub- 106 - ject matter being shown. knowledge, even this small However, amount of coupled with viewer personalization, resulted in a A more rigorous representa- system which appears intelligent. of knowledge, and the resultant refinement of the viewer tion model, should create a more intelligent system can be It is conceivable to to model more complicated objects. used which develop a system which could instruct one in the repair of an automobile. More advanced maintenance and repair systems can be de- advancement in boththese areas. Such systems could be more active than the personalized movie sys- veloped by additional tem described here. They would not model the repair person by waiting for requests, but rather by sensing whether the repair was proceding correctly. which allow the These tracking personalized wait for direction. which an This can be done by new technologies of objects be three dimensions. systems will not simply create movies and They would not just describe the way in operation should be done, but will be able to react to unforeseen problems or failures. ly in They could more accurate- described as coaching systems. With the continued ad- vent of technology such a system could reside in a micropro- cessor, and eventually become part of a mechanics toolbox. - 107 - REFERENCES Brown, J.S. & Burton R.R. Systematic understanding: Synthesis, analysis, and contingent knowledge in specialized understanding systems. In D. Bobrow and A. Collins (eds), Representation and Understanding: Studies in Cognitive Science, New York: Academic Press, 1975. Engelbart, D.C. et al. The augmented knowledge workshop. Proceedings of the National Computer Conference, 1973. Goldstein, I. The computer as coach: An athletic paradigm for intellectual education. Massachusetts Institute of Technology, Artifical Intelligence Laboratory, AI Memo 389, 1976. Irby, C. Display techniques for interactive text manipulation. Proceedings of the National Computer Conference, 1974. Mann, W.C. Dialogue based research in man-machine communication. USC Informatin Sciences Institute, November 1975. Miller M.L. & Goldstein I.P. Planning and Debugging in a computer coach for elementary programming. Massachusetts Institute of Technology, Artifical Intelligence Laboratory, January 1978. Negroponte, N. The Metaphysics of Television, Proceedings of the Workshop on Methodology of Interaction, Seillac, France, may 7-10, 1979. Negroponte, N. Fields, C. Using new clues to find data, Proceedings of 3rd International Very Large Data Base Conference, Tokyo, 1977. Negroponte, N. (B. Gilchrist, Editor) On being creative with computer-aided design, invited paper, Information Processing 77 IFIP, North-Holland Publishing Company, 1977. Negroponte, N. Idiosyncratic Systems, ONR Report NN-100-1, March 31, 1977. - 108 - Negroponte, N. Idiosyncratic systems approach to computer graphics, User-Oriented Design of Interactive Computer Graphics, ACM/ SIGGRAPH Workshop, S. Treu (editor), October 14-15, 1976. Nelson, T.H. A file structure for the complex, the changing, and the indeterminate, ACM 20th National Conference, 1965. ZOG: A manRobertson, G., Newell, A., Ramakrishna, K. machine communication philosophy. Department of Computer Science, Carnegie-Mellon University, 1977. Snediker, J.M. A self organizing program for describing concepts, ACM 20th National Conference, 1965. - 109 - ACKNOWLEDGEMENTS I would like to thank Andy Lipman for providing incentive, ideas, and much assistance, all of which were necessary for the completion of this project. Institute regulations not withstanding, he was my Thesis Advisor. I would also thank Professor Nicholas Negroponte for his original conception and continued support of the project, and the Office of Naval Research for their sponsorship. Additionally, Marek Zalewski for doing the filming, Peter Fiekowsky for overhauling Andy's bicycle, and Tom Boyle for writing the videodisc software. Lastly, and by no means leastly, Sandy, for her patience and support. - 110 -