Systems and methods for responding to an online user query

Systems and methods for responding to a user query are provided. More specifically, the systems and methods provide static search results along with a relevant chat bot user interface for combined display on a browser interface in response to a user query. As such, the systems and methods utilize a conversation layer to communicate with a selected chat bot service. Additionally, the systems and methods may update the static search results and other related content displayed in the browser interface in response to user chat bot inputs and/or chat bot responses provided on the chat bot user interface in the combined display. Accordingly, the systems and methods for responding to a user query provide a more efficient and better search engine when compared to previously utilized search engines that did not provide access to a chat bot interface on the same browser interface as the search results.

BACKGROUND

Online content searching is a process of searching for and retrieving requested information based on a user query utilizing a search application running on a client computing device, such as a laptop or a smart phone or accessed by a client computing device running over one or more servers. An online search is conducted through one or more search engines, which are programs running on one or more remote servers. The search engines search for documents or website links for specified keywords and return a list of the documents and/or links where the keywords were found and present these result to the user.

It is with respect to these and other general considerations that aspects disclosed herein have been made. Also, although relatively specific problems may be discussed, it should be understood that the aspects should not be limited to solving the specific problems identified in the background or elsewhere in this disclosure.

SUMMARY

In summary, the disclosure generally relates to systems and methods for responding to a user query. More specifically, the systems and methods disclosed herein provide static search results along with a relevant chat bot user interface for combined display on a browser interface in response to a user query. As such, the systems and methods as disclosed herein utilize a conversation layer to communicate with chat bot service for a selected chat bot. Additionally, the systems and methods as disclosed herein may update the static search results and other related content displayed in response to user chat bot inputs and/or chat bot responses provided on the chat bot user interface in the combined display. Accordingly, the systems and methods disclosed herein for responding to a user query provide a more efficient and better search or search engine when compared to previously utilized search engines that did not provide access to a chat bot interface on the same browser interface as the static search results.

One aspect of the disclosure is directed to a system for responding to an online search query. The system includes at least one processor and a memory. The memory encodes computer executable instruction that, when executed by the at least one processor, are operative to:receive a search query;in response to the search query, retrieve static search results from a knowledge backend;in response to the search query, compare the search query to a chat bot index;determine that a relevant chat bot exists based on the comparison of the search query to the chat bot index;in response to the determining that the relevant chat bot exist, retrieve the relevant chat bot;communicate with a chat bot service for the relevant chat bot utilizing a conversation layer, wherein the conversation layer communicates with the chat bot service by:selecting an appropriate platform schema for communicating with the chat bot service;providing the search query to the chat bot service;receiving an update for the relevant chat bot from the chat bot service; andapplying the update to the relevant chat bot to form an updated chat bot;render a user interface for the updated chat bot; and

provide the user interface and the static search results for combined display

Yet another aspect of the disclosure includes a method for responding to an online search query. The method includes a computing device. The computing device includes a processing unit and a memory. The processing unit implements a search engine and a conversation layer. The computing device is operable to:receive a search query;in response to the search query, retrieve static search results from a knowledge backend;in response to the search query, compare the search query to a chat bot index;determine that a relevant chat bot exists based on the comparison of the search query to the chat bot index;in response to the determining that the relevant chat bot exist, retrieve the relevant chat bot;communicate with a chat bot service for the relevant chat bot utilizing the conversation layer, wherein the conversation layer communicates with the chat bot service by:selecting an appropriate platform schema for communicating with the chat bot service;render a user interface for the relevant chat bot; and

provide the user interface and the static search results for combined display

A further aspect of the disclosure includes a method for responding to an online search query. The method includes:receiving a search query;in response to the search query, retrieving static search results from a knowledge backend;in response to the search query, comparing the search query to a chat bot index;determining that a relevant chat bot exists based on the comparing of the search query to the chat bot index;in response to the determining that the relevant chat bot exist, retrieving the relevant chat bot;communicating with a chat bot service for the relevant chat bot utilizing a conversation layer, wherein the conversation layer communicates with the chat bot service by:selecting an appropriate platform schema for communicating with the chat bot service,providing an appropriate token to the chat bot service,providing the search query to the chat bot service,receiving an update for the relevant chat bot from the chat bot service, andapplying the update to the relevant chat bot to form an updated chat bot;rendering a user interface for the updated chat bot; andproviding the user interface and the static search results for combined display.

