1. Technical Field
The present invention relates in general to a system and method for context-specific instant messaging. More particularly, the present invention relates to a system and method for invoking a message session based upon the location of a user action that corresponds to a particular object type.
2. Description of the Related Art
Communication and collaboration have quickly become key elements of enterprise software. One feature that exists in enterprise software packages is the ability for a user to conduct a “chat” session with other online users (e.g., instant messaging).
Enterprise software typically invokes a chat session in a generic context. Meaning, a user selects a recipient, and the enterprise software invokes a chat session between the user and the recipient without regard for the user's purpose for communicating with the recipient. However, users do not typically enter into chat sessions with other users for leisurely conversation. Instead, a user is prompted or triggered by the presence of an individual's name in a specific context. For example, a user may be reviewing a document that was written by an individual and, in this example, the user may wish to receive more information from the individual regarding the particular document. A challenge found is that when a user initiates a generic chat session, the user must include the purpose and the context of the chat session.
Another challenge found is that when a recipient receives a message, the recipient typically spends time trying to identify the context of the message. For example, if a recipient receives a message that states “What time is our meeting?” and the recipient has many meetings scheduled, the recipient may spend time researching multiple calendar entries before identifying the meeting that corresponds to the message.
What is needed, therefore, is a system and method for users to efficiently communicate based upon the context of a user's environment.
It has been discovered that the aforementioned challenges are resolved using a system and method that invokes a message session based upon the location of a user action that corresponds to a particular object type. A user views a page of data that is segmented into regions. The user performs a user action and, in turn, a message generator displays context-specific phrases for the user to select based upon the region that the user action was performed. The user selects one of the context-specific phrases, and the message generator invokes a message session between the user and a recipient based upon the selected context-specific phrase.
A user instructs his client to display a user interface window that corresponds to a particular object type. The client identifies the selected object type, and displays a corresponding user interface window that is segmented into regions.
The user positions his pointer over a particular region and performs a user action, such as a right mouse click. A message generator identifies the region where the user action was performed, and retrieves context-specific phrases from a storage area that correspond to the identified region.
Once the message generator collects the context-specific phrases, the message generator displays the phrases in a phrase window. The user views the context-specific phrases, and selects one of the phrases in the phrase window. In turn, the message generator invokes a context-specific message session and includes the selected phrase in the context-specific message session.
The message generator also includes a link to the object that corresponds to the user interface window, such that the message recipient may easily view the object. The message generator also allows the user to add additional text into the context-specific message session and, when the user is finished, the message generator sends a context-specific message to the recipient based upon the context-specific message session. The user and the recipient may pass messages to each other until the user or the recipient close the context-specific message session.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention, which is defined in the claims following the description.
The user positions pointer 130 over region 128 and performs a user action, such as a right mouse click. As one skilled in the art can appreciated, a use may navigate around a user interface window using other means, such as using tab buttons. Message generator 140 detects that the user action was performed, and retrieves context-specific phrases from data store 160 that correspond to region 128. For example, if a region corresponds to a meeting location and the region does not include a particular meeting location, message generator 140 may retrieve a context-specific phrase such as “Where is the meeting?” Another example is when a region corresponds to a meeting time and context-specific phrases may be time-sensitive. In this example, the user action may be performed is past the meeting time and message generator 140 may retrieve a context-sensitive message such as “I'm running a few minutes late to the meeting.” Yet another example is when a region corresponds to meeting participants, in which case the context-specific phrase may include recipient identifiers and, in turn, the user may choose which meeting participant to send a message.
In one embodiment, an administrator may manage the context-specific phrases that correspond to particular objects. In this embodiment, the administrator may disable phrases, modify existing phrases, or create new phrases that are associated with various object types.
Once message generator 140 collects the context-specific phrases, message generator 140 displays the phrases in phrase window 160. The user views the context-specific phrases, and selects one of the phrases in phrase window 160. In turn, message generator 140 invokes message session 170 and includes the selected phrase in message session 170. For example, if the user selects the phrase “Where is the meeting?”, message generator 140 includes the “Where is the meeting?” phrase in message session 170 and addresses message session to the meeting chair. In another example, if the user selects a particular meeting participant to send a message, message session 170 addresses the session to the selected meeting participant.
Message generator 140 includes a link to window 120's corresponding object in message session 170 such that a message recipient may easily view the object (e.g., meeting entry, online document, etc.). Message generator 140 also allows the user to add additional text into message session 170 and, when the user is finished, message generator 140 generates message 180 based upon message session 170 (see
Message generator 140 sends message 180 to recipient client 190 over computer network 185, such as the Internet. Recipient client 190 corresponds to the recipient address of message session 170. Using the example described above, if message session 170 was addressed to the meeting chair, recipient client 190 is the meeting chair's client computer system. Client 110 and recipient client 190 may pass messages to each other until the user or recipient client 190's user close message session 170.
A user may invoke a context-specific message session by positioning pointer 255 over a particular region and performing a user event, such as a right mouse click. The example shown in
In turn, the message generator displays the context-specific phrases in phrase window 260. The example shown in
As can be seen, the message generator retrieved and displayed context-specific phrases that correspond to region 250 in phrase window 280. Since region 250 corresponds to meeting participants, the user may send a message to participant B, participant C, or the group by selecting phrase 282, 284 or 286, respectively.
The user invokes the context-specific message by positioning pointer 310 over the sentence in question, and performs a user action (e.g., right mouse click). In turn, a message generator retrieves context-specific phrases corresponding to the document, and displays the phrases in phrase window 320. As can be seen in
When the user selects either phrase 330 or 335, the message generator opens a message session window that is addressed to the document owner and includes a link to the document and sentence. The user is able to add other text into the message session, and the message generator sends the context-specific message to the document owner (see
The message generator addresses the message session to a particular recipient and includes a recipient identifier in box 345, which may be the object owner or it may be a meeting participant. The example in
The message generator includes the context-specific phrase in window 340 that was selected by the user, which is shown in box 350. The example shown in
The message generator also allows a user to type in additional text in area 370 if the user wishes to add additional comments or questions besides the context-specific phrase. When the user wishes to send the message to the recipient, the user selects command button 375. If the use wishes to send the message to other recipients and include them in the message session, the user selects command button 380 and the message generator opens a directory window for the user to select other recipients. When the user wishes to close the message session, the user selects command button 390, which closes window 340 and the message session ends.
At step 420, processing retrieves the object from data store 150 and displays a corresponding user interface window for the user to view (e.g., details of a meeting). The user interface window includes a page of data that is segmented into regions, which are context-specific. Using the example describe above, the user interface window may include regions that correspond to the location of a meeting, the time of the meeting, and meeting participants. Data store 150 is the same as that shown in
The user views the user interface window, and performs a user action within one of the regions on the page of data, which processing receives at step 430. At step 440, processing identifies the region that the user action was performed. Processing then retrieves context-specific phrases corresponding to the identified region from data store 150, and stores the context-specific phrases in temporary store 465 (pre-defined process block 450, see
Context-specific phrases are particular to the object type as well as the identified region. For example, if the identified region corresponds to a meeting location, a context-specific phrase may be “Where is the meeting?” Another example is when the identified region corresponds to a meeting time, in which case a context-specific phrase may also be time-sensitive, such as “I'm running a few minutes late to the meeting.” Yet another example is when the identified region corresponds to meeting participants, in which case the context-specific phrase may include recipient identifiers and, in turn, a user may choose which meeting participant to send a message.
Processing displays the context-specific phrases for the user to view at step 460. The user views the context-specific phrases, and selects one of the phrases, which processing receives the selection at step 470. At step 480, processing invokes a message session and sends a context-specific message to recipient clients 485 (pre-defined process block 480, see
Processing commences at 500, whereupon processing retrieves context-specific phrases from data store 150 that correspond to the identified region (step 510). Data store 150 is the same as that shown in
Context-specific phrases may also be time-sensitive. For example, if the identified region corresponds to a meeting time and the user event occurred after the meeting commenced, a context-specific phrase may be “I'm running a few minutes late to the meeting.” Using the same example, if the user event occurred before the meeting commenced, a context-sensitive phrase may be “I may be a few minutes late to the meeting.” A determination is made as to whether the identified region corresponds to time-sensitive phrases (decision 520). If the identified region corresponds to time-sensitive phrases, decision 520 branches to “Yes” branch 522 whereupon processing retrieves a current time from clock 528 at step 525. Clock 528 is a device that tracks the time of day, such as a system clock.
At step 530, processing retrieves time-sensitive metadata from the object that corresponds to the identified region. For example, for a meeting object, processing may retrieve the time that the meeting is scheduled to start.
Processing identifies valid time-sensitive phrases by comparing the current time with the retrieved time metadata, and stores the valid time-sensitive phrases in temp store 465 (step 535). Using the example described above, if the meeting started before the user event, the phrase “I'm running a few minutes late to the meeting” may be stored in temporary store 465. Temporary store 465 may be stored on a nonvolatile storage area, such as a computer hard drive. On the other hand, if the identified region does not correspond to time-sensitive phrases, decision 520 branches to “No” branch 528 bypassing time-sensitive phrase-storing steps.
A determination is made as to whether the identified region corresponds to recipient identifiers. For example, a user may perform a user action in a region that corresponds to meeting participants in order to send a message to one of the participants. If the identified region includes recipient identifiers, decision 540 branches to “Yes” branch 542 whereupon processing retrieves the recipient identifiers from the object that corresponds to the identified region at step 550. Processing generates context-specific phrases that include the recipient identifiers and stores the phrases in temporary store 465 at step 560. For example, if a recipient identifier is “Participant A,” processing generates a context-specific phrase such as “Chat with Participant A?”
Processing includes other context-specific phrases that correspond to the identified region in temporary store 465 at step 570. These phrases may include phrases such as “Where is the meeting?”, “When is the meeting?”, and “What does this sentence mean?” Processing returns at 580.
A determination is made as to whether the user selected a context-specific phrase that included a recipient identifier, such as “Chat with Participant A” (decision 620). If the user did select a context-specific phrase that includes a recipient identifier, decision 620 branches to “Yes” branch 628 whereupon processing retrieves recipient information from temporary store 165 and addresses message session 170 to the corresponding recipients (step 630). On the other hand, if the selected context-specific phrase did not include a recipient identifier, decision 620 branches to “No” branch 622 whereupon processing addresses message session 170 to the owner of the corresponding object at step 625. Temporary store 465 is the same as that shown in
Processing retrieves context-specific phrases that were selected by the user from temp store 465, and includes the phrases in message session 170 (step 640). At step 650, processing includes an object link corresponding to the object in message session 170 that allows a message recipient to easily view the object that corresponds to the message. For example, if the message corresponds to a meeting, the object link is a link to the meeting entry. In another example, if the message is in regards to a sentence in a document, the object link is a link to the sentence in question within the document.
A determination is made as to whether the user wishes to include additional text in message session 170, such as “Can I invite Participant D to the meeting” (decision 660). If the user wishes to include additional user text, decision 660 branches to “Yes” branch 662 whereupon processing receives text from the user and includes the text in message session 170 (step 670). On the other hand, if the user does not wish to add additional text, decision 660 branches to “No” branch 668, bypassing text inclusion steps. The user is the same as that shown in
At step 680, processing sends a context-specific message to recipients 485 based upon message session 170. The user and recipients 485 may continue to send messages to each other until message session 170 closes. Recipients 485 are the same as that shown in
PCI bus 714 provides an interface for a variety of devices that are shared by host processor(s) 700 and Service Processor 716 including, for example, flash memory 718. PCI-to-ISA bridge 735 provides bus control to handle transfers between PCI bus 714 and ISA bus 740, universal serial bus (USB) functionality 745, power management functionality 755, and can include other functional elements not shown, such as a real-time clock (RTC), DMA control, interrupt support, and system management bus support. Nonvolatile RAM 720 is attached to ISA Bus 740. Service Processor 716 includes JTAG and I2C busses 722 for communication with processor(s) 700 during initialization steps. JTAG/I2C busses 722 are also coupled to L2 cache 704, Host-to-PCI bridge 706, and main memory 708 providing a communications path between the processor, the Service Processor, the L2 cache, the Host-to-PCI bridge, and the main memory. Service Processor 716 also has access to system power resources for powering down information handling device 701.
Peripheral devices and input/output (I/O) devices can be attached to various interfaces (e.g., parallel interface 762, serial interface 764, keyboard interface 768, and mouse interface 770 coupled to ISA bus 740. Alternatively, many I/O devices can be accommodated by a super I/O controller (not shown) attached to ISA bus 740.
In order to attach computer system 701 to another computer system to copy files over a network, LAN card 730 is coupled to PCI bus 710. Similarly, to connect computer system 701 to an ISP to connect to the Internet using a telephone line connection, modem 775 is connected to serial port 764 and PCI-to-ISA Bridge 735.
While the computer system described in
One of the preferred implementations of the invention is a client application, namely, a set of instructions (program code) in a code module that may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, in a hard disk drive, or in a removable memory such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, that changes and modifications may be made without departing from this invention and its broader aspects. Therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases “at least one” and “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an”; the same holds true for the use in the claims of definite articles.
Number | Name | Date | Kind |
---|---|---|---|
7117445 | Berger | Oct 2006 | B2 |
20030037112 | Fitzpatrick et al. | Feb 2003 | A1 |
20030058277 | Bowman-Amuah | Mar 2003 | A1 |
20040064514 | Daniell et al. | Apr 2004 | A1 |
20040078448 | Malik et al. | Apr 2004 | A1 |
20040078596 | Kent, Jr. et al. | Apr 2004 | A1 |
20040111479 | Borden et al. | Jun 2004 | A1 |
20070061753 | Ng et al. | Mar 2007 | A1 |
20080077558 | Lawrence et al. | Mar 2008 | A1 |
Number | Date | Country |
---|---|---|
1361765 | Nov 2003 | EP |
Number | Date | Country | |
---|---|---|---|
20060224722 A1 | Oct 2006 | US |