Intermedia: The ConceDt and the Construction of a Seamless Information Environment

Nicole Yankelovich, Bernard J. Haan, Norman K. Meyrowitz, and Steven M. Drucker Brown University

ntermedia, a tool designed to support expanded on that theme in a book he wrote both teaching and research in a uni- entitled Literary Machines. versity environment, contains multi- In essence, a hypertext system allows ple applications and mechanisms to link This multi-application authors or groups of authors to link infor- the contents of documents created with mation together, create paths through a those applications. The system was devel- hypermedia system body of related material, annotate existing oped at Brown University’s Institute for provides linking texts, and create notes that direct readers Research in Information and Scholarship to either bibliographic data or the body of (IRIS). capabilities integrated the referenced text. Using a computer- A hypermedia system expressly devel- based hypertext system, students and oped for use in a university setting, into a desktop user researchers can quickly follow trails of Intermedia provides a framework for environment. To footnotes and related materials without object-oriented, direct manipulation edi- losing their original context; thus, they are tors and applications. With it, instructors promote consistency, not obliged to search through library can construct exploratory environments stacks to look up referenced books and for their students as well as use applica- the applications were articles. Explicit connections-links- tions for day-to-day work, research, and built with an object- allow readers to travel from one document writing. Intermedia is also an environment to another, effectively automating the in which programmers can develop consis- oriented framework. process of following references in an ency- tent applications, using object-oriented clopedia. In addition, hypertext systems programming techniques and reusable that support multiple users allow building blocks. researchers, professors, and students to communicate and collaborate with one Hypertext and hypermedia. Although another within the context of a body of only recently popularized by products like in Conklin’ and Yankelovich.’) Interme- scholarly material. Apple’s Hypercard and Owl’s Guide, dia is a direct descendent of ideas devel- Hypermedia is simply an extension of hypertext and hypermedia have been the oped by such prominent researchers as hypertext that incorporates other media in subject of research, writing, and Theodor Nelson, Douglas Engelbart, and addition to text. With a hypermedia sys- experimentation for more than 20 years. Andries van Dam. Nelson coined the term tem, authors can create a linked body of (Examples of early hypertext systems and hypertext in the early 1960s to describe the material that includes text, static graphics, existing hypermedia systems may be found idea of “non-sequential writing.” He animated graphics, video, and sound.

January 1988 00l8-9162/8S/Ol00-0081$01 .oO 01988 IEEE 81 Intermedia: according to user-defined styles. Like a ent parameters for all types of data in the the concepts charting package, the display of the data system. is determined by a modifiable set of Related to the use of styles is the fre- parameters. quent use of palettes-sets of controls Intermedia is both an author’s tool and Figure 1 illustrates an example of attached as a pane to a document . a reader’s tool. The system, in fact, makes materials from a linked Intermedia corpus Along with style sheet dialogs, palettes no distinction between types of users, (collection of documents) called Context provide a means for defining and applying provided they have appropriate access 32: A Web Englkh Literature, designed styles. In InterText, for example, all the rights to the material they wish to edit, of by Brown University English professor styles defined for a particular document explore, or annotate. Creating new George Landow. are viewed in a style palette (see Figure I). materials and making and following links Two mouse clicks will change the style of are all integrated into a single seamless, an existing text entity or change the style multiuser environment. . Several user-interface from one style to another before beginning concepts stressed throughout Intermedia a new entity. With a large screen and the Applications. The system, which runs enable users to learn new applications capacity for 30 or 40 open windows at one on a network of Unix-based workstations, quickly and predict the behavior of fea- time, it is essential that all the tools needed currently contains five integrated applica- tures they have never used before. In a sys- for common operations be close at hand tions: a text editor (InterText), agraphia tem that encourages rapid transitions rather than in the pull-down menus. When editor (InterDraw), a scanned image between applications, it is essential to limit not needed, all palettes can be hidden from viewer (Interpix), a three-dimensional the amount a browser must learn in order view to unclutter the screen and improve object viewer (InterSpect), and a timeline to successfully use the system and capital- the way material is presented to a person editor (Interval). These applications con- ize on those conventions with which he or browsing through the system. form to /Microsoft Windows she may be already familiar. Like the copy The use of “infinite” undo and redo interface standards. Any number of docu- and paste operations in Macintosh and commands-made possible in a worksta- ments of different types, along with the Smalltalk programs, some operations in tion environment with virtual memory folders containing these documents, may the Intermedia system behave identically capabilities-provides another example of be open on the desktop at one time. across all applications. The linking func- a standard user-interface concept that The InterText word processing applica- tionality described below is a prime permeates the system. Instead of retract- tion resembles Apple’s Macwrite, with the example. ing only the last action performed, the user addition of style sheets for formatting All applications also provide direct can incrementally undo the effects of all rather than MacWrite style rulers. Using manipulation interfaces. To change the actions performed since the last time a style sheets, the user can define a set of displayed information, the user first selects document was saved. Any single action or styles for a particular document (such as one or more of the displayed objects and set of actions the user has undone can then paragraph, title, subtitle, indented quote, then issues a command through a key- be incrementally redone. This capability and numbered point) and apply those board or menu interface. Likewise, other fosters a sense of security in users and ena- styles to an entity-the text contained system features, while not exactly identi- bles them to experiment freely with their between two carriage returns. cal to one another, are conceptually simi- documents. When the user edits the definition of a lar. Most applications, for instance, allow style, all the entities to which that style are users to control the format or the display Hypermedia functionality. In Interme- applied reformat accordingly. characteristics of data. We designed the dia, the hypermedia functionality is inte- With InterDraw, a structured graphics interface techniques for conceptually simi- grated into each application so that the editor similar to Apple’s MacDraw, users lar operations to capitalize on the like- actions of creating and traversing links can can create two-dimensional illustrations by nesses. be interspersed with the actions of creat- selecting tools from a palette attached to The style paradigm3 is one example. ing and editing documents. (The screens in each InterDraw window. Styles are sets of properties or characteris- the “Sample session” illustrate the oper- InterPix displays bit-map images tics that govern the appearance of data ation of Intermedia, highlighting the entered into the system using a digitizing within a document. Users can define or hypermedia functionality.) scanner. These images can be cropped, modify a style by editing a form called a In an effort to fit the link-making pro- copied, and pasted into InterDraw style sheet (sometimes referred to as a cess into a conceptual model already fa- documents. property sheet). Both the InterText appli- miliar to users, the act of making links The InterSpect viewer converts files cation and the Interval application con- between Intermedia documents was containing three-dimensional data points tain style sheets to specify different text modeled as closely as possible on the into three-dimensional representations of formats such as paragraphs, indented Smalltalk/Macintosh copy/paste para- that data. Users can manipulate three- quotes, lists, and titles, or different time- digm4 If links are to be made frequently, dimensional images of cells, for example, line formats such as the position of dates they must be a seamless part of the user by rotating them, zooming in or out, or relative to tick marks and the position of interface. In any document, users can hiding parts of the model. labels relative to dates. In the graphics edi- specify a selection region and choose the The fifth application, Interval, pro- tor, different styles may be applied to Start Link command from the menu. In vides interactive editing features for creat- shapes such as line width, pen style, or fill any other document, regardless of type, ing chronological timelines. As the user style. By storing all presentation users can define another selection region enters pairs of dates and labels,the appli- parameters in style sheets, you can substi- and choose one of the Complete Link cation formats them on a vertical timeline tute styles with the same name but differ- commands.

82 COMPUTER uellglon

ea I-I ALEXANDER history POPE 16as1m

Figure 1. Two InterText documents (top right), two Interval documents (bottom left), and two InterDraw documents (top left and bottom right) open on the screen. Both InterDraw documents contain scanned images cropped, copied, and pasted from InterPix documents.

Likewise, to follow a link, a user explor- designing the Intermedia linking function- block markers at the other ends of the links ing a linked set of documents can select a ality, was to allow the user to designate any remain intact, reminding users of the loca- marker icon in any type of document and selection region as a block that might stand tion of link anchors. choose the Follow command from a alone or serve as an anchor for one or more To help manage a large corpus of linked menu. As a short cut, a user can double- links. The size of a block, therefore, may documents, links and blocks are assigned click on a marker icon to initiate the fol- range from an entire document to an inser- descriptive properties. Some of these, like low, just as he or she might double-click on tion point, depending on the selection user I.D. and creation time, are assigned an icon in a folder to open a document. region a user identifies as the block’s automatically, while other properties are Since following a link usually entails open- extent. user-defined. Users access and edit link ing a document, we anticipated that users For example, in an InterText document, and block property information through would expect to be able to follow a link by a block might consist of an insertion point, property sheet dialog boxes. These dialog double-clicking on the marker icon. a single character, a word, or two para- boxes allow users to enter a one-line Unlike some other hypertext or graphs. Small marker icons placed near the “explainer,” similar to the subject field in hypermedia systems that only allow links source and destination blocks indicate the an electronic mail message. Link to entire documents,’ Intermedia allows existence of a link. As a user edits a docu- explainers are particularly important from users to create bidirectional links from a ment, the blocks “stick” to the selection a reader’s perspective. If more than one specific location in one document to a spe- they are associated with, preserving the link emanates from a single block, users cific location in another document. These context of the concection. If a document choose the path they wish to follow from “anchor points” in the documents are containing links is deleted, the links to that called blocks. One of our design goals, in document are also deleted; however, the (Continued on p. 90)

January 1988 83 Sample session

To illustrate Intermedia's user- interface features and linking function a I it y, this si de bar w i I I take you on a system walkthrough designed to simulate the interac- tion that takes place during a hands-on lntermedia session. The screen illustrations should help you visualize the system, while the text should supply the action. The example is taken from Bio 106: Cell Biology in Context, designed by Brown University biology professor Peter Heywood. Students in Heywood's plant cell biology course use Intermedia's editors, utilities, and linking func- tionality to write term papers and explore materials about the cell and its processes. The scenario will take you through a sample session from the perspective of the biology professor in the midst of creating Screen 1 course materials.

Screen 1. As you can see, the lntermedia desktop includes a window manager, a graphical folder system, a menu bar, and a mouse interface. The contents of the folders reflect the underlying hierarchical structure of the file system. Unlike the Macintosh, Interme- dia does not store application icons in the same folders with documents. Instead, application icons are stored with several other special-purpose tools in an application, or New, window that you can see in the upper right cor- ner of the screen. The reason for this is twofold. First, users do not have to search through folders to find the applications. Even if the New window is hidden from view by overlapping windows, selecting the New command from the File menu will reveal it. Second, in a networked environment, it is best to have a single set of applica- tions in an agreed-upon place that can be maintained and updated by a system administrator. Screen 2

84

__ Before we browse through the documents contained in the folders, follow links, or create them, we must first define a con- text by opening an existing web or by creating a new one. If a web is not open, we can still open and edit the documents even though no link and block information will be visible. Rather than beginning a new web, we select the icon titled “Bio 106” and choose the Open command (not pictured) from the File menu.

Screen 2. After opening the web, indicated by an empty local tracking map window (described below), we open a folder con- tained in the “Bio” folder called “Simple Cell.” The icons in this cell folder represent a folder plus a number of different types of documents (one InterSpect, nine InterPix, two Interval, five InterDraw, and three InterText). Screen 3 Any of these document icons can be selected, opened, and edited. We select and double-click on the InterSpect document called “Micromonas 3D” to open it.

Screen 3. When the InterSpect document opens, the application displays the entire Micromonas cell in a three-dimensional view (above left) and a single section of the cell in a two-dimensional view (below left). Students can use the P” tools in the palette to rotate the 3D reconstruction, to highlight the location of the 2D section cur- rently displayed in the bottom view, and to scroll through all the 2D sections associated with the cell. Menu commands allow you 1 to selectively hide and display different components of the cell and/or the labels. The local tracking niap, empty in the previous screen, now shows the currently active document and the links that emanate from it. Local maps are analogous to detailed street maps. They show you your current location and what location you can travel to Screen 4 the immediate vicinity. As you

January 1988 85 change locations, you require a new local map as a guide. In Intermedia, when the user acti- vates a different document, either by following a link or by opening one from a folder, the local map updates or tracks the user's prog- ress to display the new current document and its direct predeces- sor and successor links.

Screen 4. When we last worked on the Micromonas 3D document, we created a number of links con- necting the plasma membrane to five different InterDraw docu- ments, each containing a scanned photograph of one of the sections of the Micromonas cell used as data for the 3D reconstruction. Before we connect the plasma membrane to the remaining pho- tographs, we decide to connect the nucleus to general informa- tion about nuclei. The first step in creating a link involves defining a block to serve as the anchor for Screen 5 the link. We select the label "Nucleus" as the source block of the new link (the selection is indi- cated by a rectangular box) and choose the Start Link command from the menu. While a link is pending, we can perform any number of other actions unrelated to link-making. Like the Copy operation common to all Macintosh-like applications, the Start Link operation is completely modeless.

Screen 5. Before completing the pending link, we browse through the folders and locate and open an already existing InterText document called "Nucleus Outline." Once the text is displayed, we select the word "nucleus" in the first sentence of the document to serve as the des- tination block of the link and choose Complete Relation from the menu. You will notice two different complete commands in the menu. These are similar in function, but each creates a different type of link. The Com- plete Relation command that we Screen 6 chose indicates a primary path, whereas the Complete Reference The Nudsus command signifies a secondary path, in much the same way as a /--sb<..-- footnote or a "see also. . ." refer- ence. Notice that the local track- ing map has been updated to show the links that emanate from "Nucleus Outline," since it is the currently active document.

mrmbnnr htcnn *fth the pcrlpherd Screen 6. Once the link is ImIna7 ConilLrthrc dlmcnilmd established, both ends are indi- cated with markers (arrows enclosed in rectangular boxes) and the new link is added to the local tracking map. To find other The bkusb compared ol the %ear Malm (W)VIc ~x~clcar Rvclopc (NE). DNA, RNA, nucleolus relevant material to connect to the nucleus in the InterSpect docu- ment, we enlarge the lnteirext win- dow and read through the text. Since pores are important when studying simple cells such as the Micromonas cell, we select the link marker above the words "nuclear pores" and choose the Screen 7 (The illustration of the nucleus was originally published in Molecular Follow command from the menu Biology of the Cell by Bruce Alberts et al. and is reprinted with the permission of to traverse the link. Garland Publishing, Inc.) Screen 7. Following the link causes an InterDraw document containing a diagram of the nucleus to open. Notice that

...- .."--I- when a link is traversed, Interme- dia automatically highlights the extent of the block at the other end of the link, indicating a partic- ular scope of information to the reader. In this case, our attention is drawn to the label "Nuclear pore" and its associated label line. The illustration on the screen was entered into the system using a scanner. The bit map was then displayed by the Interpix applica- tion, cropped, and pasted into this InterDraw document, and the text and lines were added to complete the diagram. Before we continue making new links, we decide to change the default "viewing specification" for link creation to "verbose" (not pictured). With the verbose option, lntermedia automatically presents a property sheet for each new link Screen 8 as it is created.

January 1988 87 Screen 8. We activate the Inter- Spect document by clicking once in the window and select the nucleus. This time we decide to select the component itself rather than the label. When students fol- low the link from the InterDraw diagram to the three-dimensional representation, their attention will be drawn to the nucleus (the source block) in both the 2D and 3D views. As in Screen 4, we select the Start Link command to initiate a new link.

Screen 9. Next, we reactivate the "Nucleus Diagram," select the title of the diagram and the scanned illustration as the desti- nation block for the link, and choose Complete Relation from the menu (not pictured). After we issue the complete command, a link property appears, allowing us to fill in descriptive Screen 9 information about the link. We replace the default text, "Link 35," with the more meaningful explainer shown in Screen 9.

Screen 10. Now we will skip ahead a few steps. After creating the link from the nucleus in "Micromonas 3D" to the InterDraw diagram, we reactivated the Inter- Spect document and used the bottom tool in the palette to scroll to the next two-dimensional sec- tion. Since the label "Plasma Membrane" has already been defined as a block for another link, we decided to select the existing marker as the source point for our new link. Before we are ready to com- plete the link, we have to create a new document. We return to the "Simple Cell" folder, open an Interpix document (bottom left) containing a photograph that cor- responds to the section currently displayed in the InterSpect docu- ment window, and crop and copy Screen 10 (The electronmicrograph of Micromonas was originally published in a portion of the photograph into The Journal of Phycology and is reprinted with the permission of the editor.) the clipboard. We paste this image into a new InterDraw docu. ment, created by double-clicking on the draw icon in the New win- dow. Finally we add some text to accompany the photograph (bot- tom right).

Screen 11. Here, we have com- pleted editing the new InterDraw document and have hidden the palettes to unclutter the screen. We have also completed the pend- ing link, using the text "Micromonas Electronmicrograph Section 6" as the destination block of the link. After the link was established, we double-clicked on the marker associated with "Plasma Mem- brane" in the InterSpect docu- ment to traverse the new link. Since more than one link is associated with the selected block, lntermedia presents a dia- Screen 11 log box containing the explainers for each link. We select the link we just created and click on "OK." Since the document at the other end of the link is already open on the screen, following the us us nq BO link will simply activate the docu- ne en ment and highlight the extent of ne en the destination block (not nm BO pictured).

Screen 12. Before ending our session, we save and close the new InterDraw document, select its icon, and choose the Access Rights command from the menu. The dialog that appears allows us to add or subtract access rights for different groups of users. For this document, we decide to add Annotate rights for all users of the system. This means that any user may create links to or from the document but may not edit its content. Before exiting the sys- tem, we save and close the open InterSpect document and the Bio Screen 12 106 web.

January 1988 89

- (Continued from p. 83) and directories. Intermedia adds “anno- possible, and tation” permission to the other two forms create a system that would be exten- a list of link explainers presented in a dia- of access rights. This allows users to add sible and suitable for prototyping new log box. links to a document that they are not applications. Property sheets also allow users to add allowed to edit. We created such an environment by keywords. Although still under develop- building some of the pieces ourselves and ment, these keywords, along with the Intermedia: adapting and integrating tools developed default information assigned to links and the construction by others. This resulted in a layered set of blocks, will provide users with a mecha- tools that allows programmers to develop nism for searching the document corpus. Intermedia not only provides a rich applications conforming to the user- A keyword search will yield a list of environment for authors and browsers but interface standards. explainers associated with all the blocks or also for developers, furnishing a set of In particular, we started with CadMac, links meeting the search criteria. Each item tools that facilitate the creation of new Cadmus Computer’s implementation of in the resultant list will be automatically applications adhering to the Intermedia the Macintosh toolbox under the 4.2 BSD linked to its corresponding block or, in the paradigms. Unix operating system; supplemented it case of links, to the corresponding source In designing the Intermedia system, we with an object-oriented programming lan- block of each link. For example, a student believed that consistency among applica- guage called Inheritance C (developed at could search for all links containing the tions was crucial, since the system Bolt Beranek and Newman); and added a keywords “Pope” and “Heroic Couplet” encourages quick transitions from one C version of Apple’s MacApp-a set of that were created by the professor after a application to another. User-interface classes for creating “generic” Macintosh- certain date. consistency is not always easy to achieve, like applications. On this, we superim- Link and block properties help manage however.s In part, this may result from posed several crucial building blocks from complexity within the Intermedia environ- carelessness. But, more often, interface which any number of end-user applica- ment, but the notion of context is even inconsistencies result from not quite iden- tions and utilities can be constructed. The more crucial. In some systems, links are tical implementations of features already Proceedings of the I986 Conference on global-all links are available at all times implemented elsewhere in a system. The Object-Oriented Programming Systems, to all users. In such systems, links become Apple Macintosh represents a prime exam- Languages, and Applications (OOPSLA)6 an integral part of the documents. In ple. The system has clearly defined user- provides a detailed technical description of Intermedia, block and link information is interface paradigms, and new programs the architecture of the development envi- not stored within individual documents almost always use a number of the same ronment that we summarize below. but is superimposed on them. Websmain- functions that exist in hundreds of other tain the block and link information, allow- Macintosh programs. Even so, software Object-oriented programming. The ing one or more users to work within their developers must reimplement most of the technique of object-oriented program- own context undistracted by blocks and “standards” (selection, resizing, dragging, ming has gained a great deal of recognition links created by others sharing the same etc.) from scratch because the Macintosh as a superior approach to programming computing resources. Most importantly, Toolbox provides the mechanisms for tasks. Studies have shown significant users do not see hypermedia as an alterna- building them but not the implementa- reductions in both development time and tive to their desktop environment; rather, tions. Often these programmers miss an size of source code when such techniques they see it as an integral technique tying important feature or user-interface detail were used,’ with a significant increase in together documents in that environment. that users immediately notice. the amount of reusable code. One criticism Currently, opening a web imposes a par- To build Intermedia, we needed a devel- of programs written using object-oriented ticular set of blocks and links on a set of opment environment that would help programming techniques is that they tend documents while that web is open. Thus, programmers create a multiuser system to be slower than comparable conven- webs allow different users to impose their with consistent, direct-manipulation appli- tional programs. First, much of this view own links on the same document set. cations, plus the ability to link together the relates to historical speed problems in early Although only one context can be viewed contents of documents created with those versions of Smalltalk where object- at a time, users can easily switch contexts applications. Faced with the task of oriented code was interpreted rather than by closing one web and opening another. developing a relatively large, interactive compiled. With the advent of object- In the future, webs will also serve as the system in an ambitiously short timeframe, oriented compilers and optimization tech- focus for keyword searching operations. we needed a set of development tools that niques, speed is no longer an insurmount- Intermedia differs from most other would help us able problem. Second, if you use an hypermedia systems in that it allows mul- remove the burden of user-interface appropriate object-oriented system,’ you tiple users to both follow and create links consistency from the application pro- can carefully write and optimize reusable concurrently in the same web. Intermedia grammer chunks of code. incorporates a system of user access rights adopt an existing user-interface We selected an object-oriented pro- that helps manage multiple users sharing standard gramming language for the Intermedia large bodies of connected material. Due to allow small groups of programmers project partly because of the reduction in the hypermedia functionality of Interme- to work on different parts of the sys- development time it promised, but mostly dia, the access rights scheme builds on the tem in parallel for the benefits it affords to a group- protection mechanisms offered in most file facilitate the integration of modules development effort. A team of developers systems where users either have “read” developed by different groups can agree on a shared set of parent classes permission or “write” permission to files avoid as much duplication of effort as and their corresponding abstract methods.

90 COMPUTER The use of abstract methods-or of the team work on defining and refining represents such a companion to an object- templates-clarifies the behaviors an the object classes. oriented programming language and pro- application programmer must implement. vides a framework for constructing Then, working individually, the The applications framework. While an Macintosh application^.'.'^ MacApp developers can create appropriate object-oriented programming language defines classes with a combination of subclasses-defining one class of objects provides a number of features that facili- abstract and nonabstract methods that in terms of other classes-that will respond tate team efforts, supplementing those fea- encapsulate the behavior of the Macintosh to a single set of messages and that can be tures with a set of classes that define user interface. A tiny program (on the easily integrated into one program. When common behaviors-an applications order of 10 to 20 lines) bound with a programming task is divided, one mem- framework-insures a greater degree of MacApp suffices to create a skeletal ber of the team can implement the code user-interface consistency in the system Macintosh-like application with menus; that will coordinate the sending of mes- under development. blank windows that can bemoved, resized, sages to objects while the other members Our choice, Apple’s MacApp, and scrolled; data that can be stored and

Review of object-oriented programming principles

Not surprisingly, the fundamental notion in object-oriented because it enables programmers to use and modify existing programming is that of objects. An object-oriented program is parts of a system without having to understand the details of a system of interacting objects. Objects encapsulate data and their implementation. the algorithms that specify the behavior of that data. Opera For example, say we define a class called Rectangle. All the tions on an object can take place only through a well-defined objects that are instances of this class will have two Point interface to the object’s behavior; the actual implementation fields (the topleft and the bottom-right corners of the rectan- of the behavior is hidden from everyone but the designer. gle). The class will have methods for calculating area and The data structure components of an object are known as drawing the rectangle. If we wish to draw a rectangle on the its fields or slots. The routines that can act upon an object of screen, we first create a Rectangle object and then send a a particular type are called methods. These methods are the message to invoke the Draw method. To create a more special- primary means through which the fields within an object may ized object that draws a rectangle and prints text inside the be manipulated or modified. Other objects invoke an object’s rectangle, we would define a subclass of Rectangle, called method by sending a message to the object. Then, the object TextRect. No existing code has to be rewritten. Instead, in the interprets the message and the appropriate method is per- definition of the TextRect class we can add a character string formed. field, override the Draw method inherited from the parent Classes (also known as object types) are templates defined class, refine its behavior to do what its parent did, and draw by programmers that describe the properties and behaviors of the text. Like Rectangle objects, TextRect objects will respond a set of common objects. An object is actually an instance of to FindArea messages, even though we did not add any code a class template, typically created as a program is running. for calculating area in the TextRect class. Each object is a copy of the class template. Thus, each object In the above example, the Rectangle class served as a tem- has the same number and types of fields, and only differs plate for the subclass TextRect. However, it often helps to from other objects in the class in the data in those fields. All define less specific templates than the Rectangle class. For objects in a class share the same methods, typically by point- instance, a parent class of Rectangle called Shape might have ing to a common method table or dictionary. While class tem- been created with two abstract methods, Draw and FindArea. plates provide a basis for modularity, subclassing-the ability An abstract method contains no code; it exists only for the to define one class of objects in terms of other classes-is purpose of being overridden. To create a new shape, a pro- one of the object-oriented programming concepts from which grammer would subclass Shape, add appropriate fields, and much leverage is gained. override the Draw and FindArea methods. Subclasses inherit the characteristics of higher-level ances- tor classes. An object in a subclass contains all the same Likewise, a program that displays many different shapes on field types and methods as an object in the parent class. In the screen might contain a list defined to point to objects of defining a subclass, a programmer can add fields and class Shape or any subclass of Shape. Each object in the list methods or redefine methods that one of its superclasses inherits the Draw method from the Shape superclass, but has originally implemented. A redefined method can implement a overridden it with code appropriate for drawing the specific behavior completely different from the original method, or it object. Since all shapes are guaranteed to understand the can merely slightly modify or extend the behavior of its parent. same message protocol, we can display a whole screenful of Refining, or overriding, a method of a class makes it possi- shapes by merely sending the same draw message to each ble to considerably reduce the amount of code that an appli- object in the list without knowing exactly what type of shape cation programmer needs to write; the only code necessary is objects are in the list. that which explains how a method differs from the parent Objects descending from the same parent class are essen- method. The programmer is guaranteed that the methods he tially “plug compatible;” each understands the same mes- or she did not override will respond properly to any messages sages as the others, yet each performs the task in its own way. sent to the object. This process of redefining and extending a This modularity allows the transparent creation and insertion class of objects in terms of another class is important of new subclasses into the program.

January 1988 91 retrieved; and views that can be automat- functionality as it exists or modify the ically laser printed. This default program, functionality to suit a specific application. however, has a blank view. To write an To support the development of applica- application with views that render some- IItvo building blocks tions within Intermedia, we initially imple- thing in the windows, the programmer were initially mented two building blocks-a Text must subclass several base classes provided Building Block and a Graphics Building by MacApp. The most important of these implemented. Later, it Block-and later found the need f Jr a classes are was discovered a third third-a Table Building Block. The Object class, which manages the The Text Building Block permits the freeing of memory and the cloning of building block inclusion of text anywhere within an appli- new objects. It is the parent of all was needed. cation. It makes it possible to provide other classes. exactly the same interface for displaying, The Application class, which contains editing, and formatting multifont text methods for launching an applica- throughout the system. An entire applica- tion, displaying the menu bar, tion, such as a text editor, or some part of managing the main event loop, and the Application object interprets the an application, such as the input field of creating and initializing appropriate mouse press and sends a message to the a palette, can be based on the Text Build- document objects. currently selected object’s DoMenuCom- ing Block. The Document class, which main- mand method. A programmer does not Just as the Text Building Block allows tains the data model for the program. have to consider flow-of-control issues the inclusion of text anywhere within an Document objects contain all the since an Application object handles all application, the Table Building Block basic information for saving and user-initiated events, such as mouse facilitates the incorporation of tabular restoring the data and managing presses, keystrokes, and menu selections, data. A programmer can use the Table several other objects-such as Win- and dispatches those events to the appro- Building Block as the backbone of a dow objects, Frame objects, and priate target object. spreadsheet program or a database inter- View objects-involved in viewing As an applications framework, face, or to integrate one or more tables into the information contained in the MacApp promotes consistency in a multi- any other type of application. For exam- document. application environment by eliminating ple, Release 3.0 of Intermedia will include The Window class, which manages all the need for programmers to reimplement a videodisc application with tables for the operations pertaining to windows, any of the user-interface features required storing data such as frame numbers, including opening, closing, resizing, for the shell of a Macintosh-like applica- sequence names, and playing times of moving, activating, and redrawing. tion. The framework insures that each video images. The View class, which manages the application will have windows, menus, The Graphics Building Block (GBB) lets rendering of the data contained in the dialog boxes, and other basic components programmers incorporate graphics, such document and passes on mouse that look and behave the same way as all as lines, rectangles, circles, icons, and events to the appropriate objects others in the system. polygons, into their applications. This within the view. building block defines a number of shape The Command class, which is the Building blocks. While object-oriented classes with methods for drawing, high- template from which command programming provides the structure and lighting, selecting, resizing, and moving. objects are generated to respond to methodology for cooperative develop- The GBB also subclasses MacApp’s View outside actions from the menu, the ment, and MacApp provides a set of base class so that the subclassed graphics mouse, or the keyboard. Since com- classes from which to build an application, GView contains a list of all objects to be mand objects can be maintained on a these two components alone are not rendered on the screen. To illustrate how stack, multilevel undo and redo are enough to create a fully functional devel- building blocks are used in general, we will easily implemented. opment environment for a group of focus on the GBB. cooperative developers. Programmers can take advantage of a By subclassing these and other MacApp Still missing is a component that helps building block such as the GBB in one of classes, a programmer builds a model for developers render and manipulate the data four ways. First, a programmer can use the the data in an application, creates the win- for their particular application. To this building block functionality in its entirety. dows and frames in which the information end, we have implemented several build- For example, to create a structured will be viewed, and describes how the user ing blocks-sets of reusable classes that graphics editor similar to Apple’s Mac- can interact with that information. implement basic functions common to Draw in which users can draw a variety of The Application class has perhaps the multiple applications. different shapes on the screen, rearrange greatest impact on the developer. This The philosophy behind the building them, group them, and perform various class contains the methods necessary for blocks is that they should encapsulate other editing operations, a programmer an application’s most basic behavior. For important end-user functionality-both could use most of the GBB’s shape classes, example, it includes methods for launch- input and output components-and pro- subclassing where necessary, and then add ing an application, running the main event vide both a user interface and a program- application-specific user-interface features loop, dispatching events to the appropri- mer interface. Instances of these building such as alignment, tool palettes, and style ate event handler, and creating, closing, blocks can be incorporated directly into an palettes. and deleting documents. In the case of a application; the application programmer In the second case, a programmer can user selecting a command from a menu, can use part or all of a building block’s eliminate functions inherited from a build-

92 COMPUTER ing block. For example, one method in turn, points to the appropriate Link associated with polygon objects in the objects. Therefore, users can access a link GBB allows users to move polygons by through a block to follow the link or view clicking on them and dragging. In Inter- Running multiple its properties. Spect, data files-not users-govern the desktop applications The methods of the Blocks include ones placement of each polygon relative to for starting links, completing links, fol- other polygons in a three-dimensional and linking document lowing links, viewing properties, and object, so the developers override GPoly- contents were several others. Certain appropriate menu gon’s Move method to eliminate the drag- items become available when a BlockMar- ging functionality. In all other respects, identified as ker is selected. The menu items for show- polygons behave in InterSpect as defined requirements. ing the extent of the block, starting a link, in the GBB. deleting the block, and viewing the block Third, you can override methods to add properties are enabled if the block to which increased functionality to building block the Block object points has no links. If that classes. The use of icons in Intermedia’s Block has at least one link, all of the previ- desktop application illustrates the addition illustrates the ease with which features ously mentioned options are available, of functionality to a building block’s shared by many applications can be imple- along with following, viewing of link method. The desktop application sub- mented using our object-oriented develop- properties, and deleting the link. All of classes GBB icons-simple bit maps-and ment base. these actions are done using Block overrides the Draw method so that a text Briefly, the type of additional function- methods that themselves may use fields as string, representing a document’s name, ality the Intermedia layer supports well as methods of the associated Link always appears below the icon (see Screen includes the creation of links between a objects. 1 in the sidebar, “Sample session”). selection in a source document and a selec- This portion of the linking functional- In the fourth case, a programmer can tion in a destination document. To attain ity is shared in its entirety by all Interme- override methods to change the behavior the desired consistency, the Intermedia dia applications, leaving only a few details of building block classes. An example in layer subclasses MacApp’s Document, for the developer to implement in order to InterSpect clearly illustrates this. To indi- View, and Application classes. In integrate linking into a new application. cate that an object has been selected, the MacApp, the Document class manages the With a non-object-oriented development GBB uses “handles” to indicate highlight- reading and writing of an application’s base, each application programmer would ing. In InterSpect, however, the GBB’s data model while the View class manages have been forced to identify and call proce- GSelection method is overridden to substi- the rendering of that model. IntDoc and dures from appropriate subroutine librar- tute bold outlines as a highlighting IntView, the Intermedia layer’s document ies for saving, restoring, creating, deleting, method. and view classes, extend the MacApp func- and viewing links, and to do all this in the With these four options available, appli- tionality to include the reading and writ- appropriate order with the correct cation developers have enough flexibility ing of link information to a relational parameters. Using the Intermedia layer to create innovative interfaces, but are not database and the rendering of the links. augmenting MacApp, the applications burdened with the implementation of The Intermedia layer’s application class, framework essentially alerts the program- functions that should behave identically IntAppl, adds the functionality necessary mer, who must implement only those across applications. The building blocks to interface with Intermedia’s folder methods that are specific to his or her complement MacApp by providing a system. application. All other functionality is means of achieving internal as well as Like MacApp, the Intermedia applica- shared as standard fare by all developers. external consistency among applications. tion framework “calls” the applications Larry Rosenstein of Apple Computer has through the use of abstract methods. By whimsically labelled this a “don’t call us, Adding shared functionality. By using defining an abstract method, the frame- we’ll call you” programming meth- the tools described above-an object- work indicates to the application odology. oriented programming language, developers that it is the responsibility of a MacApp, and building blocks-a pro- building block or an application to provide Building an application. While the grammer could create applications that a concrete implementation of that method. Block methods in the Intermedia layer adhere to the Macintosh-style user- For example, IntView provides abstract handle the core of the linking functional- interface paradigms. In our requirements methods for displaying block markers ity, the methods of the individual applica- for Intermedia, however, we identified the concretely implemented by the various tion’s View objects handle the way blocks need to run multiple applications on the building blocks. are displayed in different applications. The desktop as well as the need to link the con- The linking functionality is imple- display methods include the creation and tents of documents together. These two mented largely in the Block class that exists display of marker icons, scrolling to a requirements made it necessary for us to at the Intermedia layer and inherits from block after a follow, and highlighting the extend, and in some cases alter, the exist- MacApp’s Object class. Since there must extent of a block. In the GBB, these ing Macintosh user-interface paradigms. be a block at either end of a link, blocks are methods, defined at the Intermedia layer To this end, we kept MacApp as the first created each time a link is made, unless the as abstract methods of IntView , are imple- layer of our system and then subclassed user attaches one end of the link to an mented in the subclass GView. An appli- most of the MacApp classes to create an already existing block. A Block object cation that, in turn, subclasses GView Intermedia layer. The way the Intermedia keeps track of all links that emanate from inherits a whole hierarchy of functional- layer extends the functionality of MacApp it by pointing to a Link Array object that, ity, part of which includes the display of

January 1988 93 P - i

-I-

Gnphlcm Bulldlnv Block Lmyu

Figure 2. Inheritance hierarchy for the InterSpect unit.

blocks (see Figure 2). The application the thinking of programmers about their For application integration, the developer then subclasses GView and the applicati Jn-specific problems. Intermedia system contains a Framework associated GObject, and uses the Dialog, application. When programmers develop Control, List, and other classes to create Developing in parallel. When building an application, they compile the code for a customized application. applications such as InterSpect in parallel each application object separately from Every application added to the Interme- with other applications that run in the the code for all other objects. The com- dia environment has a number of features, same environment, we initially consider piled code minus the application object is like zooming and rotation in InterSpect, each application as a separate entity. called a unit. For example, InterSpect has that differ from functions implemented at Programmers build and debug their pro- an application object, called SpectAppl, the MacApp, Intermedia, or building grams as independent applications, each that is a subclass of the Intermedia layer’s block layers. In this case, the programmer taking advantage of the inheritance hier- application object, IntAppl. The Spect- creates new objects that are simply sub- archy provided by the development tools. Appl object contains a method called classes of MacApp’s generic Command or The extreme modularity of the object- DoMakeDocument exclusively for creat- Object classes. While the development oriented environment makes it possible to ing InterSpect document objects. To test tools do not directly simplify the imple- take applications developed separately InterSpect, the programmer binds the mentation of these features, general and, without requiring recompilation, InterSpect unit to the SpectAppl object. object-oriented techniques help structure integrate them into a single system. When ready to integrate InterSpect into

94 COMPUTER the Intermedia system, the programmer available applications. The approximately we encountered problems and drawbacks. instead relies on the framework’s applica- 3,000 links created by the eight authors Our most serious problem stemmed from tion object (FrameworkAppl, also a sub- seems to indicate that link-making as well working in an extremely layered environ- class of IntAppl), which contains a as link-following posed little or no diffi- ment. Although inheritance certainly saves DoMakeDocument method for creating culty to the users. Although there is no programmers an enormous amount of not just InterSpect documents, but many empirical evidence to show that con- work, it can prove quite time-consuming different document types. When integrat- sistency among applications is related to in an environment that does not support ing InterSpect into the Intermedia system, ease of use, we believe it is a strong factor. incremental compilation. When working the programmer adds InterSpect to the list In fact, we believe the consistent applica- with a Unix system using the C program- of document types specified in Framework- tion framework with seamless inclusion of ming language and an object-oriented Appl’s DoMakeDocument method and linking allows users to ponder new appli- preprocessor, changes in one layer are not then binds InterSpect and all other appli- cations, taking for granted that linking will automatically propagated to other lower- cation units with the FrameworkAppl be incorporated into those applications as level layers. In our case, when we changed object rather than the SpectAppl object, a standard feature. fields and methods in a parent class such without ever having to recompile the Inter- An examination of the course materials as IntView, we had to recompile all layers Spect unit. created by the instructors in this study indi- inheriting from that class. These often The capability to reuse the same units cated that each used Intermedia success- required 45 minutes or longer. Although without recompilation for independent fully (measured by a substantial increase we attempted to minimize the number of testing and for creating an integrated sys- in the critical thinking skills of the recompilations, they were often unavoid- tem was instrumental in the success of our students”), despite the fact that each able during the period we worked on all parallel development effort. Developers instructor used the system in a fundamen- layers of the system simultaneously. We could work on their portions of the proj- tally different way. We believe this study did manage to structure the working envi- ect independently, knowing that the effort points to the potential value of multiuser ronment so the recompilations would not of integration would be minimal as long as hypermedia systems across a wide range of prevent other people from working, but they worked within the structure provided academic disciplines. this scheme added the expense of keeping by the building block and the Intermedia duplicate copies of the source code and application framework. In particular, The construction. With the generic producing new releases of the system every developers could count on inheriting all MacApp layer, the Intermedia layer, and week. Even though we used a source code the linking functionality as soon as their three crucial building blocks in place, we control system to facilitate release track- application was bound and run with the can now build and integrate new applica- ing, we still had to be extremely careful to FrameworkAppl object. tions into the Intermedia environment in include the most up-to-date versions of a matter of weeks. By systematically every layer in each release. implementing abstract methods and over- Measuring success riding other methods found in layers above hrough the use of abstract the application layer, developers can cre- methods, object-oriented pro- The concept. To assess the power and ate applications guaranteed to have com- T gramming provided us with a utility of hypermedia, IRIS is conducting mon functionality consistent with all other concrete structure that could be shared by a series of experiments at Brown that intro- applications. While it is, of course, possi- each of the applications in the system. duce Intermedia into existing courses and ble to institute inconsistencies, it takes With object-oriented programming and work settings. To date, Intermedia-based more effort to be inconsistent than con- MacApp, we could structure the whole materials and applications have been used sistent. system in such a way that each part could in a plant cell biology course and an Eng- We can directly attribute the successful be worked on independently with the guar- lish literature course involving about eight and rapid development of the Intermedia antee that integration would be easily users who might be classified as authors environment to object-oriented program- accomplished and common functions and 80 students who primarily used the ming techniques. These techniques, in would behave identically in each of the system as browsers (although many combination with other factors, enabled applications. experimented with creating their own us to attain each of our goals for the proj- As we look toward the future, we plan documents). ect. We were able to remove the burden of to expand Intermedia, both from a user’s As evidence that users appreciated the user-interface consistency from the appli- and a programmer’s point of view. Devel- multiple applications provided by the cation developer, adopt an existing user- opment of new applications and system Intermedia framework, two substantial interface definition, allow groups of features are under way to provide links to linked bodies of material (approximately programmers to work in parallel, integrate and from video and audio, more complex 850 English-related documents and 200 separate modules without recompilation, filtering and information retrieval, better biology-related documents) were created avoid considerable duplication of effort, visualizations of connections between that included documents of all available and create anextensible system suitable for documents, and support for capturing and types. the rapid development of new applica- replaying paths through a web. On the Authors and browsers alike learned to tions. The Proceedings of OOPSLA 866 development side, we plan to implement use the system with almost no training. provides a more detailed description of the building blocks for handling controls such Even though experienced Macintosh users specific measures we used as a basis for as sliders and scrollbars, for abstracting learned more quickly than others, no user these conclusions. menus, for providing MIDI music record- required more than a week or two to feel Despite the substantial benefits of our ing and replay, and for providing more comfortable using Intermedia and all its development base, as with every system, sophisticated text-editing features. More

January 1988 95 ‘importantly, we hope to persuade the soft- References ware development community that (1) 1. J. Conklin, “Hypertext: An Introduction application development will be most and Survey,” Computer, Sept. 1987, pp. fruitful when that community at large 17-41. embraces object-oriented building blocks 2. N. Yankelovich, M. Meyrowitz, and A. van and frameworks and (2) hypermedia will Dam, “Reading and Writing the Electronic only be readily accessible when a common Book,” Computer, Oct. 1985, pp. 15-30. linking protocol is adhered to by all third- 3. D.C. Smith et al., “Designing the Star User Interface,” Byte, Byte Publications Inc., party software creators. 0 Apr. 1982, pp. 243-281. Bernard J. Haan, a research software engineer at the Institute for Research in Information and 4. A. Goldberg, Smalltalk-80: The Interactive Scholarship at Brown University, is one of the Programming Environment, Addison- Wesley Publishing Co. Inc., Reading, original members of the Intermedia project Mass., 1984. team. As project leader of the programming Acknowledgments team developing Intermedia’s linking capabil- 5. B. Shneiderman, Designing the User Inter- ities, he has been involved in all phases of the Intermedia is the culmination of two years of face: Strategies for Effective Human- program’s development, from design to imple- intense effort by a large team of developers led Computer Interaction, Addison-Wesley mentation. by Norman Meyrowitz. We would like to thank Publishing Co., Inc., Reading, Mass., 1987. Haan is agraduate of Brown University, with Tim Catlin, Helen DeAndrade, Page Elmore, 6. N. Meyrowitz, “Intermedia: The Architec- degrees in computer science and French litera- Charlie Evett, Matt Evett, Nan Garrett, Allan ture and Construction of an Object- ture. He is a member of the ACM. Gold, Ed Grossman, Karen Smith, Tom Stam- Oriented Hypermedia System and Applica- baugh, Ken Utting, Dave Bundy, Dan Stone, tions Framework,” Proc. OOPSLA 86, Steve Williams, Bill Shipp, Marty Michel, and Sept., 1986, pp. 186-201. Andy van Dam for their tireless contributions 7. B. Cox, “Message/Object Programming: to developing the system. We would also like to An Evolutionary Change in Programming thank Peter Heywood, Scott Buchanon, and Technology, ’ ’ IEEE Soff ware, Jan. 1984, Chris Scott for the many hours they spent con- pp. 50-61. structing the biology materials, and George 8. B. Stroustrup, The C+ + Programming Landow, David Cody, Glenn Everett, Rob Sul- Language, Addison-Wesley Publishing livan, Katherine Stockton, and Suzanne Keen Co., Inc., Reading, Mass., 1986. Morley for producing the enormous corpus, 9. K. Schmucker, Objeet-OrientedProgram- Context 32: A Web of English Literature. mingfor thekfacintosh,Hayden Book Co., The work described in this paper was spon- Hasbrouck Heights, N.J., 1986. sored in by a joint study contract with IBM, Norman K. Meyrowitz, associate director of the part Institute for Research in Information and a grant from the Annenberg/CPB Project, and 10. L. Tesler, “An Introduction to MacApp a research agreement with Apple Computer. 0.1,” Apple Computer, Inc., Cupertino, Scholarship at Brown University, has directed Calif., Feb. 14, 1985. the Institute’s hypertext and multimedia 11. W.O. Beeman et al., Intermedia: A Case research program since he helped found IRIS in Study of Innovation in Higher Education, 1983. Most recently, Meyrowitz has managed assessment report prepared for the Annen- and has been the principal architect of the berg/Corp. for Public Broadcasting Proj- Intermedia project. His major research interests ect, Oct. 1987. are in the areas of multimedia documents, text processing, user-interface design, and object- oriented programming. VICE PRESIDENT FOR Meyrowitz graduated from Brown University 1 in 1981 with a degree in computer science. He is a member of the Computer Society of the IEEE, the ACM, and Sigma Xi. Adelphi University a Vice President for Information

vsystemsandehnology; establishment of policy and guidance of operations for educa- tiltechnology and computing. High pr!ority will be given to Nicole Yankelovich, a founding member of acadermcneedswithemphaslson Brown University’s Institute for Research in enhancement d faculty and stu- Information and Scholarship (IRIS), is project dent utiliition. coordinator at the Institute. She is responsible for overseeing a number of projects, including experiments to introduce Intermedia into Brown University courses. She has participated in the design and development of Intermedia from its Steven M. Drucker is a PhD candidate in the inception, contributing most heavily to the user- Brain and Cognitive Sciences Dept. at the Mas- interface specifications. sachussetts Institute of Technology, studying Yankelovich holds the BA degree from robotics, tactile sensing, and machine learning Brown University in political science and is a as a Poitras fellow at MIT’s Whitaker College. member of the Computer Society of the IEEE, Previously, he spent two years at the Institute the ACM, and a number of educational com- for Research in Information and Scholarship at puting organizations. Brown University, working first on an Interme- dia prototype and later on the framework for the Readers may write to the authors at IRIS, PO current version of Intermedia. Box 1946, Brown University, Providence, RI Drucker received the ScB in neurosciences, 02912. summa cum laude, from Brown University.

COMPUTER