SYSTEM AND METHODS THEREOF FOR ENHANCING A USER'S SEARCH EXPERIENCE
A method for enabling applications content streaming to a user device in response to a search query. The method includes receiving an input search query from the user device; selecting, based on the input search query, at least one resource to respond to the input search query; sending the input search query as an input to each of the at least one selected resource; providing, for each of the at least one selected resource, a single display segment within a display area on the user device; causing the at least one selected resource, in response to receiving the input search query, to execute an application of the at least one selected resource within a corresponding display segment; and establishing a direct communication link between the at least one selected resource and the user device for at least enabling direct interaction with the application of the at least one selected resource.
Latest Doat Media Ltd. Patents:
- System and method for context-launching of applications
- System and methods thereof for enhancing a user's search experience
- System and method for causing downloads of applications based on user intents
- System and method for detecting a search intent
- System and method for dynamically displaying personalized home screens respective of user queries
This application is a continuation of U.S. patent application Ser. No. 13/156,999 filed on Jun. 9, 2011, now allowed, which claims the benefit of U.S. provisional application No. 61/354,022 filed on Jun. 11, 2010, and U.S. provisional application No. 61/468,095 filed on Mar. 28, 2011. The contents of the above-noted applications are hereby incorporated by reference.
TECHNICAL FIELDThe present disclosure generally relates to search engines, and more specifically to directing a search query to desired sources of answers and presentation of the answers on the display of a user's device.
BACKGROUNDWeb search engines are increasingly becoming the method by which users seek information on the World Wide Web (herein “WWW”). As the WWW continues to grow in size, the task of finding relevant and pertinent information to a user's search query becomes increasingly complex. Not only do users expect answers to their search queries to be returned instantaneously, they also expect that the top answers returned relate specifically to what they are searching for.
Web search engines are computer programs accessible by web browsers which are designed to search the WWW and retrieve web pages that are files and documents accessible on the WWW and hosted by websites.
In general, web search engines generate large databases and indexes of websites and webpages accessible on the WWW, in a process known as web crawling. Such databases and indexes are updated frequently as websites and webpages are added, deleted, and changed very frequently on the WWW. The databases of a web search engine may include information regarding each webpage in the databases such as the actual words on the webpage, and the index usually includes information relating to how a webpage should be classified and indexed in the databases. When a user submits a search query to a web search engine, the web search engine uses its indexing system to determine which webpages in its databases match the search query it was provided with. The web search engine may be able to rank the webpages in its database which most closely match the search query it was provided with. The webpages which most closely match the search query are returned to the user and usually presented in the form of a list, also known as search results, a search results list, or even an ‘answer’ to a user's search query.
There are two types of searching methods that can be performed by web search engines. In the first method, as implemented by search engines, such as Google® and Bing, the input query is checked only against the indexes and databases maintained by the search engine. That is, a search query input to a Google's search engine is fully served by Google's databases and indexes and will not be relayed to other engines (e.g., to retrieve the result).
Web search engines such as Dogpile®, Ask.com® and Metacrawler® are meta-search engines, also known as secondary search engines, which provide a submitted search query to various other web search engines and present search results which have been aggregated from a plurality of web search engines to a user. Other types of known web search engines include vertical comparison engines as well as widget and gadget-based personal homepage dashboards. Vertical comparison engines are search engines which compare items for sale from various other websites. For example, PriceGrabber.com® and Shopzilla®.com enable a user to compare the price of a given product at multiple stores.
The search results returned from each of the web search engines provided with the search query are compared to eliminate duplicate items in the search results returned by different web search engines. The comparison may also include counting the number of times a particular file or document is returned across the web search engines for a given search query. Then, the returned search results from each of the web search engines provided with the search query are ranked. Ranking substantially refers to the procedure wherein the relevancy of a returned file or document to the received search query is determined. The returned search results from all of the web search engines are ranked, thereby determining which items in the search results are possibly more relevant as answers to the user's search query than others. Many methods for ranking webpages and websites, files and documents are known in the art, each of which use different criteria for determining the relevancy of a given item in a search results list to the user's search query.
Finally, the search results from each of the web search engines are aggregated into a combined search results list. The combined list may be combined based on the comparing of search results in and/or the ranking of search results. The webpage(s) displaying the search results substantially include a list of links to websites and webpages related to the search query. In some cases, the return search results would also include images, videos, news feeds, and the like, which are also displayed to the user.
Widget and gadget-based personal homepage dashboards enable a user to design a personalized homepage or personal web portal which may include a plurality of applications known as widgets or gadgets that can provide a user with information. Netvibes®.com, iGoogle and My Yahoo!® are all examples of widget and gadget-based personal homepage dashboards.
In the exemplary
The schematic search results webpage 50 would be returned whether the user performs the search query using a PC, a smartphone, a tablet device, or devices from which a user can provide a query from and receive a response to. Web search engines have not substantially adapted the return webpages to the device generating the query, and hence displaying the results. The user experience when reviewing the results is very limited, as the user has to scroll down and review each web site's description returned by the text. This approach is very inconvenient when trying to review the results over, e.g., a smartphone having a small display.
Furthermore, while the results as displayed to users maybe catered to the user's personal preferences, they do not reflect a personalized, real-time and deep web content. This is due to the fact that prior art search engines provide the links based on a crawl function. That is, the data provided reflects content stored on the server(s) of the search engine, rather than data that is provided by a resource to which a link is provided to. Hence, such a resource may change its content and provide useless information once accessed based on the link provided.
It would be therefore advantageous to provide a solution that would overcome the limitations of existing web search engines.
SUMMARYCertain embodiments disclosed herein include a method for enabling applications content streaming to a user device in response to a search query. The method comprises: receiving an input search query from the user device; selecting, based on the input search query, at least one resource from a plurality of resources to respond to the input search query; sending the input search query as an input to each of the at least one selected resource; providing, for each of the at least one selected resource, a single display segment within a display area on the user device; causing the at least one selected resource, in response to receiving the input search query, to execute an application of the at least one selected resource within a corresponding display segment, wherein content displayed in each display segment corresponds only to content streamed by the application; and establishing a direct communication link between the at least one selected resource and the user device for at least enabling direct interaction with the application of the at least one selected resource.
Certain embodiments disclosed herein also include a server for enabling applications content streaming to a user device in response to a search query. The server comprises: a processing system; and a memory, the memory containing instructions that, when executed by the processing system, configure the server to: receive an input search query from the user device; select, based on the input search query, at least one resource from a plurality of resources to respond to the input search query; send the input search query as an input to each of the at least one selected resource; provide, for each of the at least one selected resource, a single display segment within a display area on the user device; cause the at least one selected resource, in response to the input search query, to execute an application of the at least one selected resource within a corresponding display segment, wherein content displayed in each display segment corresponds only to content streamed by the application; and establish a direct communication link between the at least one selected resource and the user device for at least enabling direct interaction with the application of the at least one selected resource.
The subject matter disclosed herein is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the disclosed embodiments will be apparent from the following detailed description taken in conjunction with the accompanying drawings.
The embodiments disclosed herein are only examples of the many possible advantageous uses and implementations of the innovative teachings presented herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claimed embodiments. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality. In the drawings, like numerals refer to like parts through several views.
According to certain exemplary embodiments, in order to perform an effective search technique, a user device communicates with a search server and provides a search query that is comprised of search terms and/or, when applicable, search metadata. According to certain embodiments, the metadata may be provided by the user of the user device, the user device, and/or a search server as described in further detail herein below. The metadata maybe respective of certain types of user input queries that the resource can handle. The search server is configured to analyze the search query and provide the search terms to appropriate resources that can provide answers to the query and hence is also referred to as a resource publisher. The query is provided to the resources in the way that the resource can handle the query and respond thereto. If the query contains metadata, it may be used to determine such appropriate resources. The search server further allocates on the user device a display area having display segments for at least a portion of the resources deemed appropriate to answer the query. Each resource provides the answers directly to its corresponding display segment on the user device without further intervention by the search server, thereby allowing a resource, described in further detail herein below, to provide a place where the resource is free to provide a response to the query in any way it may wish, including, without limitation, opening a web page, allow interactions with one or more resources and more.
The search server 120 is configured to receive the query and process it to determine which resources from a plurality of resources 130-1 through 130-n are the most appropriate to submit the query to. The resources 130 includes, but are not limited to, a plurality of web search engines, servers of content providers, vertical comparison engines, servers of content publishers, and so on. It should be further noted that according to an embodiment, a resource can respond within an application that is installed on the user device 110. This allows, for example and without limitation, the launch of the iTunes® app if the query is music related.
For example, if the query term is “Hector Berlioz” then it is most likely that the best answers will be from resources that are capable of handling classical music queries. In accordance with an embodiment, the search server 120 is capable of determining which would be the most appropriate resources 130 to address the query to, either by actively checking what a resource 130 can provide or by, for example, registration of a resource 130 to certain categories, such as “music” or “carpentry tools”, as well as, but without limitation, registration for certain keywords. Moreover, and as further explained herein below, the search server 120 may monitor the use of the user on the user device, but not within the application in a display segment thereby maintaining user privacy with respect to the interaction with a resource 130, to determine which of the resources 130 was the most appropriate for the user and to influence thereby future references to that resource.
In one embodiment, an operator is used between the search term and a metadata term, for example, the operator “@”. The metadata term may be, but is not limited to, a category, a specific resource 130, a location, a keyword, and so on. A user can therefore submit a query for “Beethoven @ music” which would then be directed to, and answered by, selected resources 130 that the server 120 determines to be capable of answering music related queries. However, the query “Beethoven @ Movies” will be directed to potentially a different group of sources from the resources 130, and one result could be the movie Beethoven with a Saint Bernard dog named Beethoven as a star of the movie. The function of this operator will be discussed in more detail herein below. The operator can be provided by the user or selected between suggestions from the search server 120.
The search server 120, once one or more appropriate resources from the resources 130 have been identified, is configured to send search requests to such selected resources 130 over communication links 150-1 through 150-n. It is not necessary to send the search requests, or a variation thereof, to all the resources 130-1 through 130-n but only to the subgroup that is determined to be relevant for the query.
The search server 120 further provides a display area containing display segments unique for each of the resources 130 determined to be appropriate for receiving the query, and such appropriate resources are directed to communicate directly with their respective display segment on the user device over communication links 160. Thus, the search server 120 is configured to establish a direct communication between the resources 130 respective display segments. The display area may be an application of its own right, such as, but not limited to, a web browser.
In one embodiment, and as further explained herein below, only a portion of the selected resources of the resources 130 are designated with a display segment. Those selected resources that do not have an allocation of a display segment are approached when the user requests, for example, information from additional selected resources. By mere example, if there are thirty selected resources the display area may be designed to contain only ten display segments, therefore only the top ten of the selected resources are associated with a display segment. The other selected resources can be associated with the display segment upon a request for more information made by the user and as further explained below. As a result it is not necessary for the server 120 to have any specific information or data regarding the actual content residing on the resource, unlike the prior art. The only ability needed is to determine which resource of the resources 130 is appropriate to provide a certain answer to a query and, potentially, is a resource trusted by a user of the device 110.
It should be noted that the search server 120 provides the query, or search terms thereof, to a resource 130 in a communication format that is proper for that specific resource thereby enabling search of such resources that require structured interface to perform any kind of successful search. The search server 120 is therefore configured to communicate directly with a variety of resources each having its own requirement to respond to a query. It should be noted that the communication links 140, 150, and 160 may occur over a common network such as, but not limited to, a local area network (LAN), a wide area network (WAN), a metro area network (MAN), the world wide web (WWW), the Internet, a wired network, a wireless network, and the like, as well as any combination thereof.
It should be noted that although not shown in
The display area 210 is allocated by the search server 120 to a plurality of display areas 220, from display segment 220-1 through display segment 220-m (when m is an integer number). The number of actual display segments 220 corresponds to the number of appropriate resources 130 to which the query was referred to by the server 120. Each display segment 220 is allocated to one of the appropriate resources 130 which interacts with the user from within that display segment. In one embodiment, only a portion of the selected resources of the resources 130 is designated with a display segment. Those selected resources that do not have an allocation of a display segment are approached when the user requests, for example, information from additional selected resources. In yet another embodiment, a scroll function can be implemented as part of the display area 210 to enable viewing of otherwise hidden display segments. One of ordinary skill would readily realize that rather than the prior art approach of providing links based on data stored at the search engine level, for example, the Google® style, in response to a query, in accordance with an embodiment, one or more display segments 220 that contain the response from the appropriate resources 130 are provided to the user device 110, without storing at the search server 120 any such data.
It should be further noted that one display segment 220 may contain search engines, such as Google® search engine, including links, as a fully functional resource publisher within a display segment 220. The advantage of the approach where content of a resource 130 is displayed within a display segment being that the search server 120 does not control what is presented to the user as is done in prior art solutions, as well as having access to the application itself immediately upon delivery of the results to the query. For example, when a “Toy Story” query is searched, one of the resources may be a Netflix® service while the other is Google®. Thus, one display segment 220 will present search results in a webpage format as generated by a Google® search engine, while another display segment 220-n will run a Netflix® player playing the movie as streamed from Netflix's servers. Thus, according to this example, the response to the query is an active application running directly by the resource publisher selected in the display segment 220-n.
An active application as discussed herein includes, but is not limited to, a web application, and a native application. A web application is any application that can be accessed on the WWW via a web browser and typically use a HTML format. Typically, a web application is executed by a web server and the user device (client) receives the processing results, for example, a web application for booking flight tickets. A native application, as defined herein, is any software application that runs on the user device 110 and can, but is not required, to be accessed by using the Internet or via a connection to the Internet. For example, native applications are installed on PCs, smartphones, or tablet computers (e.g., Apps for Apple's iPhone® and iPad®) are such examples of Internet applications. Typically, such applications do not require a web browser to access information and be executed by the user device (e.g., a smartphone). Examples for native applications include applications that play movies, applications that download songs, applications through which a user can order a pizza, applications through which a user can request an electrician to make a house call, and the like.
In one embodiment, icons 430 may enable the user of the user device to provide feedback to the search server 120 with respect to the current display segment, for example, display segment 420-2. For example, and without limitation, an icon may allow providing a feedback that the information is useful and liked by the user, another icon may provide the opposite feedback, and so on. This feedback may be used for both determination of the relevance of the information provided by the resource responsive of the query, as well as to the user's preferences. Thus, the feedbacks provided by the users are utilized to adaptively update the selection of resources for users' queries. The user can enter a query that may contain search terms as well as metadata terms as explained hereinabove, in window 440.
In one embodiment, only a portion of the selected resources of the resources 130-1 through 130-n are designated with a display segment. Those selected resources that do not have an allocation of a display segment are approached when the user requests, for example, information from additional selected resources. Mini-display segments (e.g., mini-display segments, labeled 610-2 and 610-5, are shown, while a plurality of others, such as 610-1, 610-3, 610-4, 610-6, etc., are not shown for display clarity) correspond in this case to the number of display segments made available, and additional mini-display segments are added once additional information from other selected resources is requested. The display segments may also include icons 630 enabling the user of the user device to provide feedback to the search server 120 with respect to the current display segment.
In accordance with an embodiment, the display segments (shown in
In another embodiment, the search server 120 is configured to provide metadata respective of the content used as a query provided to the resources and/or publishers, and the metadata may further include information about the geo-location of the user, so the publisher can provide location based results. For example, but without limitations, if a user is searching for Sushi, all the publishers may get the location of the user so they can provide restaurants and offers nearby the user's physical vicinity. It should be appreciated that entering search queries using such notation and metadata, simplifies the process of querying and increases the chances to retrieve results for the user's satisfaction. This approach together with novel techniques for displaying the returned results, as discussed above, enhance the users' searching experience, and specifically when searching through mobile phones and/or smart phones.
In S720, based on the input query, one or more resources are selected as being appropriate to provide answers respective of the received query. As mentioned above, the selection of one or more resources 130 is performed based on the input query, registration of the user to resources, and feedback provided by the user implicitly (e.g., which of the resources the user has been frequently using and for how long) or explicitly (e.g., using icons 430 and 630) when reviewing returned results and additional information, such as location, time of day, and/or others. Optionally, the order of the resources 130 is ranked so as to provide more appropriate resources 130 to the user of the user device 110 earlier in the search response. According to certain embodiments, various types of analyses can be executed on the input query.
In one type of analysis, a semantic analysis may be executed, wherein at least one action is extracted from the received query. This analysis of the received input query substantially determines what kind or type of information the user is searching for or what kind of action the user wants to execute. It is noted that the kind or type of information a user is looking for can be restated as an action which the user wishes to execute. Examples for such actions may be “comparing prices” of various items and objects, “listening to” music online or “viewing” images or video online. Thus, for example, the query including “watching Toy Story”, and the user device installed with a Netflix native application, then one of the selected resources would be Netflix's servers.
In S730, the query is submitted to each of the selected resources of the resources 130. In S740, a display area on the user device 110 and provides for each of the selected resources of the resources 130 a corresponding display segment, for example, a display segment 320-2 is designated. Further, when applicable, one or more resources with authentication information, e.g., a user name and a password are provided. The user may be prompted to enter such information on behalf of some resource 130.
In S750, each of the selected resources of the resources 130 is enabled to communicate directly with the user device 110 for the purpose of interaction with the user in the uniquely designated display segment 320 for that resource. According to an embodiment, the interaction is enabled using a native application of the resource (e.g., a Netflix® player). This includes, for example, transferring to the designated display segment 230 executable code, such as hyper-text markup language (HTML) code, Java scripts, and code for causing a native application installed on the user device 110 to retrieve content/information from the resource. According to another embodiment, the interaction is enabled transferring to a display segment 230 code that returned as a result of a processing of a web application, and more, by one or more of the resources 130. In yet another embodiment, the interaction is enabled by displaying of multimedia content provided by one or more of the resources 130 in the display segment 230. Optionally, a step of collecting information for feedback and future ranking may be performed.
In S760, it is checked whether additional queries are to be handled by the search server 150 and if so execution continues with S710; otherwise, execution terminates.
It should be noted that the input (e.g., input 440), the display segments (e.g., display segments 320) and mini-display segments (e.g., mini-display segments 610) may be shown on a display area that can be a browser or another other appropriate application, either generic or tailored for the purposes described in detail hereinabove.
The various embodiments disclosed herein can be implemented as hardware, firmware, software, or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or tangible computer readable medium consisting of parts, or of certain devices and/or a combination of devices. The application program may be uploaded to, and executed by, a machine comprising any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as one or more central processing units (“CPUs”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit. All or some of the servers maybe combined into one or more integrated servers. Furthermore, a non-transitory computer readable medium is any computer readable medium except for a transitory propagating signal.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosed embodiments and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosed embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.
Claims
1. A method for enabling applications content streaming to a user device in response to a search query, comprising:
- receiving an input search query from the user device;
- selecting, based on the input search query, at least one resource from a plurality of resources to respond to the input search query;
- sending the input search query as an input to each of the at least one selected resource;
- providing, for each of the at least one selected resource, a single display segment within a display area on the user device;
- causing the at least one selected resource, in response to receiving the input search query, to execute an application of the at least one selected resource within a corresponding display segment, wherein content displayed in each display segment corresponds only to content streamed by the application; and
- establishing a direct communication link between the at least one selected resource and the user device for at least enabling direct interaction with the application of the at least one selected resource.
2. The method of claim 1, wherein the input search query further includes metadata, wherein the metadata relates to at least one of: the input search query, the user device, and a user of the user device.
3. The method of claim 2, further comprising:
- analyzing the input search query and the metadata, wherein the selection of the at least one resource is further based on the analysis.
4. The method of claim 1, wherein the application of the at least one selected resource is not installed on the user device.
5. The method of claim 1, wherein the application of the at least one selected resource is a native application installed on the user device.
6. The method of claim 5, further comprising:
- causing the at least one selected resource to activate the application on the user device; and
- streaming content in response to the input search query to the application for display in the display segment.
7. The method of claim 1, further comprising:
- ranking the at least one selected resource for display on the user device.
8. The method of claim 7, wherein the at least one selected resource is ranked based on a collection of data from previous searches including at least one of: an explicit feedback, and an implicit feedback.
9. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 1.
10. A server for enabling applications content streaming to a user device in response to a search query, comprising:
- a processing system; and
- a memory, the memory containing instructions that, when executed by the processing system, configure the server to:
- receive an input search query from the user device;
- select, based on the input search query, at least one resource from a plurality of resources to respond to the input search query;
- send the input search query as an input to each of the at least one selected resource;
- provide, for each of the at least one selected resource, a single display segment within a display area on the user device;
- cause the at least one selected resource, in response to the input search query, to execute an application of the at least one selected resource within a corresponding display segment, wherein content displayed in each display segment corresponds only to content streamed by the application; and
- establish a direct communication link between the at least one selected resource and the user device for at least enabling direct interaction with the application of the at least one selected resource.
11. The server of claim 10, wherein the input search query further includes metadata, wherein the metadata relates to at least one of: the input search query, the user device, and a user of the user device.
12. The server of claim 11, wherein the server is further configured to:
- analyze the input search query and the metadata, wherein the selection of the at least one resource is further based on the analysis.
13. The server of claim 10, wherein the application of the at least one selected resource is not installed on the user device.
14. The server of claim 10, wherein the application of the at least one selected resource is a native application installed on the user device.
15. The server of claim 14, wherein the server is further configured to:
- cause the at least one selected resource to activate the application on the user device; and
- stream content in response to the input search query to the application for display in the display segment.
16. The server of claim 10, wherein the server is further configured to:
- rank the at least one selected resource for display on the user device.
17. The server of claim 16, wherein the at least one selected resource is ranked based on a collection of data from previous searches including at least one of: an explicit feedback, and an implicit feedback.
Type: Application
Filed: Apr 11, 2016
Publication Date: Aug 4, 2016
Applicant: Doat Media Ltd. (TEL AVIV)
Inventors: Rami KASTERSTEIN (Givataim), Amihay BEN-DAVID (London)
Application Number: 15/095,905