More and more, people are interacting with and through online services, including but not limited to social networking sites, search engines, online shopping sites, libraries, entertainment/gaming sites, music and video streaming sites, and the like. All of these online services work at a basic level of functionality with each new (or unidentified) user, yet nearly all of these online services work “better” when a user is identified and has provided information about himself/herself to the service. With specific information about the user, these online services are able to “personalize” their services—i.e., provide services specifically tailored and targeted to the user.
User interaction with an online search engine has been well-established for some time: a user submits a search query to the search engine; the search engine identifies content relevant to the search query; the search engine generates one or more search results pages having search results (i.e., hyperlinks to content) to the identified content; and returns the one or more search results pages to the user in response to the search query. While some of the search results that are returned in the search results pages makes sense to the user, quite often the user is left wondering, “Why is this search result presented to me?” This is especially true as search engines personalize the search results to the particular user that submits the search query.
The following presents a simplified summary in order to provide a basic understanding of various embodiments described herein. This summary is not an extensive overview, and it is not intended to identify key and/or critical elements or to delineate the scope thereof. The sole purpose of this summary is to present some concepts in a simplified form as a prelude to the more detailed description that follows.
According to aspects of the disclosed subject matter, a method for responding to a search query from a user is presented. The method comprises the following, including obtaining a set of search results relevant to the search query. After obtaining the set of search results, a subset of the search results of the obtained set of search results is annotated according to user data associated with the user. Search results pages are generated from the set of search results. The search results pages includes at least one annotated search result of the subset of annotated search results. Moreover, for each annotated search result included in the search results pages, a corresponding user-actionable annotation indicator is included proximate to the annotated search result. Finally, the search results pages are returned in response to the search query.
According to additional aspects of the disclosed subject matter, a computer-readable medium bearing computer-executable instructions is presented. The instructions, when executed on a computing system comprising at least a processor retrieved from the medium, carry out a method for responding to a search query from a user. The method comprises the following steps, including presenting an initial set of search results relevant to a search query received from a user. In one embodiment, the initial set of search results includes at least one annotated search result. The annotation corresponding to the at least one annotated search result is presented in response to a user request to display the annotation. The annotation comprises a plurality of annotation relationships, wherein each annotation relationship describes a basis for which the at least one search result is relevant to the user. A selection of an annotation relationship is received, indicative of a request to update the initial set of search results according to the basis of the selected annotation relationship. Updating the initial set of search results may comprise any (or a combination) of the actions of filtering the search results according to the basis of the selection annotation relationship, reordering the initial set of search results with an emphasis (weighting) placed on the basis of the selected annotation relationship, or obtaining an entirely new set of search results (with an emphasis on the basis of the selected annotation relationship). An updated set of search results updated from the initial set of search results is obtained according to the basis of the selected annotation relationship. The updated set of search results is then presented to the user.
According to still further aspects of the disclosed subject matter, a computer system for presenting search results to a search query is presented. The system comprises a processor and a memory, wherein the processor executes instructions stored in the memory as part of or in conjunction with additional components to respond to a search query. These additional components comprise a network communication component for communicating with one or more computing devices over a communication network. The computer system further comprises a search results retrieval component that obtains an initial set of search results according to information in a content index responsive to receiving a search query from a user. An annotation component annotates a subset of the initial set of search results according to user signals associated with the user. The subset of annotated search results is annotated independently of the rationale for obtaining the plurality of search results. A search results page generator component generates an initial search results page from the initial set of search results and returns the initial search results page to the user in response to the search query. The initial search results page includes at least one annotated search result of the subset of annotated search results. For each annotated search result included in the one or more search results pages, the search results page generator includes a user-actionable annotation indicator proximate to the annotated search result. A search results update component updates the initial set of search results according to update criteria of an update request received from the user. The search results update component further obtains an updated search results page generated by the search results page generator, and returns the updated search results page to the user in response to the update request.
The foregoing aspects and many of the attendant advantages of the disclosed subject matter will become more readily appreciated as they are better understood by reference to the following description when taken in conjunction with the following drawings, wherein:
For purposed of clarity, the use of the term “exemplary” in this document should be interpreted as serving as an illustration or example of something, and it should not be interpreted as an ideal and/or leading illustration of that thing.
For purposes of clarity, a search result is data presented to a user in response to a search query from the user. Typically, a search result is a reference (or hyperlink) to content accessible to the user over a network. An annotated search result is a search result that is associated with an annotation. The term, “annotation,” as used throughout this document, refers to a set of annotation relationships between the subject matter of a search result and a user, i.e., the rationale or basis as to how the subject matter of the search result relates is relevant to the user.
Each annotation relationship describes a single basis for which the user and subject matter of the search result are related. While annotation relationships typically describe a positive affinity between the user and the search result, an annotation relationship may describe a negative affinity between the user and the entity. For simplicity in description, the phrase “annotation relationship between the subject matter of a search result and the (or a) user” will be shortened to “annotation relationship between the search result and the user.”
To visually indicate that a search result has been annotated, an annotation indicator (typically a user-actionable indicator such as an icon) is placed in proximity to the annotated search result. It is through activating the annotation indicator by which the user can view/access the annotation for that search result.
At the next step of processing is the personalization step 108. The personalization step takes the search results set 106 generated in the search results retrieval step 104 and personalizes the results according to user data 110. This user data may include, but is not limited to: dynamically determined context information about the user (e.g., the current geographic location of the user, time of day, type of computing device in use, current applications in use, and the like); personalization criteria including data that is stored about the user in a user profile store 714 (see
Another step in the process 100 is the annotation step 114. While shown in
With a search results set 116 that includes search results, personalized scores, and annotation information, the search results page (SERP) generation step 118 generates one or more search results pages 120 from the search results set 116.
According to aspects of the disclosed subject matter, the annotation step 114 determines which search results to annotate and the corresponding annotations (i.e., the set of annotation relationships between the search results and the user) for the selected search results independent of the rationale used to identify the set of search results in the search results retrieval step 104. While it may be that the same criteria are used in both the search results retrieval step 104 and the annotation step 114, the annotation step 114 does not obtain such information from the search results retrieval step 104.
To illustrate annotated search results as well as additional aspects of the disclosed subject matter, reference is now made to
Regarding the annotation icons 208-212, according to aspects of the disclosed subject matter the annotation icon corresponds to the predominant annotation relationship in the annotation, i.e., the annotation relationship with the strongest affinity between the user and the search result. In the exemplary case of annotation icon 212, this “compass” icon is a visual indication that locality/geographic location is the predominant annotation relationship of the corresponding annotation. Annotation icons 208 and 210 are, in this exemplary browser view 200, visual indications that personal preferences are the predominant annotation relationships of the corresponding annotations. While only two distinct annotation icons (e.g., annotation icons 208 and 212) are represented in the illustrated browser view 200, this is for illustration purposes and should not be viewed as limiting upon the disclosed subject matter. The disclosed subject matter should be viewed as encompassing any number of icons corresponding to a particular basis for which an annotation relationship is included in an annotation.
Often, an annotation relationship will represent an aspect related to the search query that appeals to the user. For example, the basis of the annotation relationship represented by “This wine is locally available to you,” is a locality/geographic location basis. The user may realize that this is an important consideration at the moment. Hence, according to aspects of the disclosed subject matter, users are provided controls whereby they are able to update the search results according to rationale/basis of an annotation relationship. As shown in annotation window 214, each annotation relationship is followed by a “more” icon, such as icon 216, as well as a “less” icon, such as icon 218. In this example, selecting icon 216 will cause the search engine 700 to update (i.e., filter, reorder and/or re-query) the search results according to the location of the user. Conversely, selecting the “less” icon 218 will cause the search engine 700 to update the search results without consideration to the present location of the user. Moreover, according to further aspects of the disclosed subject matter, selecting a “more” or “less” icon will result in feedback to the search engine regarding the user's overall preferences (which play into the annotation process as discussed earlier.) As part of the user filtering (or reordering/re-querying) the search results, the update criteria may be entered into a feed-back loop to update the user data 110 (
In a further alternative embodiment, in addition to controls that enable a user to provide more or less weight to a specific criteria (e.g., via controls 216 and 218), an additional control may be displayed that enables the user to instruct the search engine and/or annotation system from tracking a particular facet. For example, in addition to the “more” icon 216 and the “less” icon 218, an addition control may be added whose purpose is to say “do not track this as part of my user profile.” Of course, this type of feedback is also highly relevant user information that is provided to the feed-back loop in updating the user data 110.
According to additional aspects of the disclosed subject matter, the exemplary browser view 200 includes preference dominance icons 202-206. These preference dominance icons provide a visual representation of the predominant preference aspect that was used in ordering the current set of search results. As can be seen, predominance icon 202, corresponding to personal preferences of the user, is highlighted indicating that the search results displayed in the browser view 200 were weighted most heavily in favor of the user preferences. In this example, predominance icon 204, corresponding to the users current geographic location, indicates that the user's current geographic location was considered but was not the predominant factor in ordering the search results displayed in the browser view 200. Further still, predominance icon 206 provides a means whereby the user can turn off the use of user preference signals in ordering the search results that are displayed in the browser view 200. Selecting one of the predominant icons that is not currently highlighted will result in the reordering of the search results. For example, selecting predominance icon 204 will cause the search results in the browser view 200 to be reordered with predominance towards the user's geographic location.
As an example of the updating that can occur, we can assume that the user has selected the “more” icon 216 to update the search results in the browser view 200 according to the users current geographic location. In this regard,
Turning now to
At block 406, the search engine 700 personalizes the search results retrieved from the content index according to user data 110 corresponding to the user. As indicated previously, the user data may comprise implicit and/or explicit user preferences, including those that are stored in the user profile store 714, and dynamically determined user context information, and preferences of one or more social groups to which the user belongs, trending topics in which the user may have an interest, and the like. As previously mentioned, the results of personalizing the search results is a reordering of the search results according to the user data 110.
At block 408, the search engine 700 identifies the search results with the strongest affinity to the user in preparation for annotating the identified search results. In one non-limiting embodiment, the search engine 700 (via an annotation component 718,
Search results are annotated according to user data 110 independent of the rationale used in retrieving the search results from the content index 712. Further still, the annotation of the search results is independent of the personalization of the search results and, thus, the order in which the search results are personalized and annotated, as shown in the exemplary routine 400 of
At block 412, the search engine 700, via a search results page generator component 722 (
Turning now to
Regarding the routines of
The search engine 700 also includes a network communications component 706 through which the search engine sends and receives communications over a network 808 (
Also included in the exemplary search engine 700 is an annotation component 718. As already discussed above, according to at least one embodiment the annotation component 718 selects one or more search results for annotation according the affinity between the user and the corresponding search results. For those selected search results (or, in an alternative embodiment, for all search results) the annotation component 718 annotates the search results according to user data 110. The annotation component 718 annotates the search results independent of the bases for which the search results retrieval component 708 obtains the set of search results.
Still further included in the exemplary search engine 700 is a search results update component 720. The search results update component 720 processes the update requests generated by the user (typically from controls within a search results page) and updates the results according to update criteria specified in the update request. Updated search results pages are generated and returned with the updated search results.
Those skilled in the art should appreciate, of course, that many of these components of the exemplary search engine 700 can and should be viewed as logical components for carrying out various functions of a suitably configured search engine 700. These logical components may or may not correspond directly to actual components of a search engine 700 configured to provide search results, including annotated search results, to a user in response to a search query. Moreover, in an actual embodiment, these components may be combined together or broke up across multiple actual components.
Regarding the environment in which the search engine 700 operates,
Those skilled in the art will appreciate that a search engine 700 corresponds to an online search service hosted on one or more computers on, or computing systems distributed throughout, the network 808. The search engine 700 receives and responds to search queries submitted over the network 808 from various users, such as the users connected to user computers 802-806. As already mentioned, in response to receiving a search query, the search engine 700 obtains search results information related and/or relevant to a user's search query (as defined by the terms of search query.) The search results are typically references (largely in the form of hyperlinks) to relevant/related content available from various target sites (such as target sites 812-816) on the network 808. The search results may also include other information such as related and/or recommended alternative search queries, data and facts regarding the subject matter of the search query, products, and/or services related/relevant to the search query, advertisements, and the like. The search engine 700 generates one or more search results pages responsive to the search query based on the search results information. According to various embodiments of the disclosed subject matter, the search engine 700 includes annotated search results with the generated search results pages.
As those skilled in the art will appreciate, target sites, such as target sites 812-816, host content that is available and/or accessible to users (via user computers) over the network 8108. The search engine 700 will be aware of at least some of the content hosted on the many target sites located throughout the network 808, and will store information regarding the hosted content of the target sites in a content index (712 of
Suitable user computers for operating within the illustrative environment 800 include any number of computing devices that can communicate with the search engine 700 or target sites 812-814 over the network 808. In regard to the search engine 700, communication between the user computers 802-806 and the search engine 700 include both submitting search queries and receiving a response in the form of one or more search results pages from the search engine 700. User computers 802-806 may communicate with the network 808 via wired or wireless communication connections. These user computers 802-806 may comprise, but are not limited to: laptop computers such as user computer 802; desktop computers such as user computer 804; mobile phone devices such as user computer 806; tablet computers (not shown); on-board computing systems such as those found in vehicles (not shown); mini- and/or main-frame computers (not shown); and the like.
While various novel aspects of the disclosed subject matter have been described, it should be appreciated that these aspects are exemplary and should not be construed as limiting. Variations and alterations to the various aspects may be made without departing from the scope of the disclosed subject matter.