B'\ OBJECTLENS: A "SPREADSHEET" FOR COOPERATIVE WORK Kum-YewLal Thomas W. Malone Keh-Chiang Yu September 1988 CISRWPNo. 187 WP No. 3043-89-MS Sloan 90'sWP No. 89-071 Center for Information Systems Research Massachusetts Institute of Sloan School of Technology Management 77 Massachusetts Avenue Cambridge, Massachusetts, 02139 OBJECTLENS: A "SPREADSHEET" FOR COOPERATIVE WORK Kum-YewLai Thomas W. Malone Keh-Chiang Yu September 1988 CISRWPNo. 187 WP No. 3043-89-MS Sloan 90'sWP No. 89-071 •1988 Association for Computing Machinery Permission to copy <ll Or rrjteft*! i$g'«nted i{ g-jnted provided th«t the or part of this th» copesire not m«deor thii rT*teri»i < 30y Without fee *ii •"• COrnrrerc «! *d»*nt»ge. distributed for direct coTirre'c »i *d»*ft»ge. the tf"» ACV copyright copy'ight notice »nd the title of the Publication and its datt t^ Tt-*T copying i$ rj by permisson appear, and notice is> given that fof Computing A«oc:*tiOn for Computin, Machinery. To copy bf permisi.on of the Association OTh0rwA* ranuhiiih r«nuir*c othenw le, nr or tn »nd/Of tn*rifif specific {"^rmittion ptrmiuion. to republish, requires a fee Anri/Ar a f»» Published In ACM Transactions on Office Information Systems, Vol 6, Center for Information Systems Research Sloan School of Management Massachusetts Institute of Technology October 1988. OCT 4 1989 ftECEIVED Object Lens: A "Spreadsheet" for Cooperative Work Abstract Object Lens allows unsophisticated computer users to create their own cooperative work applications using a set of simple, but powerful, building blocks. By defining and modifying templates for various semistructured objects, users can represent information about people, tasks, products, messages, and many other kinds of information in a form that can be processed intelligently by both people and their computers. By collecting these objects in customuabU folders, users can create their summarize selected information from the objects in table or tree formats. aemiautonomous agents, users can specify rules different for own displays that Finally, by creating automatically processing this information in ways at different times. The combination of these primitives provides a single consistent interface that integrates facilities for object-oriented databases, hypertext, electronic messaging, and rule-based intelligent agents. illustrate the power of this combined approach, we describe several simple examples of applications (such as task tracking, intelligent message routing, and database retrieval) that this To we have developed in framework. Acknowledgements in this paper was supported, in part, by Wang Laboratories, Xerox Corporation, General Motors/Electronic Data Systems, Bankers Trust Company, the Development Bank of Singapore, and the Management in the 1990s Research Program at the Sloan School of Management, MIT. The work described We would especially like to thank Ken Grant who suggested some of the earliest ideas that led to Object Lens and Jin Lee who helped debug the most recent version. The Object Lens system and this paper have also benefitted from conversations with Cheryl Clark, Kevin Crowston, Randy Davis, Frank Halasz, Mitch Kapor, Stan Lanning, Wendy Mackay, Ramana Rao, Randy Trigg, David Rosenblitt, and FranklynTurbak. 1. INTRODUCTION It is common in the computer industry today to talk about the "next spreadsheet"~to claim that a particular application will be the "next spreadsheet" or to wonder what the "next spreadsheet" will be Usually the term "spreadsheet" is used in this context simply to connote a product that embodies some kind of design breakthrough and is very successful. We here on a more specific property of spreadsheet programs: They (e.g., [Greif, 19881). will focus make a restricted, but nevertheless very flexible and useful, set of computational capabilities extremely easy to use. course, possible to do in a general purpose But because doing these things with a spreadsheet program language. the any computation a spreadsheet can do number of people In this paper, we who can use computers will describe to is so It is, of programming much more convenient, do them increases by orders of magnitude. an early prototype of a system, called Object Lens, that we believe shares this property of spreadsheets: It makes accessible to unsophisticated computer users a set of computational and communications capabilities that, while limited, are quite flexible and useful for supporting a wide variety of cooperative work activities. In other words, we use the term "spreadsheet" here, not to connote financial modeling or constraint languages, but to connote a flexible infrastructure in their which people who are not professional programmers can create or modify own computer applications. In the remainder of this paper, we will (1) describe the show how these ideas are realized in Object key ideas used Lens features, and in the design of Object Lens, (2) (3) illustrate the flexibility and usefulness of these ideas in several examples of cooperative work. 1.1 Three views of Object Lens Before proceeding, it is useful to point out three ways of viewing the Object Lens system: (1) Object Lens is the "second generation" of the Information Lens system. Object Lens based on our is experience with using arid enhancing the InTormation Lens (Malone, Grant, Turbak, Brobst 1987; Malone, Grant, Lai, Rao, coordination. A ver>- large & & Cohen, Rosenblitt, 1987), an intelligent system for information sharing number of the enhancements that we and others have suggested and for the Information Lens are included in Object Lens. Like the Information Lens, Object Lens uses ideas from artificial intelligence and user interface design their computational agents can process and generalization of the Information Lens. It to it represent knowledge in such a intelligently. way that both people Object Lens, however, a significant is potentially goes far beyond the Information Lens in the kinds of knowledge that can be represented and the ways that information can be manipulated. Object Lens (2) is a user interface that integrates hypertext, object-oriented databases, electronic messaging, and rule-based intelligent agents. Object Lens does not include these difTerent classes of systems, but we have been surprised at diverse capabilities can be integrated. how The key contribution all the capabilities of all cleanly a large portion of these of Object Lens thus not the is completeness of its implementation, but the integration of its user interface. Since the capabilities of these diiTerent kinds of systems are no longer separate applications, each capability than (3) it would be alone, and the resulting system Object Lens is is is more useful unusually flexible. a knowledge-bated environment for developing cooperative work applications. In the original Information Lens system, scheduling, project we developed specific applications for information sharing, management, and computer conferencing. From the viewpoint of knowledge-based systems, these applications only included knowledge about different types of messages: information the messages contained and the kinds of actions they could evoke. contrast, can include explicit knowledge about meetings, products, and companies. We with these diverse kinds of knowledge many the kinds of Object Lens, in other kinds of objects, such as people, tasks, expect that the flexible tools Object Lens provides for dealing will significantly increase the ease of developing a range of applications. This last view of Object Lens, which emphasizes focus in this paper. meeting its flexibility, is much wider our primary 2. KEY IDEAS One of the most important characteristics of Object Lens is that it is a semiformal system. semiformal system as a computer system that has the following three properties: automatically processes certain information in formally specified ways; easy for humans (3) it to process the same or other information in (1) it We define a represents and represents and makes (2) it ways that are not formally Sf)ecified; it and allows the boundary between formal processing by computers and informal processing by people to be easily changed. Semiformal systems are most useful when we understand enough some, but not all, of the knowledge relevant to acting in a given situation. useful in supporting individual work, is computer system Such systems are often and we believe they are especially important cooperative work where there are usually where there to formalize in a usually also a very large some well-understood patterns amount of other knowledge that in supporting in people's behavior, is but potentially relevant but difficult to specify. In order to create such a flexible semiformal system, the knowledge exposed to users in a way that is embodied in the both visible aj\d changeabU (cf, Turbak, 1986). That system must be is, users must be able to easily see and change the information and the processing rules included in the system. Object Lens, there are three key ideas about (1) "Passive" information is how to represent and expose knowledge In to users: represented in semistructured objects with template-based interfaces; (2) "Aggregate" information from collections of objects is summarized in customizable folders; and (2) "Active" rules for processing information are represented in semiautonomous agents. we In the remainder of section 2, expose knowledge to users in a way that is both visible and changeable. to Detailed descriptions of the in section 3. system features are 2.1 an overview of how these two components allow us will provide Semistructured objects Users of the Object Lens system can create, modify, retrieve, and display objects that represent many physically or conceptually familiar things such as messages, p>eople, meetings, tasks, manufactured and software bugs. The system provides an interface parts, to an object-oriented database in the sense that (1) each object includes a collection of fields arnl field values, (2) each object type has a set of actions that can be performed upon it, and (3) the objects are arranged in a hierarchy of increasingly specialized types with each object type "inheriting" fields, actions, and other properties from its "parents" (see Dittrich a TASK object may have & may have fields like Year and Advisor Dayal, 1986, Shriver Name, Phone, Address, and Job present in to the fields all objects in Object Lens, like a field is fill in as much or as messages little in the objects (e.g., Template -based user in may add fields like MESSAGES) have more detail below, we Information Lens, are semistructured in the sense that information in different fields as they desire and the information in not necessarily of any specific type (e g 2.1.1 Some object PERSON object saving and sharing objects, and we are currently exploring remote databases. users can objects. STUDENT , ways to and a 1986). For example, and Deadline; a them (eg Answer and Forward). As described facilities for our interface title; PERSON have provided rudimentary The Wegner, 1987, Stefik & Bobrow, fields like Requestor, Performer, Descnption, specialized actions defined for to link & interfaces. , it may be free text, such as "I don't know"). Users can see and change objects through a particularly natural form of template-based user interface. These interfaces have a number of virtues. For instance: (1) they resemble forms, with which users are already familiar, (2) they conveniently inform users about the fields contained in an object and about other iiiformation such as the likely alternatives for different fields, and (3) their use is consistent across many different kinds of objects. We will see below how this interface approach, which was used for messages and rules Information Lens, can be easily generalized to 2.1.2 Relationships objects by inserting fields of a objects. different kinds of objects. Users can easily see and change the relationships among and deleting links between the Task object might contain links who requested when among many objects. Task object, who numbers) about the people involved with the task. We objects to each other provides a rudimentary hypertext which a link appears 2.1.3 objects. to will perform the task. will be easy to get it an extensive review of hypertext systems). For instance, the Requestor and Performer Person objects that represent, respectively, the person to the that the task be done and the person the user looks at the in the We will see Then, more information for instance, (e.g., the phone below how this capability of linking system as a special case (see Conklin, 1987, for will see below how it is also possible for an object to be displayed as an embedded template inside the original template. Tailorable display formats. Users have several options for changing the ways they see For instance, they can easily: (1) suppressed, (2) rename selected fields, and select (3) which fields will specify the default be shown and which will be and alternative values the system presents for individual fields. 2.1.4 Inheritance hierarchy for objects. The creation and modification of type definitions simplified by arranging object types in an inheritance hierarchy (e.g., Stefik & Bobrow, 1986). is New types of objects are defined as specializations of existing object types, and they automatically "inherit" all properties of the existing objects except those which are specifically "overridden." Since most of the information about new object types can thus be "inherited" from existing types, rather than having to be re-entered each time, creating new object types becomes simpler. definition is object type. changed later, the Also, when an object type changes are automatically "inherited" by the specializations of that 2.2 Customiiable folders Users of Object Lens can group collections of objects together into special kinds of objects called Folders. For instance, folders can be created directory), tasks (eg, those completed, those (group>ed according to topic or urgency), displays to to be and summarize the contents of objects for groups of people done by you, those to project teams, company be done by others), messages Users can also easily customize their own so forth. in a folder. (e.g.. For instance, they can select certain fields to be displayed in a table with each row representing an object in the folder and each column representing a field. They can also select fields from which the links between objects will be used to create a tree (or graph) display with each object represented as a node in the tree and each link in the selected field represented as a line 2.3 between nodes. Semiautonomous agents Users of the Object Lens system can create rule-based "agents" that process information automatically on behalf of their users (see Crowston & Malone, 1988, for an extended discussion of agents). These agents provide a natural way of partitioning the tasks performed automatically by the system. As we agents can be "triggered" by events such as the will see below, new Eurrival of an object in a specified folder, the arrival of a pre-specified time, or When an agent is triggered new mail, the appearance of a explicit selection by the user. applies a set of rules to a specified collection of objects. it satisfies the criteria specified in a rule, the rule p>€rforms some prespecified action. If an object These actions can be general actions such as retrieving, classifying, mailing, and deleting objects or object-specific actions such as loading files or adding events to a calendar. The agents in Object Lens are "autonomous" in the sense that once they have been created, they can take actions without the explicit attention of a however, in the sense that (a) own. (e.g., user. they are always controlled by a be easily seen and changed by their user for action human human by leaving the object user), and (b) they They are only "semiautonomous," human may user (that is, all their rules can oflen "refer" objects to their in the user's inbox) rather human than taking any actions on their 2.3.1 Descriptions. Since agents and rules are themselves objects, users can see and modify them with the same template-based user the criteria for when which the rules apply. type. by objects to A description is simply a partially embedded which the original object embedded description include an is used for all other kinds of objects. To specify a rule should act upon a given object, users create descriptions of the objects to Descriptions can also include satisfied interface that filled-in template for an object of a particular descriptions that specify characteristics that is linked. For instance, a description of a of the Person who will perform the task. must be Task might These embedded descriptions (like those in the Rabbit system [Tou et al, 1982]), allow users to easily specify object retrieval operations that are equivalent to "joins" followed by "selects" in a relational database. 3. SYSTEM FEATURES In this section, we will describe in them with simple examples The Object Lens system is more detail the basic (see Lai [1987] for implemented more system features of Object Lens and illustrate details about an earlier version of the system). in Interlisp-D on Xerox 1100 series workstations connected by an Ethernet. The system makes heavy use of the object-oriented programming environment provided by Loops and the built-in text editor, Tedit. Except where otherwise noted, everything described here has been implemented, but many features have not yet been extensively tested. As of this writing, the basic mail handling capabilities have been used regularly by two people in our development group for about 6 months and the other 3.0.1 Terminology: facilities Objects have received limited testing. and Before proceeding templates. it is helpful to clarify some terminology concerning objects and templates. First, we distinguish between object types (or "classes") and specific object instances (e.g., see Fikes & Kehler, 1985). We use the term object type to refer to a kind of object (such as Person or Task) and the term object instance (or simply "instance") to refer to a specific example of one of these object types distinction both. (eg., "Joe between object types and object instances Smith or "Task No. is not critical, we use 17"). In contexts where the the term objects to include 8 We also use the term template any semi-structured in two ways collection of fields to mean always capitalize and we use Most of a field contents. the term template to object type definition. user's interactions with Object (When we we use Template in this specialized sense, For instance, users can change the display format for it.) mean Second, in the Object Lens screen displays, we use the word Lens are based on such templates. Template First, in a general sense, all will Person objects by editing the Template that defines the Person object type. 3.1 Editing Figure 1 instances shows a template text or bitmaps in any an instance of a Person. Using the built-in text for field. In addition, when users click on a field likely alternative values for that field appears in a pwp-up other objects or just text strings. automatically inserted in the representing the user the Add (a) Kum-Yew name with field. the link should be made. menu the mouse, a of menu. The alternatives may be links to Selecting one of these alternatives causes the alternative to be For instance, the figure contains a link To Lai's supervisor. from the can insert list at the top of the After a link is to the Person object insert links to objects that are not in the alternatives positions the cursor at the place in the template where the link Link option editor, users window, and then inserted, clicking on it (c) is to be inserted, list, (b) selects points to the object to which with the mouse causes the object it points to to appear on the screen. In the current version of Object Lens, users can insert any combination of text, numbers, links, and bitmaps in instance is checked any field. closed or for valid when done when the editing window certain kinds of processing are done. For instance, the below for descriptions of rules and with more restrictive probably be impossible action. is To and cc addresses before sending messages and the "move to" field in rule actions for valid folders (see may experiment Then, in some cases, type checking to t>'pe folders). enforcement for the fields are is checked In future versions of Object Lens, in certain fields. For instance, even insert something other than a folder in the "move it we should to" field of a rule Figure 2 shows a slightly more complex template; this one fields of this template Bug The object itself. We fields in the template. Bug to To new Bug 1) or as (i.e., new create a just like the rest of the to other objects should be (as in Figure 2). like those shown new person in Figures 1 object, users click and mouse Figure 3 shows the Templates currently new message, users click on object type, users click (with the middle Template for the "parent" object type (see Figure 2, will the Template for the type on the Person Template. appear and the user can mouse button, instead This causes a 3). alternative actions that can be performed on a Template. When the user selects this action, a properties of its "parent." and other properties Then users can add One new Template fields to the fill it in. of the lefl one) menu to is created with or change on the appear showing of these actions new Template is to Create a all the fields and its display format (see below). In the current version of Object Lens, all Things have three fields: All objects inherit these fields, though as discussed below, their display. For instance. be Text. object. In this new object types new subtemplate. Bug instance of an object type that already exists, users click with the the Template) for that object type. Then an object instance, To a link to a template contains an embedded template embedded templates of message they wauit to create; to create a Creating object, the is Request message. One of the embedded template can be edited included in our system. For instance, to send a 3.3 Fix Instances create and display a on the definition Bug below how users can specify whether links displayed as link icons (as in Figure 3.2 Creating to the fields in this will see a be fixed and the value of this field showing a link case, instead of simply for the the is is for Messages rename the Name some Name, Keywords, and Comments. objects field to rename these fields or suppress be Subject and the Comments field to 10 3.4 Changing the display format and other properties of object types To change the display format defines the object when they click on the can change displayed, t>'pe. (a) (c) which Users make these changes by selecting actions from the menu that appears Template (as shown in Figure 3) with both mouse buttons. In this way, users fields of the object are actually displayed, (b) the when new instances are link icons (see Figure 1) or as created, and (e) embedded templates All the changes also add or delete fields from a template. of the fields that are whether the links in a made to of a field, then the new name will be shown when any field should be In this mode, users can (see Figure 2). a template are applied to old instances of an object type as well as to newly created ones. For example, We names the alternative values that are displayed for each field, (d) the default values that are displayed in each field shown as or other properties of an object type, users "edit" the Template that if the user changes the name old instances are redisplayed. anticipate that this system will be used with a core set of object types shared by the users in a group and that the Other users or change fields in these tj-pes will be modified only will be able to its by an "authorized view administrator." change the display format of these types (eg., suppress the display of a name), but they would not be able users would, however, be able to create their these types they could add and delete we have proposed a scheme new for letting own to delete or add fields to these "official" types. field All types as specializations of the official types, and for fields as desired. Elsewhere (Lee & Malone, 1988a, 1988b) an arbitrarily large number of groups share overlapping sets of type definitions in arbitrary ways. One specialized types created by one group can be interpreted by p>artially of the key ideas of this scheme members is that of another group as instances of the most specific "ancestor" type that both groups share. For instance, a "Student" object created by one group might be interpreted as a "Person" object by another group that does not have a definition for "Student." 3.5 Folders As noted above. Object Lens users can group called Folders (see Figure 7). An object collections of objects together into sp>ecial kinds of objects can be added to a folder in two ways: (1) automatically, as the 11 result of a rule action, or (2) manually using the Add Link action from the "Others* submenu on the In both cases, the folders will contain links to the objects, not the objects themselves. folder. Therefore, the same object can appear in more than one folder. Other actions moving, copying, and for deleting both objects and links are described below. Object Lens currently provides two formats for displaying the contents of folders: Tables show the values of selected fields from the objects contained 7a shows a folder that contains objects representing people with the directory. want Users can easily tailor the have included in the to format changed table. and trees. For instance, Figure in the folder. fields tables displayed for a simple office format of these displays by selecting from a For instance, Figxire 7b shows the same folder, menu the fields they but with the display to include a difTerent set of fields. Trees are graphs that show the objects in a folder and the links that connect these objects. Just as users can select the fields to be shown in a table, they can also select the fields from which shown. For instance. Figure 7c shows the same folder again, but this time "Supervisor" field selected as the one from which links are displayed. in. liiJis will be tree format with the In this case, the display resembles a simple orgarvization chart. In the current version of Object Lens, only the links in one field at a to be time can be displayed in a tree. In future versions, we plan to allow links from multiple fields shown with the links from different fields being displayed as different types of lines (e.g., solid, dotted, etc.). When a folder. folder is created, the user The user fields to though new show all is then allowed in a table or folders unexpected type tables and trees. is to when is asked to select the default object type to be contained in the choose from the fields of this default object type selecting the fields from which links will be have default object types, no strict type inserted into a folder, only the fields it checking is when shown enforced. If selecting the in a tree. Even an object of an shares with the default type are displayed in 12 3.8 Performing actions on objects In addition to editing the contents of objects, users can also perform pre-defined actions on them. The actions that can be performed at any time depend on two primary factors: (1) the type of object being acted upon, and 3 6 Some (2) the context in which the action Object specific actions 1 Each is invoked. object type has a set of actions that can be performed on of these actions are "inherited" directly from the "parents" of the object type. Others modified or added specLHcally for this object type. Hardcopy and Save that can be performed on subtypes). addition, (Some of these more be For instance, there are some actions, such as all objects (i.e., all actions, such as Hardcopy, are not yet instances of Thing and all implemented for all object types.) its In specialized types of objects have other actions defined for them. For instance, agents have a Run action that triggers them action that changes them from to start running, and folders have a Change Display Format table format to tree format or vice versa. In a few cases, the object specific actions depend, not just on the type of the object, but also on For instance, messages created on the local are implemented as special cases. However, we would mechanism for representing state-specific actions to users. In some ways, this CN^-'inograd, its state. workstation have a Send action, and messages received from elsewhere have actions such as Answer and Forward. So Coordinator may it. mechanism would be far these state-specific actions like to on objects experiment with a more general and perhaps making this representation accessible a generalization of the conversation manager in the 19S8) which restricts the types of messages that a user can send at a given point in a conversation, based on the conversation state. 3.6.2 Context specific actions. There are some actions that can be applied to but which can be invoked only from certain contexts. The primary contexts are; (like the object, one and in (4) Figure 1), (2) from a link icon from a folder that contains the for the object. object, (3) any kind of object, (1) from an editor from a rule operating on the 13 For instance, when an object Close, is being displayed in an editor, there are several kinds of actions, such as Move, and Shape, that apply to the editing vrindow. Other actions in an editor include: Link, (insert at the current cursor position a link to another object selected by the user), (close the When window without saving any of the changes made an object Show (open an is since the window was and (b) Select (select the item for some (b) Add Cancel last opened). displayed in a folder, other context-specific actions can be applied to editor on the object), and (a) it, such as: (a) later folder action such as Delete Selection). The actions that can be applied to an object by rules are discussed in Section 3.7 below. that can be applied to link icons include: Show The actions (open an editor on the object), and Delete (delete this link to the object). 3.6.3 Displaying and invoking actions. Users invoke the above actions in slightly different ways depending on the context one in Figure (like the editor, and all the 1), in which the object then several of its is displayed. If the object is displayed in an editor most common actions are shown across the top of the other actions are shown in a menu that pops up when the "Others* action is selected. When a link to an object actions in two ways. showing is displayed (either as a link icon or as a row in a table), users can invoke First, if users click all possible actions button invokes the most on the link with the middle mouse button, a menu on the object. In addition, simply clicking on the link with the common action. For instance, clicking with the left pops up left mouse button on a row in a table Selects the object for subsequent folder actions, while clicking with the lefl button on a link icon inside an editor Shows the object in another window on 3.7 Creating agents the screen. and rules In some cases, agents can take actions automatically on behalf of their users. For instance. Figure 4 shows an example of a simple agent designed to help a user process incoming mail. When an agent is 14 triggered, New to objects in the Mail folder and retrieved to the workstation, the mail the user's The agent applies a set of rules to a collection of objects in a folder. it New Mail folder and these is triggered by the arrival of new New Links trigger the agent. to the an "IF" in Figure 4 includes several rules, one of which field (predicate) objects which are 'THEN" field and a (action). is shown in is an. when mail On into A rule contains of the rule is to other a description, a sp>ecial kind The THEN part of the Action object. To construct the IF part of a rule, a user (a) clicks menu selects "Descriptions" from the on the IF presented, and then field (c) with the middle mouse button, selects embedded template, and the user can then must appear in particular fields for complex specifications parentheses (i.e., more than one for a field fill then all an object to satisfy the rule. To the sj>ecify menu the menus THEN part of a specifications to object is to rule, a user of alternatives presented. to" field of the agent). needs fill in in the Information Lens, must be some field). or, not, If specifications in the other and appear satisfied at once for the rule to succeed As more (i.e., template-based editors in listing likely alternatives for a field are available in editing descriptions. matched by the IF part of the "Apply As can be constructed by combining strings with and, specifications in diiTerent fields are implicitly and-ed). Object Lens, pop-up an in the fields in this description to specify the values that arbitrary Boolean combinations are possible within a field, (b) an object type from the tree of object types presented. This causes a description of the appropriate type to be inserted in the rule as in is the Hour. Both these parts of the rule contain links shown as embedded templates. The IF part applied new messages Figure 5 of template that describes a set of instances in terms of the valuesof their fields. rule is, is In the current version of Object Lens, two other kinds of automatic triggers are available: Daily at Midnight, and The agent shown Figure 4 That mail. program automatically inserts links in simply clicks on the THEN These actions are applied field to the and selects an action from "current object" (the object rule) in the context of the "current folder" (the folder specified in the In fields in the some cases (such as the "Move" action shown embedded template here), the user also for the action (e.g., the field sf>ecifying where the be moved). The actions currently implemented in rules include the following: "copy" (add the current object to a dLfTerent folder without removing it from the current folder), "move" (add the 15 current object to a difTerent folder and delete from the current folder), it from the current (remove the object folder), "delete" and "add keyword" (add the specified keyword to the Keywords field of the In addition, rules can invoke object specific actions, including the actions that apply to all object). objects such as "hardcopy" We and "save". view the addition of more rule actions (and possibly the refinement of the rule syntax) as one of the important directions for our ongoing research. The rules are applied in the order in which they appear in the agent's rule Users can create folder. extended reasoning chains by having some rules set characteristics of objects (using the Add Keyword action) which other rules 3.7.1 Embedded test (by checking the Keyword descriptions. depend only on information contained With the field). capabilities in the objects to we have described so far, desirable, however, to be able to specify rules that also field, the names of all In Object Lens, it is whether the string a user wanted to messages from vice presidents, the rule would have to include in the draw upon other information by having descriptions embedded within knowledge base that 3.8 The shown in Figure 6 will be satisfied if the that includes "vice president". in the often the vice presidents. possible to title It is if other descriptions. For instance, the rule person with a job itself. depend on other information contained elsewhere in the knowledge base. For instance, in the Information Lens system, From must which they are being applied. For instance, a rule about a message can depend only on information contained in the message specify a rule that applied to all all rules From field of the message is To apply the this rule, the same as the Name message is from any system checks to see of any Person object in the satisfies the description. Navigating through the system starting point for navigation through the Object Lens system that shows whether the user has (1) the Object Lens Icon, a new mail waiting and includes a menu item basic folders included in the system). include: is The system to Show folders accessible through the Basics Show window (show the Basics action a folder containing all the other folders in the system, (2) a folder containing all the 16 Templates defined (4) a folder for in the each object Mail folder, into which we have designed but containing system (Figure t>-p€ containing new mail all a folder containing all the agents defined in the system, the instances of that t>-pe in the system, and retrieved from the mail server and (7) New the (5) automatically inserted. In addition, is not fully implemented two other folders: objects in the system., all 3), (3) (6) Everything, a virtual folder Orphans, a virtual folder containing which no all objects to links exist. These basic folders provide users with convenient starting pwints for locating any object In relatively small systems, users can browse through these folders directly. expect that users will certain criteria. It is let their agents search through the system folders and other objects they most often use, and (b) system. In larger systems, to find objects that own customised also possible for (a) individual users to create their folders that contain the folders in the we meet "directory" application developers to create folders containing the objects used in their application. 3.9 One Saving and sharing knowledge of the important research directions different ways for people to we plan to pursue in the Object Lens system involves save and share the kinds of knowledge described above. For instance, we are currently experimenting with linking Object Lens to a remote database server that contains large shared relational databases. This work is still Object Lens will be significantly enhanced version of Object Lens, 3.9.1 if it we have preliminary knowledge that meet some, but not all, an early stage, but at of the needs p>eople will have in this area. all (or a collection of objects in a folder) at (or the folder). This action uses the the underlying Loops and Lisp systems to store the objects in form that can be reloaded at In the current solutions to the problems of saving and sharing time by f>erforming the Save action on the object saves clear that the usefulness of includes access to shared databases. Saving knowUdge. Users can save an object commands from it is any time. There the instances in the workstation. is also a "Save" action on the file permanent main Object Lens any package files in a icon that 17 The potential disadvantages of this approach to saving knowledge are that (1) actions to save objects to permanent storage and requires explicit user it requires all knowledge used by the system to be (2) it loaded onto the local workstation. Sharing remote databases will, of course, help solve these problems, For but we expect that systems like Object Lens can be of value even without shared databases. example, many users are already accustomed to explicitly saving their work in applications such as word processing, and even this task can be simplified by creating agents to run periodically (e.g., every night) and do automatic backups of selected objects. 3.9.2 Sharing knowledge by sending messages. There are two ways users of Object Lens can share objects with each other: subsection, we (1) by sending messages, and discuss sending messages; Ln the next, Lens user sends a message, the message object system. Any connected a user sends a embedded it is it is object is converted into (indented) text in the that are not expanded (e.g., that are When In this an Object and read this textual message. When an added as a new object in the receiver's knowledge base. message containing an embedded received by Object Lens users. files. files. converted into text and sent via the existing mail by any receivers who are not using Object Lens and when discuss transferring electronic mail users can receive Object Lens user receives the message, When is we by transferring (2) When object that is expsinded (as in Figure 2), the message (b) is in a form that (a) can be easily read reconverted into another embedded object a user sends a message containing embedded objects shown only as the message in place of the link icons, but these link icons), the names of the objects are included in names are not resolved back into link icons at the receiver's end. One intriguing research direction here involves how to communicate embedded objects in such a that they can be resolved into pre-existing objects at the receiver's end. For example, message contains a link to a person object, it would be nice for the receiver's if system way the sender's to be able to automatically resolve this link into the receiver's object representing the same person. 3.9.3 transferring Sharing knowledge by transfering files. As described above, it is files. The second way easy for users to store on a for users to file share objects is by server the current state of a 18 Other users can then load these set of objects. Saving and loading these workstations that a common way and job titles for users to keep current versions of shared information such as names, addresses, and periodically distribute updates these updates could be done in several ways: periodically store the current versions on a (1) the file messages announcing the availability of have agents that automatically load the files files is object is loaded. To help actions for agents to use. solve this problem, With messages that specify changes that make Distributing the maintainer could explicitly send out (2) containing updated objects and the other users could in such messages ofTicial (e.g., Comments a rule might load all maintainer). that any changes the users have field) will be lost made when we are currently investigating more this approach, the official maintainer to their local copies a new version of the specialized updating will be able to distribute in particular fields of particular objects. update Users can then set up agents these updates automatically under most conditions, but under certain conditions the user might be notified before the update changed by the user). In some is made (e.g., if the field about to be modified has previously been cases, the user might also be notified (e.g., if someone in the user's group 4. version of server and the other users could have automatic agents announced of objects (eg., any notes they had added in the official "maintainer" could have automatic agents that update" messages from the potential problem with this approach someone maintain the to other users in the organization. that periodically load the most recent versions, or files specified in "Official file own can often be done automatically. For example, we expect files of people in their organization will be to have this irJbrmation One create (or update) the objects in their files to is want to have the change made automatically but changing phone numbers). OTHER APPLICATIONS In this section, we will give more examples of how the above features can be combined variety of cooperative work applications. to create a 19 4.1 Task tracking One frequently mentioned capability for coop>erative the tasks people are supposed f-o instance, such systems can help do What & Winograd answer questions do? Are any of these tasks overdue? It is (e.g., work applications like: tasks have I is the ability to keep track of Flores, 1986, Sluirer What & Cashman, 1984). tasks have other people requested requested other people to do for For me to me? a straightforward matter to support capabilities like this in Object Lens. For instance, the system already includes message types for action requests and commitments. Even in the Information Lens, it was possible to automatically sort these messages into folders according to task, which project it involves, and so forth. In the Information Lens, however, the a folder's contents shows only the standard message header fields: more about the tasks, individual who messages have to to is perform the summary display of From, Date, and Subject. To see be displayed, one at a time. messages within a folder can easily be summarized by displaying whatever In Object Lens, the fields the user chooses. For example, Figure 8 shows a table display of action request messages that includes the action deadline. 4.2 Intelligent As we have message sorting: Engineering change notices described in more detail elsewhere (Malone et al, in press), an intriguing example of a cooperative work problem involves disseminating information about changes in product specifications (often called "engineering change notices") to the appropriate people in an organization. It was already possible in the Information Lens to sort engineering change notices according to the contents of fields such as Part Affected, Type of Change, additional knowledge to do even more manager is Severity. intelligent sorting. uses a doubly embedded description to select reporting to a particular and all responsible. In Object Lens, it is possible to use For instance, Figure 9 shows a rule that change notices that involve parts for which anyone 20 4.3 Database retrieval There are clearly many cases in both individual and cooperative work when it is useful to be able to automatically retrieve from a database objects that satisfy certain conditions. Object Lens provides a simple way to f)erform database queries: Users can simply create agents that scan the objects in one and insert links folder to selected objects into another folder. The rules agents specify the in the criteria for selecting objects. For instance, suppose you wanted project to find all the technical staffmembers who were assigned to both the code-named "Dragon" and the one code-named "Lancelot." Figure 10 shows a rule that would retrieve all such people. "systems programmer", particular job title is Instead of listing etc.), all the technical job titles by the rule includes an on the technical, as opposed name embedded description to the to ("software engineer", determine whether a managerial or administrative, career ladder. In addition to this general interface for database retrieval, we have feature in Object Lens for determining the recipients of messages. also With implemented a specialized this feature, descriptions (like that shown in the IF field of Figure 10) can be embedded in the To and cc fields of a message. Then, when local the message is sent, these descriptions are automatically applied to all the knowledge base and the resulting people are inserted senders to create distribution lists that are in the To and Person objects cc fields. in the This feature allows dynamically computed at message-sending time based on the current information about people in their data base (see Zloof, 1981 for a similar capability). 4.4 Hypertext As noted above, it is a straightforward matter to use Object Lens (eg., Halasz, Moran, & many of the features of a hypertext system in Trigg, 1987; Garrett, Smith, & Meyrowitz, 1986; Delisle & Schwartz, 1986). For instance, our system currently contains an object type called Text that displays only two fields: Name objects as desired. and Text. The Text field of a Text object can contain links to as many For example. Figure 11 shows a sample Text object that contains links and bibliographic citations as well as to another Text object. other to people 21 In addition to the usual benefits of h>-pertext systems, Object Lens derives additional benefits from integration of hypertext with other database, messaging, and computational capabilities. instajice, in to order to insert a link to another node in a hypertext system, a user must which the link be used criteria. to first find its For the node made. In Object Lens, the database retrieval capabilities described above can will be automatically find objects (such as i>eople or bibliographic citations) that satisfy certain Then links to these objects can be inserted into the text. hypertext systems that links to an object. not yet included in Object Lens is We would like to implement is One desirable the ability to this capability as some feature found in show and follow the incoming another action available on all objects. Even though the relationship between Object Lens and previous hypertext systems focus of this paper, it is interesting to observe that Object Lens apf)€ar3 to have is not the primary some functionality in at least four of the seven areas that Halasz (1987) listed as being needed in the next generation of hypermedia systems (search and query, computational engines, collaborative work, and 5. tailorability). CONCLUSION In this paper, we have described a system called Object Lens that integrates facilities for hypertext, object-oriented databases, electronic messaging, provided by this system, work applications. We we Object Lens is it will be relatively easy to create a to test the generality of the framework further by implementing more it. an example of a semiformal system, a system that represents knowledge both people and their computational agents can process intelligently. power and wide variety of cooperative have shown several such applications here, and an important focus of our ongoing research will be applications within believe and rule-based agents. Using the basic primitives fiexibility of this system results from its We in a believe that way much that of the choice of primitives (semistructured objects, customizable folders, and semiautonomous agents) and from the template-based interfaces that these primitives both visible and changeable by inexperienced computer users. make 22 REFERENCES An Conklin.J. (1987). H>'p€rtext: & Crowston, K. introduction and survey. Malone, T. W. (1988) Paper No. 2008-88, Center for /fffCompuier, Computational agents vol. 20, to support coopjerative no 9, pp. 17-41. work. Working Information Systems Research, Massachusetts Institute of Technology, Cambridge, MA. Delisle, N & Schwartz, M. (1986). Contexts on Office Information Systenu, 5 Dittrich, D. & (2), - a p>artitioning concept for hypertext. ACM Transactions 168-186. Dayal, U. (Eds.) (1986). Proceedings oftht International Workshop on Object-Oriented Database Systems, Asi\om&i,C A. Fikes, R. of the & Kehler, T. (1985). The role of frame-based representation in reasoning. Communications ACM, 28, 90A. Garrett, L. N., Smith, K E., & Meyrowitz, N. (1986). Intermedia: Issues, strategies, and tactics design of a hypermedia document system. in the Proceedings of the Conference on Computer-Supported Cooperative Work, Austin, TX, December 3-5, 1986, 163-174. Greif, I. (1988). Computer-supported cooperative work: description), Proceedings of the Washington, D. C, May Breakthroughs for user acceptance (Panel ACM Conference on Human Factors in Computing Systems (CHI S8), 16-18, 1988. Halasz, F. G. (1987). Reflections on NoteCards: Seven issues for the next generation of hypermedia systems. Communications of the Halasz, F. G., Moran, T. ACM Conference 45-52. P., & ACM, 31 Trigg, R. H (7), 836-855. (1987). NoteCards of Human Factors in Computer Systems in a nutshell. (CHI -hGI Proceedings of the 19S7 S7), Toronto, Ontario, April 5-9, 23 Lai, K. Y. (1987). S. thesis, Lee, J. Essays on Object Lens; A tool for supporting information sharing. Unpublished M. Sloan School of Management, Massachusetts Institute of Technology, Cambridge, & Malone, T. W. (1988a). How MA. can groups communicate when they use difTerent languages? Translating between partially shared type hierarchies. Proceedings of the ACM Conference on Office Information Systems, Palo Alto, CA, March 23-25, 1988. Lee, J. & Malone, T. W. (1988b). Partially Shared Views: that use dilTerent type hierarchies. Institute of Technology, A scheme for communicating among groups Sloan School of Management Working Paper, Massachusetts Cambridge, MA, September, 1988. Malone, T. W., Grant, K. R., Lai, K. Y.. Rao, R., & Rosenblitt, D. (1987a). Semistructured messages are surprisingly useful for computer-supported coordination. ACM Transactions on Office Systems, 5, 115-131. Malone, T. W., Grant, K. R., Turbak, F. A., Brobst, S. A., & Cohen, M. D. (1987b). Intelligent information sharing systems. Communications of the ACM, 30, 390-402. Malone, T. W., Grant, K. intelligent system R., Lai, K. Y., for information Rao, R., & sharing and coordination. support for work group collaboration, Hillsdale, N. Shriver, B. & Wegner, P. (1987). Rosenblitt, D. (in press). J.: In The Information Lens: An M. H. Olson (Ed.), Technological Erlbaum. Research directions in object-oriented programming, Cambridge, MA: MIT Press. Stefik, M. & Bobrow, D. G. (1986, Spring). Object-oriented programming: Themes and variations. AI Magazine, 40-62. 24 Suzanne Sluixer, IEEE 1984 procedures. Spring, Tou, & Cashman, P M. XCP: An exf>€rimental tool for supporting ofTice Proceedings of the First International Conference on Office Automation, Silver MD: IEEE Computer Society, 73-80. Williams, M. D.. Fikes, R. F. N.. (1984). intelligent database assistnat. E., Henderson. D. A.. &. Malone. T. W. (1982). RABBIT: An Proceedings of the National Confererice of the American Association of Ar/j/IciaZ/o/eJ/jgence, Pittsburgh, Pennsylvania, Augfust 18-20. Turbak, M. F. A. (1986). Grasp- A visible .i and manipulable model for procedural programt. Unpublished Department of Electrical Engineering and Computer Science, Massachusetts S. thesis, Institute of Technology. Winograd, T. (1988). Computer Interaction, 3 Winograd, T. design. Zloof, & A language/action perspective on the design of cooperative work. (1), 3-30. Flores, F. (1986). Understanding computers and cognition: A new foundation for Norwood, NJ: Ablex. M. M. (1981). QBE/OBE: (May), Human 5. A language for office and business automation. IEEE CompuUr 14 25 Altemab Ves for Job title Undergraduate Student Masters Student Ph.D. Student Professor Dean Add Link Close Cancel Name: Kum-Yew Job title: Delete *Others* Lai Student E40-138 Telephone N umber: 253-3 865 Office: _ . rpFRToTT I Supervisor: iTnomj^ ^.1Alon<^ Projects: Object Lens Keywords: Comments: Figure editor. 1. Objects can be edited with a simple template Fields can include text, graphics, or links to other objects. 26 w 27 *A****^rf.*ji*dirt^^***j^*A**A**J^******yrfijrf.t*j^*i Close FOLDER: Temp?iate s 1 I 1 1 M^.jdbMajdhAj^rfrf^^rfij^^^^^j^jiAj^jajjdyb*^rfj^.t*j»iaiMi*jrf^rf^tAj^iiAAAj.>^j 1 1 Zoom Out Cancel Zoom I I M I I I I I Others* In [TEMPLATE: [TEK.1PLATE: :! ] e nt pEMPLiiTE: |TEh.1PLATE: |^1^^tlnq TEMPLATE; TEMPLATE: [TEMPLATE: ~*min3ir TEMPLATE: jTEMPLiTE|-':tion " ""1 p"la T M«jnmgProposaj "]/_ T E •]u*r| \ F. ': LjTEMPLiTE- E: Bu'3 Fiv Len; Bug .g^l"^3 ITEMPLaTE. IPuDli cation Fi 1 - P.e.ju^rj d announceme ITEMPLATE; jrVYT Article TEMPLATE- TE^-IPl-ATE: Thing y Lenj MJi'iitinq Me'itmq y TEMPLATE: i'j>nraiij.tj.:ir template''^" \ TEMPL-TE: Moth:* MlTEMPLATE: M LA Fi < ijnn I; P T E TE Mew Lenj ^T TEMPLATE' network Di?cu?.'ion unc e • Sysoul iterri ITEMPLATE IConferenre Openei empl^tT^"^ I I TEMpT^^rE^""^""^! M P Ui T E T E t-iertinq acceptjinca Eui] Fix Commitment K Te^pl^^"^"""] iComrnit tn en! [TEMPLATE iFoiOer TEMPLATE IP in fTEMPL^TE 1 JoD Title i . Figure 3. ' . .'. ' ' i . . ' ' . . i . i . i . ' i . . i . 1 . 1 1 1 1 1 1 1 1 1 1 1 I I i . i n 1 1 Object types are defined by -nnoun: Ll.'^TTpla'^ Announce ment ^1eetm] TEMPLATE' 1 I I . a i . i . i . i . i 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 set of Templates 1 1 1 m ;>> 28 1^1 I I I I ^ ]^ "0]> ill a C T] 0) a. w (70 -< c £ "i 3" re 'ti -^ 3 < n 3 -1 Ck •Ii n r 3 '2.r... re it *» "1 re u5' > < :r re a 3 0) •a 3" (jo Q re C 3 Q. r n 01 re D CO n o n n o s co o• O 3 ,-» i-B _< -^ 1-1 i 5 COO ill c -^ o -•o ^3 ^,1 -i 3- O^Oi < •• 1/1 I— <-• re ao —4 ill CD r. 2" a 3 !—• a. (I CD •O re o < 3 -H MO 3 O -- " -J -5 3 O o CO o 3 03 ooo < < < f* (^ iTB GOO o 1 i—cro a "^ c 1/) ii :: c 3G 3" re 9 u3 to it L 29 Cancel Close Add Link Delete Gtheri RULE: Name: If: ACUGN REQUaSJ Alternative 3 for ActJdn Deadline DatG; Tomorrow This week From; A5.3P '.'.'he llf<lf»tll*fT1T1IIf»I never To: A<:lton DcBdltne: Today, Tomorrov Keywords: T«xl; Then: WOVE To: Figure 5. FOLDEFi; Urgent Rules describe the objects that will satisfy them and specify what action to perform on those objects. 30 Add Link Cancel Close Others* Delete Name: If: fviESSAGE Date; la: From: PERSON Name. Job vies preaident titie: Cllice: iGi^phonG Number: Supervisor: Projects: Keywords: Comments: cc; Keysyords: Text: Then: f^OVE folDER: To. I I I I I I I M I Urgent I I I I I I I I I I I MM t T I I T M I < I I I I I I I I I I I I I I I I I I I I I I I I I I I I Rules can use embedded descriptions to create complex queries. Figure 6. I I I I I t l 31 Show Next Cancel Close Delete Selection ^Others* FOLDER: People Name •Job title Supervisor Vice-ores ident Director Manaaer Rov Keii-rl Charier ijrav Marv Willvams K.aren Fox Frank Menaul fiVbfi.b'-.irr Software Enrjineer Software Enoineer Hurvitz Maurice Gilman Eric Stavris Susan Menano Li ia Sviteriis Procirainmer Manager M ri fit 1 m itra1 1 Ve A s s t Robert Penta Rov Kessel Charles Grav Charles Grav Marv Williams Marv Williams Karen Fox Charles Grav Eric Stavris ^^T^m M M Show Next Cancel Close I I I I I M I Delete Selection *Others* FOLDER: People Name Rov Kessel Charles Grav Marv Williams Karen Fox Frank, Menaul Lisa Hurvitz Maurice Gilman Eric Stavris Susan Menano Office t)l2- ?50 1312- 250 014- 990 014- AlA 014- 990 014- 990 019- 490 014- AlA 019- 490 M I I I I I Telephone Number 57 0793 C7 _ 5915 57-4S21 57-2219 57-5315 57-6174 557-3430 """ 6174 ITT'TTTTTTTTTTTTTTT^'TTTTT^TTTTTT^TTTT^T^^^rm I I I I I I I pm^T»"rTi Users can select which fields to display in tables that summarize a collection of objects. Figures 7 a,b,c. 32 Cdncel Close Zoom Out Zoom *Others* In Superv isor PEP, iijfj' Enc 1 :t.»vrij CFF ^ i-.fi' I JCFP.-arj1 -usin ICFF -^|^J PER C E p. i O r i' H c Eft i or J' P E P. i Mary O r f VVillij I }.AtnAr\>i 1 ;Orj- pTpToTT 1 , . ..,. ..,., ,,,, ,,,.,.. . ... , , , , , , . , ... . , ...... ..,. Please select object (or its link) Show Next Cancel Close Delete Selection Others FOLDER: To do Subject LP Visit Comments on o.aoer I Can Daws Thesis i3uestion CSCW paper Figure 8. From Elesie Brown Wendv Mack a Ele::e Brown J n t a e Lee David Rosenblitt 1 Action Dead ine 1 15-0ct-83 15-0ct-88 15-0ct-83 25-0ct-33 12-NOV-S3 Tables can be used to summarize selected fields from Action Request messages. 3A Close Cancel Add Link Delete Others* If: ENG,N£ERiNG CHANGE NOJiCE Subj€<:t: Date; From, <:<:. ignore Alter; Fart atl^cted; PART Name, Fart number; Subsystem; Eng ineer responsible; FERSON Name, Job titie; Ollt<:e; leiephane Number; Supervisor, Kevin Crowston Froje<:ts; Key\>ords; Comments; Keyvsords; Comments; Type al <:hange; Reason for <:hange; Se\/enty; Key\>ords; Des-oription ol -change; Then: MOVE la; FOlDEF. Our .jrcnip'r ECrij Rules can include multiple levels of embedded descriptions that refer to linked objects throughout the knowledge base. Figure 9. 35 Close Add Link Cancel Delete Others* Name: If: PERSON Name; Job tttie: JOa HJLE Name: Altennatives for Career ladder Salary range: Exempt /Nart-Gxempt: Career ladder: Technical Techfiic-il M.3 nog-? rial Adminiitfcitive Keywords: Comrrtents: OHi<:e: Telephone Number: Supervisor: Dragon Keywords: Proje<:t3: 3. Lancelot Comments: Then: copy FOLDER^ To. Drajon Figure 10. 9, I Lancelot teennicai pir.^\4 Agents can retrieve all the objects from satisfy certain criteria. a database that 36 Name: Text: Camp David negotiations At Camp ^ David, President Sadat ' »i . of . Eovpt Mil. i FEF, iON' agreed and Prime Minister Begin of Israel a plan that would return the Sinai to complete Egyptian sovereignty and, by de militarizing arge areas would stil i; ) to l TTtT assure would ] ll£lillliilt»Il2J) The Egyptian flag everywhere, but E gyptian tanks would be_ Israeli security fly " . ( B nowhere near Figure 11. to other [From Israel. Q*- CITATION;! Q to Yts I nmq ] Hypertext documents can Include links, not only text passages, but also to other object types such as people and bibliographic citations. O / i u 66 Date Due MAR. 0- - ;jUL02199|S Lib-26-67 MIT 3 LIPBARIE?; TQ6D OOSbTSa?