1. Technical Field
The present disclosure relates to communication sessions and more specifically to providing resources just-in-time to a participant in a communication session based on context in the communication session.
2. Introduction
When an incoming or outgoing communication is initiated, such as an call or an instant message, the parties to the communication often must search for and access particular resources, such as documents, spreadsheets, contact information, To Do lists, other people, previously exchanged emails, and so forth. Searching for the correct resources takes time and can distract a person from speaking intelligently while tracking down the right document or information. Some call centers populate a call center agent's screen with a particular set of documents and/or information associated with an incoming caller, but the nature, type, and source of these documents are essentially the same for each caller and the general pattern of documents does not change.
Google desktop search and search functions in Microsoft exchange server, as well as some other enterprise search products can provide searching functions, but they do not offer the functions to automatically search for and retrieve related information based on the just-in-time context. Currently available solutions are limited to specific niche applications and are not generally applicable to the context of all incoming or outgoing communications for a user.
Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.
Disclosed are systems, methods, and non-transitory computer-readable storage media for providing just-in-time resources based on context. A system practicing the method first identifies a communication event associated with a user and a current context associated with the communication event and the user, and identifies a stored context based on, for example, communication content, communication session metadata, and contact information, that corresponds to the current context, wherein the stored context includes at least one resource such as a document, an agenda, a web page, and a communication history. The system can then retrieve and present the at least one resource to the user. The communication event can be receiving from a caller a request for communication or the user starting a communication session.
In another embodiment, the system stores a current context for later retrieval by first identifying a current communication context and resources associated with the current communication context. The system can then index the current communication content and resources to enable searchability, and store, as a stored context in a database, the current communication context and the resources associated with the current communication context. The system can optionally identify metadata associated with the current communication context, and store the metadata as part of the stored context in the database. The system can also track user interactions associated with the current communication context and update the stored context based on the user interactions. The system can further assist the user by identifying other resources, not associated with the current communication context, that are potentially relevant to the current communication context, ranking the other resources by potential relevance to yield ranked other resources, and storing references to at least part of the ranked other resources as part of the stored context in the database so that the user can then later easily retrieve these potentially relevant other resources based on a current communications context.
In order to describe the manner in which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Various embodiments of the disclosure are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure.
The present disclosure addresses the need in the art for retrieving resources based on context. A system, method and non-transitory computer-readable media are disclosed which retrieve and store resources on a just-in-time basis based on a current communication context. A brief introductory description of a basic general purpose system or computing device in
With reference to
The system bus 110 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. A basic input/output (BIOS) stored in ROM 140 or the like, may provide the basic routine that helps to transfer information between elements within the computing device 100, such as during start-up. The computing device 100 further includes storage devices 160 such as a hard disk drive, a magnetic disk drive, an optical disk drive, tape drive or the like. The storage device 160 can include software modules 162, 164, 166 for controlling the processor 120. Other hardware or software modules are contemplated. The storage device 160 is connected to the system bus 110 by a drive interface. The drives and the associated computer readable storage media provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computing device 100. In one aspect, a hardware module that performs a particular function includes the software component stored in a non-transitory computer-readable medium in connection with the necessary hardware components, such as the processor 120, bus 110, display 170, and so forth, to carry out the function. The basic components are known to those of skill in the art and appropriate variations are contemplated depending on the type of device, such as whether the device 100 is a small, handheld computing device, a desktop computer, or a computer server.
Although the exemplary embodiment described herein employs the hard disk 160, it should be appreciated by those skilled in the art that other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories (RAMs) 150, read only memory (ROM) 140, a cable or wireless signal containing a bit stream and the like, may also be used in the exemplary operating environment. Non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.
To enable user interaction with the computing device 100, an input device 190 represents any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech and so forth. An output device 170 can also be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems enable a user to provide multiple types of input to communicate with the computing device 100. The communications interface 180 generally governs and manages the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.
For clarity of explanation, the illustrative system embodiment is presented as including individual functional blocks including functional blocks labeled as a “processor” or processor 120. The functions these blocks represent may be provided through the use of either shared or dedicated hardware, including, but not limited to, hardware capable of executing software and hardware, such as a processor 120, that is purpose-built to operate as an equivalent to software executing on a general purpose processor. For example the functions of one or more processors presented in
The logical operations of the various embodiments are implemented as: (1) a sequence of computer implemented steps, operations, or procedures running on a programmable circuit within a general use computer, (2) a sequence of computer implemented steps, operations, or procedures running on a specific-use programmable circuit; and/or (3) interconnected machine modules or program engines within the programmable circuits. The system 100 shown in
Having disclosed some basic computing system components, the disclosure returns to a discussion of just-in-time resource retrieval based on a communication context. The approaches disclosed herein apply equally to outgoing and incoming communications. However, the example below is described in the just-in-time context of an incoming communication. Just-in-time context can be determined based on one or more of a caller, a recipient, a time of day, a scheduled event, a previous communication, document contents, address books, location, and so forth. In one illustrative example, a caller makes a telephone call to a recipient. The recipient's telephone or other communication device identifies the caller and examines the recipient's previous interactions with the caller. For instance, the last time the caller and the recipient spoke, they discussed updating a spreadsheet. The system can either open the discussed spreadsheet automatically when the caller calls, present a link to the spreadsheet to the user, or the system can provide a prompt to the recipient asking if he or she wants to open the spreadsheet. In another aspect, the system can instruct multiple different devices to display potentially relevant documents and information, such as a desktop computer, desktop IP telephone with a display, a cellular phone, or any other device in the recipient's work sphere. Similarly, if the caller has a particular document open on his desktop computer, the system can open a copy of that document for the recipient.
If the caller and recipient had previously discussed asking their supervisor a question, the system can prompt the caller and/or recipient if they want to conference in their supervisor as well as providing an indication of their supervisor's availability based on the supervisor's presence information. The system can scan emails between the caller and recipient for key words and documents that were modified in the past week, for example, that relate to that key word. Thus, the context of the last telephone call between the caller and recipient can be updated by intervening communications via email, IM, or other communication modalities. The system can automatically determine and provide resources related to the just-in-time context of the communication. The system can also annotate those documents by presenting such information as “this document was modified this morning at 9:30 am”.
One advantage of such a communication system is that the system can identify and automatically retrieve or suggest relevant documents and resources in a just-in-time context for a communication instead of a person manually deciding which documents and resources are important and then searching for those documents while simultaneously attempting to communicate. This approach can enhance user efficiency by saving users from remembering which resources relate to a particular communication event, searching for those resources, and opening and presenting those resources all while simultaneously communicating via phone or IM, for example.
In one variation, the system provides a separate popup or notification suggesting resources just-in-time for the communication context. The user can interact with the popup or notification to accept the suggestion and open the document, reject the popup or notification, or ignore the popup or notification. If the user accepts the suggestion, the system can increase the ranking or importance of the accepted resource. If the user rejects the suggestion, the system can decrease the ranking or importance of the rejected resource. If the user ignores the suggestion, the system can either decrease or leave unchanged the ranking or importance, for example.
In one aspect, each user 502, 506 has a separate, personalized context for the same communication session. In this way, when the first user 502 and second user 506 call each other, the communication context server 512 retrieves a first set of resources for the first user 502 and a second set of resources for the second user 506.
Having disclosed some basic system components, the disclosure now turns to the three exemplary method embodiments shown in
The system 100 identifies a stored context that corresponds to the current context, wherein the stored context includes at least one resource (604). The context can include information such as communication content, a communication history, communication session metadata, contact information. The resource can be a document, an agenda, a web page, and/or a communication history. The system 100 retrieves the at least one resource (606) and presents the at least one resource to the user (608). In one aspect, the system presents the resource by automatically opening a document for the user. The system can present resources on a communications device, such as a smartphone, or on a separate device. If the system presents resources on the communications device, the system can present the resources as part of a graphical user interface for managing a communication session. As another example, if the user is accepting a video call on a smartphone, the system can present to the user resources associated with the communication context of the video call on a laptop computer and/or on the smartphone. The system can present links to access the resources, such as world wide web, network, or other addresses.
In one variation, the system further tracks user interactions associated with the communication event and updates the stored context based on the user interactions. In this way, the system can adapt and update the stored context to match the user's changing needs. For example, if an initial conversation between two users centered around Document X, but through the course of communication, the users shift the conversation focus to Document Y, the system can update the context to assign a higher priority, prominence, or importance to Document Y. The system can eventually remove Document X entirely from the resources associated with the communication context if the users do not mention or refer to Document X or information stored in Document X after a threshold amount of time. The system can present a list of highest ranked resources that are most likely to be needed to the user or users in a communication session, but the users can then drill down to browse and retrieve other documents that may not be as highly ranked but are still relevant to the communication session.
In a related variation, the system can identify other resources, not part of the stored context, that are potentially relevant to at least one of the current context and the stored context, rank the other resources by potential relevance to yield ranked other resources, and present at least part of the ranked other resources to the user. For example, if the system has access to multiple users' communication session histories, contexts, and resources, the system can deduce, based on others' contexts and resources, that if two users are speaking about Documents A, B, and C, they are likely to be interested in Documents D and E as well. The system can suggest Documents D and E to one or both users based, for example, on document permissions, user role, and so forth.
The system 100 indexes the current communication content and resources to enable searchability (706). For example, the system can perform optical character recognition on images of scanned documents, the system can add metadata or tags to the communication content and/or resources, the system can perform speech recognition on voice conversations, and so forth. Then the system 100 stores, as a stored context in a database, the current communication context and the resources associated with the current communication context (708). The system can further identify metadata associated with the current communication context, and store the metadata as part of the stored context in the database. When the communication session involves multiple parties, the system can assign weights to metadata based on which user is the source of the metadata. For example, the system can assign a higher weight to metadata originating from a supervisor that to metadata originating from a seasonal worker.
In one aspect, the system also tracks user interactions associated with the current communication context and updates the stored context based on the user interactions. In this way, the system adapts and changes to match the evolution of the communications over multiple individual communication sessions. Many elements that influence the communication context can change over time, such as time of year, user organizational role, volume of work, etc. The system can flexibly update the context to match the fluid nature of communications and better retrieve context and resources just-in-time.
The system 100 retrieves, based on a similarity threshold to the current communication context, a stored communication context and a resource associated with the stored communication context (806). The context can include, for example, communication content, communication session metadata, and contact information. The resources can include a document, an agenda, a web page, and a communication history. The system 100 presents a modified request for communication including the incoming request, at least part of the stored communication context, and at least part of the resource (808). The system can receive an indication from the user accepting the modified request and establish a communication session based on the incoming request. The system can also transmit the resource to a sender of the incoming request for communication, so that both users can view and/or manipulate the same resource as part of the communication session.
Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon. Such non-transitory computer-readable storage media can be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor as discussed above. By way of example, and not limitation, such non-transitory computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or combination thereof) to a computer, the computer properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of the computer-readable media.
Computer-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types. Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
Those of skill in the art will appreciate that other embodiments of the disclosure may be practiced in network computing environments with many types of computer system configurations, including personal computers, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (either by hardwired links, wireless links, or by a combination thereof) through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
The various embodiments described above are provided by way of illustration only and should not be construed to limit the scope of the disclosure. For example, the principles herein can be implemented as part of a mobile communication device, such as a smartphone, as part of a dedicated desktop phone, or as part of a personal computer. The communication context server discussed above can be implemented as a separate hardware device and/or as software executing on traditional communication infrastructure nodes. Those skilled in the art will readily recognize various modifications and changes that may be made to the principles described herein without following the example embodiments and applications illustrated and described herein, and without departing from the spirit and scope of the disclosure.
This application claims priority to U.S. Provisional Application 61/315,719, filed 19 Mar. 2010, the contents of which are herein incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
61315719 | Mar 2010 | US |