Collaborative, programmable intelligent agents

A growing number of computer systems,in the hope that such simulations w as we had thought. More recently, however, resources for such work can be obtained from untapped source: the generation of extremely large numbers of graduate students and their subsequent application to the creation of alternate “Simulating Complex Adaptive Systems -What can we really learn? ” Dr. B. Rubble Bedrock Inst. Brub@bedrock.edu Friday, December 6, 1996 11:00 a.m. – 12:00 noon Singapore Rm. 1st Floor R&D Building #1 Place on electronic calender brub@bedrock.edu Friday,December 6, 1996 11:00 a.m. Mail to secretary for scheduling Done Figure 1. Sample invocation of Apple Data Detectors. The user has selected a portion of an email message describing an upcoming seminar. Two patterns are found: an email address (brub@bedrock.edu) and the announcement of the meeting (the sequence of date and time information starting Friday, Dec. 6, 1996). These patterns are presented in the pop-up menu; by pointing at the date information in the menu; a second pop-up menu offers a choice of actions: place an entry for the meeting on the user’s electronic calendar or mail the selection to the user’s secretary. The user can select one, thereby running a small application, or move the cursor off the menu, eliminating the pop-up menu and canceling any actions. agents also varies across different agent-based systems; some act only within one’s own machine, find others autonomously crawl the Web, searching for interesting content [4]. We tried to find a middle ground by using explicit representations of user-relevant information as a means of identifying actions users might wish to take but to leave the choice of these actions to users. Working with Information Inside User Documents Our first step was to find a user problem that needed solving in which intelligent agents would add value. In an investigation of how people file information on their computer desktops [1], we discovered that a common user complaint is that they cannot easily take action on the structured information found in everyday documents (structured information being data-recognizable by a grammar). Ordinary documents are full of such structured information: phone numbers, fax numbers, street addresses, email addresses, email signatures, abstracts, tables of contents, lists of references, tables, figures, captions, meeting announcements, Web addresses, and more. In addition, there are countless domain-specific structures, such as ISBN numbers, stock symbols, chemical structures, and mathematical equations. These structures are not only relevant to users, but because of their structure, are also recognizable by parsing technologies. Once identified, the structure’s type can be used to identify appropriate actions that might be carried out, like placing a meeting on a calendar, adding an address to an address book, dialing a phone number, opening a URL, finding the current price of a stock, filing an ISBN number, and compiling a list of abstracts. Apple Data Detectors supports a wide range of uses. Think of all the structured information in the documents you work with; in addition to those mentioned already, add bibliography items, forms (such as travel expense reports and non-disclosure agreements), executive summaries, and most important, such domain-specific kinds of data as legal boilerplate, customer orders, and library search requests. Specific detectors can be created for each of these types of information. User interface. To use Apple Data Detectors, users select a region of a document with some information of interest. Pressing a modifier key and the mouse button instructs the system to analyze the data within the selected region and to find all structures for which it has grammars. It then offers appropriate actions for each structure (see Figure 1). For example, for users reading email who come across a seminar announcement they would like to put on a calendar, Apple Data Detectors parses the relevant information within the selected text, including the meeting’s place, time, and date and puts this data into the appropriate fields on the calendar. A user can select a whole document or part of a document without having to make a careful selection; the grammars find any embedded structures they know about within the selection and offer an appropriate set of actions from which to choose. The use of anthropomorphism in an agent interface [12] was incongruent with our goal of unobtrusiveness. We designed Apple Data Detectors to be invis98 March 1998/Vol. 41, No. 3 COMMUNICATIONS OF THE ACM User Application Presentation User Interface Apple Data Detectors Detectors Database Actions Folder HTTP = (Http Protocol, Host, Port? , Path? , {Http Location, Http Search} ? ) Http Protocol = {“http://”, “https://”} Port = (“:”, Port Number) Port Number = Digits Figure 2. The Apple Data Detectors architecture, which separates the application in which the information is found, the presentation of the analysis and possible actions, and the analysis of the information itself. This separation means that Apple Data Detectors can be invoked in any application and that the user interface can be implemented, refined, and evolved separately from the analysis module. Figure 3. A grammar to define a URL. The language implements a context-free grammar in which sequences of terms are matched against the input stream. References to other grammars are permitted, as are optional and repeated terms. Here, the HTTP grammar finds a match when it finds an HTTP protocol, a host, a port (optional), a path (optional), and either an HTTP location indicator or an HTTP search command and arguments.