DETAILED DESCRIPTION

Bots are becoming more and more prevalent and are being utilized for more and more different tasks. As understood by those skilled in the art, bots are software applications that may run automated tasks over a network, such as the Internet. Chat bots are designed to conduct a conversation with a user via auditory or visual methods to simulate human conversation. A chat bot may utilize sophisticated natural language processing systems or scan for keywords from a user input and then pull a reply with the most matching keywords or the most similar wording pattern from a database. Chat bots are often utilized for customer service or information acquisition. As chat bots advance, they become more and more relevant to a user online search.

As discussed above, search engines search for documents or website links based on specified keywords form a user query and return a list of the documents and/or links where the keywords were found and present these result to the user. The listing of documents and/or links is referred to herein as static search results. Some previously utilized search engines have provided links to any relevant chat bots found by a search engine based on the search query. The links are provided because the search engine is not capable of direct communication with the chat bot and allows the user to engage the chat bot on a separate page. As such, there is typically no system or method for providing a combined display of the static search results and a user interface for a determined relevant chat bot by a search engine. Additionally, there is typically no system or method for updating the static search results and/or any related displayed content based on user chat bot inputs and/or chat bot responses.

The systems and method as disclosed herein are directed to system and method for responding to a user query. The systems and methods as disclosed herein provide static search results along with a relevant chat bot user interface for combined display in response to a user query. Accordingly, the systems and methods as disclosed herein utilize a conversation layer to communicate with a selected chat bot. Additionally, the systems and methods as disclosed herein may update the static search results and other related content displayed in response to user chat bot inputs and/or chat bot responses provided on the chat bot user interface in the combined display.

The ability of the systems and methods described herein to provide a combined display of static search results and a chat bot user interface in response to a user query provides for a better, more efficient, and easier to use search engine when compared to previously utilized search engines that did not provide combined display. Additionally, the ability of the systems and methods described herein to update the static search results and/or other displayed content in response to user chat bot inputs and/or chat bot responses provides for a better, more efficient, and easier to use search engine when compared to previously utilized search engines that did not provide the ability to updated these contents in response to chat bot inputs and/or chat bot responses.

FIGS. 1A-1Eillustrate different examples of a system100for responding to a user query106being utilized by a user102via a client computing device104, in accordance with aspects of the disclosure.FIGS. 2A and 2Billustrate a communication flow diagram200between the different components of system100and other external components in order to respond to a user query by system100. The system100is capable providing static search results along with a user interface for a relevant bot for display in response to a user query106. The system100may also be capable of updating the static search results and/or other displayed content in response to a user bot input and/or a chat bot response. The system100includes a search engine108and a conversation layer110. Accordingly, the search engine108and the conversation layer110communicate between each other. In some aspects, the system100also includes a bot index114, a bot store115, and/or a knowledge backend112. Accordingly, the search engine108, the conversation layer110, the bot index114, the bot store115, and/or the knowledge backend112may communicate between each other.

In some aspects, the system100is implemented on the client computing device104as illustrated byFIG. 1E. In a basic configuration, the client computing device104is a computer having both input elements and output elements. The client computing device104may be any suitable computing device for implementing the system100. For example, the client computing device104may be a mobile telephone, a smart phone, a tablet, a phablet, a smart watch, a wearable computer, a personal computer, a gaming system, a desktop computer, a laptop computer, and/or etc. This list is exemplary only and should not be considered as limiting. Any suitable client computing device104for implementing the system100or for displaying static search results combined with a chat bot user interface as provided by system100may be utilized.

