mcgregor@hpsmtc1.HP.COM (Scott McGregor) (03/22/90)
Another chapter on Prescient Agents... System Externals The major external features of our system are the the enhanced window manager system menu, the links pop-up menu, the ad hoc link creation mode, the link attributes dialog box, and the WebLenses, including the neighbors menu list, the ToDo list manager and the node and arc representation. Graphical User Interface Features Our system was designed to require as little additional learning from experienced computer users as necessary. Our target environment was for users of the X Windows Motif window manager (mwm). The Motif window manager normally provides a RsystemS pull down menu associated with each window on the desktop. From this menu you can normally access abilities to resize, move, iconify, etc. the current window. We added a new capability as an additional menu item, which allows you to traverse or create new links from the object underlying this window, to other objects. Neighbors Menu Lists When the link item is selected, an additional window is displayed that lists a menu of neighbor objects which are associatively linked to the currently selected window. Clicking on an existing item causes the related object to be "re-animated" using the proper edit or display method for data of this type. (See figure 4). New Links The menu also contains a button which will allow you to create a new link. New links can be created in two ways. If the destination of the link is an object with a currently visible window, then the user can merely mouse over to the other window (the sprite changes to a cross-hair image) and then click. In this case the system will automatically compute the underlying object and other attributes of the link according to a set of user definable rules. It is also possible to fill in the blanks on a dialog box and thereby specify a link to an object which is not currently visible. (See figure 5). Non-Blocking Dialog Box When the user creates a new link, a dialog box is displayed which allows the user to specify labels and attributes of the link. Defaults for each frame are created automatically according to user specified rule sets, and it is common to immediately dismiss the box by confirming the pre-filled values. However, the dialog box is non-blocking and can be left around to bemanually modified at any other time, so that labelling can be deferred. This is important Figure 4 Figure 5 because links are usually created as a by-product of work in progress and having to interrupt this work to specify attributes at creation time can be distracting from the main task. Rule-based Agents Invisible agents can also be run to create links automatically in the background as work is done. Agents are controlled by user configured rule sets. In the software development domain, we had an agent that could be run every time a user edited a source file--the agent would scan for RincludeS references in the source and automatically create links to the referenced include files. Prescient Agents The most important of the invisible agents are the prescient agents which build links according to rules concerning the spatial and temporal co-location of windows on the screen. These can be used to automatically intuit the need for a link between a source file and the associated design diagram whenever both appear on the screen at the same time. Much more detail needs to be given about the appearance of prescience that comes from this approach based upon co-locations and co-temporality, especially about where it is successful and where its limitations exist, but this will have to be left to a more in-depth article on this aspect. WebLenses In addition to the neighbors menu list, there are additional ways of viewing the link database. These are called WebLenses. One WebLens, the Graph WebLens, allows the entire transitive web of associations to be displayed as an active node and arc diagram. Objects are displayed as node buttons and links are displayed as arcs. This was implemented using the XmGraph motif widget which our team originally developed. Objects can be re-animated by clicking on the nodes, link attributes can be inspected by clicking on links, and links can be created and destroyed by editing the representation. More should also be said about these organizational tools such as the ToDo list and the Agenda list than can be explained here. Graphical WebLens and Filters For most work the Graph WebLens is overkill. Rich association webs grow quickly and soon the webs are too complex to manage. In most cases, the neighbors men's provide much less complex views which are far more useful. However, sometimes (such as when trying to determine the full impact of a 2-line change to one program) there is no substitute for such a richer view. Nevertheless, it is usually helpful to reduce complexity by hiding or filtering out nodes and links which are not of interest. WebLens filters allow characteristics of links and nodes to be specified in order to focus simply on those which match or to hide those that match. ToDo list and Agenda list Another very important set of WebLenses are the ToDo list and Agenda List WebLenses. These are simple menu lists, but selecting one item on the list does not merely re-animate one particular object, it re-animates all the objects in that context. This is useful if you want to be able to return to the same screen set up you had two months ago when you were working on one project (a typical ToDo list use). (See figure 6). In meetings, this can be useful for managing switching between multiple presentations (a typical Agenda list use). (See figure 7). Auto-Encapsulation Prescient systems can be created to be evolutionary by providing an encapsulation feature. This can be done by creating and associating a new object with existing executable files (which act as methods) and data files on which they act (private data stores). (See figure 8). In some environments this would require a one-time manual change for each new artifact to be created. However, by using a session manager (see section to follow), we can monitor existing commands to the base operating system and automatically register them as they are used. We call this auto-encapsulation and it allows the system to learn the objects that the user uses without the user having to instruct it. This is analogous to other learn-by-doing systems and to the way Radar learned about his commander. Radar learned to recognize contexts as his commander did work; his commander did not define and explicitly manipulate these contexts by name beforehand. With most computer systems today it is just the opposite. Self Awareness One of the novel aspects of prescient systems is that they appear to be self-aware. When a user's action changes the state of the system, the system not only initiates the user's request, but the prescient session manager notes the action and the corresponding change. This allows the system to notice changes to the current context by noting additional new windows added to the current display (spatial and temporal co-location) which could be introducing a new artifact into the context, or could be indicative of a switch to a new context. The session manager can then use this information to pre-fetch other related artifacts or to pre-fetch a new context. The prescient session manager also notices if any of the artifacts are shared with other collaborators and can then determine if there are any shared contexts with that collaborator that should be pre-fetched (see figure 9). Multimedia Because a system for managing artifacts becomes more valuable as it manages more artifacts, we felt that it is important to support not just text, but computer generated and scanned in graphics, animations, digital voice, and video. It must be easy to capture such non-textual information or people won't bother. People will often do a voice annotation of some text or animation that they won't take the time to write about. Or they will scribble a note on a piece of paper but not re-type it in. These are still valuable artifacts, so it is desirable to bring them into the system for the historical and communication record. Th's a nearby scanner or microphone can lead to easy capture of more valuable artifacts. (See figure 10). Of course some of the searching capabilities must be changed when dealing with non- textual artifact: you can't do text matching style string searches. You will still have the associative link paths, however. Additional searching capabilities such as fast forwarding or indexing on voice and video segments could add more value. It may indeed be true that people will be moderately deterred from accessing such media, but this is okay, an equilibrium will form naturally between the difficulty in locating a particular piece of information and its value to the task at hand. More to come... Send comments to Scott McGregor mcgregor@limbo.intuitive.com