The present invention generally relates to searches and more particularly relates to instant messaging with search.
Instant messaging is a popular communication tool that enables two or more users to exchange messages via a network during an instant messaging session. When two users are online at the same time, for instance, instant messages may be exchanged in real time between the two users. Thus, the instant messages may be utilized to support a text conversation between the two users in a manner that mimics how the two users would participate in a typical spoken conversation.
Additionally, users have access to wide variety of content, such as web pages, songs, images, and so on. To locate particular content, the users may interact with a search engine which may provide one or more search results. However, searches for content are typically restricted to a single user such that the search and the results of the search are provided separately from the instant messaging session. For example, the user may interact with a search engine over a network and obtain results of the search. However, these search results are typically provided to the requesting user and are not available through the instant messaging session. Therefore, the user is generally unable to share the search results without manually entering the results into an instant message for communication to the other users, which is time intensive and inconvenient.
Instant messaging with search is described. One or more techniques may be employed to provide a search during an instant messaging session, the results of which may then be shared between participants in the instant messaging session.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
The same reference numbers are utilized in instances in the discussion to reference like structures and components.
Overview
Instant messaging with search is described. Traditional instant messaging and search are provided separately, thereby making it difficult for a user to share a search result. Accordingly, techniques are described in which instant messaging may incorporate search to provide results that may be shared between the users during an instant messaging session.
Two users, for instance, may communicate during an instant messaging session through the use of instant messages. During the session, one of the users may enter a search query into the instant messaging user interface which is utilized to perform a search using an online search provider, e.g., an online search engine provided via a particular website. A result of the search may then be provided for output by each of the clients participating in the instant messaging session, thereby “sharing” the search result. When output, the search result may also include an indication of who provided the search query (e.g., the user name in the instant messaging session of the initiating user), an indication of the search query that produced the search result, and so on. Thus, each of the participants in the instant messaging session may be readily informed as to a search performed by one or more of the participants.
In the following discussion, an exemplary environment is first described which is operable to employ techniques to provide instant messaging and search. Exemplary procedures and user interfaces are then described which may be provided by the exemplary environment, as well as in other environments.
Exemplary Environment
Additionally, although the network 106 is illustrated as the Internet, the network may assume a wide variety of configurations. For example, the network 106 may include a wide area network (WAN), a local area network (LAN), a wireless network, a public telephone network, an intranet, and so on. Further, although a single network 106 is shown, the network 106 may be configured to include multiple networks. For instance, client 104(1) may be communicatively coupled via a peer-to-peer network with client 104(N). Each of the clients 104(1), 104(N) may also be communicatively coupled to the content provider 102(m) over the Internet. A variety of other instances are also contemplated.
Each of the plurality of clients 104(1)-104(N) is illustrated as including a respective one of a plurality of messaging modules 108(1)-108(N). Each messaging module 108(1)-108(N) is executable such that a respective client 104(1)-104(N) may participate in an instant messaging session with another one of the clients 104(1)-104(N). Instant messaging provides a mechanism such that each of the clients 104(1)-104(N), when participating in an instant messaging session, may send text messages to each other. The instant messages are typically communicated in real time, although delayed delivery may also be utilized, such as by logging the text messages when one of the clients 104(1)-104(N) is unavailable, e.g., offline. Thus, instant messaging may be thought of as a combination of e-mail and Internet chat in that instant messaging supports message exchange and is designed for two-way live chats. Therefore, instant messaging may be utilized for synchronous communication. For instance, like a voice telephone call, an instant messaging session may be performed in real-time such that each client 104(1)-104(N) may respond to each other user as the instant messages are received.
In an implementation, the messaging modules 108(1)-108(N) communicate with each other through use of one or more of a plurality of service providers 110(s), where “s” can be any integer from one to “S”. Service provider 110(s), for instance, may include a messaging manager module 112(s) which is executable to route instant messages between the messaging modules 108(1)-108(N). For example, client 104(1) may cause the messaging module 108(1) to form an instant message for communication to client 104(N). The messaging module 108(1) is executed to communicate the instant message to the service provider 110(s), which then executes the messaging manager module 112(s) to route the instant message to the client 104(N) over the network 106. The client 104(N) receives the instant message and executes the messaging module 108(N) to display the instant message.
In another implementation, when the clients 104(1), 104(N) are communicatively coupled directly, one to another (e.g., via a peer-to-peer network), the instant messages are communicated without utilizing the service provider 110(s). Further discussion of the use of a peer-to-peer network by the clients 104(1)-104(N) may be found in relation to
Each of the plurality of clients 104(1)-104(N) has access to a wide variety of content in the environment 100 of
To locate particular content of interest, each of the clients 104(1)-104(N) includes a respective search module 130(1)-130(N) that is executable to locate content in a variety of ways. For example, search module 130(1) may be executed by client 104(1) to locate a particular content item from the plurality of content 126(g) stored locally on the client 104(1). In another example, the search module 130(1) is executable to interact with a search manager module 132(s) which may be included on one or more of the service providers 110(s). For instance, service provider 110(s) may execute the search manager module 132(s) to provide search engine functionality, such as to respond to search queries and provide search results.
Although the search manager module 132(s) is illustrated within the messaging manager module 112(s) on the service provider 110(s), the modules may be provided separately on different service providers 110(s). For example, one of the service providers 110(s) may include the messaging manager module 112(s) to provide an instant messaging service and another one of the service providers 110(s) may include the search manager module 132(s) to provide search functionality, e.g., a search engine. A variety of other examples are also contemplated.
The search modules 130(1)-130(N), for example, are illustrated as within the respective messaging modules 108(1)-108(N) to depict that the messaging modules 108(1)-108(N) may incorporate the functionality of the search modules 130(1)-130(N) during an instant messaging session. Although illustrated together, the search modules 130(1)-130(N) and the messaging modules 108(1)-108(N) may be provided separately and communicate via respective, application programming interfaces. Further discussion of the operation of the search modules 130(1)-130(N) in conjunction with the messaging modules 108(1)-108(N) may be found in relation to
Generally, any of the functions described herein can be implemented using software, firmware (e.g., fixed logic circuitry), manual processing, or a combination of these implementations. The terms “module,” “functionality,” and “logic” as used herein generally represent software, firmware, or a combination of software and firmware. In the case of a software implementation, the module, functionality, or logic represents program code that performs specified tasks when executed on a processor (e.g., CPU or CPUs). The program code can be stored in one or more computer readable memory devices, further description of which may be found in relation to
Processors are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions. Alternatively, the mechanisms of or for processors, and thus of or for a computing device, may include, but are not limited to, quantum computing, optical computing, mechanical computing (e.g., using nanotechnology), and so forth. Additionally, although a single memory 208(s), 210(1)-210(N) is shown for the respective servers 202(s) and clients 104(1)-104(N), a wide variety of types and combinations of memory may be employed, such as random access memory (RAM), hard disk memory, removable medium memory, and so forth.
Each of the plurality of clients 104(1)-104(N) includes a respective one of a plurality of messaging modules 108(1)-108(N) which is illustrated as being executed on a respective processor 206(1)-206(N) and is storable in a respective memory 210(1)-210(N). As previously stated, the messaging modules 108(1)-108(N) are executable to provide an instant messaging session, either in indirect communication through use of the service provider 110(s) over the network 106 and/or in direct communication over a peer-to-peer network 212, which is illustrated in
The plurality of messaging modules 108(1)-108(N) may be provided to the plurality of clients 104(1)-104(N) in a variety of ways. In an implementation, the messaging modules 108(1)-108(N) are provided by the service provider 110(s) (and more particularly through execution of the messaging manager modules 112(s)) in response to a request to initiate an instant messaging session. For example, client 104(1) may request initiation of an instant messaging session with client 104(N). If client 104(N) accepts initiation of the instant messaging session, the messaging manager module 112(s) is executed on processor 204(s) to communicate the messaging module over the network 106 for execution on the respective clients 104(1)-104(N) to provide an instant messaging session.
As previously described, the search modules 130(1)-130(N) are executable in a variety of ways to provide a search for a particular content item, such as to search local storage 124(1)-124(N) on the clients 104(1)-104(N) and/or for content 114(k) from content providers 102(m) that are accessible remotely over the network 106. For instance, the search modules 130(1)-130(N) may receive search queries as inputs. The search modules 130(1)-103(N) may then construct search uniform resource locators (URLs) from the search query using respective search configuration data 214(1)-214(N). For instance, the user may provide a text input “why did the chicken cross the road” and specify a search for “images”. Therefore, the search configuration data 214(1) may be utilized to specify a search URL for images which correspond to the text input. The search URL may then be utilized to access the service provider 110(s) and find one or more of a plurality of search results 216(a) (where “a” can be any integer from one to “A”) which are illustrated as stored in storage 218(s) in memory 208(s) of the server 202(s). A variety of techniques may be utilized to perform the search, further discussion of which may be found in relation to the following procedures.
Exemplary Procedures
The following discussion describes instant messaging with search that may be implemented utilizing the previously described systems and devices. Aspects of each of the procedures may be implemented in hardware, firmware, or software, or a combination thereof. The procedures are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. In portions of the following discussion, reference will be made to the environment 100 of
During the instant messaging session, an input is received that requests a search (block 304). For instance, the user interface output by the messaging module 108(1) may include functionality to accept a text input from a user of the client 104(1) and to accept initiation of a search based on the text input. A search is then performed based on the input (block 306). For example, a search may be performed for content 126(g) stored locally on the client 104(1) through execution of the search module 130(1). In another example, a search is performed for content 114(k) available from a content provider 102(m) over the network 106 through interaction with the search manager module 132(s), e.g., when the search manager module 132(s) is configured to operate as a search engine. A variety of other examples are also contemplated.
A result of the search is obtained by each of the clients (block 308), which is then output for display (block 310) by each respective client. In additional, the input and an identifier of the client that requested the search may also be output (block 312). Thus, each of the clients may be informed as to which client initiated the search, the search query that was used to perform the search, and the results of the search.
The search may be performed and the results output utilizing a variety of techniques. For instance, a technique may be utilized in which the search is performed by one of the participating clients, the results of which are then transferred to other participants (e.g., clients) of the instant messaging session. Using this technique, for example, a search query may be input by client 104(1), which is utilized to obtain one or more search results 216(a) from the service provider 110(s). The search results 216(a) are then transferred by the client 104(1) to each other client participating in the instant messaging session, e.g., client 104(N). In an implementation, the search results 216(a) are “pruned” by the client 104(1) before transfer to the other client 104(N), such as by sending the “top three” of the search result. In another implementation, the entire search results 216(a) obtained by the client 104(1) are transferred to the other client, e.g., client 104(N).
In another technique, a search query is sent to each of the clients that participate in the session such that each participant performs the search. For instance, client 104(1) may receive a text input to be used as a search query. The search query is then transferred to each participant in the instant messaging session, such as through use of multipurpose internet mail extensions (MIME) message transport. For example, a MIME message type may be created, e.g., “text/search-query”, that is processed by the messaging module 108(N) to cause the search to be performed using the received search query. In an implementation, the search is performed automatically and without user intervention in response to receipt of the message. In another implementation, the client outputs a notification to a user that a search is requested and permits the user of the client to accept or decline performance of the search.
Search results obtained from the separate searches are then provided to the respective clients. Using this technique, it is possible that the search results may vary from client to client, such as when the clients are located in different geographical locations that have different markets. Although two techniques have been described for performing the search and obtaining search results, a variety of other techniques are also contemplated without departing from the spirit and scope thereof
A first client initiates an instant messaging session with a second client (block 402). Each client then outputs a user interface to communicate using instant messages during the instant messaging session (block 404).
The text messages that are exchanged are transmitted between the clients 104(1), 104(N) via a network connection 504, which may be implemented, for example, over the network 106 of
Reference will now be made again to
The user interface 502(1) includes a representation 602 of a search button that is selectable to initiate a search, further discussion of which may be found in relation to
Each of the search options may be utilized to limit a scope of a search, the illustrated options including limiting the scope to the “web”, “results near you”, “news”, “images”, “desktop”, “blogs”, “audio”, “video” and “books”. For instance, a user may enter a search term for “dog” and specify that the search is to be performed for “images”. Therefore, the search module 130(1) may obtain images which correspond to dogs.
The search options displayed in the pop-up menu 604 may also be further refined via a sub-menu 606. For example, the search option “search the web for results near you” may have a variety of sub-options, which are illustrated as “search near the recipient”, “search near the sender”, “search between the recipient and sender” and “search near a particular location”. The “search near the recipient” option may be utilized to search near an originator of the search, and have the results of the search shared by each of the participants in the instant messaging session. Likewise, the “search near the sender” may be utilized to find search results near the sender, while the “search near the recipient and the sender” may be utilized to find search results that address the sender and the recipient (e.g., search results for both the sender and the recipient), the sender or the recipient (e.g., search results that address the sender or the recipient), and so on. The “search near a particular location” option may be utilized to share a search in one location and use information relating to the sender and/or the recipient. A wide variety of other examples are also contemplated.
Although the previous examples describe the sharing of search results with each client that participates in the instant messaging session, the sender may also specify that the search results are sent to particular clients, such that one of the clients does not receive the search results. For example, another menu may be displayed having a representation of each client that participates in the instant messaging session such that the client 104(1) may select which clients are to receive the search results. The specifying of particular clients may be performed in a variety of other ways without departing from the spirit and scope thereof.
The search module 130(1) may examine the search configuration data 214(1) to determine a URL, at which, the search results may be obtained which correspond to the selection, e.g., “search the web for news” and a URL specified as “url:/news/” from the search configuration data 214(1). A variety of other examples are also contemplated, an example of which is shown in the following figure.
As shown in
Reference will now be made again to
The user interfaces 502(1), 502(N) also include an indication 902 of the client that initiated the search, which in the illustrated example is “Adam”. A plurality of search results 904(1), 904(2), 904(3) is also illustrated in the user interfaces 502(1), 502(N). Thus, Bob (i.e., client 104(N)) is informed that a search was performed, what search query was used in the search, who performed the search, and results of the search through selection of the search button 602.
A “more results” 906 indication is also displayed in each of the user interfaces 502(1), 502(N), which may be utilized to obtain additional search results. For example, as previously described the client 104(1) (i.e., Adam), before communicating the search results to client 104(N) (i.e., Bob) may “prune” the results, such as to conserve network bandwidth and conserve resources. Therefore, to obtain these additional results, Bob may select the “more results” 906 indication to cause communication of these additional results from Adam, i.e., client 104(1). In another example, the entirety of the search results are communicated without “pruning”, and therefore the “more results” 906 indication may be utilized to obtain additional results that are not currently displayed but that are already available on the client 104(N). A variety of other examples are also contemplated.
The user interfaces 502(1), 502(N) are further illustrated as including sponsored links 908. The sponsored links 908 may be provided for a fee by the service provider 110(s) to advertisers to gain an additional source of revenue, as well as provide additional search results to the clients 104(1), 104(N). Further discussion of the sponsored links may be found in relation to
Although the implementations referenced in relation to
A commitment is received from a provider to sponsor the search results (block 1004). For instance, the provider may be a content provider that enters into a commitment with the service provider to pay a fee for each client that accesses the provider's web site using a sponsored link. In another instance, the provider may be an advertiser that pays a flat fee for a specified period of time to have an advertisement displayed with search results. A variety of other instances are also comtemplated.
Search results are provided which include data from the provider in response to a search query (block 1006). The data, for instance, may include the advertisement and/or sponsored link which is provided to the clients 104(1)-104(N) along with the search results 216(a).
Payment is obtained according to the commitment (block 1008). The search manager module 132(s), for instance, may automatically tally each time search results having a sponsored link are provided and charge a fee for each such time. For example, in the implementations described in relation to
Although the invention has been described in language specific to structural features and/or methodological acts, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as exemplary forms of implementing the claimed invention.