The growth of the Internet has led to an ever-increasing, amount of unstructured communication. This communication is largely accomplished via electronic mail (“e-mail”), instant messaging systems and blogging, as well as, to a smaller extent, data transfer means such as ftp (a computer file exchange program based on “File Transfer Protocol”). Voice-over-IP (VoIP) protocols also provide a mechanism enabling voice communication between users over a telecommunication network, as well as broadcasting of voice messages over the Internet from one user to many users. In general, the communication tends to be more focused on information itself that is being exchanged or communicated, without adequate attention paid to its relationship to other information.
Human communication is largely organized by context. It is believed that context helps human brains cross-reference information and retrieve information from memory. Context may take different forms. For example, business processes are contexts, such as working on a particular project or working with a particular colleague. Personal relationships, such as family members, relatives, friends, co-workers, are contexts. Contexts can also be areas of interest, such as hobbies, religion, travel or a geographic location, such as home, work, or foreign country. Contexts can also be the subject of conversation or information. A library is one example of organizing information based on categories of subject matter.
Consider e-mail and instant messaging. E-mail communication accomplished via existing e-mail systems can be characterized as being a one-way broadcast of information having a sender and at least one receiver. E-mail is non-real time and asynchronous (from the viewpoint of a human). The sender composes the message and provides some indication as to the nature of the message in a header line. The receiver does not have to read e-mail messages immediately, nor do they need to respond immediately or at all. The receiver typically categorizes an e-mail message he receives based upon the sender's name or keywords in the header line or message.
E-mail users may spend significant fraction of working hours in managing e-mail messages and reconstructing the context. Much of this effort tends to be spent in reading messages to make sense of the context of a received message, deciding whether or when a specific response action is required, and attempting to categorize the message with the appropriate context for future reference—filing away into “folders” being a commonly used mechanism to achieve the latter goal. Finding old emails can also be problematic if the context it was stored under is not remembered accurately. Common existing mechanisms aimed at automating some of this work, such as e-mail message handling rules and filters often are inadequate, as they are based on limited information such as message origin and keywords, and therefore remain error prone.
Instant messaging is real-time and synchronous. There is usually a dialog, back and forth between the participants, requiring a timely response. Instant messaging, like human dialog, tends to first establish the context of the interaction (what the conversation is about), and then proceed to a more meaningful exchange of information. However, existing instant messaging tools generally do not require users to record the context nor provide tools to facilitate establishing new context when it is introduced in a dialog. After an instant messaging session is concluded, typically, only a transcript of the session is recorded, without a corresponding context. A user is still left with the task, after the fact, of reconstructing the context of the session transcript.
Thus, the increase in unstructured information communicated has led to an increase in the amount of time a user spends sorting, organizing, and retrieving their communication information.
There therefore exists a need of facilitating structured communication so that the communicated information can be easily organized and a need of organizing communicated information for easy cross-reference and retrieval.
This invention pertains to the exchange of electronic or digital information, and more specifically to an e-mail-like exchange wherein the categorization of information being communicated is more easily controlled and exposed. Advantageously, the responsibility for message management is delegated to a sender of the message, as opposed to the recipient, but under rules imposed by a recipient.
The invention attempts to address a need for a non-real time, asynchronous communications system with the advantages of negotiating a context for communicated information. Because of the asynchronous nature of the system, an interactive dialog between a sender and a receiver to set a context may not be possible as the receiver may not be available at that time. To address this difficulty, either the context can be transmitted in a more structured form (perhaps relying on a-priori information about the receiver) to facilitate automated context setting, or the context can be negotiated between an agent for the sender and an agent for the receiver when a message is being sent. A third party can also help negotiate the context between these two agents.
In a broad aspect, the invention provides a system for categorizing information communicated by users of a message exchange system, be it synchronous or asynchronous. The categorization system includes a categorization server and a plurality of negotiation agents that can be connected to the categorization server when needed. The categorization server has access to one or more representations of categorization of information, such as a list of categories, each category optionally having attributes assigned thereto. In general, a representation of categorization includes categories and their attributes and relationships. The relationships may be hierarchical, or “flat” (i.e., undifferentiated), among others. A user's representation of categorization may be defined by the user, may be one recognized by the user, or may be one considered as acceptable by the user. When a sender sends a message to a receiver, the sender uses a negotiation agent to negotiate with a negotiation agent of the receiver, in order to identify a category for the message. The category is identified based on the representation of categorization provided by the categorization server. It may be one selected from the receiver's representation of categorization, may be one added to the receiver's representation, or may be mapped from one category selected from the receiver's representation, among others.
The categorization server may further include a category directory service module for storing representations of categorization and serving them to users upon request. The category directory service responds to queries by supplying names and attributes of categories and relationships between categories, if any. It may be a software application or process executing on a user's computer, an enterprise server or a computer that may be accessed remotely, such as through the Internet.
Optionally, the categorization server may authenticate a sender first and provide a receiver's representation of categorization only upon the sender being authenticated The categorization server may selectively provide portions of the receiver's representation of categorization to the sender, based on the sender's authorization level, or permissions. Either the system or the receiver may pre-assign the permissions.
Each of the negotiation agents includes a communication interface for connecting the negotiation agent to another negotiation agent. During a negotiation session, the sender's agent requests a representation of categorization from the receiver's negotiation agent or directly from the categorization server, or from a cache of the receiver's categorization stored locally or on an enterprise server. The categorization server or the receiver's negotiation agent provides the requested representation to the sender negotiation agent. A category is identified through the negotiation. The identified category is associated with the message, either before, during or after transmission of the message from the sender to the receiver. Preferably, a reference to the identified category is transmitted together with the message.
In another aspect, there is provided a message exchange system that includes a plurality of user clients for users to create, exchange and manage messages, a plurality of negotiation agents for categorizing messages communicated by the users and a categorization server. The categorization server has access to one or more representations of categorization of information. A message exchange server may also be provided for exchanging messages on behalf of the users. When a sender creates a message for sending to a receiver, the sender's user client connects to a negotiation agent. The negotiation agent for the sender negotiates with a negotiation agent of the receiver, to identify a category for the message based on the representation provided by the categorization server. A category is identified through a negotiation session between the receiver's negotiation agent and the sender's negotiation agent. The identified category is associated with the message, either before, during or after transmission of the message from the sender to the receiver.
In yet another aspect of the invention, there is provided a method of categorizing information. The method includes the steps of providing an initial representation of categorization of information, the representation including a plurality of categories, the initial representation being provided in a session of receiving the information from a sender; negotiating with the sender to make a modification to the initial representation during the session for categorizing the received information; associating a category with the received information, the category being negotiated based on the modified representation; and providing the modified representation in subsequent sessions of receiving further information.
In a feature of this aspect of the invention, the modification includes a mapping between a first category in the plurality of categories and a second category included in the sender's representation of categorization. In another feature of this aspect of the invention, the modification includes at least one of adding a first new category to the plurality of categories, adding a second new category to the sender's representation of categorization, and mapping one of the first new category and the second new category to the category. In yet another feature, the method includes the further steps of querying a categorization server to obtain a second mapping between the second category and a third category in an intermediate user's representation of categorization and a third mapping between the first category and the third category, and forming the mapping from the second mapping and the third mapping by chaining the second and third mappings.
In yet another aspect of the invention, there is provided a method of transmitting messages in a message exchange system. The message exchange system has a user agent for transmitting a message to a receiver, and a categorization server for supplying a listing of categories. The method includes the steps of obtaining the listing of categories from the categorization server; negotiating a category with the receiver, said category being selected based on the listing of categories; associating the message with the category; and sending the message associated with the category to the receiver.
In a feature of this aspect of the invention, the listing of categories includes a system portion shared by users of the message exchange system and a private portion, and the step of obtaining the listing of categories includes obtaining the system portion and the private portion; and combining the system portion and the private portion to produce the listing of categories.
In a further feature, the step of negotiating the category includes at least one of selecting the category from the system portion, selecting the category from the private portion, and establishing a mapping between the category and a second category selected from the private portion.
In another feature of this aspect of the invention, the method includes the further steps of authenticating the sender, determining a permission level of the sender, and publishing a restricted listing of categories based on the permission level. The step of obtaining the listing of categories includes obtaining the restricted listing of categories and the step of negotiating includes one of selecting the category from the restricted listing and establishing a mapping between the category and a second category selected from the restricted listing.
In other aspects the invention provides various combinations and subsets of the aspects described above.
For the purposes of description, but not of limitation, the foregoing and other aspects of the invention are explained in greater detail with reference to the accompanying drawings.
The description which follows and the embodiments described therein are provided by way of illustration of an example, or examples, of particular embodiments of the principles of the present invention. These examples are provided for the purposes of explanation, and not limitation, of those principles and of the invention. In the description which follows, like parts are marked throughout the specification and the drawings with the same respective reference numerals.
As used throughout this specification, the term “agent” refers to an automated system that, once configured by a user, has some independence of action. An intelligent agent may change its behavior over time based upon its interactions with other users and/or other agents. An agent may be distributed or local, autonomous or controlled. Thus, for our purposes, an agent can be any software system, or a combination of software and hardware (or firmware) systems.
A sender of a message has the increased responsibility to categorize information being sent out. At the time that communication is initiated, the sender tends to have more information about the context than the receiver. This information about context is valuable, and should be used to help the receiver categorize the communication in more than an ad-hoc, post receipt, manner (such as reading the subject line, or scanning for keywords). Instead, both the sender's and the receiver's preferences for categorization should be unified as the message is composed and sent, so that it is properly indexed for all users.
Generally speaking, any knowledge representation of context or categories may be used for categorizing information, as long as that representation allows a means for unifying two or more categories. Here, “unifying” means arriving at a common representation that is acceptable to both parties. For example, in a generic knowledge representation framework, unification may consist of finding the smallest subset that contains all categories. Alternatively, unification may be achieved by establishing a temporary or persistent mapping between categories in two different representations. In a neural network, unification may consist of inserting all categories as the inputs to the neural network and then recording the output value. The knowledge representation structure may be distributed or local or both. The current invention does not require any particular representation. It does, however, assume the existence of a representation, such as a listing of categories and any relationship that may link these categories together, though such a structure is not always necessary.
The present invention provides a communications system with the advantages of negotiating contexts or categories on behalf of users for associating the categories with communicated information such as e-mail messages. As an example, a communications system, such as an e-mail system, generally includes a sending subsystem for sending outgoing messages and a receiving subsystem for receiving messages on behalf of a receiver. The sending subsystem generally includes a user interface. Through the user interface, a sender can categorize an outgoing message, for example, select a category and associate the category with the outgoing message. For the category to be acceptable to the receiver, the category can be selected from ones that are recognized by the receiving subsystem. Alternatively, the sending subsystem can include a negotiation unit that communicates with the receiving subsystem to identify a category and associate the category with the message. The negotiation between the sending subsystem and the receiving subsystem identifies a category that is acceptable to or recognized by both the sender and the receiver. The category may be selected from a list of categories provided by the receiver or receiving subsystem, or one mapped from a member of the list of categories. When identifying the category, the sending subsystem can use information about the receiver, such as how the receiver categorizes information, whether the receiver wishes to receive certain categories of information, or even presence information about the receiver.
The sending subsystem can also negotiate with an intermediary for the receiver, or through another intermediary for the sender with the intermediary for the receiver, to categorize the message so that the category is acceptable to both the receiver and the sender. This may occur, for example, when the receiver is not online. Optionally or alternatively, the sending subsystem can negotiate with an intermediary and the receiving subsystem concurrently and unify the results of negotiation with both. Either the sending subsystem or the receiving subsystem, or the sender or receiver intermediaries, can select other intermediaries. Either the sending or the receiving subsystem can also include a search unit for searching and identifying such intermediaries. Alternatively or additionally, either the sending or the receiving subsystem, or both, can include an intermediary directory for selecting and identifying an intermediary or intermediaries.
Either or both sending and receiving subsystems may have a storage unit. Outgoing and received messages, categorized by the system, can be stored based on the associated categories. For example, messages associated with the same category can be stored together, separate from messages associated with other categories. Storing messages in category-based “folders”, or logical storage areas, is one such example. The messages can also be indexed based on categorization, as well as other parameters (such as weighting based on frequency of use, temporal use, etc). This facilitates the later retrieval of messages. The categorization based storing and indexing of messages allows for intelligent filing of messages. In addition, categorized messages also permit searching these messages based on categories associated with the messages.
As another example of categorization based classification of messages, a negotiation subsystem can be built into a communications system for classifying outgoing messages. Outgoing messages are categorized, namely each message having a category associated therewith. The negotiation subsystem can include an agent for a receiver and an agent for a sender. The sender agent and the receiver agent negotiate a category that is mutually acceptable to both the sender and the receiver. For example, the category may be selected by the sender agent from a list of categories provided by the receiver agent, or one mapped from a member of the list of categories. The negotiation subsystem can be configured so that the sender and the receiver agents negotiate a category without much user intervention, or it can be configured so that the negotiation is guided with input from the sender. Similarly, the negotiation subsystem can also include an intermediary agent for automatically mediating the categorization between the sender agent and the receiver agent, or between the sender and the receiver agent.
Conveniently, a categorization server is provided so that the categorization server can supply copies of representations of categorization when requested. The representations of categorization served may have a common portion shared by all users. The common portion may be regarded as a system portion and can be managed by the system. The portions of representations not shared by all users may be regarded as private portions. The system provides means for unifying the system portion with a user's private portion to form a complete representation of the user's representation of categorization. More generally, the system portion, a user's private portion and a third party's representation of categorization can be combined to form a unified representation of categorization. Both the system portion and the private portions may be modified and updated, which allows the evolution of representations of categorization. A user may also have more than one representation of categorization. One such representation may be designated, either by the user or automatically designated when certain conditions are met. During a negotiation session, the active representation of categorization will be used.
The sender's categorization may be influenced not only by the receiver, but also by information in the body or subject, 220, as well as any type of knowledge representation of the sender's preferences. Thus,
Implicit on both the sender and the receiver sides is a representation of applicable categories, such as a listing of categories, as well as, potentially, the ability for learning of categorization, or even the ability for the sender to update the receiver's categorization and/or knowledge representation. In
In
The dropdown list 906 and submenu 908, in combination, provide a representation of a hierarchical structure of the categories belonging to the list. As will be appreciated, each item in the submenu 908 can have its own submenu, and so on and so forth. This can provide a hierarchical structure of as many levels as desirable, though probably it is only practical to present a hierarchical structure of only a few levels. However, any other suitable means, such as collapsible “trees”, may be employed to present a hierarchical structure or a representation of categorization. A simple dropdown list without any submenu, on the other hand, may be used for representing categories where no hierarchical structure exists.
These interfaces are presented for description only and could be developed in many different ways. In particular, categorization may not occur until after the subject field is filled, 910, the body is filled, 912, or the send button pressed, 914. The first two of these examples may provide more information to the categorization process for example, keywords in the subject. Further, an indication of the negotiated category may not necessarily be placed in the “To:” field, but may be in the subject field or the body, or even as an attachment, hidden or not. The indication of the negotiated category may be placed in any section of the message (for example, as a MIME type). More generally, it does not even need to be in the message, as long as the category is associated with the message. For example, it is entirely possible that an indication of the negotiated category is placed directly in a receiver's file system by the receiver's agent and the indication is associated with a message number that identifies the message, yet to be delivered. This will enable a web services-like process that runs in parallel with e-mail processes, as opposed to inside an e-mail processes.
Further, as will be appreciated, although an example of interactive categorization through the user interface is described here, the system can be configured to automate the categorization process so that the sender agent automatically negotiates a category with the receiver agent. Different means may be provided for configuring the sender agent, the receiver agent, the negotiation subsystem or the system as a whole to automatically negotiate a category, or allow a user's participation in the negotiation of categorization. For example, interactive menu selection through a user interface may be provided for configuring a sender agent or a receiver agent. Other means are also possible, including use of system configuration parameters, command line options or any other suitable means, as known to those skilled in the art.
Presence information (such as whether a user is online, whether they are accepting messages, whether they want to be involved in categorization) can also be used to guide the system. This allows the system to present representations of categorization and the subsequently categorizing information in a context sensitive manner. For example, information transmitted by instant messenger may be “real time” and can be categorized as such. This allows all information received in real time, such as session transcript of an instant messenger session, digital recording of a telephone conversation, or multimedia recording of a slide presentation including audio recording, video clips, graphics, texts etc., all be associated with a category named “real time”. In addition, one can also categorize such information based on its contents, so that some may be categorized as “Biz.Project”, others may be categorized as “Biz.Product.Marketing”, while yet some others may be categorized as “General.Sports”. Additionally, categorization may also be dynamically changed from one to another based on presence information. For example, if a user's presence information showed the user to be on holidays for two weeks, the categorization of a message that requires a response within five days may dynamically change from “reply required” to “FYI”. The presence information may also include a user's indication whether they wish to categorize information using a restricted set of categories, by, for example, limiting categories to those selected from a pared down list. The “context” may also be a user's geographic location, device type of communication device, whether a user is working, or some other attributes. For example, a user may be working, but is at an overseas office. Thus, a categorization of “Sporting Events” may not need to differentiate one local game (local to the home office) from another local game, but instead, it may be more desirable that the system presents a more refined categorization of events or news related to games local to the overseas office and categorizes these spoilt events and news accordingly.
As illustrated in the examples above, categorizing a message, i.e., associating a message with one of the categories, provides the context of the message. Advantageously, a categorization model, or categorization structure, can be defined to represent a user's view how knowledge should be categorized and how the user's categories relate to each other. In one example, a model is a tree where each node is a category. Each node may also have attributes, such as “public”, “integer”, etc. Attributes may also have their own attributes, and so on and so forth. A terminating node, i.e., a node that is not internal, is also called a leaf The starting node is called “root”. A path from the root to a leaf, linking several categories, or nodes, is called a category path. Conveniently, a category “tree” can be expressed using the following notation:
A tree generally has multiple category paths. Multiple paths can be represented as follows, using indented tree notation. For example,
It will be appreciated that although a tree-like structure 1200 conveniently provides a structure, i.e., relationships to link all categories together, the categories can be organized in any suitable manner, and do not have to be fit into a rigid tree-like structure. For example, instead of a strictly hierarchical structure, it is possible for some nodes below the root node to have “lateral” connections, or for a node to have links to several nodes, instead of only one, at levels above. It may also be possible to have several “root” nodes, instead of only one root node. In particular, it is possible that all categories are treated as “root” nodes, in which case there exists no hieratical structure at all. Further, whether a tree, directed graph, directed acyclic graph, or other structure, a categorization system may also include algorithmic components that take into account user context, time of day, or any other environmental factor or input.
Ideally, users of all systems all agree to a single universal categorization model. This may be not practical, not convenient, or not agreeable to all users. More likely, categorization models of different users may share a common portion. This common portion therefore may be regarded as a system portion or system model, or simply SM. Aside from the system portion, each user may have its private portion, or private model, (or PRM), that varies from user to user. Conveniently, the system portion is managed by a system administrator and individual users manage their own private portions. Each user's categorization model, or individual model (IM), is then the unification of the user's private portion and the system managed system portion. Notationally (but not restricted to the mathematical concept of “union”), IM=PRM ∪ SM. Preferably, the system portion and the private portion are disjoint, i.e., do not overlap. A user then generally needs to manage only the private portion. This can also be generalized to the sharing of categorization models of different systems. For example, users of several systems may participate in a sharing arrangement so that they will share the use of categorization models of the participating systems. System portions managed by the participating systems can be unified to provide a more comprehensive shared portion. The more comprehensive shared portion is then provided to any user of the participating system for unification with the user's private portion.
For example, users within an organization, such as a company or a division of a company, or users served by the same internet service provider (“ISP”), may share a system portion of categorization structure. While such users may each have their own individual views of categorization, such as how information can be or should be categorized, or how the categories should relate to each other, their individual views tend to have certain commonalities. For example, members of the same company may share the categorization of company related information. Or, users served by the same ISP may be residents of the same region and share the way how information related to local community is categorized.
Different organizations or ISPs may cooperate and let users of each other's system use their own system portions of categories. The shared portion of categories for any user of these participating systems will then be the union of all system portions managed by each of the participating systems. Additionally, a “universal” categorization structure or model (or “UM”) can be provided so that any system may use it. Such a “universal” categorization model tends to capture categorization of information of a more general nature. A user's categorization model will then be a union of the universal model, the system portion (which can also be a union of shared portions of participating systems) and the user's own private portion, or notationally, IM=PRM ∪ SM ∪ UM.
Referring to
The system categorization server 1306 provides management of representations of categorization or categories themselves. A management module 1314 may be provided for this function. Often, an administrator of the categorization system is charged with the responsibility of managing the system portion of representations while individual users are responsible for managing the private portions. Managing representations generally entails managing the categories belonging to the representations. Common management tasks include retrieving, adding, deleting, naming (or renaming) categories. Management tasks may also include establishing certain relationships such as imposing a tree structure to link the categories together. Where such a structure is provided, managing categories also includes changing how a category relates to other categories or moving a category to another node. Further, where privacy or security attributes are provided, management tasks also include managing these privacy or security attributes of shared categories. These tasks may include, for example, determining which senders or receivers, or their respective agents, may access these categories.
As noted, a user's categorization structure can be divided into a system portion and a private portion. The system categorization server 1306 or the management module 1314 can provide an interface for accessing individual users' own private portions of categories, allowing a user to retrieve, add, delete, modify or rename, among others, any of the private categories. Moving a category between system and private portions or to accept or reject requests from a user to move a category into or out of the system portion may also be performed by the system categorization server 1306, or its management module 1314.
Preferably, the system categorization server 1306 has a system category directory 1316 for storing and retrieving data that represent categorization models. The system category directory 1316 may be a software component or service provided by the system 1300. The data stored may relate to the system portion of the categorization model. Typically, data related to the system portion is stored and managed by the system category directory 1316. The system categorization server 1306 provides an interface for system administrators to access the system category directory 1316. The system category directory 1316 can also have a copy of the private categories of each of the users. The system category directory 1316 may also provide support to managing all users' private categories as well.
In one implementation, the system category directory 1316 is responsible for storing categories and providing the categories to the system categorization server upon request. The system categorization server 1306 acts as a gateway or interface between the stored categories and a categorization and negotiation agent 1304.
Categories can be stored in a data structure. The data structure for storing categories can be any suitable structure, such as an extension of the Resource Description Framework (RDF). Such a structure may accommodate extra information such as attributes assigned to a category. Attributes may be used for describing characteristics such as privacy, mappings to the categories of other users, history of category name/path changes, etc.
For improved security, the system categorization server 1306 authenticates a sender and verifies the sender's authorization level prior to exposing the recipient's categories to him. Users not belonging to the same system generally need to be authenticated first. Prior initial registration of such an external user is generally required The system categorization server 1306 may provide web access or other suitable access point for an external user to connect to the system categorization server 1306. For example, web access point 1318 may be used for providing such access, as described earlier. Alternatively, users or system administrator may also accept request of an external user and register the external user. Internal users of the system generally do not need to register, as their identities are already known to the system. Users of a partner system generally also have no need to register first, as administrators of such systems may have already supplied any necessary authentication data or may have configured the partner system to provide the required authentication service. User identity can be managed via the existing authentication directory.
Authorization levels, or permissions, can be determined by a user's group membership. For example, public categories are generally shown to everyone; enterprise-only categories are shown only to members of the same enterprise, or to members of authorized partner enterprises. Private categories are not shown to anyone else, except where exposure to a specific sender is authorized by the recipient. A user can specify, through category attributes or any other suitable designations, that a private category can be exposed to a group of users, such as users of the same system or users from other partner systems. Permissions can be further fine-tuned by setting, for example, values of privacy attributes in individual categories and for individual users. As will be appreciated, permissions may be defined in many different ways based on needs or desirability and the examples provided above are for illustration purposes only.
Preferably, an authentication server 1320 is provided for providing authentication and authorization services. Prior to allowing a user to view or update categories of the system or of a user of the system, the system categorization server 1306 requests the authentication server 1320 to authenticate the user first, and once authenticated, examines the user's authorization level to determine whether the user has the permission to view or update the requested categories. The authentication server 1320 generally stores or has access to required authentication information, such as account name, login ID, password or a user's name. The authentication information may also include group membership or other similar information for determining permissions. The authentication server 1320 is shown connected to the system categorization server 1306 and the message exchange server 1310. This allows the system categorization server 1306 to authenticate a user and subsequently, based on permissions granted to the user, selectively expose the part of categories that the user is authorized to see or modify. The authentication server 1320 may also provide services to message exchange server 1310, for example, for determining whether a user is known to the system when there is an incoming message for the user.
As in an e-mail system without support for categorization, the message exchange server 1310, such as an e-mail server or gateway, connects various user agents 1302 together so that they can send and receive messages for users. The message exchange server 1310, may also be connected over a network to other servers or gateways of other e-mail systems for facilitating the exchange of messages with users of other systems. Any suitable protocols, such as Simple Mail Transfer Protocol (“SMTP”) or Session Initiation Protocol (“SIP”), may be used for exchange of messages, whether text messages such as e-mail messages or voice messages such as digitized telephone conversations.
A user agent 1302 allows a user to create, send, and receive messages and to review and manage the stored messages. Conveniently, a user interface is provided for a user to interact with the system 1300. For example, together with the underlying hardware device, the user interface provides a means for a user to create an outgoing message, such as composing an e-mail message, creating a voice message, generating a paging message etc. The user interface also enables a user to specify delivering information, such as a recipient's address in a messaging system, a recipient's name or some other suitable identifying means, or to specify other information relating to the message, such as subject of the message or importance designation etc. Similarly, the user agent enables a user to process incoming messages, such as reviewing and responding to an incoming message. Advantageously, the user agent also may provide a user with essential tools for managing incoming messages and copies of outbound messages, such as segregated storage of messages, indexing of messages, or filtering unwanted incoming messages.
Not only messages received or sent by the users can be categorized. Other information asset of an organization, such as marketing plans, product development project documents, project plans, human resource records, can also be categorized. In general, any information, such as session transcript of an instant messenger session, e-mail message text, digital recording of a telephone conversation, or multimedia recording of a slide presentation including audio recording, video clips, graphics, texts etc, may be part of information asset. The system categorization server 1306 may be configured to provide an interface for categorizing information assets other than e-mail or other messages to include any form of information asset.
Categorized messages and organization information assets can be indexed based on their categories. For example, the search engine 1322 shown in
Aside from category-based indexing and searching, the system also provides category-based information management, such as storing, displaying, filtering or downloading. Messages and information assets can be stored separately based on categories. For example, messages can be filed into different “folders”, or logical views into aggregations of assets, based on categories. For a mobile e-mail message user, the user may also choose to download to the mobile device for storage only messages of certain categories, but not other categories. Messages can also be filtered based on categories. For example, a user may choose to filter out, or delete, certain messages based on the messages' categories. Thus, a user may be relieved the burden of reviewing messages that the user does not wish to receive or has no interest in reviewing. Such category based storage and filtering can be performed at either the user level through user agents or at the system level, by the system categorization server 1306 or the message exchange server 1310, or at both the system and user levels.
The categorization and negotiation agent 1304 provides support for negotiating a category for an outgoing message with its intended recipient. During a categorization and negotiation session, the categorization and negotiation agent 1304 is connected to another user's user agent or categorization and negotiation agent and engages in a dialog, as will be described in great detail below and also shown in
The categorization and negotiation agent 1304 may also provide support for allowing a user to access or manage categorization structure. Conveniently, the categorization and negotiation agent 1304 connects to a user agent 1302 to allow user access; or it can provide its own user interface. A representation of the categorization structure can be displayed, either in its entirety if the categorization structure is sufficiently limited in size and can be reasonably displayed on the underlying display device, or showing a portion thereof if the size of the display device is not adequate for showing the entire structure. As will be understood, if only a portion is shown, navigation tools or other means for selectively displaying part of a categorization structure will be provided so that a user can have access to each and every element of the categorization structure. A user can add, delete, name or rename, or move a category in its private portion or move a category or request its move between private and system portions. Like the system categorization server or its management module, the categorization and negotiation agent 1304 can also provide unification of system and private portions of the user's categorization structure or the unification of the system portion, the private portion and an additional categorization structure provided by a partner system to produce a comprehensive categorization representation.
Conveniently, each time a new category is added, an existing category is renamed, or a category is moved (whether within the system portion or the private portion, or moved between the system and the private portions), the system may automatically re-index the stored messages accordingly. Similarly, if category-based storage is supported, the stored messages may also be reorganized, in accordance with the addition, renaming or movement of categories. Advantageously, the system can track, namely save, history of change of categories. A tracking module may be provided for this purpose. This may be particularly useful when the system has memorized a mapping of users' categories for future use as will be described in great detail below but one of the user's categories has changed.
The operation of the system 1300 will now be described with reference to a categorization process illustrated in
If the selected category is not one of public categories shared by both the sender and the recipient, the categorization and negotiation agent 1304 presents the recipient's publishable categories to the sender (step 1408). The publishable categories are categories known to a user and exposable to the other party, for example, based on the other party's permission. The categorization and negotiation agent 1304 can display the publishable categories to the sender for selection (see, for example,
If the sender selected category matches one of the publishable categories (step 1410), the message is tagged with the matched category (step 1406). Otherwise, the system determines whether there is a mapping from the sender selected category to one of the publishable categories of the recipient (step 1412). The sender can also determine, based on a review of the publishable categories of the recipient, whether the selected category can be mapped to one of the publishable categories.
Mapping generally occurs when there is not an exact match but one of publishable categories can be mapped to the selected category. For example, “A.B.C.D” in the sender's categorization model PRM0 may actually be represented by “A.B.X” in the recipient's categorization model PRM1. There is then a mapping:
A.B.C.D→αA.B.X
Where α is a partial mapping—there may be paths in the PRM0 that are not represented in PRM1. In practical terms, this means that there may be a mapping from some of sender's categories to some of recipient's categories. The mapping may simply reflect a difference in naming convention, or a difference in how the sender and the recipient classify information. In any event, the sender may decide that “A.B.X” actually corresponds to “A.B.C.D”, is equivalent to “A.B.C.D”, or that the message can be appropriately categorized as “A.B.X”. This establishes a mapping between the sender's “A.B.C.D” and the recipient's “A.B.X”. The sender's category directory service can save this mapping for future use. With mappings recorded, the system can also leverage mappings established by all users to find a mapping from one user's category to another user's category (or categories if multiple paths of mappings exist). For example, when the next time the same sender categorizes a message to the same recipient as “A.B.C.D”, the system can automatically map “A.B.C.D.” to “A.B.X” of the recipient. It will be understood that the mapping A.B.C.D→αA.B.X is bi-directional, i.e. the reverse also exists. When the next time the recipient sends a message to the sender, such as when responding to the sender, the reverse of the mapping can be used, namely “A.B.X” of the recipient will be mapped to “A.B.C.D.” of the recipient.
It will be appreciated that the mappings are not necessarily direct mappings. For example, suppose that user A sends a message to user B, using a mapping from “PRMA.A.B.C.” to “PRMB.X.Y.Z.”, B forwards the message to user C, using the mapping “PRMB.X.Y.Z.” <-> “PRMC.O.P.Q.”. Here, A, B and C are all users of the same system. Subsequently, C responds to B and A—a fairly common scenario. Because the reply is automatically categorized by the system as “PRMC.O.P.Q”, the reply will be received by B categorized as “PRMB.X.Y.Z”. Furthermore, C's local system will leverage the mapping between A and B to ensure that the reply is received by A categorized as “PRMA.A.B.C.”. More generally, a mapping may include a series of intermediate mappings to and from categories of one or more intermediate users. For example, a mapping
X→Y
may consist of a series of intermediate mappings
X→Z1→Z2→Z3 . . . →Y
where Z1, Z2, Z3 etc are intermediate mappings. In other words, intermediate mappings may be chained to obtain a final mapping. It is also possible that, where intermediate mappings are included, different series of intermediate mappings may produce the same final mapping X→Y. For example the mapping X→Y may also consist of
X→T1→T2→T3 . . . →Y
With all users' categories and mappings of categories stored and managed by the system, e.g., by the system categorization server 1306, or system category directory 1316 when one is provided, the system can use the mapping information to minimize the effort required for a sender to categorize messages for some of the recipients. When one category for one recipient is identified, if mappings from the identified category to other categories of other recipients exist, such information can be used. Where one recipient has several mappings to the identified category, the system may be configured, or be provided with an optimization module, to select an optimized series of intermediate mappings. The optimization may be one that requires the least number of intermediate mappings, or may be one that utilizes one intermediate mapping that is most frequently used. Of course, other rules of optimization can also be devised and used.
It is possible that the sender and the recipient do not both have the same category in their respective representations of categorization, and that the sender selected category cannot be mapped to a publishable category of the recipient. Optionally, the categorization and negotiation agent 1304 allows the sender to create a new category in the recipient's categorization structure. If the sender is allowed to create a category in the recipient's categorization model (step 1414), a new category corresponding to the selected category is then created and added to the recipient's categorization model (step 1416) and the message is so tagged.
As will be appreciated, the process described above can be varied, as long as both the sender and the recipient can agree on an appropriate category for the message. For example, when a suitable category is not shared by both the sender and the recipient, the sender may also select a category from the recipient's publishable categories (step 1502) instead of from its own categories. In other words, the sender categorizes the message using one of the recipient's categories that does not exist in the sender's own categorization model as yet (step 1504). Thus, the message is categorized accordingly from the recipient's perspective. From the sender's perspective, the message has yet to be categorized in a way that will be recognizable in his own context. At this point, the sender has at least two options, as illustrated in
The process described in reference to
When prompting for categories, for example, through a user interface shown in
Furthermore, if the sender selects categories PRMi.A.B.C. for recipient Ri and PRMj.X.Y.Z. for recipient Rj, the system, which may delegate the task to the categorization server 1306, will create a mapping between those two categories, and preserve this mapping in the local stores for Ri and Rj. This is in addition to whatever mapping already selected between one of the sender's own categories and the categories from recipients Ri and Rj. All of the mappings will be preserved for future use. Preferably, this mapping will be persistent, i.e. preserved in each user's local PRMs. The mapping may be preserved only for a limited period of time so as to optimize the tradeoff between knowing this mapping, which is useful for future exchanges, and the storage overhead. The preservation period may be specified by each user, or determined by the system.
As described earlier, categorization is not limited to messages, but may be extended to information assets. Information assets created or developed during the course of a corporate process can be conveniently tracked through a categorization process, as described below. Information such as the specifics to which the corporate process is being applied, the steps being completed, and other similar information can all be properly categorized and tracked. This leverages the potential for a particular asset (an e-mail message can be one such asset) to be tagged with multiple, non-exclusive categories, each of which has value assigned.
For example, a “Credit Check” process might have a number of steps, such as collecting information from a prospect, running the information by one or more agencies, evaluating the information and making a recommendation, and finally making a decision. The submodel to represent this might look like this:
Information related to the “Credit Check” process can be appropriately categorized based on this sub-model. For example, all information collected or received at or for the step of Application Review can be categorized with the category SMEnterprise.Process.Step{Value=“ReviewApplication”}. Information can also be categorized based on, for example, Deal, SalesRep etc. Information assets so categorized can be easily searched. Examples of searches can include:
At the last step, the information asset is tagged and similar notation could be used in a search query. Such a search query may be expressed in terms of categories in this sub-model. Search queries formed from categories can be entered by a user, or created programmatically using a special-purpose search engine, or any other suitable method. Information assets retrieved using these search queries will then be relevant to the particular sub-model and the categories defined therefore.
The system also provides similar means for an administrator of the system category directory to define concepts, such as templates for new processes—the various categories or attributes that may be associated with each process, and for some of them, the attribute value ranges. The types of queries required with regard to a process will dictate the template to be created by the system administrator for tagging assets relevant to that process.
When the system includes the workflow engine 1308 that maintains awareness of process states, the system can provide an even more dynamic process view. A message, such as an e-mail message or a voice message, may be tagged, or categorized, based on how the message relates to the steps of a process or processes. A user no longer needs to “remember” the state the process is in, or what the next step is, for categorization purposes—all that information can be maintained by the workflow engine, and offered up for selection of categorization options, or entered automatically by the system or by the workflow engine. Information assets delivered by, or created independent of, messages can also be categorized with the help of the workflow engine 1308.
For example, a sender might specify a required deadline for the recipient to take the next step in the workflow. Knowing the state the process is in and the next steps, the system can take the requested action and put a task to complete the next step on the recipient's “to do” list with the requested deadline. This allows a workflow engine to use category information for routing and state processing purposes. Thus, information delivered together with the request can be categorized appropriately as belonging to the next step. Rather than having to read the message and deciding the next step, the recipient will automatically have a “new” task entry entered into his calendar. A query for newly scheduled activities (all of them, or perhaps only those associated with a particular process or workflow) will then display the proper context and content to the receiver. All information captured and categorized as belonging to the next step can also be indexed and searched and then provided to the receiver upon commencing the next step, or the task. This tends to be more efficient than reading, parsing and planning action on the basis of an e-mail message that reads, for example, “About securing approval for that hiring requisition [. . . ] and you need to get this to your supervisor by next Friday, or sooner if possible . . . ”. Instead, the message is tagged as belonging to a “security approval” step in hiring process and a task associated with the step is automatically created.
As another example, the system allows context-sensitive IM (instant messaging) session initiation. For example, if a first user is reading an e-mail message and as a result decides to initiate an IM session with a second user, the session will be categorized, by default, in the same manner as the e-mail message. The second user will see the IM request with those categories, and can use that information to decide whether to join the session. By the same token, the IM session, once completed, will be saved under the same categories associated with the e-mail message that promoted the initiation of the IM session. This helps keep all information assets properly categorized and stored, which facilitates category based indexing and searching and eventual easy retrieval of information.
In a further variation, some users may have several different representations of categorization, or “profiles”. For example, a user may categorize information associated with work in one way and categorize other information based on a different classification scheme. The user may then create or use a “work profile” for categorizing work related information and create or use another profile, for example a “home profile”, for categorizing information not strictly related to work. A user may designate one of the two profiles (or more profiles, if more have been established) as an active profile, so that during a negotiation session, the active profile, and none of the other profiles, will be used. As described before, a user's presence information can also be used for selecting a profile and a representation of categories for a negotiation session. The system may help automating the process in designating an active profile.
Referring to
Numerous examples have been provided to illustrate the categorization process and the management of representations of categorization, with references to systems that include categorization server and those that do not. It will be appreciated that providing a categorization server is only for convenience, and many features of the present invention can be realized without a categorization server. For example, in a peer-to-peer configuration, membership of users in such an individually managed configuration is generally assigned by each user. Each user may accept requests from other users to “register” and assign an appropriate membership to these other users. As a more concrete example, a user may assign all family members and relatives to a first group and all colleagues to a second group. Members of the first group and second group may share a common portion of categories, now agreed to by all members of the groups. Individual members may all have their own private categories, selectively exposable to members of the first group only, members of the second group only, or only a few other users, not decided by group membership. Each user may also retain copies of and manage mappings of categories from the user's categories to the other users' categories. This functionality may be provided by a modified version of the categorization and negotiation agent 1304. The modified agent may act like the categorization server described earlier. That is, the modified agent records mappings used during any negotiation and categorization session, identifies indirect mappings that may involve intermediate users, finds the optimized indirect mappings, etc. As now each user stores only mappings known to the user, the user may not know all mappings between other users. The modified agent can query agents of other users for these other mappings in order to identify all available indirect mappings, or all indirect mappings involving a pre-selected number of intermediate users.
Similarly, when a sender updates its representation of categorization during a negotiation and categorization session, for example, by creating a new category or creating a new mapping, such change may be “propagated” to other users. The propagation may be simply a notification of the change, so the other users will have the information when next time communicating with the sender as well as the recipient(s) involved. The propagation may also be sending a copy of modified representation to other users for other users to update their own representation accordingly. This will also allow each user as well as all other users communicating therewith to update their representations of categorization over time, i.e., to evolve their categorization models.
In one implementation, the modified agent incorporates all functionality of the categorization server, including its management module, the system category directory and the authentication server, and can thus act entirely independently in a peer-to-peer configuration without any support from a system categorization server, system category directory etc.
Various embodiments of the invention have now been described in detail. Those skilled in the art will appreciate that numerous modifications, adaptations and variations may be made to the embodiments without departing from the scope of the invention. Since changes in or additions to the above-described best mode may be made without departing from the nature or scope of the invention, the invention is not to be limited to those details provided for illustration but only by the appended claims.
This application is a continuation-in-part application of U.S. application Ser. No. 10/774,877 filed Feb. 10, 2004, which is a non-provisional version of U.S. provisional application No. 60/319,951 filed Feb. 17, 2003.
Number | Date | Country | |
---|---|---|---|
60319951 | Feb 2003 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 10774877 | Feb 2004 | US |
Child | 11551117 | Oct 2006 | US |