In other aspects, the system100is implemented on a server computing device105, as illustrated inFIGS. 1A and 1B. The server computing device105may provide data to and/or receive data from the client computing device104through a network116. In some aspects, the network116is a distributed computing network, such as the internet. In further aspects, that system100is implemented on more than one server computing device105, such as a plurality or network of server computing devices105as illustrated inFIGS. 1C and 1D. For example, the search engine108may be located on the same server105as the conversation layer as illustrated inFIGS. 1A and 1Bor may be located on separate servers105as illustrated inFIGS. 1C and 1D. In some aspects, the system100is a hybrid system with portions of the system100on the client computing device104and with portions of the system100on one or more server computing devices105.

FIG. 3shows an example a browser interface300for the system100. The system100provides a browser interface300for receiving user queries106and for providing search results118to the user queries106. The search results118include any found static search results and the user interface for any found relevant chat bot. As such, if the static search results and/or a relevant chat bot are not found, then the search results118will not include any static search results and/or any user interface306for a relevant chat bot302. The browser interface300is generated by the system100and presented to the user102via the client computing device104. The browser interface300of the system100allows the user102to input a search query106and/or a chat bot input122for processing by system100. The client computing device104may have one or more input devices, such as a keyboard, a mouse, a pen, a microphone or other sound or voice input device, a touch or swipe input device, etc. for allowing the user102to provide the search query106and/or chat bot inputs122via the browser interface300. The aforementioned devices are examples and others may be used. The browser interface300receipt of the user search query106is illustrated by communication flow202inFIG. 2A. The browser interface300as illustrated inFIG. 3is exemplary only and is not meant to be limiting. System100may provide any suitable browser interface300for responding to a user query106, presenting search results118, and/or for responding to chat bot inputs122. The browser interface300will be discussed in more detail below.

In some aspects, the user102provides a user desired search or query106to the system100via the client computing device104and/or the provided browser interface300. The client computing device104receipt of the user search query106is illustrated by communication flow202inFIG. 2A. The system100receives the search query106, which includes the search engine108and the conversation layer110. The search engine's108receipt of the user search query106is illustrated by communication flow204inFIG. 2A. The search engine'108of system100retrieves static search results from a knowledge backend112based on the received user query106and is illustrated by communication flows205and207inFIG. 2A.

Additionally, the search engine108of system100compares the search query106to a chat bot index114to determine if any relevant chat bots exist for the query106, as illustrated by communication flows206and208inFIG. 2A. If the search engine108does not find a relevant chat bot based on the comparison, the search engine108of system100does not retrieve any chat bots. If the search engine108finds one or more relevant chat bots based on the comparison, the search engine108of system100retrieves the one or more relevant chat bots from a bot store115, as illustrated by communication flows210and212inFIG. 2A. In some aspects, the search engine retrieves an ID or identification with meta data for the relevant chat bot from the chat bot store115over communication flow212. In some aspects, the search engine108only retrieves the most relevant chat bot. In alternative aspects, the search engine108retrieves any chat bot that breaches a relevance threshold. In other aspects, the search engine108retrieves any chat bot the breaches a relevance threshold up to a predetermined maximum number of chat bots, excluding the least relevant chat bots. The bot store115and the bot index114may be located on the same server. In some aspects, the bot store115and the bot index114are the same component. Alternatively, the bot store115and the bot index114may be located on separate servers105as illustrated inFIGS. 1A-1D. The system100, such as the search engine108and/or conversation layer110, is able to determine the html code and render a user interface (or UX) from the received ID and metadata for the relevant chat bot.

In response to retrieving a relevant chat bot, the conversation layer110of system100analyzes the relevant chat bot to determine an appropriate platform schema for communicating with chat bot service120of the relevant chat bot. Bots may be provided and/or serviced by many different providers, such as Facebook, Slack, Telegram, and etc. This list of bot provider and/or servicers is exemplary only and is not meant be limiting. In alternative aspects, the conversation layer110determines the appropriate platform schema for a relevant chat bot based on information retrieved from the bot index114. For example, the appropriate platform schema may be a Facebook platform schema, slack platform schema, a telegram platform schema, and etc. This list is exemplary only and is not meant to be limiting. Once an appropriate schema has been determined, the conversation layer110utilizes the appropriate platform schema to communicate with the chat bot service120. In further aspects, the conversation layer110also determines and provides an appropriate token to the chat bot service120in order to communicate with the chat bot service. In some aspects, the conversation layer110provides the search query106to the chat bot service120. In further aspects, the conversation layer parses the user query106before providing the query106to the chat bot service120. The chat bot service120runs the chat bot based on the user query106to form an updated chat bot (or a chat bot with a response provided based on the user query). The chat bot service120sends the updated chat bot to the conversation layer110. The conversation layer110applies the updated chat bot to the retrieved chat bot.

