METHOD AND APPARATUS FOR MANAGING COLLECTIONS OF HETEROGENEOUS ELEMENTS IN A DATA PROCESSING SYSTEM
BACKGROUND OF THE INVENTION
The present invention relates generally to data storage and organization. More particularly, the present invention relates to a method and apparatus for creating, managing and displaying collections of heterogeneous elements in a data processing system such as a personal communicator operating as a messaging client.
Personal communicators are available or being developed which combine the data organizing capabilities of personal digital assistants with wireless or wireline communication abilities. The personal digital assistant function allows entry and tracking of, for example, appointments, address and phone number information. Text, graphical and other data may be received over a communication link at the messaging client from a messaging server. As data files are stored in memory of the communicator, these objects have different types and are generally incompatible. Users of such communicators need to organize the information on their communicators in a natural way. Often, related information lies in objects of different types. For example, information contained in the communicator and pertaining to a trip to Sweden may be in the form of e-mail messages, expense reports, appointments or address book entries. However, because of the disparate nature of the data files making up these individual elements, data processing systems have heretofore been unable to adequately combine processing of such different elements.
Some prior art applications programs permit combining different data elements. One example is Microsoft Binder, available from Microsoft Corporation, which allows the user to group elements of different element types together. However, Microsoft Binder does not allow the user to do so based on rule specifications or other user preferences. Microsoft Outlook, also available from Microsoft Corporation, allows rule specifications for messages. However, the interface is not transparent to the user. Most users of Outlook do not realize that the capability is available to them. Microsoft
Outlook provides users with some search capabilities to allow users to chose one or all of the outlook elements. However, Microsoft Outlook does not allow the user to combine or select a subset of the elements which may have a particular relationship. In general, earlier systems do not allow the user to group elements of one or more types together. Some systems allow searching for elements of any type, but do not allow a subset of the elements to be grouped.
Accordingly, there is a need in the art for a method and apparatus which allows users of a data processing system such as a personal communicator to be able to organize information in more than one way depending on the features that interest the user. More particularly, there is a need for a method and apparatus for creating heterogeneous collections, displaying heterogeneous collections and organizing elements from various sources into heterogeneous collections.
SUMMARY
By way of introduction only, the present invention provides a method and apparatus for managing collections of heterogeneous elements in a data processing system such as a communicator. Information having different content types such as Messages, Appointments, Expense reports and Address entries may be associated in any manner according to rules specified by the user. A user interface displays the collections in any of a variety of display formats that may clear the inclusion relationships of the data elements.
The foregoing discussion of the preferred embodiments has been provided only by way of introduction. Nothing in this section should be taken as a limitation on the following claims, which define the scope of the invention.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of a communicator;
FIG. 2 is a block diagram illustrating a method of operating the communicator of FIG. 1 ;
FIG. 3 is a flow diagram illustrating a method of operating the communicator of FIG. 1 ;
FIG. 4 is an illustration of a data display on the communicator of FIG. 1 ;
FIG. 5 is a flow diagram illustrating a method of operating the communicator of FIG. 1 ;
FIGS. 6-8 are illustrates of alternate display formats;
FIG. 9 illustrates data organization for different content types in the communicator of FIG. 1 ;
FIGS. 10-11 are illustration of alternate display formats; FIG. 12 is a flow diagram illustrating a method of operation of the communicator of FIG. 1 ;
FIG. 13 is an illustration of an alternate display format; and
FIG. 14 is a prior art graph for illustrating relations among heterogeneous data elements.
DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS
Referring now to the drawing, FIG. 1 is a block diagram of a communicator 100. The communicator 100 is adapted for two-way communication with a remote device. In the illustrated embodiment of FIG. 1 , the communicator 100 communicates via radio link 102 with a remote base station 104. Configured in this manner, the communicator 100 may be a part of a cellular radiotelephone system, personal communication system (PCS) or other radio system. In alternate embodiments, the communicator 100 may use wireline communication to the remote base station 104, infrared communication, or any other suitable method of two-way communication. In one embodiment, the communicator 100 is configured to be operated as a messaging client. The communicator 100 receives messages and other data transmissions from a remote server such as the base station 104. The communicator 100 may formulate and transmit messages to the base station 104. In one embodiment,
homogeneous set of entries, the memory 114 stores heterogeneous data types. Moreover, the memory 114 allows the heterogeneous elements to be aggregated together regardless of their particular content type. For example, e-mail messages, faxes, expense reports, task data, appointments and business card information can all be grouped together in a single collection In addition, any individual information entity can be grouped with other entities in other collections. Thus, a single element may be a member of many heterogeneous collections.
Entities within a collection carry the knowledge about their various memberships within the entity. That is, each entity, such as an e-mail message or an expense report, further includes inclusion information. The inclusion information associates the collections of data elements and the included data elements. Membership information along with the data which forms the information entity provides several advantages This data organization is distinct from other known applications which organize data in folders and subfolders within the storage medium, such as Microsoft Outlook. Such folders and views contain pointers that will point to specific information that meet the search or view criteria
Further in conjunction with the illustrated embodiment, the method and apparatus illustrated herein provide for creation of new information entities New information entities are put into collections based upon the criteria that define the collections. The user may select or deselect alternate collections for containing an entity during entity creation. Entity creation may be viewed as either receiving a new entity into a pre-existmg collection or locally creating a new entity.
FIG 2 is a flow diagram illustrating a method of operating the communicator 100 of FIG. 100. The method starts at a step 200 At step 202, it is determined if the user of the communicator seeks to create a new collection If so, processing continues at point A, FIG. 3 At step 204, it is determined if the user attempts to display a collection of information entities If so, control proceeds to point B, FIG 5. At step 206, it is determined if the user is attempting to create a new message. If so, control proceeds to point C, FIG. 12. If none of these selections has
been entered, at step 208 it is determined if the user is attempting another operation with the communicator If so, data entry and communication operation proceed If not, control returns to the beginning of the method at step 202
FIG 3 illustrates a method for operating the communicator of FIG 1 to create a new collection. The tasks of creating collections are accomplished from a data display format called the collection organizer view At step 302, the collection organizer view is initiated on the display 120 of the communicator 100 The collection organizer view is illustrated in FIG 4
In FIG. 4, the collection organizer view displays a plurality of data fields and data entry fields A top portion 401 of the collection organizer view shows text management options and other control features that generally remain unchanged in all views of the user interface Across the top of the display 400 are a plurality of tabs 402 which may be activated on the touch sensitive display using for example a stylus The tabs 402 allow the user to select a particular mode, including "phone" which displays telephone number information, "messages," shown in FIG 4 and which displays stored messages, "calendar," which contains date and appointment information, "info" and "extras " The collection organizing view 400 further includes a plurality of buttons 404 which contain editing and operation commands These include commands to cut, copy, and paste text, undo an action, send a message, print a record or to initiate a communications link Additional buttons 406 allow management of messages that are displayed on the collection organizer view, include opening a new message, opening an old message, deleting a message and renaming a message The The collection organizer view 400 further includes an area 408 containing a representation of the collections currently stored in the communicator and a tabbed panel 410 for collection definitions to the right of the area 408
In the communicator 100, in conjunction with the present invention, collections are defined and created as graph-like structures A graph defines different levels of organization of data along with interrelationships of data in a collection FIG 14 illustrates a prior art graph 1400 showing relationships for the following items
an email from John Doe, an appointment with John Doe; John Doe's business card, an email from Jane Smith, Jane Smith's business card,
Jack Smith's business card.
At the top level 1402 are the individual content types, such as e-mail Messages, Appointments and Business Cards At the lowest level 1404 are the individual information entities, such as the e-mail message from John Doe, the appointment with John Doe, John Doe's business card, the e-mail message from Jane Smith, Jane Smith' s business card, and Jack Smith's business card Intermediate to the top level and the bottom level are other, additional levels of aggregation Thus, in this example, there might be an intermediate level 1406 entitled John Doe, which collects all the elements related to John Doe In the graph 1400, lines show the interrelations among the elements and the levels of the graph 1400. Correspondingly, in the data base storing data for the graph 1400, data links are made between each of the top levels of the graph and the intermediate level, so that there are links between e-mail messages at the top level 1402 and John Doe at the intermediate level 1406, appointments at the top level 1402 and John Doe at the intermediate level 1406, and business cards at the top level 1402 and
John Doe at the intermediate level 1406 Further, there are data links between the intermediate level and other levels, including the lowest level Thus, there are data nks between the intermediate level 1406 John Doe and the individual e-mail from John Doe on the lowest level 1404, between the intermediate level 1406 John Doe and the appointment with John Doe on the lowest level 1404, and the intermediate level 1406
John Doe and the business card foi John Doe Other data links are made directly between the top level 1402 and the bottom level 1404, such as a data link between the e-mail messages and the individual e-mail message from Jane Smith, as well as the data links between the business cards and the individual business card from Jane Smith and the individual business card from Jack Smith
A graph such as 1400 does a good job of showing hierarchical and other relations among elements of the collection. However, the representation of a graph such as graph 1400 can consume large amounts of space on a data display such as an
LCD display It is preferred to keep the communicator 100 as small as possible, therefore it is preferred to keep the display 120 as small as possible also
In FIG 4, the area 408 provides a representation of the structure for collections which captures a graph. This representation is a tree enhanced by the visual representation of the element content types. In the example of FIG. 4, the collections are grouped under the top level content types In the area 408, the top level content type includes Messages 412, Appointments 414, and Expenses 416 The collection organizer view thus shows a tree diagram organizing a plurality of heterogeneous data elements according to collection hierarchy.
Under a content type Messages, several collections are aggregated These include a new collection 418, displayed m reverse video and currently given a default title "New Collection." The other collections of content type Messages include
"Babylon 1.2" 420 and "Personal" 421. Similarly, aggregated within the collection "Babylon 1 2" are other collections including "Carlos V," "Release Notes," "Testing" and Design 422. The content type 416 also includes the collection Design 422, which is also displayed in the area 408 adjacent to Expenses 416. Thus, the collection Design 422 is a member of both the collection Messages 412 and the collection
Expenses 416 While this interrelatedness could be difficult or confusing to describe in a graph, it is clearly demonstrated in the collection organizer view 400.
Next to some of the collections names in the area 408 are buttons which indicate the content types of elements contained within the collection Thus, the collection Design 422 has a button M 426 and a button E 428 positioned next to the name of the collection Design 422. These buttons indicate that the collection is a heterogeneous collection containing elements of content type Messages and Expenses.
The buttons 426, 428 are shortcuts to the elements of the collection. Both the name of the collection and the buttons are touchable on the touch sensitive display to
actuate the display. Touching the name of the collection opens up a view with elements of the content type it is under scrolled to the top For example, Design 422 under the messages collection 412 will take the user to the collection with the first message scrolled to the top Touching the M button 430 will take the user to the same position Touching the E button 432 takes the user to the first expense scrolled to the top Touching Design 422 under Expenses 416 will take the user to the first expense report scroll to the top. Touching M button 426 under Design 422 under Expenses 416 will take the user to the first message in the collection scrolled to the top Touching the E button 428 will take the user to the first expense scrolled to the top In other examples, other buttons corresponding to other content types may be displayed next to individual collection names The buttons 426, 428, 430, 432 are thus indicators of collection inclusion
Referring again to FIG 3, illustrating a method for creating a new collection, step 306 provides for creating a new element and entering a collection name This is illustrated in FIG. 4 by the new collection element 418 Initially, the name of the new collection element 418 is a default value "new collection " Further, the name is highlighted by displaying in reverse video After the point illustrated in FIG 4, the user may enter a new name for the collection which will be displayed m the area 408 As the name is entered in the text box, the communicator 100 under control of the controller 1 10 checks for uniqueness. If another collection covering the present content type exists, a new name must be used and an en or will be indicated If a collection with the same name exists under another content type, the user will be prompted to either chose another name or confirm enhancement of the existing collection, which may already be a heterogeneous collection If enhancement of the existing collection is selected, the new collection and the existing collection will be combined into the same heterogeneous collection
Associated with each collection are rules defining inclusion of elements within the collection. The rules are illustrated and may be entered in the panel 410 on the right side of the collection organizer view 400 of FIG 4 Along the right side of the
panel 410 are tabs 440. Each tab 440 brings up a different panel containing fields 442 tailored to the specific content type Preferably, the text fields 442 allow multiple words. If the word is longer than the text field, the field scrolls so that the user may view what has been typed. Rules are entered by the user using the panel 410, step 308 In FIG. 3, at step 310 after rules for the new collection have been defined, the new collection entry is displayed in the area 408 under the appropriate content types As many content types may be specified during the rule definition process, step 308, as the user desires. If multiple content types are specified, the name of the new collection will be displayed at more than a single location in the area 408, as with the example of the collection name Design 422 in FIG. 4. Appropriate buttons such as the buttons 426, 428, 430, 432 will be displayed next to the name of the new collection. After display of the new entry, the new collection creation process is ended and control returns to the method of FIG. 2.
FIG. 5 illustrates a method for operating the communicator 100 of FIG. 1 to display a collection on the display 120 of a communicator 100 The method begins at step 502 where the collection organizer view 400 of FIG.4 is displayed The collection organizer view defaults to a tree structure display as illustrated in FIG 4 Upon receipt of appropriate user input at step 504, at step 506 a specific collection will be displayed. For example, the user may touch the name of the collection on the display or one of the buttons associated with the name. As described above, the display will change to show elements of the selected collection sorted in a predetermined order.
At step 508 of FIG. 5, in response to appropriate input from the user, at step 510 the display will change to show the panel 410 with fields displayed for the specifically selected content type. Possible displays are illustrated in FIGS. 4 and 6-8 FIG. 4 illustrates the panel 410 and data entry fields for a collection of type Message FIG. 6 illustrates the panel 410 and appropriate entry fields for a collection of type Appointments. The content type is illustrated by highlighting in reverse video the name "Appointments" on the tab 440 at the right side of the panel 410. In FIG. 6, the Appointments panel 410 includes entry fields for rule definition appropriate for
appointment entry, such as date and location information. FIG. 7 illustrates the panel 410 as configured for collections of the content type Expenses. Again, the content type is indicated by reverse video highlighting of the tab 440. The panel 410 contains entry fields for data relevant to expense report information, such as travel origins and destinations and itinerary points. Similarly, FIG. 8 illustrates the panel 410 as configured for rule definitions for collections of the type Addresses. This is indicated by reverse video highlighting of the tab 440. Possible data entry fields for address collections include the name of the individual whose address is being stored, and associated organization name, address information and Internet domain name. It should be noted that content types other than those illustrated in the drawing figure may be specified. Further, data entry fields for inclusion rule definition other than those illustrated in the figures may also be specified. The drawing figure illustrates one embodiment which may be readily adapted to particular purposes.
Referring again to FIG. 5, at step 512 in response to user input, at step 514 the collection view is displayed on the display of the communicator. The collection view is illustrated in the collection view 900 of FIG. 9. The upper portion 902 of the collection view 900 contains the same tabs and menu buttons as the collection organizer view 400 of FIG. 4. Thus, the upper portion 902 remains substantially unchanged in the various views of the user interface. The lower portion 904 however is variable and changes depending on the view to be presented. In FIG. 9, the lower portion 904 illustrates tables containing the elements of the collections sorted by content type. Thus, under content type Messages, a table 906 includes a received message and a sent message. Under the content type Expense, a table 908 includes information for a specified trip. As it is apparent from the collection view 900 of FIG. 9, the various content types need to be displayed in some format so that they may be viewed uniformly. FIG. 10 illustrates a proposed tabular format which has been used in the collection view of FIG. 9. The column names, across the top of the table of FIG. 10 specify
information for content types other than Messages, with the content types being specified along the left hand side of the table of FIG. 10.
Other approaches to displaying collection information may be substituted as well. FIG. 1 1 illustrates an alternative collection view 1 100. In collection view 1 100, again the upper portion 1 102 contains the same menu navigation and editing buttons.
However, in the collection view 1 100, the lower portion 1 104 is an integrated time line view in which all elements are sorted by time. The column 1 106 entitled "type" indicates the content type of the element in the time line.
FIG. 12 illustrates a method of operating the communicator of FIG. 1 to create a new information entity such as a new message. During entry of a new message, the message view 1300 of FIG. 13 is displayed on the display of the communicator. The upper portion 1302 of the message view 1300 includes the navigation and editing tabs and buttons common to the other views. In the lower portion 1304 of the display, a series of tabs 1306 are displayed to permit user to select the type of new information entity being created. In the message view 1300 of FIG. 13, the tab 1306 for messages is highlighted in reverse video to indicate that a new message is being created. A text box 1308 is created for entry of message text and a subject line 1310 is also created for entry of a message subject. The lower portion 1304 of the message view 1300 also includes a list 1312 of all modifiable collections. Thus, in FIG. 13, the list includes collections entitled "Sweden," "Carlos," "Personal," "Babylon 1.2," and "Paris Trip
July 98." As indicated in FIG. 13, the first two collections are highlighted with reverse video to indicate that the message being created is already an element of those collections. The other listed collections are not highlighted to indicate that a message is not a member of those collections, but that they are available for adding the message. Thus, the user can see what collections a message belongs to whenever the message is seen, and in particular when the message is being read for the first time from the collection of unread messages. Further, the user may add or remove the message from collections while the message is being read.
In FIG. 12, the method of creating a new message begins at step 1202. At step 1204, the text being input by the user is monitored as the message is being created. The system monitors text for collections that the message may belong to. At step 1206, the system determines if the text being entered matches any pre-existing text for any collection. For example, the text may be compared with the text entered in different rule definition fields established for various collections contained in the communicator. If there is no match, control returns to step 1204 and monitoring of the text continues. If there is a match between the input text and the pre-existing text, at step 1208 the match between the input text and the candidate collection is presented to the user. At step 1210, the user is given an option to add the message to a pre-existing collection.
If the option is not selected, control returns to step 1204 for additional text input. If the user decides to add the message to a collection, at step 1212, a data link is established to associate the new message with the pre-existing collection. Control then returns to step 1204 to continue reading input text. From the foregoing, it can be seen that the present invention provides method and apparatus for managing collections of heterogeneous elements in a data processing system such as a personal communicator operated as a messaging client. The disclosed system allows a user to specify inclusion in collections elements of any number of types. Inclusion is done according to user-specified rules or conditions. The system which provides for heterogeneous collections supports a user in grouping information based on relationships that are meaningful to the user. These meaningful relationships typically are more complicated than can be expressed in a conventional tree diagram. However, displaying graphs is also difficult and unstructured graphs may not be easy to use. The disclosed approach provides the familiarity and structure of tree diagrams with the expressiveness of graph diagrams. The user can see the components of a heterogeneous collection at a glance. For each element of the collection, the user can easily see how the collection relates to other collections. Further, new collections can be created naturally in relationship to other collections by inheriting from the other collections. Relationships and dependencies can be established during creation and
after creation. Users can define the inclusion criteria for a collection when they create the collection or afterwards. The disclosed user interface includes a display which allows for display of various tabular views customized for each type of item that can be contained in a collection. The composite view of the heterogeneous collections can thus highlight the essential information of the members of the collection. The attributes for each content type provide a succinct description of its meaning.
While a particular embodiment of the present invention has been shown and described, modifications may be made. It is therefore intended in the appended claims to cover all such changes and modifications which fall within the true spirit and scope of the invention.