The present invention relates generally to instant messaging and presence. More particularly, the invention relates to a system and method for synthesizing instant messages and presence attributes from multiple information sources. The information sources may be of various types, including polled, queried and event-driven sources. Synthesis of instant messages may be effected using translation, correlation, semantic analysis and other processing techniques.
In its conventional form, instant messaging allows users to exchange short text messages in real time. This form of communication may be distinguished from e-mail, which is a store and forward communication scheme that is perhaps better suited for large messages and attachments. While e-mail may take considerable time to reach the destination, instant messages are transferred in real time and are well suited for interactive communication. Text chat and voice chat have proven to be widely popular forms of instant message communication. Often associated with instant messaging is a service called “presence.” Roughly speaking, presence corresponds to a set of attributes that users of the messaging system can manipulate to advertise their availability for message communication. An exemplary data format for presence might include attributes such as the user's status (online, offline, busy, away, do not disturb) and also any necessary communication address information by which others may initiate a communication session with that user.
Conventional instant messaging and presence systems have been traditionally focused on communication among users, simulating in a “chat” format a conversation or dialogue among two or more parties. The present invention departs from the conventional “chat” paradigm. It seeks to synthesize instant messages and presence attributes from multiple information sources. Numerous benefits result:
According to one aspect of the invention, the system for synthesizing instant messages includes a synthesis module that may be adapted to access a variety of different information sources, including information sources that provide notification messages asynchronously as well as information sources that traditionally must be polled or queried. The synthesis module converts from polled or queried information into synthesized instant messages. These synthesized messages may, in turn, be correlated with information from other sources and a further synthesized message is then generated using semantic analysis to generate a summarized instant message. In addition to generating synthesized instant messages, the synthesis module can also set presence attributes and provide device control instructions that can be used to perform actions as a result of the semantic analysis performed.
Further areas of applicability of the present invention will become apparent from the detailed description provided hereinafter. It should be understood that the detailed description and specific examples, while indicating the preferred embodiment of the invention, are intended for purposes of illustration only and are not intended to limit the scope of the invention. Accordingly, for a more complete understanding of the invention, its objects and advantages, refer to the remaining specification and to the accompanying drawings.
The present invention will become more fully understood from the detailed description and the accompanying drawings, wherein:
The following description of the preferred embodiment(s) is merely exemplary in nature and is in no way intended to limit the invention, its application, or uses.
The system for synthesizing instant messages is capable of gathering data from many different types of information sources. Three exemplary sources are illustrated in
Information source 12 is somewhat more sophisticated, in that it is configured to respond to specific queries from users. Information source 12 does not automatically send information to users, but rather it waits until it receives a user's query. An example of information source 12 might be a database containing historic stock price information, or a website containing pages of information accessible through user selection. In the former case, the user query may be represented in a standardized query language, such as SQL. In the latter case, the query can comprise the URL of the requested page of information, optionally including additional parameters to define what the user is requesting.
Information source 14 is different from sources 10 and 12 in that it actively analyzes the information under its control and sends a notification to users when relevant information is located. Users subscribe to information source 14, giving their identity and the specific requirements of the information they are seeking. An example of information source 14 might be a real-time stock price notification system that sends notification messages to subscribed users when the stocks of interest to those users change in price.
As the three types of information sources illustrated in
Referring again to
For example, if information source 10 is a radio broadcast and the user is interested in traffic information that might affect his or her drive home, the system at module or step 18 converts the incoming speech data received from the broadcast into text data using a suitable speech recognizer. The text is then further scanned to look for relevant keywords that would indicate a traffic report in progress. When such relevant keywords are identified, the portion of the text associated by proximity with the keywords is then extracted and compiled into an instant message. In other words, the system at module or step 18 would listen to the AM broadcast on the user's behalf and would then identify relevant segments of the broadcast to be repackaged as instant messages that can be sent to the user.
Note that the user does not even have to use the same form of receiver as the information source is broadcasting. The system 16 of the invention converts the information into an instant message, so that the message can be sent to any instant message-capable device. Thus an alert of a traffic accident, originally broadcast on AM radio, might be sent as an instant message to the user's car navigation system.
While the system at module or step 18 converts polled and queried information sources into instant messages, the messages incoming from information source 14 may not require similar processing. This is because messages from source 14 are already in a notification format. Thus these messages can be readily utilized as instant messages. Of course, in some instances, the formatting of the message may need to be changed to conform to instant messaging standards.
One powerful feature of system 16 is its ability to synthesize new messages based on plural information sources. This capability is provided at module or step 20. At module or step 20 information from multiple sources are correlated. The correlation is performed by tagging incoming messages from source 14 and synthesized instant messages generated by module or process step 18 so that relevant messages pertaining to the same subject matter can be correlated. In one embodiment, the tagging of messages for correlation can simply rely upon keywords found in the instant messages themselves. In a more sophisticated correlation model, messages can be correlated using statistical processing. For example, latent semantic indexing may be performed upon the instant messages to thereby discover which messages have a high probability of being related to the same subject. In some instances, a simple correlation technique may be implemented to correlate messages based on matches in certain fields within the message data structures. Thus for example, messages can be correlated using rules such as, “correlate all messages from John that were initially sent within the last four hours.”
Once a group of messages have been correlated at step 20, system 16 then performs a summarization operation at step 22. The system generates a new, synthesized instant message, based on the content of the correlated messages obtained at step 20. Semantic analysis is preferably used for this purpose.
After the system generates the summarized instant message at step 22, it can then optionally send the summarized message as a new instant message as at 24, or it can perform some other operation. Thus, as illustrated at 26, system 16 can set presence attributes based on the summarized instant message. System 16 can also perform other device control operations and perform other actions, as desired.
One presently preferred architecture for implementing the instant messaging system 16 has been shown in
The preprocessing module 30 transforms raw information into data that can be conveniently processed by the subsequent components. Some examples of such transformation include:
The event detection module 32 analyzes the information provided by the preprocessing module 30. It determines whether a particular event has happened, plus other information relevant to the event. The user can specify rules to be used in this detection. If desired, a natural language parser may be used so the user can specify rules using a natural description and the system transforms that description into rules using an intelligent agent. Examples of such events detection include:
The event detection module is preferably capable of working in polling mode. That is, the user or other components in the gateway can inquire of the event detection module for the event status. It is conceivable that for some events only the polling mode may be needed.
Information source 14 (
The outputs of modules 32 and 34 thus both represent event information that the user has expressed an interest in. The event information can be expressed as instant messages, or in some other data structure used internally by system 16.
The event information is then fed to the translation, correlation and synthesis module 36. This module utilizes a set of rules 38 to process the incoming event data and perform the correlation and synthesis (including summarizing) operations discussed in connection with
The translation, correlation and synthesis module 36 essentially performs event aggregation and translation services. This entails three main functions:
As illustrated, system 16 determines what action should be performed upon receipt of an event notification generated by module 36. It can notify the user via a communication means (e.g., mobile phone, short message) specified by the user, or it can control some home device via a home network. Some action decisions may depend on certain patterns of multiple events. Thus the rules 38 may include information used by an action rules engine that detects those patterns of multiple events.
The components illustrated in the architecture of
The system for synthesizing instant messages and presence attributes has a variety of uses. Before giving examples of such uses, an understanding of the overall information flow may be helpful. Refer to
After the information has been suitably packaged, it is then delivered as at step 56. In a presently preferred embodiment the delivery can be through an event gateway, which is illustrated diagrammatically at 60. The event gateway represents a powerful new system that is made possible, in part, by the system for synthesizing instant messages discussed above.
Although the system for synthesizing instant messages (system 16 in
For example, by configuring home appliances (e.g., refrigerator, home security system, entertainment system) as information sources, the event gateway could monitor the state of these appliances and provide that information to the user wherever the user happens to be. Thus, driving home from the office the user could use the event gateway system to query the state of the refrigerator, to determine if he or she needs to stop to buy milk on the way home from work. The same event gateway system would also potentially be responsible for monitoring traffic conditions, weather conditions, and a variety of other synthesized events. Regarding synthesized events, these can be constructed from any information sources that the user wishes. Thus the event gateway can serve as a very rich source of information whose outputs may be carefully filtered to provide, in summarized fashion, only the information the user needs at the particular moment.
To further understand some of the capabilities of the present invention, a series of use case scenarios will now be discussed. It will, of course, be understood that these are merely examples of what the system is capable of. There are many other possibilities.
Bob wishes to know when Alice will be offline so that he can call her. He inputs Alice's phone number into the system. The system automatically polls the status of Alice's phone line by dialing Alice's phone number every five minutes to see whether the line is busy. Once the line is free, the system notifies Bob by playing some sound. The rules established to perform this automatic polling and notification function can be configured so that the automatic dialing will hang up as soon as the line free is detected. This will prevent or minimize ringing of Alice's phone and thereby minimize annoyance to Alice.
Bob wants to call Alice to tell her something, but she seems to be online eternally. Bob is in a hurry for a meeting and won't be able to call her in the next few hours. As in scenario one, Bob inputs Alice's phone number into the system. In addition, Bob records a voice message for Alice in the system. The system keeps polling the status of Alice's phone line, as in Use Case 1. Once the system detects her phone line is free, the system calls Alice and plays back the recorded voice message (either to Alice or to her phone message recorder).
Bob ordered something online and wishes to be notified in advance when the package will be delivered by UPS. He inputs the tracking number into the system. The system polls the UPS tracking website with the tracking number every hour. The system calculates the distance between the last package scan location and Bob's home location (probably by polling another webpage like MapQuest). Once the distance is smaller than a certain number, the system sends a notification message to Bob's mobile phone.
Bob is watching a tennis match between Agassi and Sampras on TV, but rain has interrupted the match. Bob wants to go out and play tennis with his friend but he does not want to miss the match if it is resumed later. He inputs into the system the sentence “Tennis match between Agassi and Sampras resumes from rain interruption” for “event description.” The system keeps monitoring the closed caption data of the TV sports channel using a complex semantic analysis. Once the system detects information in the captions that is semantically equivalent to the event description supplied by Bob, it sends a notification message to Bob, or starts Bob's VCR to record the match.
Bob is on vacation far from home. He wants to be notified of any unsuspected approach to the front door of his home. Whenever a person approaches his front door, an intelligent surveillance camera generates a notification message through the home network. When the system receives such a notification, it polls the UPS website with the tracking numbers of all packages shipped to Bob (or to Bob's home address) plus a password, if the UPS webpage requires such). The system then checks whether a package is scheduled to be delivered on that day (this would perhaps be represented as “out for delivery” status for the package on the UPS website.) If there is no package being delivered that day, an “unexpected approach” notification message is generated, with picture of the person being sent as part of the message to Bob's mobile phone.
The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.