In some aspects, once the chat bot has been updated, system100renders a user interface306for the updated chat bot. The system100provides the user interface306and the static search result for combined display on the browser interface300by the client computing device104. As such, system100may send the UX, ID, and metadata along with the static search results to the browser interface300and/or the client computing device104as illustrated inFIG. 2Aby communication flow214. In other words, system100provides the search results118to the client computing device104.

If a user interface for a chat bot is provided, the user102may provide a chat bot input122into the user interface306of the chat bot to request a chat bot response124on the browser interface300via the client computing device104as illustrated by communication flow216inFIG. 2B. The user chat bot input122is received by system100, which includes the search engine108and conversation layer110, as illustrated by communication flow218inFIG. 2A. The conversation layer110communicates the chat bot input122to the chat bot service120utilizing the selected platform schema and may request a response from the chat bot service120as illustrated by communication flow220inFIG. 2A. The conversation layer110may parse the user bot input122before providing the input to the bot service120. The conversation layer110of system100receives the chat bot response124from the bot service over the selected platform schema as illustrated by communication flow222inFIG. 2B. The conversation layer110provides the chat bot response124to the client computing device104for display in the user interface306of the chat bot on the browser interface300with static search results as illustrated by communication flow224inFIG. 2B.

In some aspects, the system100compares a received user chat bot input122and/or a received chat bot response to an update threshold to determine if the system100should update the static search results and/or the other related content displayed on the web browser. The other displayed related content318, may be content determined by the search engine to be relevant to the user based on known data. In some aspects, the other related content318includes advertisements or marketing materials. In further aspects, the other related content318is user context information, such as information relating the schedule, environment, work, social media and/or etc. of the user102. In some aspects, the conversation layer110sends the received chat bot input122and/or the received chat bot response124to the search engine for performing this comparison as illustrated by communication flow232onFIG. 2B.

The update threshold may be the same for both the static search results and the other displayed related content. Alternatively, the update threshold may be different for the static search results and the other displayed related content. For example, the update threshold may be higher for the static search results than the other displayed related content. In other aspects, the update threshold may be completely different tests for the static search results and the other displayed related content.

In some aspects, the update threshold is a predetermined percentage change in the static search results or other displayed content. For example, if the user bot input122and/or the chat bot response would alter or change over 30% of the current static search results, the system100would determine that the user bot input122and/or the chat bot response124breach the update threshold. The 30% update threshold is exemplary only and is not meant to be limiting. As understood by a person of skill in the art any desired percentage may be utilized as the update threshold. Further, as understood by a person of skill in the art any suitable update threshold for determining when to update the static search results based on the received user chat bot input122and/or a received chat bot response124may be utilized by system100. In some aspects, system100compares a plurality of user chat bot inputs122and/or chat bot response124as accumulated to the update threshold.

If system100determines that the update threshold is breached for the static search results based on the comparison, the search engine108retrieves updated search results based on the one or more user chat bot inputs122and the one or more chat bot responses124as illustrated by communication flows236and238onFIG. 2B. The updated search results are provided by system100for display on the browser interface300alongside the user interface306of the relevant chat bot being utilized by the user102on the browser interface300as illustrated by communication flow240onFIG. 2B. If system100determines that the update threshold is not breached for the static search results based on the comparison, the search engine108does not update the currently displayed static search results.

If system100determines that the update threshold is breached for the other displayed related content318based on the comparison, the search engine108retrieves updated related content128based on the one or more user chat bot inputs122and the one or more chat bot responses124. The updated related content128is provided by system100for display on the browser interface300alongside the user interface306of the relevant chat bot being utilized by the user102and the static search results on the browser interface300. If system100determines that the update threshold is not breached for the other displayed related content318based on the comparison, the search engine108does not update the currently displayed related content318displayed on the browser interface300.

