Abstract:
Embodiments of the present invention address deficiencies of the art in respect to question and answer management in a collaborative environment, and provide a novel and non-obvious method, system and apparatus for synchronizing questions and answers in an instant messaging session. In one embodiment of the invention, a method of synchronizing questions and answers in an instant messaging session can be provided. The method can include maintaining an instant messaging session between first and second participants, identifying questions and answers in the instant messaging text, matching each of the answers to a corresponding one of the questions, and displaying the matched questions and answers supplementally to the displaying of the chat transcript, ensuring that a participant does not overlook a question where response on their part is required.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    Field of the Invention 
         [0002]    The present invention relates to the field of collaborative computing and more particularly to instant messaging in a collaborative computing environment. 
         [0003]    Description of the Related Art 
         [0004]    The recent rapid development of the Internet has led to advanced modes of synchronous, real-time collaboration able to fulfill the real-time communicative requirements of the modern computing participant. Using the Internet or a corporate intranet as a backbone, individuals worldwide can converge in real-time in cyberspace to share ideas, documents and images in a manner not previously possible through conventional telephony and video conferencing. 
         [0005]    To facilitate collaboration over the Internet, a substantial collection of synchronous messaging technologies and protocols have been assembled to effectively deliver audio, video and data over the single data communications medium of the Internet. These synchronous messaging technologies include several, real-time human-to-human collaborative environments such as instant messaging and persistent chat rooms. The common messaging space can accommodate a pair of users to a chat, or multiple users to a conference. In some circumstances, the initiation of the chat can be spontaneous upon one user&#39;s recognizing the presence and availability of a partner user. In other circumstances, the initiation of the chat can be planned and can even subsist in a calendared event in a calendaring and scheduling system. 
         [0006]    Amongst often used collaborative components in a collaborative environment, instant messaging remains of paramount importance. In instant messaging systems, users are provided with instant messaging client software, which allows them to communicate via an instant messaging server with other users. Although instant messaging systems allow users to communicate with each other in real-time, these existing instant messaging systems have several deficiencies with regard to harmonizing instant message communications sometimes, especially preventing ambiguity in questions and answers between different collaborators. 
         [0007]    Consider an example of a user who has a number of questions the user wants to discuss with another user via instant messaging. When involved in a chat session, a user may send multiple questions to another user. In such a case, it is easy for one user to reply to one question and type another, while the other user is still answering the first question. As can be appreciated, even though the typical user interface of an instant messaging client displays the messages in chronological order, displaying questions and answers in chronological order may not be helpful since it is fairly easy to overlook multiple questions with their corresponding answers which are usually out of logical order in a single chat window. This can lead to confusion in carrying out an ongoing session as well as difficulty in reading a stored log of the chat transcript. 
       BRIEF SUMMARY OF THE INVENTION 
       [0008]    Embodiments of the present invention address deficiencies of the art in respect to question and answer management, and provide a method, system and computer program product for synchronizing questions and answers in an instant messaging session. In one embodiment of the invention, a method of synchronizing questions and answers in an instant messaging session can be provided. The method can include maintaining an instant messaging session between first and second participants, for instance a customer service representative and a customer, identifying questions and answers in instant messaging text for the instant messaging session, matching each of the answers to a corresponding one of the questions, and displaying the matched questions and answers supplementally to the displaying of the instant messaging text. 
         [0009]    In one aspect of the embodiment, displaying the matched questions and answers supplementally to the displaying of the instant messaging text can include displaying the matched questions and answers in a window that is separate from a window displaying of the instant messaging text. In another aspect of the embodiment, matching each of the answers to a corresponding one of the questions can include for each of the questions and the answers, identifying a threshold number of common words in a question and answer in order to determine a match. In yet another aspect of the embodiment, the method further can include removing a matched one of the questions and answers from the supplemental display responsive to a selection of the matched one of the questions and answers. Finally, in even yet another aspect of the embodiment, displaying the matched questions and answers supplementally to the displaying of the instant messaging text can include displaying the matched questions and answers based on chronological order of when the question was first asked. 
         [0010]    In another embodiment of the invention, a collaborative computing data processing system can be provided. The system can include an instant messenger configured to maintain an instant messaging session between first and second participants, an agent coupled to the instant messenger; and, instant messenger question and answer synchronization logic. The logic can include program code enabled to display an initial chat transcript of instant messaging content between first and second participants to the instant messaging session, to identify questions and answers in the instant messaging content, to match each of the answers to a corresponding one of the questions, and, to display the matched questions and answers supplementally to the displaying of the chat transcript. 
         [0011]    Additional aspects of the invention will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The aspects of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention, as claimed. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0012]    The accompanying drawings, which are incorporated in and constitute part of this specification, illustrate embodiments of the invention and together with the description, serve to explain the principles of the invention. The embodiments illustrated herein are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown, wherein: 
           [0013]      FIG. 1  is a pictorial illustration of an instant messenger configured for question and answer synchronization; 
           [0014]      FIG. 2  is a schematic illustration of a collaborative computing data processing system configured for synchronizing questions and answers in an instant messaging session; and, 
           [0015]      FIG. 3  is a flow chart illustrating a process for synchronizing questions and answers in an instant messaging session. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0016]    Embodiments of the present invention provide a method, system and computer program product for synchronizing questions and answers in an instant messaging session. In accordance with an embodiment of the present invention, an instant messaging session can be established and maintained as between at least two participants in a collaborative environment. One participant can pose a question to another participant within text in the instant messaging session. Upon posting the posing the question, the question can be displayed supplementally to the displaying of the text. Subsequently, the matching of each of the answers to a corresponding one of the questions can be implemented from within an instant message. Thereafter, the displaying of the matched questions and answers supplementally in a sequence in the displaying of the chat transcript can be provided such that synchronizing questions and answers can ensure that a participant does not overlook a question where response on their part is required. 
         [0017]    In further illustration,  FIG. 1  is a pictorial illustration of an instant messenger configured for synchronizing questions and answers. As shown, an instant messaging client  110 A can support an instant messaging session between different participants. The instant messaging session can be represented within instant messaging session text  120 . Individual participants to the instant messaging session can provide entries to the instant messaging session text  120  through message entry field  130 . Upon selecting a send control  140 , content provided in the message entry field  130  can be added to the instant messaging session text  120 . Notably, questions and answers can be synchronized from within the instant messaging session text  120 . 
         [0018]    To initiate synchronization for questions and answers in the instant messaging session text  120 , questions and answers can be identified in the instant messaging session text  120  and each of the answers to a corresponding one of the questions can be matched by either manual intervention from the participant or automatic synchronization. 
         [0019]    In automatic synchronization, questions and answers can be automatically identified in the instant messaging session text  120  fragment by fragment, and each of the answers to a corresponding one of the questions can be matched. Thereafter, when a fragment is automatically denoted as a question, automatic synchronization logic can augment the instant messaging client  110 B with a supplemental display transcript  170 . Consequently, the supplemental display transcript  170  can illustrate a reorganized logical sequence of a matching pair of question and its corresponding answer  180 . 
         [0020]    Alternatively, manual synchronization can be provided. Manual synchronization can include highlighting a fragment  115  within the instant messaging session text  120  and selecting an ask control  150 . By manually denoting a fragment as a question which a response is required, the sender participant  160  can ensure that the recipient participant  190  of the question will respond to the fragment. Once identified as a question, the ask control  150  can augment the instant messaging client  110 B with a supplemental display transcript  170  and display the pair of matching question and answer  185 . 
         [0021]    The synchronization of questions and answers process described herein can be embodied within a collaborative computing environment. In illustration,  FIG. 2  is a schematic illustration of a collaborative computing data processing system configured for synchronizing questions and answers in an instant messaging session. The system can include a host server  210  configured for communicative coupling to one or more collaborative clients  230  over computer communications network  220 . The host server  210  can support the operation of a collaborative environment  250  serving each of the collaborative clients  230  and managing collaborative data  270  for the collaborative clients  230 . 
         [0022]    Each of the collaborative clients  230  can provide a collaborative application  240 . The collaborative application  240  can include, for example, an instant messenger  240 A, and a Q&amp;A agent  240 B. It will be recognized by the skilled artisan, however, that any or all of the functional portions of the collaborative application  240  can be disposed in host server  210  as part of the collaborative environment  250  and provided to a lightweight client in collaborative client  230  such as a Web browser over the computer communications network  220 . 
         [0023]    Notably, instant messaging question and answer synchronization logic  260  can be coupled to the collaborative environment  250  through host server  210 . The logic  260  can include program code enabled to allow a participant&#39;s question in an instant messaging session to be matched with the corresponding answer made by another participant in an instant messaging session. Further, each matching pair of question and answer can be displayed in a supplemental display transcript. The order of display can based on, for example, chronological order of when the question was first asked, alphabetical order, or order the pairs by certain keywords, like a name or product number. 
         [0024]    In yet further illustration of the operation of portions of the instant messaging question and answer synchronization logic  260 ,  FIG. 3  is a flow chart illustrating a process for synchronizing questions and answers in an instant messaging session. Beginning in block  310 , an instant messaging session can be initialized between at least two participants. In block  320 , a fragment within the instant messaging session text can be retrieved. Since an instant message can contain multiple questions or answers, each instant message entry can be parsed into fragments based on, for example, punctuation. Next in block  330 , each fragment can be classified into a category. For instance, if the participant wants to manually synchronize the question and answer, then the fragment can be highlighted and the ask control unit can be activated to manually request a reply from the receiver participant. Further each fragment can be given an ID number to identify its category. 
         [0025]    In decision block  340 , it can be determined whether a fragment is a question towards a designated one of the participants in the instant messaging session. Determination can include accessing the collaborative data which can for example, contain question phrases such as “how”, “why”, or “do you know” that the Q&amp;A synchronization logic can utilize when determining whether a fragment is a question. Alternatively, the synchronization logic can determine whether a fragment is a question based on punctuation, such as the presence of a question mark “?”. Further, the synchronization logic can intelligently guess whether a fragment is a question by certain buzz words, such as “I don&#39;t understand” or “I&#39;m having trouble finding.” It will be recognized by the skilled artisan, however, that any or all of the functional portions of the Q&amp;A synchronization can be done on the client side also by utilizing the Q&amp;A agent. 
         [0026]    If the fragment is a question, then in block  350  each question fragment within the instant messaging text can be aggregated into a single supplemental transcript separately displayed from the initial chat transcript to the participants in their respective instant messaging clients. Further, the Q&amp;A agent can provide a confirmation mechanism, in which any time during the chat session, the participant can click on a displayed question in the supplemental display transcript and allow the participant to remove a specific question from the list of questions displayed. 
         [0027]    Next in decision block  360 , it can be determined whether a fragment is an answer. The Q&amp;A synchronization logic can identify the answer. Additionally in block  370  the Q&amp;A synchronization logic can be enabled to match an answer to its corresponding question based on common words with a potential question. In addition, in order to confirm the linkage of answer and question, the synchronization logic or Q&amp;A agent can prompt the participant if the matching is correct. In decision block  380 , it can be determined when all the questions and answers are done. If a participant attempts to doss the chat session before all the questions are answered, a small warning message can be displayed asking the participant if he/she really wants to close the chat session. Additionally, unanswered questions can be highlighted and brought to the attention of the participant. Further, the unanswered questions can be stored locally or on the server for next time the participants engage in a chat session. 
         [0028]    Other customization options can include, for example, color-coordinating questions and answers in the supplemental display transcript. Additionally, matched questions and answers can shown with strike-through. Each question and answer can be assigned an matching ID# or metadata. Additionally, in the event that an instant message includes a new question, it can be appended to the original questioner&#39;s supplemental transcript list of questions. 
         [0029]    Further enhancements can include enabling the Q&amp;A agent or Q&amp;A synchronization logic to have program code for monitoring things other than questions, such as, names, locations, or even finding a contact from the participant&#39;s address book or buddy list. For instance, when a participant states “I don&#39;t know but I&#39;m sure Bob Jones would know the answer to that.” Bob Jones name can be automatically searched in the participant&#39;s buddy list or address book and another chat window or email addressed to Bob Jones can be provided to the participant. Additionally, pre-defined possible answers to a certain question could be displayed to the participant and allow the participant to choose a pre-defined answer. 
         [0030]    Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, and the like. Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. 
         [0031]    For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD. 
         [0032]    A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.