text:
Methods, systems, and computer program products for organizing and viewing electronic objects (such as incoming electronic mail messages, documents, and so forth) according to relationships among the objects. Objects may be organized according to user-selectable, node-specific criteria These criteria may be dynamically learned, based upon a particular user's behavior, using the disclosed techniques.
1. A method for providing a relational view of electronic objects, comprising steps of:
obtaining organizing rules for organizing electronic objects;
applying the obtained organizing rules against one or more electronic objects, yielding organized electronic objects; and
rendering the organized electronic objects.
2. The method according to
3. The method according to
4. The method according to
5. The method according to
6. The method according to
7. The method according to
8. The method according to
9. The method according to
10. The method according to
11. The method according to
12. The method according to
13. The method according to
retrieving a selection of categories;
enabling a user to select one or more of the retrieved categories; and
for each selected category, enabling the user to build at least one rule.
14. The method according to
retrieving a selection of organizing criteria;
enabling the user to select one or more of the retrieved organizing criteria; and
formatting a particular rule from the selected retrieved organizing criteria.
15. A system for providing a relational view of electronic objects, comprising:
means for obtaining organizing rules for organizing electronic objects, wherein the organizing rules specify node-specific organizing criteria for a multi-level index;
means for applying the obtained organizing rules against one or more electronic objects, yielding organized electronic objects; and
means for rendering the organized electronic objects.
16. A computer program product for providing a relational view of electronic objects, the computer program product embodied on one or more computer-readable media and comprising:
computer-readable program code means for obtaining organizing rules for organizing electronic objects, wherein the organizing rules specify node-specific organizing criteria for a multi-level index;
computer-readable program code means for applying the obtained organizing rules against one or more electronic objects, yielding organized electronic objects; and
computer-readable program code means for rendering the organized electronic objects.
[0001] The present invention is related to commonly-assigned U.S. Pat. No. _____ (Ser. No. 09/_____), which is titled "Adaptive Indexing Technique for Use with Electronic Objects" and which was filed concurrently herewith.
[0002] 1. Field of the Invention
[0003] The present invention relates to a computer system, and deals more particularly with methods, systems, and computer program products for organizing and rendering presentation of electronic objects (such an electronic mail messages, documents, and so forth) according to relationships among the objects.
[0004] 2. Description of the Related Art
[0005] The general category of personal "office services" software available today includes productivity enhancing offerings such as electronic mail, or "e-mail", software; electronic calendaring software; automated alarm or reminder programs; and so forth. Many people use these systems every day while at the office, and home use of such systems continues to grow in popularity.
[0006] The current state of the art in e-mail services allows organizing incoming e-mail in an electronic in-basket according to one or more attributes which are associated with the e-mail items. Typically, the attributes which are used to sort e-mail include the arrival date and time of the message, an urgency or priority indicator associated with the message, a sender of the message, a subject of the message, etc. The values of these attributes are obtained from a very limited number of explicitly-defined information fields within the mail items, where the values are typically preceded by a keyword or tag which semantically indicates "the following information is the message subject" and so forth.
[0007] Normally, e-mail systems include an out-basket for outbound messages, and these messages may be sorted according to the same or different criteria as the messages in the in-basket.
[0008] The baskets for incoming and outbound messages are typically defined as folders, each of which has a unique entry in the file system directory of the user's computer. (For example, the system might include a directory named "Mailbox", with subdirectories or files named "InBasket" and "OutBasket".) Most e-mail systems also include a "Trash" basket where messages can be transferred if the user wants them to be deleted, and many e-mail systems also allow the user to define additional folders; these folders are then stored in the same manner as the baskets for the inbound and outgoing messages. As an example of a user-defined folder, a user might define separate folders for people he regularly communicates with, and store mail messages received from and/or sent to these people in the corresponding separate folders. As another example, a software developer might create a "Development" folder and a "Test" folder for storing messages about the development and testing of her software development project. In some e-mail systems, the folders (including the user-defined folders) can also be subdivided into other folders. The Test folder, as an example, might be further divided into an "Open Problems" folder and a "Closed Problems" folder, and perhaps a "Test Schedule" folder as well.
[0009] In other e-mail systems, all messages are physically stored in a single database. In these systems, the organization of messages into different folders for display to the user is a logical view which is typically achieved through use of pointers.
[0010] If the user of an e-mail system wants to see his incoming mail, he selects the "In" mail folder or other type of in-basket icon, and its contents are visually presented. Similarly, when he wants to see a different folder, he selects an icon associated with that folder, and the display is then changed to show the contents of the selected folder. Once the defined sorting criteria are applied to the messages of the selected folder, the folder contents are displayed in a structure corresponding to those criteria That is, if the sorting criteria specify that messages are to be sorted by date and time of receipt, then the messages are displayed as an in-order list according to date and time; if the messages are being sorted by sender, then the list is organized alphabetically by the value of the sender field. Newly-arriving messages are in some cases displayed in the proper place according to the sorting criteria, while in other systems newly-arriving messages are displayed at the end of the sorted messages regardless of the sorting criteria used in creating the displayed list.
[0011] One popular e-mail system is the Lotus Notes� (or "Notes"™) mail system from Lotus Development Corporation. A Notes user may choose to create one or more folders in which to organize incoming e-mail messages. By default, one mailbox exists for incoming mail, and incoming e-mail messages are sorted within this mailbox according to arrival date and time. A logical view into this mailbox is available for messages with a delivery priority of "urgent". If urgent e-mail messages arrive, these messages are displayed in a separate pane of the mailbox window. If a user defines additional folders, each of these folders may also be displayed in its own pane. ("Lotus Notes" is a registered trademark, and "Notes" is a trademark, of Lotus Development Corporation and/or IBM Corporation.)
[0012] The Eudora� e-mail product from QUALCOMM Incorporated also has mailboxes for incoming, outbound, and trash messages, and allows the user to define additional mailboxes. By default, messages in these folders are sorted according to date and time; the user is allowed to change this sort order to sort the messages by priority, sender, subject, size, status (e.g. whether a response to the message has been sent), and whether the message has an attachment. ("Eudora" is a registered trademark of QUALCOMM Incorporated.)
[0013] However, the ordering which a user can select in prior art e-mail systems is limited to the options that have been predetermined by the e-mail system developers. That is, without writing customized code, there is no way for the user to organize mail messages except by selecting from the relatively limited number of choices that are provided by a particular system.
[0014] Messages can be transferred from one mail folder to another manually, using a drag-and-drop operation. In addition, in many systems, the user can define a mailbox "filter" which transfers messages from one inbox to another (equivalently, from one folder to another). A filter operates as a type of macro, with the underlying programmatic support provided by the e-mail system in response to the user's specification of filter parameters. For example, criteria for invoking a transfer from a user's incoming mailbox to the trash folder might include factors such as the presence of a particular character string in the body of the mail message or in the "From" field or "Subject" field, and so forth. Upon arrival of an incoming message, it is compared to the defined filters to determine if any type of transfer should be performed. If the message matches the defined filtering criteria, then an automatic transfer may be performed. Filters can also be set to operate upon explicit request from the user (for example, by pressing a "Filter Messages" button), and may be defined to operate on folders other than the in-basket. Filters may also perform a limited number of actions other than transferring messages, depending on the support provided by the e-mail system. For example, when using the Eudora system, filters can be used to dynamically change the priority of a message, and a particular filter may perform as many as five actions which are selected from the available actions list.
[0015] In addition to sorting mail messages, color coding has also been suggested to better identify mail items of different categories within mailboxes. Color coding may also be used in other productivity software such as calendaring systems, to enable the user to quickly locate items of a certain type. For example, a user might configure her calendaring system such that all scheduled meetings on the topic of "Quality Review" are displayed in a red font.
[0016] However, while existing e-mail and other personal office services products (referred to equivalently herein as "productivity software" or "personal productivity software" ) may be functionally adequate, there is room for improvement in these systems. For example, a particular user's mail folders might contain hundreds or even thousands of mail messages, and these mail messages may have been accumulated over a long period of time. Existing e-mail systems are limited in their ability to present these messages in useful ways. In addition, a user might have a large number of stored calendar entries for use by her electronic calendaring application. Often, a number of the stored items are related to each other. (A user who is working on testing for a software development project, for example, will normally receive many e-mail messages which pertain to the testing of the project, and will also receive meeting notices for meetings discussing the status of the testing operation.) It would be beneficial to provide techniques whereby stored objects can be presented to the user in improved and more useful ways.
[0017] An object of the present invention is to provide improved personal productivity software.
[0018] Another object of the present invention is to provide improved techniques for rendering the presentation of objects within personal productivity software.
[0019] It is a further object of the present invention to provide improved organization of objects for use by personal productivity software, according to relationships among the objects.
[0020] It is another object of the present invention to provide improved presentation of messages and/or other objects displayed in e-mail systems (and/or in other personal productivity software), where the presentation is organized according to relationships among the objects.
[0021] Still another object of the present invention to provide improved user access to stored objects by aggregating the objects according to user-selectable relationships and rendering a view which represents a result of the aggregation.
[0022] Yet another object of the present invention to provide innovative selection techniques whereby a user can indicate which criteria may be used for organizing stored objects.
[0023] A further object of the present invention to provide a multi-level, adaptive technique for organizing stored objects.
[0024] Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
[0025] To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides improved techniques for organization and rendering of electronic objects. A multi-level, adaptive index is created and used to organize stored objects in a relational view. Additional criteria for use in the index are learned upon detecting occurrence of user-configurable actions. The criteria may be selected and structured according to user-specific preferences. Preferably, default ordering criteria exist, and the user-specific choices then override these defaults. A particular user may select any organization criteria he or she desires, without being limited to those criteria which are exposed by an e-mail system as in the prior art. The criteria may change from one level of an indexed collection to another, and may also vary among siblings at a particular level of an indexed collection, providing a capability for node-specific indexing. The user thereby has much greater control over how his or her stored information is organized. By rendering a view of stored objects using the multi-level adaptive index, the user may interact with the stored objects much more efficiently (for example, to locate messages on a particular topic or messages meeting other user-selected criteria).
[0026] The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout. dr
[0027]FIGS. 1A and 1B illustrate conventional e-mail system displays, showing examples of incoming mail messages sorted by sender and visually separated by priority (FIG. 1A) and messages sorted by message size within sender within subject (FIG. 1B);
[0028]FIG. 2 illustrates an improved visual rendering of incoming mail messages, according to the present invention;
[0029]FIG. 3 depicts an image from an object that may be organized according to the present invention, and which also may be used to define a criterion for this organizing operation;
[0030]FIG. 4 shows how a user may be allowed to define (or re-define) the rules (or similar index evaluation technique) to be used by an indexing engine when creating a visual rendering such as that illustrated in FIG. 2, according to the present invention;
[0031] FIGS. 5-7 depict flowcharts illustrating logic with which preferred embodiments of one aspect of the present invention may be implemented;
[0032]FIG. 8 presents a diagram showing interaction of components of the present invention;
[0033]FIG. 9 depicts a flowchart illustrating logic which may be used to implement another aspect of the present invention; and
[0034]FIGS. 10A and 10B provide samples of electronic objects which may be used an input for the processing of FIG. 9.
[0035] The present invention provides an innovative paradigm for organizing and/or rendering objects for personal productivity software programs. Using this paradigm, user productivity may be increased as contrasted to prior art systems, as will become apparent from the teachings disclosed herein. Preferred embodiments are described herein with reference to a visual view which is provided to a user of an e-mail system, although this is for purposes of illustration and not of limitation; alternatively, other types of renderings may be used. In addition, the techniques of the present invention may be applied to other types of personal productivity software, and the aggregated views discussed herein are not limited to presentation from an e-mail system.
[0036] According to preferred embodiments, the visual view is rendered on a graphical user interface ("GUI" ) using a dynamic hierarchical tree format, where the structure of the tree visually represents relationships among the objects it displays, based upon the behavior of the user. Each branch in the tree represents a subset of the displayed objects, and may be organized according to branch-specific criteria. Alternatively, formats other than a hierarchical tree may be used to convey the items and their relationships. These alternative formats include, but are not limited to, a nodal format, where each leaf of the tree represents a collection of objects based upon a set of criteria (corresponding to an index rule, in preferred embodiments), or a network format (that is, a graph-structured format where a node may have multiple entry points as well as multiple exit points).
[0037] The present invention also provides innovative selection techniques which enable a user to indicate the criteria which may be used for organizing stored objects. The user's selected criteria are dynamically added to a multi-level, adaptive index which is used for organizing stored objects to create the relational view as disclosed herein.
[0038] The present invention should not be confused with commonly-known mailbox sorting/ordering or filtering techniques, where (for example) the ordering criteria are limited to predefined message attributes which are then uniformly applied to an entire mailbox or folder. Instead, the present invention uses a user-selectable, user-definable, and user-customizable relational model which allows the rendered objects to be organized according to an arbitrarily-complex nesting structure, according to the user's individual preferences, where the user may easily and flexibly choose to organize the objects in each branch in different ways (if desired) according to one or more criteria A multi-level indexing scheme, based on user behavior, is used to organize stored electronic objects, and newly-arriving objects may be dynamically and automatically organized according to this index as well. Furthermore, the present invention defines novel techniques whereby the multi-level index itself may be dynamically defined. Prior art organizer systems such as e-mail systems, on the other hand, normally support only one level (or a limited number of levels) of nesting of folders/mailboxes. An additional drawback of prior art systems is that they allow a limited number of sorting criteria to be in effect at a given time (that is, a combination of criteria such as subject and date/time, where date and time may be considered generally as a single criterion), and require these criteria to be selected from a relatively small number of predefined fields. The present invention, in contrast, has no such limitations or restrictions: instead, the user may choose any type of criteria for organizing, aggregating, and viewing related items. Furthermore, the sorting criteria used by prior art e-mail systems are applied to an entire mailbox or folder being displayed in the view, whereas the present invention allows the user to select branch-specific criteria at any branch of the tree. The present invention also allows a particular object to be represented in more than one location in the hierarchical tree (e.g. as a node of more than one branch); no prior art personal productivity systems are known to the inventors which provide this facility.
[0039] Preferred embodiments of the present invention also allow integrating a variety of types of objects into an indexed result or aggregation, and reflecting these types of objects in a view of this aggregation, based upon the defined relationships which are in effect For example, referring to the testing scenario discussed earlier, if the hierarchical tree created according to the present invention contains a branch for test schedules, the objects displayed in the hierarchical tree view might represent e-mail messages related to test schedules, text documents pertaining to schedules, graphical charts showing test progress over time, and perhaps meeting notifications which were placed on the user's electronic calendar for meetings where the test schedule would be discussed. No systems are known to the inventors which integrate other types of objects with e-mail messages based upon relationships among the objects.
[0040] With the improved rendering of objects as disclosed herein, the user also has more convenient access to stored information than is available using prior art systems. The user can view the content of any node in the displayed hierarchy by first selecting an icon or other representation of the node and then choosing a view operation (for example, by pressing a "View" function key or perhaps by double-clicking the icon when using a pointing or selecting device such as a mouse or light pen). Suppose a user of the present invention selects to have her in-basket organized according to the project(s) she is working on, and within each project, to organize the messages according to activities for that project, then by the message sender and the date/time a message was received. In this scenario, the items in the user's in-basket are automatically aggregated according to the selected criteria, and the user can conveniently view all related messages for each of her projects activities (by sender and date/time) in a single place.
[0041] Once objects have been aggregated and a view of the aggregation has been displayed, the user may then select any of the displayed objects for further inspection directly from the hierarchical tree view. At the user's option, the displayed objects may include representations not only of e-mail messages but also of other types of objects such as calendar entries, text documents, graphical objects, sound files, video files, files received using protocols such as HTTP (Hypertext Transfer Protocol) or FTP (File Transfer Protocol), and so forth. This option enables the user's productivity to increase as compared to prior art systems, where (in this example) the user of a prior art system must separately bring up her calendaring system and traverse through the calendared entries to find meetings about the project, and must separately search for related text documents and then open a text editor to display a located text document. Furthermore, to find charts that are related to the project (or, for that matter, to find any other types of objects which are stored in binary form), the user of a prior art system may have to rely solely on her memory to find the desired files, manually opening each file to determine whether it is the one of interest, as existing techniques for programmatically searching these types of files might not be readily available.
[0042] When a user has accumulated many e-mail messages (and/or other types of electronic objects) over a long period of time, where these objects may cover a huge variety of topics, trying to find selected ones of the objects using prior art approaches can present an overwhelming task for the user. For example, the user may need to find all objects that may be useful in determining how a product specification evolved, or perhaps the user might need to find an e-mail message and meeting notes pertaining to the rationale for some design choice which was not formally documented. This can often be a time-consuming, error-prone, and frustrating experience for users; in addition, non-textual objects might have to be excluded completely from the search if searching software for those types of non-textual objects is not available.
[0043] An additional drawback of prior art e-mail systems is that, in contrast to the dynamic hierarchical view provided by the present invention, messages (which have been organized according to selected ones of the predetermined criteria) are force-fit into a flat list, requiring the user to "imagine" any sort of hierarchy between messages which may be organized using combinations of message attributes.
[0044] The manner in which the present invention alleviates these problems of prior art systems will be described herein.
[0045] The Eudora e-mail system allows a "group by subject" operation, and then collects all e-mail messages which specify that subject in their subject header. (See pages 131 and 132, "Sorting Messages Within Mailboxes", Eudora User Manual, which describes Eudora version 5.1 and is published on the Internet by QUALCOMM Incorporated (2001). Refer to location http://www.eudoracom/email, which provides a link to this manual, referred to hereinafter as "the Eudora User Manual".) The aggregation provided by the present invention is not limited to grouping messages by a single keyword, nor does it restrict the user to use of predefined grouping operations which have been built into a system by its developers, and furthermore, the present invention allows arbitrary types of stored objects to be included in the aggregation, where these objects have also been indexed into the aggregation according to the present invention.
[0046] Note that the related objects which are aggregated into a hierarchical tree according to the present invention are not required to be physically stored in or moved to a common folder or file system directory, but instead the aggregation disclosed herein is facilitated using dynamically-created pointers to objects. The advantages of this approach include increased speed for organizing newly-arriving objects; reduced storage requirements when an object appears in more than one place within the view; and the ability to quickly and efficiently change from one view of a user's objects which is organized according to one set of criteria to a completely different view of the same objects using an alternative set of criteria
[0047] Note also that, in contrast to prior art techniques for sorting e-mail messages, the organizing of related objects which is provided according to the present invention is not limited to values of keywords which appear in specially-designated fields (such as the sender field, subject field, etc.): instead, the present invention allows organizing objects based on content which may appear at an arbitrary location within the object. In addition, the organization criteria and the objects which can be organized using these criteria are not limited to text format, but may include other formats such as bitmaps, sound files, and so forth.
[0048] Preferably, the present invention is implemented in software, although an implementation in hardware or a combination of software and hardware may be used alternatively. For purposes of discussion, it will be assumed that the invention is implemented in software. The computing or processing device on which the present invention operates is preferably a commercially-available computing device or processing device (referred to hereinafter as a "computing device" ), which includes a personal computer, handheld computer or palm device, desktop computer, Web enabled cellular phone, mainframe, or any other device which is capable of receiving a user's selection of organization criteria to create a multi-level index and analyzing objects using those criteria Such devices are well known in the art, and a detailed description thereof is not deemed necessary to an understanding of the present invention.
[0049] It should be noted that software implementing the present invention may be installed on the user's computing device, where the view of the indexed objects will (preferably) be rendered on this same device; or, the software may be installed (at least partially) on another machine. As an example of the latter scenario, the user's computing device might be a client in a client-server distributed computing network, where this client device contacts a server application which provides the bulk of the computing operations. In this scenario, the software implementing the present invention preferably resides partly on the user's computing device and partly on the server. For example, the software which builds the aggregation of objects according to the multi-level index might reside on the server, and the software which renders an already-indexed view (and the software which allows the user to specify new criteria for organizing the index) might reside on the user's computing device. The manner in which software embodying the present invention may be developed for installation on one device or on multiple devices will be obvious to one of skill in the art.
[0050] Software programming code which embodies the present invention is typically accessed by a central processing unit ("CPU" ) of the computing device(s). This programming code may be embodied on and retrieved from long-term storage media of some type, such as a diskette, hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed from the memory or storage of one computer system over a network of some type to other computer systems for use by such other systems. Alternatively, the programming code may be embodied in the memory of the computing device and accessed therefrom by the CPU (e.g. using a system bus). The techniques and methods for embodying software programming code in memory, on physical media, and/or distributing software code via networks are well known and will not be further discussed herein.
[0051] When using a distributed computing network, a user's computing device may be connected to a remote server in using a wireline connection or a wireless connection. (Presence of a network connection is not required for operation of the present invention, however, as the multi-level indexing technique disclosed herein may operate upon already-stored messages and/or other objects.) Wireline connections are those that use physical media such as cables and telephone lines, whereas wireless connections use media such as satellite links, radio frequency waves, and infrared waves. Many connection techniques can be used with these various media, such as: using a modem of the user's computing device to establish a connection over a telephone line; using a LAN card such as Token Ring or Ethernet; using a cellular modem to establish a wireless connection; etc. The user's computing device may be any type of processor, such as those described above, having processing (and, when connected to a network, communication) capabilities. The remote server, similarly, can be one of any number of different types of computer which have processing and communication capabilities. These techniques are well known in the art, and the hardware devices and software which enable their use are readily available.
[0052] In preferred embodiments, the invention is implemented using object-oriented programming language(s) and techniques. However, the invention may alternatively be implemented using conventional programming languages that are not object-oriented, without deviating from the inventive concepts. Use of terms of object-oriented programming herein is not to be construed as limiting the invention to object-oriented techniques.
[0053] Referring now to FIG. 1A, an example 100 is shown depicting a prior art e-mail system where messages are sorted into ascending order by sender 110 in a user's incoming mailbox and are visually separated into different panes 120, 130 according to the setting of the priority field of the messages. This example is representative of a Lotus Notes mailbox view. (Note that the incoming messages may be physically stored in a single database, even though they have different priority settings, when using Notes software. The separate panes illustrated in FIG. 1 are then created by building pointers into that directory, where these pointers serve to logically group the messages into those that are urgent and those that are not.)
[0054] The Eudora e-mail system provides a similar display of a mailbox. The mailbox 150 illustrated in FIG. 1B is generally representative of a Eudora mailbox. (The Eudora system allows the user to configure the display to show multiple mailboxes as tiled or cascaded panes, although this has not been illustrated in FIG. 1B.) A Eudora user can select to sort a mailbox according to as many as eight to ten different criteria, and the sort order within each criterion can be set to ascending or descending. Multiple sort criteria are defined by selecting from one to eight of the displayed column headers. (See pages 131 and 132, "Sorting Messages Within Mailboxes", of the Eudora User Manual.) For example, the user might select "By Subject" as the first sort criterion, and then "By Sender" within each subject, and perhaps "By Message Size" within sender. However, the resulting display is still structured in the same manner as pane 130 of FIG. 1A: that is, a single (flat) list of mailbox items is presented. The order of items in that list represents the final result of applying all the sorting criteria Column headers of the flat display contain numeric entries which indicate the order in which the search was performed. See, for example, elements 160, 170, 180, indicating by the presence of encircled numerals 1-3 that the sort order was subject, sender, message size. The Eudora system provides many advantageous features, and is in wide use throughout the world. However, the sample messages chosen for FIG. 1B show how, in some cases, limiting the sorting criteria to fixed header values and displaying the resulting sorted messages using a flat, in-order list may have less than optimal results. In this example, related messages 191 and 192 represent notification of a class enrollment and cancellation of the same class, respectively. Because the user's choice of sorting criteria first sorts the messages on the subject field 160 (using its alphabetical contents), the messages pertaining to this class have been visually separated by a potentially-large number of intervening messages when presented to the user because the first message 191 begins with the letter "A" while the second message 192 begins with the letter "Y".
[0055]FIG. 2 provides an example 200 of a visual rendering of incoming mail messages, created according to the present invention. This example illustrates the rule-based indexing provided by the present invention. A given node of the tree may have child nodes which are nested to an arbitrarily-deep level. (An implementation of the present invention may choose, however, to place limits on the number of levels supported, without deviating from the scope of the present invention.) Node 205, for example, shows that this user "Abdi" has chosen to organize his objects according to Project. Within the Project grouping, a node is displayed in the hierarchical tree for each project for which Abdi has stored objects, based on the organization/categorization criteria which Abdi has defined. For example, Project Y 210, Project X 215, and Project Z 220 are represented in the tree hierarchy. Additional projects might also be represented, if applicable. In this example, Projects Y and X are further organized according to particular activities, while Project Z is further organized according to person. This illustrates the per-branch or per-node selection criteria available when using the present invention. Furthermore, note that "activity" is a user-selected category (which contains rule-based index criteria) which is not limited to predefined keywords which typically appear in e-mail message headers; thus, the present invention provides a more flexible organization technique than that available in the prior art. Because there is no specific "activity" keyword for which an indexing engine can search when building the multi-level index, a user of the present invention may explicitly define one or more search patterns (or rules, equivalently) to use in locating the activities. For example, with reference to Project X 215, the user of the present invention has defined the activities of interest to be "Development" 225, "Deployment" 230, and "Marketing" 235. Therefore, when the indexing engine locates an object pertaining to Project X, the object will then be searched to see if it pertains to one of these subcategories. With reference to the Development subcategory, for example, the indexing operation might comprise searching the object contents for presence of the words "develop", "developer", or "development". As a further illustration of the power and flexibility of the present invention, a rule might be specified which semantically indicates that presence of any of the strings "Amy", "John", or "Tim" denotes an object that belongs in the Development category 225—perhaps because these are names of Abdi's co-workers on the development of Project X 215. (See nodes 245, 250, and 255, where these names are indicated as members of the Staff subcategory 240.) The search expressions or rules might also support use of wildcards or regular expressions, for example by specifying the string "develop* OR Amy OR John OR Tim" as the inclusion criteria for the Development category 225. (It will be obvious to one of skill in the art that many different syntax forms may be used for specifying rules and ordering criteria Therefore, it should be understood that the examples provided herein are merely for purposes of illustration.)
[0056] In addition to (or perhaps instead of) criteria for inclusion of objects, criteria for exclusion may also be supported. Suppose, for example, that Abdi occasionally receives e-mail messages discussing "development" of his stock portfolio. These messages do not belong in Development category 225, and thus Abdi might specify an exclusion criteria having semantics of "but NOT (stock AND portfolio)". (Refer to FIGS. 4 and 6 for a more detailed discussion of the manner in which criteria may be used to build rules when using preferred embodiments of the present invention.)
[0057] It should also be noted that while the nodes in tree view 200 include text indicating the criteria used to aggregate the contents of their child nodes (that is, the "By . . . " phrases within the node icons, such as "By Activity" in nodes 210 and 215), this is for ease of understanding. An implementation of the present invention may choose to include this descriptive information, or to omit it, or may provide the user with a configuration option whereby the user controls whether the strings are displayed. Some nodes in FIG. 2, such as Amy 245 and Tim 255, do not include this descriptive phrase: in this example, the absence of the text indicates that the default ordering criteria is used for this node. When the phrases are used, the value to be displayed for a particular node is preferably a category name or other text string provided by the user when specifying the organizing criteria for that node. (A configuration interface may be provided to allow the user to specify settings for options such as whether these descriptive phrases are displayed.)
[0058] An optional enhancement of the present invention allows the user to specify locations (such as directories or databases) within which the objects must be located in order to be processed by the indexing engine for inclusion in the aggregation and resulting views. In this manner, the user may have more control over "stray" objects that might otherwise coincidentally meet his selected organizing criteria A value for this option may be specified using the configuration interface discussed above.
[0059] Another optional enhancement of the present invention is illustrated by node 208, which shows a branch in the tree for "InObjects". When this option is selected, objects which have not been organized into any other category (for example, because they did not match any criteria) are represented by this node. In addition, objects which are newly-created or newly-arrived after the view 200 has been created are preferably represented by this common node of the tree, rather than being automatically indexed and inserted into the tree. This may be useful, for example, as a way of allowing the user to specify whether the tree and its contents can change (e.g. due to the arrival of new messages) while the user is viewing it. The user can then select to apply the buffered objects from node 208 at his convenience, for example by selecting an "Update Tree View" choice from a pull-down menu; or, alternatively, the tree might be updated automatically upon occurrence of some predetermined event. Examples of these predetermined events include (1) expiration of a timer and (2) the user's request to alter the tree by expanding or contracting a branch. Preferably, when an event-driven approach is used, the event(s) is/are limited to those for which refreshing the tree view is likely to cause minimal disruption to the user. If this option of buffering objects in a common node until occurrence of an event is not selected, then each new object may be immediately processed and inserted into the hierarchical view at one or more appropriate locations. (In alternative embodiments, distinct nodes may be used to represent those objects which do not match any criteria and those objects which are new and have not yet been processed using the criteria, rather than using a single InObjects node.)
[0060] As yet another option, the user may be allowed to specify (preferably, using a configuration interface, or when specifying the organizing criteria) how selected branches of the tree view should be displayed when the tree is initially rendered. For example, user Abdi might choose for his hierarchical tree view to expand all branches along the path of (1) Project X 215, (2) Development 225, (3) Staff 240, (4) John 250, (5) Development 260, and (6) Analyzer 265, as illustrated in FIG. 2, while leaving other branches collapsed until explicitly expanded. A user of the present invention may select a node from a tree view such as tree view 200 and request expansion of this node's branch in a number of ways, such as by double-clicking on the node, choosing an "Expand" choice from a pull-down or pop-up menu, pressing an "Expand" function key, and so forth; expanded nodes may be selectively collapsed using similar techniques. Optionally, the rendered tree view may contain an indication of those nodes for which the expand choice is operational (that is, the nodes which have child nodes). In FIG. 2, this indication is provided graphically through use of rectangular nodes which indicate that there are other objects or nodes available for viewing, and oval nodes indicating that no expansion is available. See, for example, the graphic which appears as a rectangular shape at node 208, indicating that the "InObjects" node can be expanded. (As will be obvious, many alternative approaches for conveying this information may be used instead of the graphical shapes shown in FIG. 2.)
[0061] As stated earlier, the user may select to view the contents of any particular node by selecting the icon (or other corresponding representation) and then choosing a "View Contents" or similar option. If the node represents a folder, this choice is preferably analogous to the "Expand" choice just described. If the node represents an object, then the proper object viewer is invoked to view the object, using techniques which are known in the art. For example, if the "View Contents" choice is selected for an image file, an image viewer which is resident on the user's computer is preferably invoked and passed the name of the selected image as an input parameter. (The manner in which various types of viewers are registered with the operating system of the user's computer, and in which parameters are passed to an invocation of a selected viewer, does not form part of the present invention.)
[0062] Note that the objects which are indexed need not be stored on the user's computer. Instead, they need only be accessible to the computer which performs the indexing. For example, the objects might include files which are stored at selected locations in a distributed computing network. In this case, the user preferably defines the location of the objects using their network address, such as a Uniform Resource Indicator or "URI". As stated earlier, the user may provide locations of his pertinent objects and files using a configuration interface.
[0063] While the leaf node objects illustrated by the hierarchy in FIG. 2 might potentially all be textual objects, the present invention is not limited to organizing and aggregating text objects, as stated earlier. Suppose, for example, that view 200 represents only a subset of the objects which are stored on user Abdi's computer. Many other objects which are unrelated to this Project hierarchy 205 might exist. The user might have more than one hierarchical tree view available for rendering, where other views pertain to different objects and/or use different ordering criteria Alternatively, the user's objects might all be organized as branches within a single "super view", where the user is then responsible for defining the branch-specific organization criteria to properly organize the objects. Abdi might, for example, have hundreds or even thousands of graphic objects such as digital photographs stored in storage which is accessible to his computer. Some of these objects might have arrived as attachments to e-mail messages; others might have been delivered to Abdi's computer using FTP requests or perhaps in response to requesting delivery of a Web page which included embedded graphical objects; still others might have been uploaded from Abdi's digital camera directly to his hard drive. Regardless of the source of the images, or their naming conventions, or even which disk drive or directory they are located in, the present invention enables easily and automatically categorizing the images using user-selectable criteria
[0064]FIG. 3 shows an example 300 of an image that might be organized as an entry in a tree view using these inventive techniques. This image is of a postage stamp picturing a Ford Mustang automobile. Notice that the Mustang logo is visible in this image (see element 310). By selecting this portion of the image to be an organizing criterion (for example, by drawing a selection box around it using an image-processing tool), the techniques of the present invention can be used to programmatically organize all of Abdi's photos and other images which contain this logo into a common folder. A branch of the tree view might be named "Ford", for example, and might have child nodes for different models of Ford cars. For the "Mustang" child node, the organizing criteria might then include the logo bitmap as well as an inclusion criteria such as "FORD AND (CAR OR AUTO*)" which can be used to find the text-based objects and include them in this branch of the tree along with the photos which will be included using the logo bitmap.
[0065] As another example of organizing images, suppose Abdi's digital photo collection includes many pictures of family members, but these pictures are scattered among various subdirectories or other storage locations. Further suppose that Abdi's family pictures are often taken in front of one or more of his favorite pieces of artwork, and that Abdi would like to assemble all of the family pictures together to create a digital album. A representative portion of each of the pieces of artwork, selected from pictures that include an image of the pieces of artwork, might be stored as a bitmap which is then defined as an inclusion criterion for aggregating objects within a branch of the hierarchical tree view, according to the present invention. Upon operation of the indexing engine, the objects which include this representative bitmap (or bitmaps) are programmatically located and aggregated into the corresponding branch. Abdi then has a convenient way to access the stored images by selecting their nodes from the tree view. (Techniques for comparing bitmaps to inclusion criteria are well known in the art, and implementations thereof are readily available for use by an implementation of the present invention. Such techniques are used, for example, in scanning stored fingerprint files for law enforcement purposes.)
[0066] Turning now to FIG. 4, a subset 400 of the tree view 200 of FIG. 2 is shown, and pop-up windows 410, 420, 430, 440 are illustrated as examples of how a user may visually define (or re-define) the organizing rules in use for the visual rendering in the tree view, according to preferred embodiments of the present invention. This example shows the user invoking a visual rule builder technique for change the organizing criteria for Development node 225, presumably to organize the node according to some criteria other than "By Rank" which is shown in node 225 as the currently-used criteria (As will be obvious to one of skill in the art, this visual rule builder is merely representative of one technique that may be used, and other techniques may be substituted without deviating from the inventive concepts disclosed herein.)
[0067] Using the approach shown in FIG. 4, the user may indicate his desire to alter the organizing rules by (for example) pressing a function key or "right-clicking" with his mouse device or otherwise choosing this operation. This preferably causes a window such as pop-up window 400 to be displayed, offering several choices to the user such as viewing the contents of a node, using a visual rule builder (which has been selected in the example of FIG. 4), expanding or collapsing a node, and so forth. After choosing to use the rule builder, another window 410 is preferably displayed, where the contents of the window preferably include alternative categories that can be used for organizing the node's contents. (These alternative categories are preferably defined earlier by the user or provided as built-in defaults and deployed at the time of installing the implementation of the invention.) Suppose the user chooses "Design" as a criteria for organizing this node's content, as indicated by the visual shading and checked box in window 410. Another level of pop-up window, shown as window 420, appears next in this example, where window 420 allows the user to choose either to customize this category or to select the default (i.e. already-defined) customization for this category. If the user chooses "default", then it is not necessary to display any subsequent pop-up windows, and the default organizing criteria will apply for node 225; otherwise, when the user chooses to customize this category, another pop-up window appears. In the example of FIG. 4, pop-up window 430 is displayed to enable the user to quickly locate his already-defined index criteria using an alphabetical index menu to easily access the criteria in alphabetical order. For example, to see the index terms beginning with the letter "D", the user selects "D" from pop-up window 430. The corresponding index terms are then displayed in another pop-up window 450, as illustrated, enabling the user to select one or more of the defined terms or organization criteria. In the example, the user has selected a term "Design charts" and another term "Design messages". (in an actual tree view, these terms correspond to the node for which organizing rules are being customized.) In addition to (or instead of) displaying an alphabetic index representation in window 430, thumbnail sketches or other forms of non-text representations might be used. For example, a miniature version of the Mustang logo might be presented in window 430 to enable the user to select the Mustang image as an index criterion. A representation might also be included for grouping index terms which are not easily represented using other approaches, for example by including a grouping such as "Miscellaneous". After completing the selection process in window 440, the user might return to window 410 to select additional criteria for use in organizing this node. (Note that the layout of windows 400-440, where one window appears to the right and slightly beneath its predecessor, is for purposes of illustration only; other presentation styles may be used alternatively.)
[0068] The flowcharts in FIGS. 5-7 illustrate logic which may be used to implement a preferred embodiment of one aspect of the present invention. The processing of this aspect, which comprises creating the relational object view which has been described, operates in response to particular events. The logic of FIG. 5 is preferably invoked when the user opens the tree view hierarchy, and the logic constructs and renders the object view. In preferred embodiments, this logic is also invoked (see Block 625 of FIG. 6) when the user requests to expand a node from the currently-displayed relational view, and the logic constructs and renders a subtree of that node. FIG. 5 may also be invoked when a new object arrives, and/or when new organizing criteria are defined, and in such cases creates a refreshed view. (Other triggering events might be defined for invoking FIG. 5, such as expiration of a refresh timer, if desired.) As shown therein, the process begins in Block 500 where all the newly-arrived or newly-created objects are retrieved (for example, from the "InObject" object repository). If desired in a particular implementation of the present invention, the InObject repository may also store objects (that is, pointers to such objects) which on previous iterations did not meet any of the organizing criteria for placing them into the hierarchy. Those objects may also be retrieved and (re)processed against the currently-defined criteria, if desired. The objects may be of a variety of types, including e-mail messages, bitmaps, textual documents, and so forth. (As stated with reference to node 208 of FIG. 2, indications of the new and the not-categorized objects are preferably buffered for updating the tree view in a controlled manner.) Block 505 retrieves the organizing criteria, which in preferred embodiments are stored as rules in a rules repository. These rules may include default rules as well as user-defined rules. (See the discussion of FIG. 7, below, for more information on defining these rules.) An object hierarchy agent process is then invoked (Block 510) to apply the criteria to the objects to be organized. Block 515 checks to see if there are any existing (i.e. already-indexed) objects to be merged with these objects. If so, then the merge proceeds (Block 520) by invoking a relational modeler process which creates an aggregated relational model of the user's objects. Finally, the organized objects are rendered in the relational view (Block 525). Preferably, a process such as a presentation manager component is invoked to perform the actual rendering of the constructed hierarchy. Presentation manager components are well known in the art, and are readily available.
[0069] In addition to retrieving objects which have not yet been organized, Block 500 may retrieve other objects. For example, if new organizing criteria have been defined, and also when the user requests to expand a node, it may be desirable to re-process all the user's objects to determine which objects meet the currently-applicable criteria. In this case, the relational modeler process of Block 520 is invoked to construct a relational view of all of the objects which have been organized (and the test in Block 515 may be omitted).
[0070] The logic in FIG. 6 may be used when the user requests a pop-up menu (or similar selection means) such as that illustrated by element 400 in FIG. 4. This request may be initiated through a right-click operation with a mouse device, or with an appropriately-adapted function key, or through similar means. At Block 600, a menu of available choices is displayed. This menu is represented by the example window 400 in FIG. 4. Blocks 605, 615, 620, and 630 then check to see what the user selects. If the choice is to view a node (Block 605), then a node-specific viewer is invoked (Block 610), as was discussed earlier. If the choice was to use the visual rule builder (Block 615) as disclosed herein, then processing continues at Block 700 of FIG. 7. If the user chooses to expand the current node (Block 620), then Block 625 organizes the objects that will appear in the subtree for this node by invoking the processing of FIG. 5. If the user chooses to collapse the current node (Block 630), then the subtree for that node is pruned (Block 635) and the node is redisplayed (Block 640) without its child nodes. If some other choice is available and is made, then Block 645 processes that choice accordingly.
[0071] Referring now to FIG. 7, logic is shown which may be used to implement the visual rule builder of the present invention. This logic is invoked when the user chooses to visually build rules for a node, as reflected by Block 615 of FIG. 6. A repository containing criteria for the current node is consulted (Block 700), and used to construct a menu (exemplified by window 410 of FIG. 4) which is displayed to the user at Block 705. Once the user has selected one of the displayed choices (Block 710), a test is made (Block 715) to see if more information is required. If so, then processing continues at Block 720; otherwise, control transfers to Block 750.
[0072] At Block 720, a test is made to see if the user requested to use the default criteria (see window 420). If so, then those defaults are retrieved (Block 725), and processing continues at Block 750. Otherwise, Block 730 preferably presents a shortcut selection menu such as that shown as window 430, and Block 735 obtains the user's choice from that menu. The choice is then used (Block 740) to retrieve the corresponding criteria With reference to FIG. 4, Block 735 comprises determining that the user selected the letter "D", and Block 740 finds that the criteria beginning with the letter "D" include "Design charts", "Design documents", "Design meetings", and "Design messages". These criteria are used to construct a menu such as menu 440, which is displayed to the user (Block 745) and from which the user can make selections. (That is, for the example of FIG. 4, the user indicates which of these criteria she would like to use in organizing a Design node as a child node of Development node 225.) After having obtained the selections, control reaches Block 750.
[0073] Block 750 formats a rule from the criteria which the user has indicated through this visual rule building process, and stores that rule in the rules base. If the user wishes to continue defining rules for the current node in this manner (a positive result for the test in Block 755), then the appropriate menu regains control (Block 760) and the process is repeated. (That is, if the user wishes to define more organizing criteria using a different letter of the alphabet via window 430, then control returns to Block 730; alternatively, the user may wish to return to the menu in window 410 or 420, in which case control returns to Block 710 or 720, respectively. Or, the user may select a different node from the displayed hierarchical view and define rules for that node by returning to Block 700.
[0074] In this manner, a multi-level index is dynamically constructed—according to an individual user's requests—for use in organizing electronic objects according to relationships. This hierarchical view constructed using this very powerful and expressive index promises to enable users to find information much more quickly than when using prior art systems, thus offering significant productivity gains.
[0075] In embodiments of the present invention, the categories and criteria which are presented to the user for building rules (see windows 410 and 440 and their descriptions, above) may be entered manually by the user (e.g. by typing text into a prompting window or other text entry means). Other sources for obtaining this information might also be provided, such as enabling a systems administrator to manually provide enterprise-wide defaults which each individual user can then override as desired. In other embodiments, either or both of these types of information may be obtained automatically by observing the individual user's actions. A further aspect of the present invention provides novel techniques for this purpose, enabling a user to dynamically indicate the criteria which may be used for organizing stored objects, as mentioned earlier. FIG. 8 provides a diagram showing how components used in this process fit in with components used by the relational tree view which has been described with reference to FIGS. 2-7. FIG. 9 will then be described, illustrating logic which may be used to implement this further aspect.
[0076] Referring first to FIG. 8, an "InObject" repository 800 (which was described with reference to node 208 of FIG. 2) stores a collection of objects which are either (1) newly-arrived or newly-created, and therefore have not yet been processed into the relational hierarchy, or (2) uncategorized because they did not meet any criteria during a prior processing operation. (As stated with reference to FIG. 2, repository 800 may be a separate data store, or it may be simply a logical view of another data store such as "previously-organized objects" 880.) At some point, the objects in repository 800 are used as input 805 to indexing engine 850, creating 855 a collection 860 of newly-organized objects. These newly-organized objects 860, along with previously-organized objects 880, are used as input 865, 885 to a rendering process 870 which creates a view such as that shown in FIG. 2. It may be desirable to re-index the previously-organized objects 880, in which case those objects are input 887 to indexing engine 850. For example, previously-organized objects may be re-organized when new organizing criteria are defined. Furthermore, it may be desirable in some situations for the indexing engine 850 to always process both the repository 800 and the previously-organized objects 880, creating a new (logical, if not physical) version of repository 880 rather than creating a separate repository 860 of newly-organized objects. In this latter case, rendering process 870 has a single input.
[0077] The criteria used for organizing the relational view may be selected using process 810, as will be explained below with reference to FIG. 9, and those criteria are then stored 815 in a criteria repository 820. When the user invokes a visual rule builder 830 (or, alternatively, some other type of rule builder), the criteria in repository 820 are used as input 825 for building new rules. Those rules are then stored 835 into an index/rules repository 840 for use as input 845 by indexing engine 850.
[0078] Turning now to FIG. 9A, the dynamic criteria selection process of the further aspect of the invention is illustrated. This selection process is referred to hereinafter as "swiping", and in preferred embodiments comprises swiping multiple times across some element of an object to indicate that this element should be selected as an organizing criterion. ("Swiping", as is known in the art, refers to an operation such as holding down the left mouse button while dragging the mouse or dragging one's finger across a plasma panel, thereby signifying a selection operation.) For example, in a textual document, the element to be selected by swiping may be a word or phrase, or even a partial word. Refer to FIG. 10A for examples, where a hand symbol 1010 is used to signify that the user has swiped text shown as selected at 1005 (the abbreviation "IGS" ) and 1015 (the phrase "Ethernet Project" ) from a textual object 1000 (which in this example discusses an upcoming meeting). The user in this case might wish to use these selections as organizing criteria for one or more nodes related to his department's activities. FIG. 10B illustrates another example of elements that night be selected using this swiping technique. A hand symbol 1010 is used again to indicate the swiping motion, and for this bitmap of a Ford Mustang, the user might swipe a rectangular section indicated at 1020 to use the Mustang logo image as a criterion, and/or he might swipe over the word "Ford" which appears at 1025 to select this portion of the image.
[0079] Referring again to the flowchart, beginning at Block 900, a new object arrives or is created, and is passed to a presentation manager component (Block 905) for rendering. A swiping agent or monitor is activated (Block 910). Blocks 915-975 illustrate operation of a preferred embodiment of this swiping monitor, which begins at Block 915 by checking to see if a swiping device is currently active. If not, then processing continues at Block 920 which preferably searches the user's computer (using prior art techniques) to determine whether any swiping device is available. If a swiping device is already active, on the other hand, control transfers to Block 945 of FIG. 9B.
[0080] Continuing with the description in FIG. 9A, Block 925 checks to see if a computer mouse was detected. If not, then Block 930 checks to see if a light pen was detected. If not, Block 935 checks for another type of swiping-capable device, such as a plasma panel. Audio or visual means for swiping might also be present. For example, a device for detecting that a user passes his eyes repeatedly over a document element might be available for use with the swiping process. Or, an audio device might be available which can be configured to detect a swiping operation (for example, by the user speaking commands for this purpose). If all the tests in Blocks 925, 930, and 935 are negative, then Block 940 preferably activates a default selection technique. Otherwise, when any of these tests has a positive result, the detected device is available for swiping. Processing continues at Block 945 of FIG. 9B.
[0081] In Block 945, configuration settings pertaining to the swiping operation are preferably retrieved from a user-specific configuration file. (Default settings may be provided, if desired, which a user might then choose to override.) Because performing a single swiping operation is commonly used in the prior art to indicate simple selection, users of this swiping technique will preferably select settings other than a single swipe to indicate that criteria selection according to the present invention is being requested. For example, the configuration settings might specify that swiping twice across an element (or perhaps some number more than two times) signifies this type of swiping. After retrieving the stored configuration settings at Block 945, the user may then be asked whether he wishes to change these settings (Block 950). If so, the new settings are obtained (Block 955) and stored.
[0082] Now that the user's swiping preferences are known, Block 960 monitors to see if a swiping operation is performed. If not, the user may be allowed to redefine the configuration settings by returning control to Block 950. If a swiping was indicated, however, then Block 965 stores the selected element in the criteria repository (see element 820 of FIG. 8). Block 970 checks to see if the user has requested to stop monitoring for swiping operations. If so, then swiping is deactivated (Block 975); otherwise, control returns to Block 960 to continue monitoring for swiping operations.
[0083] In this manner, the system according to the present invention can dynamically learn new organizing criteria in a very user-friendly (and user-customizable) manner. This technique may be used with swiping-capable devices that are considered "conventional" in the prior art, such as mouse devices, light pens, and plasma panels, and it may also be useful with devices or mechanisms which have not yet been imagined. The criteria selected using the swiping technique is fed back into the system, as illustrated graphically in FIG. 8 (see elements 810-825, for example), and may be presented to the user for building rules to be used by an indexing engine (see, for example, the discussion of FIG. 4).
[0084] As has been demonstrated, the present invention provides a number of advantages over the prior art. Whereas prior art e-mail systems allow users to sort e-mail messages on fixed message attributes (and, in some systems, on the presence of user-defined keywords within message bodies), and then display all the messages of a folder or mailbox in a flat view using this set of fields for sorting, the present invention enables a very flexible, dynamically-constructed hierarchical view (or other structured view) of an aggregation of electronic objects which is organized using a user-specified, multi-level index. The disclosed techniques provide enhanced graphical presentation of information, giving an intuitive view of relationships among objects, and allow enable access to stored information. Using the disclosed techniques, each individual user can control how his or her information is organized, rather than being limited to choices which the developers of the e-mail system have chosen to expose. In addition, the multi-level indexing technique of the present invention enables a tree view to change dynamically, as new objects are received which meet active organization criteria, and allows node-specific organizing criteria for an arbitrarily complex level of nesting. This is in contrast to the static views provided by prior art systems (where the attributes are either in use for all messages arriving into the current mailbox or folder, or they are not in use for any messages of the mailbox or folder).
[0085] The swiping technique which was disclosed may be used to dynamically teach new criteria to the system, providing a user-specific adaptive index.
[0086] The present invention has been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart and/or block diagram block or blocks.
[0087] These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart and/or block diagram block or blocks.
[0088] The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart and/or block diagram block or blocks.
[0089] While the preferred embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims shall be construed to include preferred embodiments and all such variations and modifications as fall within the spirit and scope of the invention.
Referenced by
Legal Events
Original Image


text:
Tweetie hosts new 'Runway'
Actress-model Tweetie de Leon Gonzales replaces "Project Runway Philippines" host Teresa Herrera when the third season of the reality talent search premieres on ETC in February 2012. This was announced by PRP executive producer Edel Pepito last week.
"With ETC's transfer to RPN 9, we now have access to a wider audience that cuts across all demographics. We needed someone who could be appealing to all these markets," Pepito explained. "We know that we have a winner in Tweetie." The nationwide auditions for the 15 designers who will compete in the show begins on August 20.—Marinel R. Cruz
Get Inquirer updates while on the go, add us on these apps:
Disclaimer: The comments uploaded on this site do not necessarily represent or reflect the views of management and owner of INQUIRER.net. We reserve the right to exclude comments that we deem to be inconsistent with our editorial standards.
To subscribe to the Philippine Daily Inquirer newspaper in the Philippines, call +63 2 896-6000 for Metro Manila and Metro Cebu or email your subscription request here.
Factual errors? Contact the Philippine Daily Inquirer's day desk. Believe this article violates journalistic ethics? Contact the Inquirer's Reader's Advocate. Or write The Readers' Advocate:
c/o Philippine Daily Inquirer Chino Roces Avenue corner Yague and Mascardo Streets, Makati City,Metro Manila, Philippines Or fax nos. +63 2 8974793 to 94

subset: commoncrawl


text:
blog.com is Worth $ 3.22 Million USD
My website is worth
$3.22 Million USD
How much is your site worth?
$3.22 Million USD
How much is your site worth?
Add this widget to your website
Data last updated 825 days ago.
Update again today or check another website!
Update again today or check another website!
- Daily Unique Visitors177,655
- Daily Ad Revenue$ 4,407 USD
- Alexa Rank716
- Google Page Rank6 (PR is Genuine)
- Google Indexed Pages0 Show
- Google Backlinks302 Show
- Dmoz ListingYes
- Domain Nameblog.com
- OwnerBlog.com, Inc.
- RegistrarARSYS INTERNET, S.L. D/B/A NICLINE.COM
- Created1998-04-14
- Expires2020-04-13
- Domain Age17 years, 1 months
- WhoisView Full Whois Report
Visitor Traffic Charts
|blog.com - Rank By Country
|Server Ip: 188.8.131.52
|Server Location Map:


text:
Exactly how do I activate/install make this work?
Im new to WP and cant find specifically where to transfer files etc.
As I understand it you download and activate via WP with bbpress installed. The default provided template is twentyeleven.
Specifically what files/folders do I need to transfer/copy across and to where/which folder etc?
I tried transferring files (whilst twenty eleven enabled and threaded comments enabled) to bbpress themes folder, nothing and when I tried wp themes folder it overwrote some file and the forum stopped working with error on some line...
reinstalled theme and plugin and its working again but still no idea how to set this up properly.
finally, is there any other templates to make this work with any other themes?


text:
Popjustice is off on tour with Rihanna for seven days. (!)
Posted by Popjustice on Nov 13 2012, 12:05
In a classic example of major label money being spent wisely, Rihanna is flying over a hundred media people from around the world to seven countries in seven days, on a specially-chartered 777 aeroplane.
Rihanna will be on the plane as well.
And Popjustice is going to be blogging the whole thing.
We could go into more detail but the whole riridiculousness of the whole thing has rendered us almost speechless.
We've set up a special blog for the journey, which is called Pon De Runway and can be viewed here.
Literally – actually literally – amazing.
Robyn's announced a new music project thing called La Bagatelle Magique
Hurts' new single is called 'Some Kind Of Heaven' and might be (EDIT: ISN'T) out tomorrow
Ciara's next single 'Give Me Love' now has some 'cover art' to go with it


text:
So today I was told Ravan would be getting kicked out of daycare in Jan if she doesn't stop being so mean to other kids. She's been biting, defiant, and saying "no" all the time. The teacher tld me today they will not take her into the bigger kid preschool if she keeps acting like this.
I'm at a loss. I know her attitude has been great, up until I started full-time work. Now she's horrible. Opposite. What can I do, without quitting?
My feelings are hurt, because I KNOW my kid can be better. HOW do I make her behave? UGH.


text:
Money Man Pawn
(941) 727-0222
1608 53rd Ave E.
Bradenton, FL. 34203
We are MoneyMan Pawn, here to serve all of your pawnshop needs. On our website, you will be able to find useful information on how pawn shops operate, important jewelry facts, and services that we provide. We sell many products ranging from musical instruments, commercial brand tools, coins, jewelry, electronics, and much more!
We are the only pawn shop in the area to have a Graduate Gemologist on our staff. With a Gemologist and jeweler on site, they can inspect and clean your jewelry for FREE! Only a few pawn shops offer on-site jewelry repair and we are one of them.
To read up on any more information, you can navigate by using the tabs on the panel above.
Thanks for visiting us! Come again soon!
To Contact Us:
Phone #: 941-727-0222
Fax #: 941-727-1766
Email: email@example.com
1608 53rd Ave E.
Bradenton, FL. 34203
Our Store Hours:
Monday - Friday
9:00am - 6:00pm
9:00am - 5:00pm
Closed on Sundays


text:
Advanced Gasification
Over the past 15 years, we have established a broad knowledge base and world-class facilities for advanced gasification research, in particular for syngas cleaning and conditioning, syngas conversion and utilization, and biomass gasification. We have state-of-the-art facilities to carry out lab- to pilot-scale R&D and the experience to positively impact the overall energy efficiency and cost of gasification systems.
RTI's novel warm syngas clean-up technology is a prime example of our ability to take technologies from initial concept to large-scale demonstration. This technology will soon be demonstrated at a 50-MWe scale at Tampa Electric's Polk Power Station.
Technologies and Projects
Warm Syngas Desulfurization Technology
Our warm syngas clean-up technology platform removes syngas contaminants at 200°C and above, resulting in thermal efficiency improvements over conventional processes. Core to this platform is our desulfurization process that uses a specially engineered sorbent and proven process design to remove sulfur species from syngas and convert them to SO2. We were recently awarded $170M to conduct a pre-commercial demonstration of this technology coupled with carbon capture and sequestration. Read more about our warm syngas clean-up technology.
Direct Sulfur Recovery Process
Our direct sulfur recovery process (DSRP) catalytically reduces the SO2 from the warm syngas desulfurization process into elemental sulfur. The DSRP maintains high-temperature, high-pressure operation of the warm syngas cleanup technology platform.
Multicontaminant Syngas Cleaning
We have developed fixed-bed sorbent systems for removal of syngas contaminants other than sulfur (for example, mercury, ammonia, chlorine, arsenic, cadmium, selenium, carbon dioxide). These systems operate at high temperature and retain the thermal efficiency advantage of our syngas cleanup platform.
Co-Production Processes
We are developing a highly efficient "steam-iron" process for the co-production of electricity and hydrogen. This process uses a novel iron-based catalyst with improved catalyst reactivity, chemical stability, and mechanical strength compared to conventional catalysts.
Reverse-Selective Membranes
We have developed an alternative approach for syngas contaminant removal—reverse-selective membranes. This technology separates gases by chemical property rather than size allowing for CO2 and H2S to be removed from syngas at low pressure while maintaining a high-pressure, H2-rich process gas.
Biomass Gasification
Leveraging expertise built through coal gasification R&D, we are conducting innovative research in the cleanup of biomass gasification syngas. Read more about our development efforts in biomass gasification.
- February 20, 2015
DOE-sponsored syngas cleanup demonstration project reaches development milestone
– Energy Industry Today
Last Friday, the U.S. Department of Energy joined RTI International and Tampa Electric Company to recognize a key ope... Read more »


text:
Palace Brighton Bay
Phone: (03) 9596 3590
Nestled amongst the eateries and nightlife of the Bay Street shopping strip, the Palace Brighton Bay Cinema is popular with discerning film goers who appreciate an intimate and charming cinema experience. Palace Brighton Bay is the flagship of arthouse cinema in Melbourne. With four new well-appointed cinemas, bar and plush foyer the Palace Brighton Bay is a first class cinema experience.
Brighton Bay Bar
Enjoy fresh premium Lavazza coffee prepared by our experienced baristas or choose from a great variety of food and drinks including local and international premium wine & beer, handmade Connoisseur choc tops, healthy choice popcorn cooked in olive oil and more.
Private Hire
The Palace Brighton Bay Cinema is equipped with state of the art digital projection with Dolby Digital surround sound. Please ring 03 9816 1777 or email firstname.lastname@example.com for information on private hire pricing and technical information.
Getting to Palace Brighton Bay
Public Transport
Just four doors from North Brighton railway station (Sandringham Line)
Bus Routes
703 Middle Brighton to Blackburn
:: Palace Brighton Bay Cinema
:: Bentleigh Station
:: Clayton Station
:: Monash Medical Centre
:: Monash University
:: Syndal Railway Station
:: Kmart, Burwood East
:: Forest Hill Chase Shopping Centre
:: Blackburn Railway Station
824 North Brighton to Southland
:: Palace Brighton Bay Cinema
:: Cnr Hampton Street & Marriage Road
:: Moorabbin Station
:: Southland Shopping Centre
216 & 219 North Brighton to Brighton Beach
600 St Kilda to Southland
Bay Street is 2 hour parking until 6.30pm. All day parking is available in railway car park, Durrant Street, Asling Street and St Andrews (over Durrant Street), one block away from cinema. Carpenter Street is 3 hour parking. There is a 15-minute drop off/pick up park outside the front door. Public Car Park at 1 Asling Street under Brighton on Bay. 1 Hour is free and then $1 per hour thereafter. $5 maximum.
The lift at Palace Brighton Bay is self operating and can lift 300kg's with wheelchair dimensions of 1.26m x 1m x 2.04m
Wheelchair access available in Cinemas 3 and 4.
Standard Tickets
Adult $19.50 / Saturday Evening $20.00
Pensioner $15.00
Senior 60+ $11.00
Full Time Student/Concession $15
Children aged 15 and under $14.00 / Saturday Evening $14.50
Palace Movie Club Prices
Movie Club Adult & guest $14.50
Movie Club Student & guest $11.00
Movie Club Golden & guest $10.00
Movie Club Scope (under 18) $10.00
Purchase a Movie Club membership now
Bargain Day Tuesday
(Non-applicable on Public Holidays, Film Festivals & Special Events)
Movie Club Adult & guest $11.00
Movie Club Student & guest $10.00
Movie Club Golden & guest $9.00
Movie Club Scope (under 18) $9.00
Non-member Adult / Child / Pensioner / Concession / Student: $12.50
Non-member Senior: $9.50
PLEASE NOTE: Special pricing may apply to Film Festivals and Special Events.
- Please select a DAY first
Ex Machina (MA15+)
28 May, 2015
Gemma Bovery (MA15+)
28 May, 2015
Partisan (MA15+)
28 May, 2015
Exhibition: THE IMPRESSIONISTS (CTC) 30 May, 2015
Sydney Film Festival Presents: Slow West (M) 4 June, 2015
Sydney Film Festival Presents: Strangerland (CTC) 11 June, 2015
The Emperor's New Clothes (CTC) 11 June, 2015
The Mafia Kills Only In Summer (M) 11 June, 2015
Going Clear: Scientology and the Prison of Belief (M) 18 June, 2015
Bolshoi Ballet: IVAN THE TERRIBLE (CTC) 20 June, 2015
Far from the Madding Crowd (M) 25 June, 2015
National Theatre Live: MAN AND SUPERMAN (CTC) 27 June, 2015
Amy (CTC)
2 July, 2015
The Royal Ballet: LA FILLE MAL GARDÉE (CTC) 3 July, 2015
Madame Bovary (CTC)
9 July, 2015
Women He's Undressed (CTC) 16 July, 2015
The Royal Opera: LA BOHÈME (CTC) 17 July, 2015
National Theatre Live: The Audience (CTC) 18 July, 2015
She's Funny That Way (CTC) 23 July, 2015
Paris Opera Ballet: L'HISTOIRE DE MANON (CTC) 24 July, 2015
Far From Men (CTC)
30 July, 2015
The Royal Opera: GUILLAUME TELL (CTC) 7 August, 2015
National Theatre Live: EVERYMAN (CTC) 8 August, 2015
National Theatre Live: HAMLET (CTC) 7 November, 2015


text:
|MLB Baseball
|Player News
|4:10 PM PT5:10 PM MT6:10 PM CT7:10 PM ET19:10 ET23:10 GMT7:10 4:10 PM MST6:10 PM EST6:40 PM VEN3:10 UAE (+1)6:10 PM CT, August 1, 2014
Fenway Park, Boston, Massachusetts Attendance: 37,782
Rookie gets win as Boston beats Yankees 4-3
MLB Headlines
- Hamilton gets first hit back with Texas
- Cards put Adams on DL, recall Easley
- O's designate De Aza, activate Flaherty
- Rays' Cash stands by criticism of calls
- Angels acquire OF Nieuwenhuis from Mets
By DOUG ALDEN
BOSTON (AP) The game ball that Red Sox right-hander Anthony Ranaudo will treasure from his major league debut wasn't the one from the final out in Boston's 4-3 victory over the New York Yankees.
Instead, his teammates made sure to save the ball he threw to strike out Derek Jeter in the third inning - Ranaudo's first major league strikeout.
"I think that's pretty cool," said Ranaudo, who grew up in New Jersey rooting for Jeter and the Yankees. "That's something that will be part of my life the rest of my life."
Ranaudo (1-0) allowed two runs and four hits over six innings while winning his first start in the majors. He made a few mistakes, including a solo homer Carlos Beltran hit into the New York bullpen in the fourth, but scattered them well enough for Boston to hang on after taking a 2-0 lead in the third.
"He did a good job keeping the game under control," Boston manager John Farrell said.
Ranaudo walked four and struck out two. The first was against Jeter, who followed up with a homer off reliever Junichi Tazawa over the Green Monster to pull the Yankees within 4-3.
The Red Sox, mired deep in last place in the AL East after losing eight of nine, have won three straight over the Yankees.
"We've got to win games this time of year," New York third baseman Chase Headley said. "That's where the frustration comes."
Koji Uehara pitched the ninth for his 22nd save.
Boston got to Chris Capuano (1-2) in the third when Brock Holt hit a one-out triple down the right-field line, then scored when Dustin Pedroia followed with a drive over Jacoby Ellsbury's head in center. The ball bounced into the stands for a ground-rule double and Pedroia scored easily from second on a single by David Ortiz.
After Beltran's 13th homer of the season cut the lead to 2-1, the Red Sox got an RBI single from David Ross in the fourth and added an insurance run in the seventh when Pedroia singled home Mookie Betts, who led off with a single and advanced on a sacrifice.
Capuano pitched 6 1-3 innings for New York, allowing four runs and eight hits. He struck out five and didn't walk a batter.
Ellsbury was called out attempting to steal second after a leadoff walk in the sixth. The Yankees challenged and won, leading to a run when Ellsbury scored on Beltran's single to give Boston a 3-2 lead. Ellsbury appeared to have an extra-base hit in the eighth on a drive to his former territory in the center-field triangle, but was robbed on a lunging catch by Betts - an infielder who's getting a chance in the outfield.
"For a guy who's transitioning positions, it's a very athletic play," Farrell said.
Ortiz led the majors with 25 RBIs in July. He got August off to a good start by driving in one on Friday, giving him 78 RBIs for the season.
The Yankees made three roster moves before the game, designating INF Brian Roberts for assignment and optioning INF Zelous Wheeler and OF Zoilo Almonte to Triple-A Scranton/Wilkes-Barre. The Red Sox had some moves of their own, adding OF Yoenis Cespedes and OF Allen Craig to the roster; recalling Betts, LHP Tommy Layne, Ranaudo and RHP Alex Wilson from Triple-A Pawtucket; activating 3B Will Middlebrooks from the 15-day disabled list; placing OF Shane Victorino on the 15-day disabled list (retroactive to July 31) due to a lower back strain and designating 1B/OF Mike Carp for assignment.
Yankees: Michael Pineda will start in Triple-A Scranton on Sunday with a limit of about four innings or 65 pitches. Doctors will evaluate Masahiro Tanaka on Monday, three weeks after he was given a platelet-rich plasma injection in his torn ulnar collateral ligament as an alternative to surgery.
Red Sox: Middlebrooks returned for Boston after missing 67 games with a broken finger and started at third base. Ross came up limping when he grounded out to end the sixth. He left the game and was replaced by Christian Vazquez.
Yankees: Shane Greene (2-1) makes his fifth start in the same ballpark where he made his major league debut on April 24. Greene got plenty of run support as the Yankees routed the Red Sox 14-5.
Red Sox: Allen Webster (1-0) makes his second start of the season as the Red Sox try to re-establish the rotation after trading starters Jon Lester, John Lackey, Jake Peavy and Felix Doubront. Webster went 5 1-3 innings last week against the Rays, allowing two runs and five hits and getting the victory as Boston snapped a five-game losing streak.
Updated August 1, 2014


text:
Apply today for Cheap Missouri car insurance and get same day approval : http://www.freeinsurancequotation.com/
To that effect, if you are on the lookout for a cheap car insurance in Missouri with bad credit, you need to take the below mentioned aspects into consideration.
1. As per Missouri state vehicle insurance law, it is mandatory for buyers to get liability insurance coverage for bodily injuries as well as property damages. For knowing the limits, you may find a website which provides you the necessary information on the subject.
2. Teen aged or student drivers may be eligible to receive discounts if they maintain good grades in the academics. Most of the companies will normally offer discounted packages to student drivers if their GPA is 3.0 or above.
Know more about cheap Missouri auto insurance : http://www.freeinsurancequotation.com/
3. Uninsured motorist car insurance is stipulated by law and the minimum coverage limits for that are also prescribed. Just find out what they are for Missouri State.
4. By undertaking a course in defensive driving, you could improve chances of finding cheap Missouri car insurance online as majority of companies will think that you are a responsible driver.
5. Buyers, who have not been frequently involved in accidents or traffic violations will stand a chance of securing discounts that will lower their Missouri auto insurance rates.
6. To find the best deal, you will have to get numerous free non-binding quotes from several different companies and compare them in detail. The task may be rigorous but if you have a specialist to assist you during your effort, the process will appear lot easier.


text:
New TV show depicts Navy's little-known investigative unit
Global reach
Ridley spent some time on the set of the new series and hosted a visit to Pendleton by actor Mark Harmon and other cast members.
"We've been a pretty obscure agency for years," Ridley said. "I think it's nice that we're starting to depict who we are as an organization."
In many ways, the agency is the equivalent of a big-city detective bureau, with a general-crimes component that focuses on investigating felonies like rape, child abuse, homicide and theft of government property. In the field of counterintelligence, they work to protect military secrets and analyze information about terrorist threats. They investigate espionage and white-collar crimes such as procurement fraud by defense contractors.
Agents protect the Secretary of the Navy and visiting dignitaries and provide embassy security. They also provide security for significant conferences and events such as the Olympics, augment Secret Service detachments and are assigned to senior military officials overseas. Agents have also helped interrogate Afghan prisoners held at Guantanamo base in Cuba.
"The beauty of the organization is that it can bounce between the military and other agencies, whether foreign or domestic," Ridley said.
The most rewarding part of his job is bringing closure to issues that were mysteries in the beginning, and bringing folks to justice who commit crimes.
"There's never a dull moment," he said. "No day is the same. Today a general crime case, tomorrow terrorism or something related to national security."
For information about NCIS, call (800) 616-8891 or visit the Web site at www.ncis.navy.mil.
Contact staff writer Agnes Diggs at (760) 740-3511 or email@example.com.


text:
- Musician's Friend Best Selection, Price & Service. Guaranteed.
Call our Gear Heads
at: 800-449-9128
Call our Gear Heads
at: 800-449-9128
A keyboardist's songbook containing nine Pink Floyd classics with a two-CD set of full-performance and accompaniment tracks.
Alfred's Ultimate Play-Along series gives you everything you need to jam with your favorite songs. The Pink Floyd - Ultimate Keyboard Play-Along book (with a 2-CD set) includes authentic transcriptions, lyrics, and chords to nine Pink Floyd classics.
There's two versions of every song on the included CDs: a full-performance track with an amazing sound-alike recording, plus a professional accompaniment track so you can play along. When you use the CDs in your Mac or Windows-based computer, the TNT (Tone 'N' Tempo) Changer lets you easily loop sections for practice, change the key, slow tracks down or speed them up without changing the pitch, and switch back and forth between full-performance and backing tracks.
Play along with your favorite Pink Floyd songs today!
Pink Floyd - Ultimate Keyboard Play-Along (Book/CD)
Our product catalog varies by country due to manufacturer restrictions. If you change the Ship-To country, some or all of the items in your cart may not ship to the new destination.


text:
League of Legends is a popular free to play MOBA by Riot Games. Recently, company president Marc Merrill's Twitter account was hacked by someone using the Alias, Jason. They used Marc's account to send out several tweets with screenshots and files, revealing what appears to be an online trading card game based on the League of Legends universe.
The hacker claims the game was completed but never revealed to the general public. Riot Games confirmed the games existence though said it is all a part of experimentation that may never see the light. Whether it stands to be released or not is unconfirmed, though it would make sense with the success of Hearthstone: Heroes of Warcraft recently.
Source: MMOCulture


text:
Program Staff
Program Staff
Tonia D. Thomas serves as the Program Director and Advisor for this program. She is a Louisville native and a graduate of the University of Louisville with a B.S. in Sociology. She has worked for the University of Louisville School of Medicine since March 1994. Her previous positions have been in the Medical School Office of Admissions (1994-1996) and the Office for Minority and Rural Affairs (1996-2008). She has coordinated several enrichment programs for high school - college students:
- The Health Professions Partnership Program Initiative (HPPI), a grant program funded by the Robert Wood Johnson Foundation
- The Professional Education Preparation Program (PEPP) Pre-college Summer Workshop, for entering college freshmen interested in medicine and dentistry
- The MCAT-DAT Review Summer Workshop, preparing pre-med/dental students for their entrance exams and applying to professional school.
- She served as the founding advisor and later as a co-advisor for the Multi-cultural Association of Pre-medical Students, MAPS, (formerly the Minority Association of Pre-medical Students) from 1999-2010.
Tonia is affiliated with both campuses, Belknap and the Health Sciences Center, and has worked collaboratively with staff, faculty and administrators over the years. She is committed to preparing premedical students for the competitive medical school application process and helping them to successfully matriculate into medical school. She can be reached at 502-852-2712502-852-2712 or email@example.com. Her office is located on the U of L Belknap Campus in Gardiner Hall, College of Arts & Sciences, Room LL02.
Shonna Wagner serves as the Administrative Assistant for this program. She joined our staff in August 2013 and is a part-time U of L student. She can be reached at email@example.com or call 502-852-2879502-852-2879. She is located in room LL02 in Gardiner Hall, College of Arts & Sciences on the U of L Belknap campus.