As discussed above,FIG. 3shows the browser interface300generated by the system100in response to a user query106. In this example, the browser interface300displays the search results118provided by system100in response to an entered user query106. The search results118include static search results304and a user interface306for a relevant chat bot302. The browser interface300also includes other related content318. In this aspect, the other related content is an advertisement for a product.

As discussed above, the chat bot302has been updated based on the user query106. As such, the user interface306of the chat bot302upon initial display on the browser interface300may already include a chat bot response124(i.e., first chat bot response308). As also discussed above, the user102may engage or utilize the chat bot302without ever leaving the browser interface300. For example, the user102may provide a chat bot input122into the user interface306of the chat bot302as displayed on the browser interface300. As outlined above, the system100receives the user chat bot input122and utilizes the conversation layer110to communicate the user chat bot input122to the chat bot service120. The received chat bot response124(i.e., the second chat bot response312) from the external bot service120based on the first user bot input310is displayed on the user interface306of the chat bot302on the browser interface. The user102may provide any number of additional user bot inputs122(i.e., Nthuser bot input314) into the user interface306of the chat bot302and the system100will provide the chat bot responses124(i.e., Nthchat bot response316) on the user interface306of the chat bot302while being displayed with static search results304on the browser interface300. As such, the user102does not have to leave the browser interface300in order to utilize the chat bot302.

FIGS. 4A and 4Billustrate a flow diagram conceptually illustrating an example of a method400for responding to a user search query. In some aspects, method400is performed by the system100including a search engine108and a conversation layer110as described above. Method400is a method for responding to a user query that provides both static search results and a user interface of a relevant chat bot based on the user query. More specifically, method400allows the user to interact with a user interface of the chat bot without having to leave the browser interface that also provides the static search results. In further aspects, method400is capable of updating the static search results and/or other displayed related content on the browser interface based on the user chat bot input and/or the chat bot response.

Method400starts at operation402. At operation402, a search query is received from a user and/or client computing device. At operation404, static search results are retrieved from a knowledge backend based on the received search query and in response to receiving the search query at operation402.

At operation406the search query is compared to a chat bot index in response to receiving the search query at operation402. At operation408, method400determines if a relevant chat bot exist or is listed in the chat bot index based on a result of the comparison. For example, a relevant chat bot may be determined at operation408by matching keywords from the search query to a chat bot listed in the chat bot index. If a relevant chat bot is not found at operation408, operation410is performed. The static search results retrieved during operation404are provided to the browser and/or client device for display at operation410. However, at operation410no chat bot or user interface for a chat bot is provided to the browser interface. If a relevant chat bot is found at operation408, operation412is performed. At operation412the relevant chat bot is retrieved. In some aspects, the relevant chat bot is retrieved from the chat bot index and/or a chat bot store.

At operation414a conversation layer is utilized to communicate with the chat bot service of the relevant chat bot. At operation414, an appropriate platform schema for communicating with the chat bot service is selected. In some aspects, the conversation layer selects a platform schema for the relevant chat bot based on information from chat bot index and/or from the chat bot store. In other aspects, the conversation layer includes a store of appropriate schemas and parameters for matching a stored schema to a relevant chat bot.

In some aspects, at operation414, an appropriate token is provided to the chat bot service. In some aspects, the chat bot service will not communicate with the conversation layer unless, the conversation layer is able to provide the appropriate token. In further aspects, the conversation layer may determine the appropriate token based on information received from the bot index and/or the bot store. In other aspects, the conversation layer may determine the appropriate token based on the selected or the appropriate platform schema.

In further aspects, at operation414, the search query is provided to the chat bot service. The chat bot service is communicated with by utilizing the appropriate platform schema at operation414. In some aspects, the conversation layer parses the user query before providing the user query to the chat bot service. In some aspects, the conversation layer requests a response to the user query from the chat bot service at operation414. After the search query is provided to the chat bot operation at operation414, an update for the relevant chat bot may be received from the chat bot service. The response may be based on the delivered request and/or the user query provided by the conversation layer to the chat bot service. Next, at operation414the update to the relevant chat bot may be applied to the relevant chat bot to form an updated chat bot.

At operation416the user interface for the relevant chat bot is rendered. At operation418the user interface and the static search results are provided to the client computing device and/or the browser interface for combined display. In some aspects, the user interface of the chat bot will include a chat bot response based on the user search query when displayed on the browser interface along with the static search results based on the update received during operation414.

Once the user interface for the chat bot has been displayed on the browser interface, the user may provide a chat bot input into the user interface of the chat bot on the browser interface. In other words, the user may interact with the chat bot without having to leave the browser interface. However, the user may choose to ignore the provided chat bot.

As such, operation420determines whether or not a chat bot input from a user is received. If a chat bot input is not received at operation420, method400ends. In an alternative aspect, if a chat bot input is not received at operation420, method400determines if another user query is received. In these aspects, if another user query is received, flow continues back to operation402. In these aspects, if another user query is not received, then method400ends. If a chat bot input is received at operation420, operation422is performed. At operation422the chat bot input is received as illustrated inFIG. 4B.

At operation424, the chat bot input is compared to an update threshold to determine if the static search results and/or other related content displayed on the browser interface should be updated based on the user provided chat bot input. If operation424determines that the update threshold has not been breached, operation424determines that static search results and/or the other content should not be updated and flow continues to operation430. If operation424determines the update threshold has been breached based on the chat bot input, operation424determines that the static search results and/or the other related content should be updated and flow continues to operation426.

At operation426, the updated static search results and/or updated related content is retrieved based on the chat bot input. In some aspect, the search engine searches a knowledge backend for static search results and/or related content based on the chat bot input. Next, the updated static search results and/or the updated related content by the search engine are provided for display at operation428. In some aspects, the updated search results and/or the updated other related content is provided to the client computing device for display on the browser interface with the chat bot at operation428. In some aspects, the previously provided static search results are removed from the browser interface at operation428. In other aspects, the previously provided static search results are moved down the browser interface and displayed below the updated static search results.

At operation430the chat bot input is delivered to the chat bot service. In some aspects, the chat bot response is parsed before delivery to the chat bot service at operation430. In further aspects, the chat bot response is communicated or delivered to the chat bot service utilizing an appropriate platform schema by the conversation layer at operation430. The conversation lay may request a response to the chat bot input from the chat bot service at operation430.

Next, a chat bot response is received from the chat bot service at operation432. In some aspects, the chat bot response is communicated via the conversation layer utilizing the appropriate platform schema.

At operation434the chat bot response is compared to an update threshold to determine if the static search results and/or other related content displayed on the browser interface should be updated based on the chat bot response. If operation434determines the update threshold has not been breached, operation434determines that static search results and/or the other content should not be updated and flow continues to operation440. If operation434determines that the update threshold has been breached based on the chat bot response, operation434determines that the static search results and/or the other related content should be updated and flow continues to operation436.

At operation436the updated static search results and/or updated related content is retrieved based on the chat bot response. In some aspect, the search engine searches a knowledge backend for static search results and/or related content based on the chat bot response. Next, the updated static search results and/or the updated related content is provided for display at operation438. In some aspects, the updated search results and/or the updated other related content is provided to the client computing device for display on the browser interface with the user interface of the chat bot at operation438. In some aspects, the previously provided static search results are removed from the browser interface at operation438. In other aspects, the previously provided static search results are moved down the browser interface and displayed below the updated static search results at operation438.

At operation440, the chat bot response is provided for display on the user interface of the chat bot. The response is displayed on the browser interface with the static search results and/or the updated static search results. Accordingly, the user does not have to leave the browser interface to interact with the relevant bot during method400. Next, operation420is performed again.

FIGS. 5-8and the associated descriptions provide a discussion of a variety of operating environments in which aspects of the disclosure may be practiced. However, the devices and systems illustrated and discussed with respect toFIGS. 5-8are for purposes of example and illustration and are not limiting of a vast number of computing device configurations that may be utilized for practicing aspects of the disclosure, described herein.

FIG. 5is a block diagram illustrating physical components (e.g., hardware) of a computing device500with which aspects of the disclosure may be practiced. For example, the system100could be implemented by the computing device500. In some aspects, the computing device500is a mobile telephone, a smart phone, a tablet, a phablet, a smart watch, a wearable computer, a personal computer, a desktop computer, a gaming system, a laptop computer, and/or etc. The computing device components described below may include computer executable instructions for the search engine108and conversation layer110of system100that can be executed to employ method400to respond to a user query as disclosed herein. In a basic configuration, the computing device500may include at least one processing unit502and a system memory504. Depending on the configuration and type of computing device, the system memory504may comprise, but is not limited to, volatile storage (e.g., random access memory), non-volatile storage (e.g., read-only memory), flash memory, or any combined of such memories. The system memory504may include an operating system505and one or more program modules506suitable for running software applications520. The operating system505, for example, may be suitable for controlling the operation of the computing device500. Furthermore, aspects of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated inFIG. 5by those components within a dashed line508. The computing device500may have additional features or functionality. For example, the computing device500may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 5by a removable storage device509and a non-removable storage device510.

As stated above, a number of program modules and data files may be stored in the system memory504. While executing on the processing unit502, the program modules506(e.g., the search engine108and conversation layer110) may perform processes including, but not limited to, performing method400as described herein. For example, the processing unit502may implement the system100, including the search engine108and the conversation layer110. Other program modules that may be used in accordance with aspects of the present disclosure, and in particular to generate screen content, may include a digital assistant application, a voice recognition application, an email application, a social networking application, a collaboration application, an enterprise management application, a messaging application, a word processing application, a spreadsheet application, a database application, a presentation application, a contacts application, a gaming application, an e-commerce application, an e-business application, a transactional application, exchange application, a device control application, a web interface application, a calendaring application, etc. In some aspect, the system100allows a user to perform an online search in one or more of the above referenced applications.

Furthermore, aspects of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, aspects of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated inFIG. 5may be integrated onto a single integrated circuit. Such an SOC device may include one or more processing units, graphics units, communications units, system virtualization units and various application functionality all of which are integrated (or “burned”) onto the chip substrate as a single integrated circuit. When operating via an SOC, the functionality, described herein, with respect to the capability of client to switch protocols may be operated via application-specific logic integrated with other components of the computing device500on the single integrated circuit (chip).

Aspects of the disclosure may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, and NOT, including but not limited to mechanical, optical, fluidic, and quantum technologies. In addition, aspects of the disclosure may be practiced within a general purpose computer or in any other circuits or systems.

The computing device500may also have one or more input device(s)512such as a keyboard, a mouse, a pen, a microphone or other sound or voice input device, a touch or swipe input device, etc. The output device(s)514such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device500may include one or more communication connections516allowing communications with other computing devices550. Examples of suitable communication connections516include, but are not limited to, RF transmitter, receiver, and/or transceiver circuitry, universal serial bus (USB), parallel, and/or serial ports.

FIGS. 6A and 6Billustrate a mobile computing device600, for example, a mobile telephone, a smart phone, a tablet, a phablet, a smart watch, a wearable computer, a personal computer, a desktop computer, a gaming system, a laptop computer, or the like, with which aspects of the disclosure may be practiced. With reference toFIG. 6A, one aspect of a mobile computing device600suitable for implementing the aspects is illustrated. In a basic configuration, the mobile computing device600is a handheld computer having both input elements and output elements. The mobile computing device600typically includes a display605and one or more input buttons610that allow the user to enter information into the mobile computing device600. The display605of the mobile computing device600may also function as an input device (e.g., a touch screen display).

In addition to, or in place of a touch screen input device associated with the display605and/or the keypad635, a Natural User Interface (NUI) may be incorporated in the mobile computing device600. As used herein, a NUI includes as any interface technology that enables a user to interact with a device in a “natural” manner, free from artificial constraints imposed by input devices such as mice, keyboards, remote controls, and the like. Examples of NUI methods include those relying on speech recognition, touch and stylus recognition, gesture recognition both on screen and adjacent to the screen, air gestures, head and eye tracking, voice and speech, vision, touch, gestures, and machine intelligence.

In various aspects, the output elements include the display605for showing a graphical user interface (GUI). In aspects disclosed herein, the various user information collections could be displayed on the display605. Further output elements may include a visual indicator620(e.g., a light emitting diode), and/or an audio transducer625(e.g., a speaker). In some aspects, the mobile computing device600incorporates a vibration transducer for providing the user with tactile feedback. In yet another aspect, the mobile computing device600incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., a HDMI port) for sending signals to or receiving signals from an external device.

FIG. 6Bis a block diagram illustrating the architecture of one aspect of a mobile computing device. That is, the mobile computing device600can incorporate a system (e.g., an architecture)602to implement some aspects. In one aspect, the system602is implemented as a “smart phone” capable of running one or more applications (e.g., browser, e-mail, calendaring, contact managers, messaging clients, games, and media clients/players). In some aspects, the system602is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.

One or more application programs666and/or the system100(including the search engine108and conversation layer110) run on or in association with the operating system664. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system602also includes a non-volatile storage area668within the memory662. The non-volatile storage area668may be used to store persistent information that should not be lost if the system602is powered down. The application programs666may use and store information in the non-volatile storage area668, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system602and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area668synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory662and run on the mobile computing device600.

The system602has a power supply670, which may be implemented as one or more batteries. The power supply670might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.

The system602may also include a radio672that performs the function of transmitting and receiving radio frequency communications. The radio672facilitates wireless connectivity between the system602and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio672are conducted under control of the operating system664. In other words, communications received by the radio672may be disseminated to the application programs666via the operating system664, and vice versa.

The visual indicator620may be used to provide visual notifications, and/or an audio interface674may be used for producing audible notifications via the audio transducer625. In the illustrated aspect, the visual indicator620is a light emitting diode (LED) and the audio transducer625is a speaker. These devices may be directly coupled to the power supply670so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor660and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface674is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer625, the audio interface674may also be coupled to a microphone to receive audible input. The system602may further include a video interface676that enables an operation of an on-board camera630to record still images, video stream, and the like.

A mobile computing device600implementing the system602may have additional features or functionality. For example, the mobile computing device600may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 6Bby the non-volatile storage area668.

Data/information generated or captured by the mobile computing device600and stored via the system602may be stored locally on the mobile computing device600, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio672or via a wired connection between the mobile computing device600and a separate computing device associated with the mobile computing device600, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device600via the radio672or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.

FIG. 7illustrates one aspect of the architecture of a system for processing data received at a computing system from a remote source, such as a general computing device704, tablet706, or mobile device708, as described above. Content displayed and/or utilized at server device702may be stored in different communication channels or other storage types. For example, various documents may be stored using a directory service722, a web portal724, a mailbox service726, an instant messaging store728, and/or a social networking site730. By way of example, the system100(including the search engine108and conversation layer110) may be implemented in a general computing device704, a tablet computing device706and/or a mobile computing device708(e.g., a smart phone). In some aspects, the server702is configured to implement a search engine108and conversation layer110, via the network715as illustrated inFIG. 7.

This disclosure described some embodiments of the present technology with reference to the accompanying drawings, in which only some of the possible aspects were described. Other aspects can, however, be embodied in many different forms and the specific embodiments disclosed herein should not be construed as limited to the various aspects of the disclosure set forth herein. Rather, these exemplary aspects were provided so that this disclosure was thorough and complete and fully conveyed the scope of the other possible aspects to those skilled in the art. For example, aspects of the various embodiments disclosed herein may be modified and/or combined without departing from the scope of this disclosure.

Although specific aspects were described herein, the scope of the technology is not limited to those specific aspects. One skilled in the art will recognize other aspects or improvements that are within the scope and spirit of the present technology. Therefore, the specific structure, acts, or media are disclosed only as illustrative aspects. The scope of the technology is defined by the following claims and any equivalents therein.