HK1111254B - Search systems and methods using in-line contextual queries - Google Patents
Search systems and methods using in-line contextual queries Download PDFInfo
- Publication number
- HK1111254B HK1111254B HK08105970.5A HK08105970A HK1111254B HK 1111254 B HK1111254 B HK 1111254B HK 08105970 A HK08105970 A HK 08105970A HK 1111254 B HK1111254 B HK 1111254B
- Authority
- HK
- Hong Kong
- Prior art keywords
- search
- user
- query
- content
- contextual
- Prior art date
Links
Description
Technical Field
The present invention relates generally to a search system and method, and in particular to a search system and method using inline contextual queries.
Background
The World Wide Web (Web), as the name implies, is a decentralized global collection of interlinked information, usually in the form of "pages" that may contain text, images, and/or media content that virtually relate to each conceivable topic. A user who knows or finds a Uniform Resource Locator (URL) for a page can provide the URL to a Web client (often referred to as a browser) and can view the page immediately. Since Web pages (Web pages) typically include links (also referred to as "hyperlinks") to other pages, finding a URL is typically not difficult.
It is difficult for most users to find the URL of the page in which they are interested. The amount of content available on the Web has turned the task of finding pages about a particular interest into what may ultimately be a problem with needle scooping in the sea. To address this problem, the search provider (e.g., Yahoo |, MSN, Google) industry has evolved. Search providers typically maintain a database of Web pages in which the URL of each page is associated with information reflecting its content (e.g., keywords, classification data, etc.). The search provider also maintains a search server for managing search pages (or sites) on the Web. The search page has a form into which the user can enter a query that typically includes one or more terms that represent their interests. Once the query is entered, the search server accesses the database and generates a list of "hits" (typically URLs for pages whose content matches the keywords resulting from the user's query). The list is provided to the user. Since queries typically return hundreds, thousands, or in some cases millions of hits, search providers have developed sophisticated algorithms for ranking the hits (i.e., determining the order in which the hits are displayed to the user) so that the pages most relevant to a given query may appear near the top of the list. Typical ranking algorithms take into account not only the keywords and their number of occurrences, but also other information (such as the number of other pages linked to the hit page, the popularity of the hit page among users, etc.).
To further facilitate their use, some search providers now provide "search toolbar" add-on software for Web browser programs. Search toolbars typically have a text box in which a user can type a query, and a "Submit" button for submitting the query to the search provider's server. Once the user has installed the search toolbar, the search toolbar is typically visible regardless of what page the user is viewing, which enables the user to enter a query at any time without having to first navigate to the search provider's Web site. Processing searches initiated by the toolbar in the same manner as searches initiated at the provider's site; the only difference is that the user is left out of the step of navigating to the site of the search provider.
While the automatic search technique is very useful, it does have many limitations, the most prominent of which is that the user needs to try to transfer enough contextual information to guide the search for relevant content. A query that is too broad (too few contexts) may return a few relevant contents that are overwhelmed in a large number of irrelevant hits; while a query that is too narrow (too much context) may cause relevant content to be filtered out as irrelevant content. Typically, the user has a very specific context in the mind, but this specific context may not be reflected in the query. For example, a user entering the query "jaguar" may be simply thinking of a car, an animal, a professional soccer team, or something else.
In principle, contextual information can be gathered from what the user did before entering the query. It is well known that users are typically motivated to search when additional problems arise with the information they are currently reviewing. For example, a user who enters the query "jaguar" after (or while) viewing a page about cars is most likely interested in cars, while a user who enters the same query after (or while) viewing a page about zoos is most likely interested in animals. Existing search techniques do not provide a reliable way to collect such contextual information or to use the contextual information to respond to queries.
It is therefore desirable to provide a search server with contextual information that can be used to respond to queries.
Disclosure of Invention
Embodiments of the present invention provide a system and method for implementing a search using contextual information about the page or other document being viewed when a user enters a query. In some embodiments, a page or document includes a contextual search interface having a relevant context vector representing the content of the page or document. When a user submits a search query through the contextual search interface, the context vector is also provided to the query processor and used to respond to the query. The context vector may also be used in other ways (such as selecting other content that may be of interest to the user).
According to one aspect of the invention, a method for processing a query is provided. A user query is received through the contextual search interface, wherein the user query includes data input by the user. In addition, a context vector related to the contextual search interface is received, wherein the context vector includes data representing content related to the contextual search interface. A search corpus (corpus) is searched using the search query and the context vector to obtain search results that include a list of hits. The search results for presentation are transmitted to the user.
According to another aspect of the present invention, a method for providing information to a user is provided. A page is provided that includes content. A contextual search interface is associated with the content, wherein the contextual search interface is to receive a query from a user. A context vector representing content is associated with a contextual search interface. A query from a user is received through a contextual search interface and the query and context vector are transmitted to a search server for processing, wherein the search server is configured to search a search corpus using the query and context vector and return search results to the user. In some embodiments, an inactive state and an active state are defined for the contextual search interface, wherein when in the inactive state the contextual search interface is displayed as a small icon on the page and when in the active state the contextual search interface is displayed as a complete interface on the page. For example, the contextual search interface may be displayed in an inactive state by default, and may be redisplayed in an active state in response to user selection of an icon. In some embodiments, in response to user selection of an icon, specific content may be added to the page, where the specific content is selected based on the context vector.
The following detailed description and the accompanying drawings will provide a better understanding of the features and advantages of the present invention.
Drawings
FIG. 1 is a high-level block diagram of an information retrieval and communication network including a client system according to an embodiment of the present invention;
FIG. 2 is a block diagram of another information retrieval and communication network according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a Web page having a contextual search interface in accordance with an embodiment of the present invention;
FIG. 4 is a schematic diagram of a context vector for contextual search according to an embodiment of the present invention;
FIG. 5 is a schematic diagram of a Web page having a contextual search interface in an inactive state, according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of a Web page having multiple contextual search interfaces in accordance with an embodiment of the present invention;
FIG. 7 is a flowchart of a process performed by a content developer to create a contextual search interface, according to an embodiment of the invention;
FIG. 8 is a flow diagram of a process for generating a context vector according to an embodiment of the invention;
FIG. 9 is a flowchart of a process for a user creating a contextual search interface, according to an embodiment of the invention;
FIG. 10 is a flow diagram of a process for performing a contextual search according to an embodiment of the present invention;
FIG. 11 is a flow diagram of another process for performing a contextual search according to an embodiment of the present invention;
FIG. 12 is a schematic diagram of a Web page having a contextual search interface including content in accordance with an embodiment of the present invention; and
FIG. 13 is a flow diagram of a process for selecting augmented content according to an embodiment of the present invention.
Detailed Description
I. Overview
A. Network implementation
Fig. 1 shows a general overview of an information retrieval and communication network 10 including a client system 20 according to an embodiment of the invention. In computer network 10, client system 20 is connected to any number of server systems 501 to 50N via the Internet 40 or other communication network (e.g., via any Local Area Network (LAN) or Wide Area Network (WAN) connection). As will be described herein, client system 20 is configured to communicate with any of servers 501 to 50N in accordance with the present invention to, for example, access, receive, extract, and display media content and other information such as web pages.
Many of the elements of the system shown in fig. 1 include conventional, well-known elements that need not be described in detail herein. For example, client system 20 may include a desktop personal computer, a workstation, a laptop, a Personal Digital Assistant (PDA), a mobile telephone, any WAP-enabled device (WAP-enabled device), or any other computing device capable of connecting directly or indirectly to the Internet. Client system 20 typically runs a browsing program (such as Microsoft's Internet Explorer)TMBrowser, netscape navigatorTMBrowser, MozillaTMBrowser, OperaTMA browser, or a WAP-enabled browser (or the like) in a mobile phone, PDA, or other wireless device, to enable a user of client system 20 to access, process, and view information and pages that may arrive at the client system from server systems 501 through 50N over internet 40. Client systems 20 also typically include one or more user interface devices 22, such as a keyboard, mouse, touch screen, pen, etc., for interacting with a Graphical User Interface (GUI) provided by a browser on a display (e.g., monitor screen, LCD display, etc.) and pages, forms, and other information provided by server systems 501-50N or other servers. The present invention is suitable for use with the internet, which refers to a particular world wide web. However, it should be understood that other networks, such as an intranet, an extranet, a Virtual Private Network (VPN), a non-TCP/IP based network, any LAN or WAN, etc., may be used in addition to or in place of the Internet.
According to one embodiment, client system 20 and all of its components are controllers (operators) that may be configured using an application program that includes computer code, such as an Intel Pentium (R) applicationTMProcessor, AMD AthlonTMA central processing unit such as a processor or a plurality of processors to execute the computer code. Computer code for operating and configuring client system 20 to communicate, process, and display data and media content as described herein is preferably downloaded and stored on a hard disk, but the entire program code, or portions thereof, may also be stored in any other known volatile or non-volatile memory medium or device, such as a ROM or RAM, or provided on any medium capable of storing program code, such as a Compact Disk (CD) medium, a Digital Versatile Disk (DVD) medium, a floppy disk, and the like. Additionally, the entire program code, or portions thereof, may be transferred and downloaded from a software source, for example, from one of server systems 501 to 50N onto client system 20 over the Internet, or over any other network connection (e.g., extranet, VPN, LAN, or other conventional network) using any communication media and protocols (e.g., TCP/IP, HTTP, HTTPS, Ethernet, or other conventional media and protocols).
It should be appreciated that the computer code for implementing features of the present invention may be C, C + +, HTML, XML, Java, JavaScript, or the like code, or any other suitable scripting language (e.g., VBScript), or any other suitable programming language that may be executed on client system 20 or compiled for execution on client system 20. In some embodiments, no code is downloaded to client system 20, but rather the server executes the required code, or executes code already present in client system 20.
B. Search system
Fig. 2 illustrates another information retrieval and communication network 110 for delivering media content in accordance with an embodiment of the present invention. As shown, network 110 includes a client system 120, one or more content server systems 150, and a search server system 160. In network 110, client system 120 is communicatively connected to server systems 150 and 160 through internet 140 or other communication network. As described above, client system 120 and its components are configured to communicate with server systems 150 and 160 and other server systems over Internet 140 or other communication networks.
1. Client system
According to one embodiment, a client application (represented as module 125) executing on client system 120 includes: instructions for controlling client system 120 and its components to communicate with server systems 150 and 160, and to process and display data content received from server systems 150 and 160. The client application 125 may be transferred and downloaded to the client system 120 from a software source such as a remote server system (e.g., server system 150, server system 160, or other remote server system), or the client application module 125 may be provided on any software storage medium (floppy disk, CD, DVD, etc.) readable by the client system 120 as described above. For example, in one aspect, the client application 125 may be provided to the client system 120 over the internet 140 in the form of an HTML package that includes various controls (e.g., embedded JavaScript or Active X controls) for processing and translating data in various objects, frames, and windows.
The client application module 125 preferably includes various software modules for processing data and media content. In one embodiment, these modules include a specialized search module 126, a user interface module 127, and an application interface module 128. The specialized search module 126 is configured to process search requests (also referred to herein as queries) to be sent to the search server 160 and search result data received from the search server 160. Specific features of specialized search module 126 are described below.
The user interface module 127 is configured to translate text and data frames as well as data and media content in active windows (e.g., browser windows and dialog boxes). In some embodiments, user interface module 127 includes or communicates with a browser program, which may be a default browser or other browser configured on client system 120. The application interface module 128 is configured to support connections and communications between the client application 125 executing on the client system 120 and various other applications, such as email applications, Instant Messaging (IM) applications, browser applications, file management applications, and other applications.
User interface module 127 preferably has a user input interface that allows a user to enter a query for processing by search server system 160. For example, where user interface module 127 includes or is in communication with a browser, the user may enter a URL or activate a control button to direct the browser to a Web search page (or site) through which the user may submit a query to search server system 160 for processing. In addition to or instead of a user input interface, user interface module 127 may include a search toolbar or other interface through which a user may enter and submit a query without first navigating to a search page. Queries entered using user interface module 127 may be preprocessed by specialized search module 126 before being sent to search server system 160, for example, to remove so-called "stop words" (the "," and ", etc.), to correct spelling errors, and so forth.
According to embodiments of the invention, the client application 125 may include various features (features) for adding context data (referred to herein as "context vectors") to a user's query. For example, the specialized search module 126 may be configured to generate a context vector based on the content the user was viewing when entering the query. As another example, in some embodiments of the invention, a Web page displayed in a browser may include one or more context vectors that may be used to supplement a query input by a user. User interface module 127 may be configured to detect such context vectors in the displayed page and use the context vector data to supplement the query entered by the user. These and other features are described further below.
2. Search server system
According to one embodiment of the invention, search server system 160 is configured to provide search result data and media content to client system 120, and search server system 150 is configured to provide data, such as Web pages, and media content to client system 120, for example, in response to a user selecting a link in a search result page provided by search server system 160. In some variations, search server system 160 returns content and (or instead) links and/or other references to the content.
Search server system 160 references various page indexes 170 that increase with, for example, pages, links to pages, data representing the content of indexed pages, and so forth. The page index may be generated by various collection techniques, such as an automated Web crawler 172; in addition, manual or semi-automatic classification algorithms and interfaces for classifying and ranking Web pages in a hierarchical classification structure may be provided. These techniques and algorithms may be of generally conventional design and, as they are not important to the present invention, a detailed description thereof is omitted.
In one embodiment, the entries in page index 170 include a search entry, a reference (e.g., a URL or other encoded identifier) to the page in which the entry appears, and a context identifier for the page. The context identifier may be used to group similar results for search terms that may have different meanings in different contexts. For example, the search term "jaguar" may refer to uk cars, animals, professional football teams, and the like. The context identifier of the page may be used to indicate which of these contexts are available. In one embodiment, the context identifier includes a category of the page, wherein the category is specified according to a predetermined hierarchical classification of content categories. The page reference may be associated with multiple context identifiers, and thus the same page (or link thereto) may be displayed in multiple contexts. In some embodiments, as the user performs various searches, the system automatically associates context identifiers with page links; the identifier may also be manually changed and associated with the link by a set of one or more index editors.
Search server system 160 is configured to provide data in response to various search requests received from client systems 120, and in particular from search module 126 and/or user interface module 127. For example, search server system 160 may include a query response module 164 that may be configured with search-related algorithms for identifying and ranking Web pages with respect to a given query, e.g., based on a combination of logical relevance (which may be measured by the way search terms in the query appear), context identifiers, page sponsorship, and so forth.
In accordance with an embodiment of the present invention, the query response module 164 is further configured to receive and use the provided context vector data related to the query to further enhance the response to the query. The use of context vector data in response to a query is described further below. The query response module 164 may also augment the search result information with additional information (e.g., links and/or ad copies) obtained from the sponsored content database 162. Sponsored content database 162 may be implemented as part of page index 170, with additional fields for identifying references to sponsored pages and keywords for triggering the display of sponsored content contained in each entry, or may be implemented in a separate database.
In some embodiments, the search server 160 also includes a context processing module 166 configured with various algorithms for processing the received content to generate various algorithms representing context vectors of the received content. In general, a context vector may include any data representing all or part of the content. For example, one embodiment of a context vector for textual content may include keywords such as items (e.g., words or phrases) that appear in the content, and each such item may have an associated number count that reflects how many times the item will appear in the content. Other types of data may also be included, such as URLs or other data identifying any links that may be included in the content, URLs or other identifiers of pages that include the content, category data related to the content or pages that include the content, and so forth.
In some embodiments, a content augmentation server 180 is also provided. The content augmentation server 180 communicates with the client application 125 via the internet 140 to enhance the content of a displayed Web page having "specific content", preferably selected according to context vector data related to the displayed page. In the event that the user has indicated an interest in information about a particular context (examples of which are described below), the client application 125 transmits a context vector to the content augmentation server 180, and the content augmentation server 180 responds with the particular content to be added to the Web page displayed by the client application 125.
In one embodiment, the content augmentation server 180 and the search server 160 are under centralized control, and the content augmentation server 180 preferably selects specific content from the sponsored content database 162. In another embodiment, the content augmentation server 180 may be independent of the search server 160 and may have its own database of specific content from which selections may be made based on context vectors provided by the user applications 125.
It should be understood that the search system described herein is exemplary and that changes and modifications may be made. The content server, search server, and content augmentation server systems may be components of one organization (e.g., a distributed server system provided by Yahoo | corporation for users), or they may be components of a different organization. Each server system typically includes at least one server and associated database system, and may include multiple servers and associated database systems, and although shown as a single block in the figure, they may be geographically separated. For example, all servers of the search server system may be located in close proximity to one another (e.g., at a server farm located in a single building or campus), or they may be distributed at locations that are remote from one another (e.g., one or more servers located in city a and one or more servers located in city B). Thus, a "server system" as used herein generally includes one or more logically or physically connected locally distributed servers, or servers distributed across one or more geographic locations; the terms "server" and "server system" are used interchangeably.
The search server system may be configured with one or more page indexes and an algorithm that accesses the one or more page indexes and provides search results to the user in response to a search query received from a client system. The search server system may generate the page index itself, receive the page index from another source (e.g., a separate server system), or receive the page index from another source and perform further processing on it (e.g., adding or updating a context identifier).
C. Contextual search interface
As described above, the user interface module 127 of the client application 125 generally includes one or more interfaces for enabling a user to submit a query to the search server 160 (e.g., by navigating a browser to a search page managed by the search server 160 or by providing a toolbar interface for query submission). These interfaces can generally be implemented in a conventional manner.
In accordance with embodiments of the present invention, in addition to (or instead of) these interfaces, a user may enter a contextual query using a "contextual search" interface that may be implemented as a visible element (element) on any "home" Web page. (As used herein, the term "home Web page" or "home page" should be understood to refer to any page that includes at least one contextual search interface; the home page may or may not be under centralized control with the search server 160 or the content augmentation server 180). Each contextual search interface has a context vector associated with it. The context vector that is visible on the main page is not required to provide additional data reflecting the content of the main page (or parts thereof). This data may be used by, for example, the query response module 164 in query processing as described below.
An example of a contextual search interface will now be described. FIG. 3 shows a main page 300 with some content 302 that may appear when displayed on the client system 120 of FIG. 2. The main page 300 includes a contextual search interface 304 that is preferably located near the content 302. The user may initiate a contextual search by entering a query (e.g., "fuel con sumption") into the text field 306 of the interface 304 and activating a "submit" control 308, which may be, for example, a clickable button. The source code (not shown) for the main page 300 includes a context vector associated with the contextual search interface 304. In this embodiment, although the source code provided to the client application 125 at the time of the request for the page 300 includes data for the context vector, the context vector is not actually displayed in the page 300.
The context vector, which may be implemented in various ways, preferably includes one or more entries and/or category labels (or any other data) representing adjacent content 302. FIG. 4 is an example of a context vector 400 that may be used for a search initiated by the contextual search interface 304 of FIG. 3. The context vector 400 includes a list of entries 402 ("Cabrio", "golf", etc.) that appear in the content 302 and additional information about each entry. In this example, the additional information includes the number of times the entry appears (term frequency)404, the document frequency 406, the weight 408, and the entry type 410. The number of times an item appears 404 reflects the number of times the item appears in the content 302. The document frequency 406 reflects the number of documents in the search corpus that include the entry. The weight 408 reflects the importance assigned to the entry and may be calculated based on information such as whether the entry appears in text or title, the number of times the entry appears 404, and/or the document frequency 406. The entry type 410 may be used to distinguish between different types of data that may be included in a context vector (e.g., entries from text, classification data, URL data, etc.). It should be understood that the context vector may also include more, fewer, or different elements than those shown in fig. 4, and that these elements may be provided in any desired format. In one embodiment, the context vector 400 is included in the source code for the main page 300 in relation to the code for the contextual search interface 304.
When a user viewing the main page 300 using the client application 125 (FIG. 2) initiates a search by entering a query into the text field 306 and activating the submit control 308, the query sent by the client application 125 to the search server 160 for processing preferably includes not only explicit user input from the text field 306, but also a representation of the context vector 400. For example, in one implementation of the contextual search interface 304, the Web page 300 includes program code for sending an HTTP (HyperText transfer protocol) request to the search server 160 in response to the submit control 308. The program code may include code to add a representation of the user's query and context vector as additional data to a URL for the HTTP request.
In addition to the user's query (from the text field 306) and the context vector 400, the search server 160 may also receive other metadata, such as the user's identifier (if known), the user's IP address, time, and so forth. Metadata, which may or may not be specific to the home page or contextual search interface, may be obtained from the client application 125 or other source.
Upon receiving a query initiated through the contextual search interface 304, the search server 160 performs a search using the query response module 164 based on the user's query and the context vector (and optionally any other available metadata). The query response module 164 generates and ranks a hit list. A result hit list, typically dependent at least in part on the context vector, is returned to the user, for example, in the form of a search results page. In performing a search, the context vector may be used in various ways. For example, in one embodiment, a user's query may be modified by adding one or more keywords selected from the context vector (e.g., explicit input in text field 306 in FIG. 3); in another embodiment, a search is performed using the submitted user's query and keyword and/or classification data from the context vector used to rank the results. Other embodiments are described below.
In some embodiments, the contextual search interface of the main page may be initially displayed in an "inactive" state in which it appears with only relatively small icons on the page. An example of an inactive contextual search interface is shown in FIG. 5. The main page 300' is generated by the same source code as the main page 300 of fig. 3 and has the same content 302. However, in page 300', only a small contextual search icon 504 is displayed, and the complete contextual search interface 304 shown in FIG. 3 is not displayed. Icon 504 represents an inactive contextual search interface; a user viewing page 300' desiring to perform a contextual search with respect to content 302 may activate the contextual search interface, for example, by clicking on or otherwise selecting icon 504. Selection of icon 504 causes page 300 of FIG. 3 with contextual search interface 304 activated to be displayed so that the user can perform a contextual search.
Any number of contextual search interfaces may be provided on the main page, and each contextual search interface may have its own context vector reflecting nearby content. For example, FIG. 6 shows a main page 600 whose content includes a plurality of summaries 602, 604, 606 of different news stories. Each summary 602, 604, 606 has a respective contextual search icon 612, 614, 616 located in its vicinity. Each icon 612, 614, 616 is an inactive state of a different contextual search interface, each of which has its own context vector obtained from the neighboring digests 602, 604, 606. Any of these icons may be activated by the user and then used to initiate a contextual search (e.g., in the same manner as described above with reference to icon 504 and activated contextual search interface 304). The context vector for the search initiated by icon 612 is preferably obtained from summary 602, while the context vector for the search initiated by icon 614 is preferably obtained from summary 604, and so on. Since icons 612 and 614 have different associated context vectors, the search results (hits or their arrangement or both) for searches initiated by icons 612 and 614 are typically different even if the same query is entered.
In one embodiment, described further below, the creator of the main page may determine how many contextual search interfaces to include on the page they will be located on, and may determine which portion(s) of the page should be used to define the context for the search.
The following sections describe exemplary embodiments of the contextual search interface and the creation of context vectors (section II), the use of context vectors in processing queries (section III), and other optional features (sections IV and V) for further enhancing contextual searches.
Creation of contextual search interface and context vector
A. Created by a content provider
In some embodiments, a developer creating Web page content may add one or more contextual search interfaces to a Web page at will. For example, a search provider (or other publisher of contextual search technology) may publish an Application Program Interface (API) for implementing contextual searches. The API includes a format for specifying contextual search requests so that such requests can be recognized and processed by the search server 160. In one embodiment, the API specifies a base URL for submitting a contextual search to the search server 160, and a format for enhancing the base URL with additional data representing the user query and the context vector. The API may also specify a format for encoding the query and/or context vector as appropriate for a particular implementation.
In some embodiments, the API may also specify the appearance and/or characteristics of the contextual search interface. For example, the API may specify whether the interface should initially be displayed as an inactive icon, what such an icon should be, and a standard phrase displayed with the icon that alerts the user of the opportunity to perform a contextual search. Other features of the API may specify features of the contextual search interface in the activated state (such as whether a text box and/or other input fields are to be provided, and what these fields should be). However, optionally, providing uniform specifications for aesthetic aspects of contextual searches may help improve user awareness and awareness of the contextual search interface.
All or part of the API may be set by generating an available image that can be inserted into the Web page, or an appropriate code block in a commonly used Web page coding language (such as HTML) that the content creator can simply insert into its page.
The content provider may implement a contextual search interface by including appropriate code in the source code of the main page and supplementing the code with appropriate data through a context vector representing the actual content of the main page. Any code in any language may be used as long as execution of the code can result in a contextual search request in an API-compatible format being generated and submitted to the search server 160 in response to input from the contextual search interface.
In other embodiments, the search provider (or other publisher of the contextual search technology) further facilitates the content provider in creating a contextual search interface, for example, by automatically generating some or all of the contextual search code for the main page. As one example, a context vector may preferably be automatically generated from the main page content. Fig. 7 and 8 are flow diagrams illustrating a partially automated process for creating a contextual search interface, where fig. 7 illustrates a process 700 performed by a content developer and fig. 8 illustrates a process 800 performed by a search provider.
The process 700 begins with a content developer creating or modifying content for a Web page that includes a concept search interface (step 702). The content may be created using any manual or automated technique, including using conventional Web development software. At some point, the content developer determines that it is desirable to associate the contextual search interface with some portion (or all) of the content of the home Web page. The content developer selects content to be associated with the contextual search interface (step 704) and submits it to the search provider (step 706).
The content may be submitted to the search provider in a number of ways. In some embodiments, the search provider provides a Web browser-based contextual analysis interface for the content provider. The interface may be, for example, an interface of the context processing module 166 of the search server 160 shown in FIG. 2. A content developer may navigate its own browser to the interface and enter (e.g., by copying and pasting) the appropriate content from the main page. In other embodiments, the content developer may navigate the browser to the search provider's contextual analysis interface and submit the URL of the host Web page. In yet another embodiment, the search provider may distribute a software tool (e.g., in conjunction with features of the context processing module 166) that the content provider may utilize to select and submit content to the search provider without using a Web browser. The tools may take various forms such as desktop tools or widgets that may be incorporated into various Web content development software programs.
Upon receiving the content from the developer, the context processing module 166 parses the content and generates a context vector. Fig. 8 is a flow diagram of a process 800 that may be implemented in the context processing module 166. The process 800 begins when the context processing module 166 receives content to be associated with a contextual search interface (step 802).
At step 804, the received content is tokenized. The labeling may be accomplished using conventional techniques and may include: for example, detecting word boundaries, normalizing words (e.g., removing word endings, correcting misspellings or transcoding, etc.), deleting words that are too common to aid in searching (e.g., "the," "and"), and so forth. The tokens are sorted according to an appropriate criterion (such as the number of times the entry appears in the content) at step 806, and the most frequently occurring token for inclusion in the context vector is selected at step 808. The number of labels selected may be limited, for example, to some integer K.
At step 810, a context vector is created using the token. In one embodiment, the context vector includes the selected tokens and their corresponding times and other optional information. In some embodiments, co-occurrence and correlation between tokens is also used to identify phrases that may also be included in the context vector. (for example, in the context 302 of FIG. 3, the phrase "Golf Cabro" may be identified). In addition, any URL (or other identifier) contained in the content that links to the document or to the content itself may also be included. Generally, any information representing content or some aspect of content may be included in the context vector.
At step 812, the context vector is inserted into a generic code block used to implement the contextual search interface. In one embodiment, the generic code block includes a template of an enhanced URL for sending the context query to the search server, and step 812 includes inserting the context vector (or an encoded representation thereof) into the template. The generic code block may also include other code (such as code for inserting a user's query into an enhanced URL before sending it to a search server, code for displaying a contextual search interface in its activated and/or inactivated states, etc.). At step 814, the resulting code block including the context vector is returned to the content developer.
Referring again to FIG. 7, at step 708, the content developer receives the code patch from the context processing module 166. At step 710, the content developer inserts the code patch into the main Web page at the desired point, thereby adding the contextual search interface to the page.
It is to be understood that the process for creating a contextual search interface described herein is exemplary and that changes and modifications may be made thereto. Steps described as sequential may be executed in parallel, order of steps may be varied, and steps may be modified or combined. Various steps such as selecting content and inserting a block of contextual search code may be performed automatically or manually. In an alternative embodiment, the search provider may provide a context processing module that can be installed and run on the content provider's system so that information does not have to be sent to the search provider in order to create a context vector. Further, in some embodiments, for example, a contextual search interface may be automatically created to automatically update the context vector as the page content is updated. For example, where page 400 of FIG. 4 represents a news page with frequently changing headline stories, a process for automatically updating the context vector of one of the contextual search interfaces may need to be provided whenever the relevant story changes.
Other algorithms for generating context vectors may also be implemented. For example, some algorithms may give items appearing in a title, subheading, metatag (metatags), or other selected field a higher weight than items appearing in the body. Some algorithms may also take into account non-textual content (e.g., images or media content) for which appropriate content description information may be used or determined. Entries in a context vector are not limited to a single word; an entry may also be a phrase (two or more words that appear adjacent). In some embodiments, the context vector may be created based on information other than the entries found in the content. For example, the content provider may be prompted to specify a category or other contextual identifier for the content, and this information may be included in a contextual vector. In another embodiment, the context vector may include information about links included in the content (e.g., URLs for links to pages or classification information).
In some embodiments, the context vector may be included in the context search interface code block in encoded form. For example, a hash function (hash function) or other suitable technique may be used to represent the various tokens in the context vector. As another example, the entire context vector data may be stored in a table or database accessible to the search server, and the code blocks may include keys or other code that the search server may use to find the context vector data during query processing.
B. Created by a user
In another embodiment, a user viewing any Web page may create a contextual search interface for that page (or for portions of that page). For example, a search provider may provide a browser toolbar having a "contextual search" widget that may enable a user to select a portion of any Web page displayed in a browser window as context for a search query.
FIG. 9 is a flow diagram of a process 900 for a user to create a contextual search interface. When process 900 begins, a user is viewing a Web page using a browser (e.g., a display of user interface module 127 of client application 125 of FIG. 2). The user's browser is equipped with a toolbar having a "contextual search" widget. The page being viewed may or may not include a contextual search interface provided by the content provider. At step 902, when viewing a page, a user selects a "contextual search" button from the toolbar, for example, by clicking. In response, at step 904, the browser prompts the user to select a portion of the displayed page as context for the search. The prompt may include, for example, changing a mouse cursor to represent the selected shape, and/or displaying a text prompt.
At step 906, the user selects a portion or all of the displayed page, for example, by clicking and dragging a mouse cursor over an area of the displayed page. The selected text may be highlighted (e.g., change color or form a box around the content) to provide visual feedback to the user. In some embodiments, other content selection mechanisms may be provided in addition to or in lieu of the click and drag method. For example, the user may select the entire page by pressing a predetermined key, select a paragraph by clicking when placing the mouse cursor anywhere in the paragraph, or select a section by clicking when placing the mouse cursor in the section header.
At step 908, the client application 125 generates a context vector based on the selected content. In one embodiment, the client application 125 may submit the selected content to a context processing module 166 at the search server 160 for generating context vectors in accordance with the process 800 described above. In another embodiment, the client application 125 is configured to process the local content to generate a context vector (e.g., via the steps of process 800) without communicating information to the search server. Such processing capability may be implemented, for example, by including a context processing module as part of specialized search module 126 of client application 125 of FIG. 2.
At step 910, the browser redisplays the current page, adding a contextual search interface at or near the selected portion of the page. In this embodiment, the newly added contextual search interface may initially appear in an activated state, such that the user may simply enter and submit a query without first activating the interface, or in an inactivated state. Once created, the user-created contextual search interface preferably operates similar to contextual search interface 304 described above; in particular, when a user enters a query through a user-created contextual search interface, the client application presents the query and the contextual vector associated with the user-created contextual search interface to the search server.
It is to be understood that the process 900 is exemplary and that changes and modifications may be made. Steps described as sequential may be executed in parallel, order of steps may be varied, and steps may be modified or combined. For example, the user may first select content and then activate a "contextual search" button in the search toolbar. Instead of adding a contextual search interface to a Web page, the user-created contextual search interface may be placed in a toolbar (e.g., instead of a standard non-contextual search interface) or in a separate pop-up window.
In another embodiment, rather than generating a context vector prior to the query, the client application may send the selected content to the search server along with the user's query, and the search server may generate the context vector (e.g., using context processing module 166) as part of its query processing activities. The context vector may be sent back to the client application, which may cache the context vector for subsequent reuse.
In another embodiment, the user may improve the context for a pre-existing contextual search interface, for example, by selecting a portion of the accompanying text. In the event such a selection is made, the context vector associated with the contextual search interface may be modified, for example, to include entries that appear only in the selected text, thereby providing the user with further control over how context is defined.
In yet another embodiment, the client application may further include a module for creating a contextual search accessible through an icon on the user's desktop or in an operating system toolbar. Such modules may enable a user to create a context vector for performing a contextual search based on content other than a Web page, including documents opened in a word processing or file viewer application, email messages, instant messages, etc. The user can activate the icon at any time, whether or not the browser is open, and can select content for creating a context vector from any document on their desktop, including any Web page that happens to be displayed. The user-created contextual search interface for the selected content appears, for example, in a pop-up window or dialog box located near the selected content, or in any other suitable user interface element. When a search is performed and results returned, the client application preferably opens a browser window for displaying the results and navigating the user to the hit page or site.
Use of context vectors in query processing
As described above, when a contextual search interface, such as interface 304 of FIG. 3, is activated, a user may initiate a contextual search by entering a query into text field 306 and operating submit button 308. In response, contextual information that can help the search server respond to the user query is provided via a context vector (e.g., context vector 400 of FIG. 4) associated with the contextual search interface and can be automatically transmitted to the search server along with the user query.
A search server (e.g., search server 160 of fig. 2) receives a contextual search query that includes a user query and a context vector and performs a search, for example, using query response module 164. The algorithm for processing contextual search queries preferably uses the premise that the user's interests may be related to adjacent content; therefore, in generating search results, a context vector representing the content is preferably used. It should be noted that a user who does not wish to search for content associated with the surrounding may perform a non-contextual search using a different interface (e.g., a search toolbar or a search provider's Web interface), and the search server 160 may be configured to process contextual and non-contextual queries.
A specific algorithm for processing a contextual search query will now be described. FIG. 10 is a flow diagram of one such process 1000 in which search terms provided by a user are supplemented with one or more additional terms from a context vector.
At step 1002, a contextual query is received that includes at least one user-provided entry and an associated context vector. At step 1004, one or more user keywords are extracted from the user-provided item, for example, using a conventional query parsing method, which may include: detecting word boundaries, normalizing words (e.g., removing endings, correcting misspellings or transcoding, etc.), deleting words that are too common to facilitate searching (e.g., "the," "and"), and so on.
At step 1006, one or more keywords are extracted from the context vector to supplement the user keywords. In some embodiments, the context vector includes entries that have been parsed and normalized (e.g., as described in process 800 above) so as to have been adapted for use as keywords. In other embodiments, entries in the context vector may also be parsed and normalized. Further, step 1006 may include determining how many and which entries in the context vector should be used as context keys. For example, in some embodiments, only the items having at least the smallest number or weight may be selected, the number of items that may be selected may be limited, while the items having the largest number or weight may be selected first. The number of selected contextual keywords may also be determined based on the number of user keywords (e.g., for queries with more user keywords, fewer contextual keywords may be selected). Step 1006 may also include using the user keywords to detect and remove any redundant contextual keywords from the query. Redundant keywords may include exact duplicates and known synonyms.
At step 1008, a search is performed using a query that includes user keywords and context keywords. Search execution may include conventional methods for identifying Web pages that include one or more (or, in some embodiments, all) keywords; such pages are referred to herein as "hits" (or "search hits"). At step 1010, the search hits are ranked based on relevance determined by a suitable ranking algorithm. Conventional algorithms for scoring each hit page based on the number and/or proximity of keywords in the hit page may be used, with the user's keywords and/or contextual keywords also being considered in the scoring process. Further, any entry from the context vector that is not selected as a keyword may be used in determining the page score or rank. Other criteria including the number of pages linked to the hit, user ratings and preferences related to the hit, and/or sponsorship of different hits may also be considered in determining the ranking.
At step 1012, the search results are returned to the user. In one embodiment, a Web page with links to different hit pages or sites that can be displayed through the user's browser is returned as a result. The results page may be displayed, for example, by redirecting the browser from the main page to the results page or by opening a new browser window for the results page. In the case where multiple hits are to be returned, multiple interlinked results pages may be generated. The results page may display the user's original query and contextual keywords added to the search query. In some embodiments, this information is presented using a form of interaction by which a user may modify a query or contextual keywords (or both) and submit the modified contextual query to the search server 160.
FIG. 11 is a flow diagram of an alternative process 1100 for performing a contextual search. In process 1100, a user query entry without an additional context keyword is used to generate hits and the context data is included in the ranking algorithm. More specifically, at step 1102, a contextual query is received that includes at least one user-provided entry and an associated context vector. At step 1104, one or more user keywords are extracted from the user-provided entry; this step may be similar to step 1004 of process 1000 described above. At step 1106, a search is performed by generating a hit list using a query composed of user keywords. Unlike process 1000, user keywords in a search query are not supplemented with context vector based keywords. As described above with respect to process 1000, search execution may be accomplished using conventional methods.
At step 1108, context keywords are extracted from the context vector; this step may be similar to step 1006 of process 1000 described above. At step 1110, the hits are ranked using contextual keywords; in some embodiments, user keywords may also be used for ranking. The ranking algorithm may be generally similar to the algorithm used in step 1010 of process 1000. At step 1112, the results are returned to the user, similar to step 1012 of process 1000. As in process 1000, the user's query and contextual keywords may be presented using a form of interaction by which the user may modify the query or the contextual keywords (or both) and submit the modified contextual query to the search server 160.
It should be noted that processes 1000 and 1100 may produce hit lists that differ in content and/or in hit order. Other variations in these processes may also exist. For example, some entries from the context vector may be used as context keywords in a search query, while other entries are used only to rank hits. In other variations, only contextual keywords may be used for searching, and only user keywords may be used to rank search hits.
In any event, it should be understood that the arrangement of pages based on user keywords and/or contextual keywords may be further modified based on other page arrangement algorithms using different metadata for the query. Examples include the use of user profile data (if the identity of the user is known), and various heuristics for resolving ambiguous entries, inferring local intent (localintent), and so forth. In addition to hit lists, the search results page may include sponsored results or other content determined by the search provider.
Contextual search interface with augmented content
As described above, the contextual search interface preferably includes an activated or deactivated state. In the inactive state, a small icon may be displayed (e.g., as shown in fig. 5); this may reduce visual clutter on the page while still being able to inform the user that contextual search options are available. In the active state, the query form and the submit control are displayed (e.g., as shown in FIG. 3).
In some embodiments, when the contextual search interface is active, the query form may be augmented with additional content that may be of interest to the user (referred to herein as "specific content"). In general, when a user selects to activate an inactive contextual search icon, it may be inferred that the user may be interested in content related to the context. The content augmentation feature causes such content (or links to such content) to be presented as part of an activated contextual search interface and does not present (or hide) an inactivated contextual search interface. The particular content may be dynamically selected based on a context vector of the activated contextual search interface.
In one embodiment, augmented content includes content about shopping (referred to herein as "Shop in Context"), wherein a user may be provided with an opportunity to purchase a product related to the content. For example, the Web page 600 of FIG. 6 described above includes summaries of different news stories 602, 604, 606, each of which has its own contextual search icon 612, 614, 616. The user may activate one of these icons (e.g., icon 612) by clicking, thereby displaying the activated contextual search interface and adding "store in context" content to the displayed page.
FIG. 12 shows a portion of a Web page 600 after a contextual search icon 612 has been activated. Icon 612 has expanded into an augmented contextual search interface 1202 that includes a search box 1204 and a submit control 1206 (labeled "search" in this example) that operate similarly to the contextual search interface previously described. The augmented contextual search interface 1202 also includes "stores in context" content 1208, which in this example provides links and text identifying sites where people can purchase items related to the subject matter of the news story 602 (specifically, about the musician Bono).
Preferably, store in context content is selected for the contextual search interface based on the context vector, so activating different contextual search interfaces on the same page typically results in different store in context content. For example, FIG. 12 also includes a contextual search interface 1212 relating to news stories 604; when the contextual search icon 616 of FIG. 6 is activated, an interface 1212 will appear. Contextual search interface 1212 includes a text field 1214, a submit button 1216, and "stores in context" content 1218. Because story 604 relates to a different topic than story 602, store in context content 1218 (which relates to Venus Williams) is different than content 1208.
In some embodiments, when a user activates the contextual search interface, specific content, such as "store in context" content, is dynamically generated by sending a content request from the client application 125 (FIG. 2) to the content augmentation server 180. The content request includes a context vector that the content augmentation server 180 uses to select the appropriate particular content. The content augmentation server 180 may be operated by the search provider or the publisher of other contextual search techniques.
FIG. 13 is a flow diagram of a process 1300 for generating an augmented contextual search interface including particular content (e.g., "store in context" content). At step 1302, a home page, such as page 600 of FIG. 6, is displayed in a user browser. As described above, the home page includes one or more contextual search interfaces, each of which is in an inactive (iconic) state. At step 1304, the user activates one of these interfaces, for example by clicking. At step 1306, a content request including the context vector for the newly activated interface is transmitted to the content augmentation server 180.
In step 1308, the content augmentation server 180 generates or selects content to be added to the main page based on the context vector. For example, content augmentation server 180 may access sponsored content database 162 (shown in FIG. 2), where sponsored content database 162 preferably associates particular entries of sponsored content with various keywords. The content augmentation server 180 may extract keywords from the received context vectors and select one or more entries of sponsored content from the database 162 based on the keywords. If desired, the number of entries selected may be limited (e.g., in FIG. 12, two entries are selected for each contextual search interface). In the event that there are more than the maximum number of entries matching the keyword, the selection among these entries may be based on different criteria (e.g., the number or importance of keywords matched by each entry, and/or the number or importance of entries for a sponsorship agreement between the provider of the content augmentation server 180 and the different sponsors of the content in the database 162).
In step 1310, the content augmentation server 180 returns the particular content to the client application 125 and the client application 125 redisplays the main page including the particular content (step 1312). Any main page content after the insertion point of the contextual search interface may be moved down, if desired, to make room for the particular content.
It is to be understood that the processes described herein are exemplary and that changes and modifications may be made thereto. The steps described as sequential may be performed in parallel, the order of the steps may be varied, and steps may be modified and combined. In some embodiments, specific content may be pre-selected (e.g., when creating or updating a contextual search interface) and included in the source code for the main page, so real-time requests to the content augmentation server are not required. It should be understood that where the main page includes multiple contextual search interfaces, specific content may be displayed for any activated interface, but not for any inactivated interface.
The specific content is not limited to shopping or advertising information. Other types of specific content may include links to news stories about the content, links to the most popular Web sites about the content, related image or media content, or any other type of content. For example, any type of specific content may be selected based on the context vector by accessing an appropriate database using the context vector. For example, links to related news stories may be generated by querying one or more news servers or news sites using the selected entry (or all entries) from the context vector. For example, a list of most popular related sites may be generated by obtaining a list of most popular sites and identifying the sites from the list containing entries from the context vector. The relevant images can be located by accessing an image database.
Generally, context vectors associated with a contextual search interface can be used in various ways to identify relevant content. Using the content augmentation systems and methods described herein, display of such content may be deferred until the user has indicated interest in such content by activating a contextual search interface. Therefore, the amount of information about a particular topic displayed on the main page can be derived based on the user's expressed interest in the topic.
V. other examples
The context search capability and context vector have various other embodiments and applications. Some examples will now be described; it should be understood that these examples are illustrative and are not to be construed as limiting the invention.
In some embodiments, a context vector may also be used to facilitate user input of a query. For example, if a user begins entering a query (e.g., by typing) into a search toolbar interface of a client application while viewing a main Web page, the client application may use one or more context vectors from the page to generate autofill suggestions for the query. This may be done regardless of whether a particular contextual search interface is active or inactive. For example, if in page 600 of FIG. 6, the user types "V-E-N" into a search toolbar interface (not shown in FIG. 6), the client application may suggest "Venus" or "Venus Villiams" as the intended (intunded) text. The user may then hit the Enter or Tab key (or any other designated key) to accept the suggestion or ignore the suggestion and continue typing. Similarly, if a user begins typing a query into a context search interface, the context vector for that interface may be used to generate auto-fill suggestions for the user.
In other embodiments, a "query-less" search may be implemented using context vectors. From the activated contextual search interface (e.g., interface 304 of FIG. 3), the user may activate only the submit button without entering any query entries. If a contextual search is submitted that does not have user entries, the search server (or client application) may be configured to construct and process a query based on the context vector or based on an entry selected from the context vector.
In some embodiments, the search server may collect data about contextual searches and use that data to improve the results of such searches. Data may be collected, for example, per context vector or per main page. This data may include log files containing queries received with or from a particular master page of a query for a particular context vector, click (click) statistics indicating which hits the user of the query entering the record actually investigated, explicit user ratings of the hit pages, and so forth. This data can be used in various ways to improve the results of contextual searches. For example, when the query is from a particular contextual search interface, the search server may include one or more suggestions of related queries that the user may next investigate, along with the search results. Related queries may be determined, for example, based on other queries that are frequently received with the same context vector or from the same main page.
As another example, click data or explicit rating data related to hits resulting from searches using a given context vector or contextual search interface may be used to improve the score or ranking of search hits in processing subsequent queries that include the same context vector or originate from the same contextual search interface. For example, hit pages or sites that are frequently visited or highly rated by previous users with a particular context (as represented by a context vector) are more likely to be useful to subsequent users with the same context; such hits may have their scores or ranks adjusted upward so that they result in a more prominent layout. Conversely, hits in a particular context that are typically ignored or have a low user rating may be less relevant and may have their scores or ranks adjusted downward.
In addition, the content provider responsible for the contextual search interface may share aggregated data about queries and/or clicks originating from a particular contextual search interface, preferably without identifying each user. Content providers may use such data to learn about interests and behavior of users accessing the site, which may help content providers improve the usefulness and popularity of the site.
Query and/or click data may be used for content augmentation. For example, when a user activates a contextual search interface, the particular content may include a list of most frequent queries submitted through the interface or a list of sites most frequently visited by previous users of the interface. The queries or sites may be presented using activated links so that a user may execute one of the queries or visit a site by clicking on the link.
In some embodiments, the search server (or other server) may collect data about existing contextual search interfaces and may define relationships between them based on their respective context vectors. For example, a relationship between two interfaces having some portion of a context vector entry in common may be defined as a "similar" relationship; the relationship between two interfaces in the case where the context vector of one interface includes all entries and at least one additional entry of the context vector of the other interface may be defined as an "improved" relationship. In this way, a graph with a contextual search interface may be defined as a node and the relationship as an edge. A representation of the graph may be used during query processing. For example, assume that contextual search interface A is an improvement of contextual search interface B. When a query is submitted through interface B, entries from the context vector of interface A may be used in processing the query. Other relationships including indirect relationships (e.g., if A is a modification of B and B is a modification of C, then A can be inferred to be a modification of C) can also be defined and can be used in query processing.
In yet another embodiment, the contextual search query may be submitted to any search server, and different contextual searches may be submitted to search servers controlled by different entities (e.g., by configuring a contextual search interface to direct the URL for submitting the query to the desired search server). For example, if a contextual search interface is created for a car, and if a dedicated server for car information (with search capabilities) is available on the Web, the contextual search can be routed to the server by including the internet address of the server in the URL. In this way, contextual searches can provide users with access to search servers that are particularly suited to their context, without the user needing to know in advance that such servers exist. The ability to automatically direct queries to the appropriate server in a context-based manner may further enhance the appeal of contextual searches to users.
The selective routing of contextual queries may be implemented in various ways. For example, in the case of a contextual search interface created by a content developer, the content developer may construct a query URL pointing to the address of any server on the Web, and the URL may be enhanced by a suitably formatted query for the target server. Such enhanced URLs preferably include context entries (e.g., context vectors) and user-provided entries.
Similarly, in the case of automatically generating a contextual search interface, the software generating such an interface may be configured to select an appropriate search server and format for the query URL based on the context vector. It should be appreciated that the selected search server need not have any institutional connection to the creator or publisher of the interface generating software module, so long as the software module is capable of generating code that will cause the request to be transmitted to the selected search server in a format that the selected search server is capable of processing.
In the case where the search query is to be directed to a dedicated search server, the activation state of the contextual search interface may include specific content as described above. The specific content may be provided by a dedicated search server or content augmentation server that may be controlled by different entities. The particular content may include information (such as a link to a Web site of the search server) about the search server to which the search is to be directed.
In yet another embodiment, a decision is made as to where to direct the contextual search query when executing the query. For example, all contextual search queries may be directed to a search server (e.g., search server 160 of FIG. 2), which may determine whether to redirect the query to other servers for processing based on a combination of the user query and the context vector information. In this embodiment, the decision to redirect the query may depend in part on the query elements provided by the user. For example, assume that the content for the contextual search interface is related to a new album. If the user enters the query "review" through the contextual search interface, the query may be redirected to the music review database, whereas if the user enters the query "purchase" through the same interface, the query may be processed through the search server without redirection.
In some embodiments, different contextual search queries may be directed to the same search server (but limited to searching different portions of the corpus). For example, a search provider may segment a Web page into multiple possible overlapping "attributes," such as a "news" attribute, a "shopping" attribute, a "sports" attribute, and so forth. Each such attribute may serve as an independent search corpus and may direct searches to any one or more of these attributes based on the query and context vectors. In the case where a search is performed by a plurality of attributes, the attribute that returns a specific result may also be used as a factor for ranking the results.
Other embodiments include user personalization features with user-specific data and context for notifying search results. For example, the search provider may maintain a user profile for each registered user that it serves. When a registered user that is logged in performs a search (contextual or otherwise), information about the search may be recorded and associated with the user. By analyzing patterns in a given user query, a "user vector" may be developed. In the context search process, information from the user vector and the context vector may be used to perform the search and/or rank the results. In addition, the user vector may also be used to dynamically generate augmented content when the user activates the contextual search interface as described above. In the case where the user entering the query can be identified, the search results can be notified using any user-specific information (e.g., the site or page that the user has bookmarked, explicit user ratings of the site or page, etc.) along with the context vector.
In yet another embodiment, users can create bookmarks for contextual search interfaces (or specific contextual queries) that they find useful to make it easy for them to return to these interfaces. It should be appreciated that not all such interfaces may have the same usefulness to a particular user, as contextual-dependency interfaces return results that depend on context. When a user discovers a useful interface, the page containing the interface can be bookmarked using traditional browser-based bookmarking or bookmarking (bookmarking) functionality supported by the search toolbar; however, it should be understood that if the content of the main page changes, the context vector also changes. Thus, some embodiments of the invention enable a user to bookmark the contextual search itself, for example, by saving an enhanced query URL that includes a context vector. When the user selects the bookmark, the user is prompted to enter a query and perform a contextual search using the new query. Alternatively, the user may save the query as part of a bookmark to select the bookmark when re-performing a particular contextual search at a later time without regard to the current content of the main page.
Users may also share their bookmarked contextual searches with other users, for example, through various trust network mechanisms. In other embodiments, the user may annotate or label their bookmarked (or saved) contextual search or interface.
While the invention has been described with reference to specific embodiments, those skilled in the art will appreciate that many modifications are possible. For example, where a particular input device (e.g., a computer mouse) is referred to herein, it should be understood that a different input device (e.g., a button or voice command) may be substituted. Similarly, the clickable buttons and other graphical user interface controls mentioned herein may be replaced with any suitable selectable control.
The appearance of the contextual search interface in the activated and/or deactivated states may also differ from that shown herein. For example, the activated interface may appear in the main page shown in FIG. 3 or in a separate pop-up window. In addition, the appearance of the icons and/or activated interface elements may be changed. Such changes may be controlled by the contextual search publisher or the content provider. As just one example, context may be implied by changing the appearance of an inactive icon; thus, a film clip can be included in an icon for an entertainment related search, a soccer ball or baseball can be included in an icon for a sports related search, and so on. A consistent text string (e.g., "Search This" as shown in FIG. 6) or other element may be included in the icon as a further representation of the contextual Search interface.
In another variation, the inactive state of the contextual search icon may be implemented in both a hidden and visible mode. For example, the contextual search icon may be hidden (i.e., not displayed on the home page) except when the user's mouse cursor is positioned over or moved through the relevant content. When the mouse cursor is so positioned, the icon becomes visible and the user can activate it by clicking. For example, the hidden and visible modes may be implemented using a language such as Java.
Embodiments described herein may refer to Web site pages, links, and other terms specific to instances of the world wide Web (or a subset thereof) used as a search corpus. It should be understood that the systems and processes described herein are suitable for use with different search corpora (such as electronic databases or document repositories) and that the results may include content and links or references to locations where the content may be found.
Furthermore, the present invention has been described with reference to computer systems having specific hardware and software elements. It should be understood that other systems having other combinations of hardware and/or software elements may also be implemented.
Therefore, while the invention has been described with reference to specific embodiments, it will be understood that the invention is intended to cover all modifications and equivalents within the scope of the appended claims.
Claims (42)
1. A method for processing a query, the method comprising the computer-implemented steps of:
receiving, through a contextual search interface displayed by a client, a user query comprising query data input by a user;
receiving a context vector related to the contextual search interface, the context vector comprising context data derived from content displayed by the client when the query data is input by the user;
performing a search on a search corpus using one or both of a user query and the context vector to obtain a plurality of hits;
ranking the plurality of hits using one or both of the user query and the context vector;
wherein at least one of performing a search and ranking the plurality of hits is based at least in part on the context vector; and
transmitting the ranked plurality of hits to the user as search results for presentation.
2. The method of claim 1, wherein the query data entered by the user comprises at least one search term.
3. The method of claim 1, wherein the context vector comprises at least one search entry.
4. The method of claim 3, wherein the at least one search entry comprises a first entry extracted from the content displayed on the client.
5. The method of claim 1, wherein the search corpus comprises a plurality of Web pages.
6. The method of claim 1, wherein the step of generating search results comprises:
querying a database representation of the search corpus using at least the user query;
receiving the plurality of hits in response to a query of a database representation of the search corpus; and
ranking the hits based at least in part on the context vector, thereby generating a ranked list of the hits.
7. The method of claim 1, wherein the step of generating search results comprises:
querying a database representation of the search corpus using at least the context vector;
receiving the plurality of hits in response to a query of a database representation of the search corpus; and
ranking the hits based at least in part on the user query, thereby generating a ranked list of the hits.
8. The method of claim 1, wherein the step of generating search results comprises:
querying a database representation of the search corpus using the user query and the context vector;
receiving the plurality of hits in response to a query of a database representation of the search corpus; and
ranking the hits based at least in part on one or both of the user query and the context vector, thereby generating a ranked list of the hits.
9. The method of claim 1, further comprising the computer-implemented steps of: selecting the search corpus to be searched based at least in part on at least one of the context vector or the user query.
10. The method of claim 1, further comprising the computer-implemented steps of:
receiving a user vector relating to the user entering the user query,
wherein the step of generating search results further comprises: searching the search corpus using the user query, the context vector, and the user vector.
11. The method of claim 10, wherein the user vector comprises: at least one search term obtained from a previous query received from the user.
12. The method of claim 1, wherein the content displayed on the client is associated with the contextual search interface.
13. The method of claim 1, wherein the client is a web browser.
14. The method of claim 1, wherein the contextual search interface is a module integrated in the client.
15. The method of claim 1, wherein the content displayed on the client is at least a portion of a document, and wherein the contextual search interface is included in the document.
16. A method for processing a query, the method comprising the computer-implemented steps of:
providing a page including content to be presented to a user;
associating a contextual search interface adapted to receive a query from the user with the content;
associating a context vector derived from the content with the contextual search interface;
receiving a query from the user through the contextual search interface while displaying the content and the contextual search interface in the page; and
the query and context vector are transmitted to a search server.
17. The method of claim 16, further comprising the computer-implemented steps of:
define an inactive state and an active state of the contextual search interface,
wherein the contextual search interface appears as an icon on the page when in the inactive state and appears as an operable interface on the page when in the active state.
18. The method of claim 17, wherein the operable interface comprises: a text field for inputting text by the user; and a submission control to submit query text entered by the user, wherein the submitted query text is related to the context vector.
19. The method of claim 17, further comprising the computer-implemented steps of:
displaying the contextual search interface in the inactive state by default; and
redisplaying the contextual search interface in the activated state in response to user selection of the icon.
20. The method of claim 19, further comprising the computer-implemented steps of: in response to a user selection of the icon, adding particular content to the page, wherein the particular content is selected based on the context vector.
21. The method of claim 20, wherein the particular content is placed adjacent to the contextual search interface on the page.
22. The method of claim 20, wherein the particular content includes a link to another page.
23. The method of claim 20, wherein the particular content comprises advertising content.
24. The method of claim 20, wherein the particular content includes a list of related queries based on one or more previous queries received through the contextual search interface.
25. The method of claim 20, wherein the steps of associating a contextual search interface with the content and associating a context vector with the contextual search interface are performed in response to a user command.
26. The method of claim 20, wherein the steps of associating a contextual search interface with the content and associating a context vector with the contextual search interface are performed at the direction of a creator of the page.
27. A method for providing a context-based search, the method comprising the computer-implemented steps of:
providing a page, the page comprising: (a) content to be displayed to a user, (b) a first contextual search interface adapted to receive a query from the user, and (c) a second contextual search interface adapted to receive a query from the user;
associating the first contextual search interface with a first portion of the content;
associating a first context vector representing the first portion of the content with the first contextual search interface;
associating the second contextual search interface with a second portion of the content;
associating a second context vector representing the second portion of the content with the second contextual search interface, the second context vector being different from the first context vector;
wherein the first contextual search interface is configured to submit the query and the first context vector to a search engine in response to a user submitting a query through the first contextual search interface; and
wherein the second contextual search interface is configured to submit the query and the second context vector to a search engine in response to a user submitting a query through the second contextual search interface.
28. A method for creating a search interface, the method comprising the computer-implemented steps of:
receiving page content from a client;
generating a context vector according to the received page content;
creating a block of contextual search code comprising the context vector and further comprising code for displaying a contextual search interface and code for submitting a user query entered through the contextual search interface to a search server with the context vector; and
returning the context search code block to the client.
29. The method of claim 28, wherein the block of contextual search code is adapted to be inserted as an element of a main page, wherein the main page includes the received page content.
30. The method of claim 28, wherein the contextual search code block is adapted for display in a separate window.
31. The method of claim 28, wherein the client comprises: a user application module to enable a user to select the page content while viewing the page.
32. The method of claim 31, wherein the page is a Web page.
33. The method of claim 31, wherein the page is a document other than a Web page.
34. The method of claim 28, wherein the client comprises: a content developer module to enable a content developer to select the page content while editing the page.
35. The method of claim 28, wherein the contextual search interface comprises: a text field for entering a query; and a submit button for submitting the query to a search server.
36. The method of claim 28, wherein the contextual search code block further comprises code for defining an inactive state and an active state of the contextual search interface, wherein when in the inactive state the contextual search interface appears as an icon and when in the active state the contextual search interface appears as an operable interface.
37. The method of claim 28, wherein generating the context vector further comprises:
determining a tagging frequency of tags in the received page content; and
including the marker frequency in the context vector associated with the marker.
38. The method of claim 28, wherein generating the context vector further comprises:
determining a document frequency of a mark in a search corpus; and
including the document frequency in the context vector associated with the tag.
39. A system for processing a query, comprising:
an input module configured to receive a search query comprising a user query entered by a user through a contextual search interface and a context vector related to the contextual search interface, the context vector comprising context data derived from content presented to the user when the user entered the query;
a search module configured to: (a) performing a search on a search corpus using one or both of a user query and the context vector to obtain a plurality of hits, (b) ranking the plurality of hits using one or both of the user query and the context vector, wherein at least one of performing a search and ranking the plurality of hits is based at least in part on the context vector; and
an output module configured to transmit the search results for presentation to the user.
40. The system of claim 39, wherein the search module comprises:
a query unit configured to search the search corpus and create a hit list; and
a ranking unit configured to calculate a ranking of the hits in the list.
41. The system of claim 40, wherein the query unit is further configured to search the search corpus using one or both of the user query and the context vector.
42. The system of claim 40, wherein the ranking unit is further configured to calculate the ranking based at least in part on one or both of the user query and the context vector.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/903,283 | 2004-07-29 | ||
US10/903,283 US7958115B2 (en) | 2004-07-29 | 2004-07-29 | Search systems and methods using in-line contextual queries |
PCT/US2005/026184 WO2006014835A2 (en) | 2004-07-29 | 2005-07-21 | Search systems and methods using in-line contextual queries |
Publications (2)
Publication Number | Publication Date |
---|---|
HK1111254A1 HK1111254A1 (en) | 2008-08-01 |
HK1111254B true HK1111254B (en) | 2013-07-05 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11547853B2 (en) | Personalized network searching | |
US7958115B2 (en) | Search systems and methods using in-line contextual queries | |
US9342602B2 (en) | User interfaces for search systems using in-line contextual queries | |
US7856441B1 (en) | Search systems and methods using enhanced contextual queries | |
US8478792B2 (en) | Systems and methods for presenting information based on publisher-selected labels | |
US7451152B2 (en) | Systems and methods for contextual transaction proposals | |
HK1111254B (en) | Search systems and methods using in-line contextual queries | |
HK1179704A (en) | Search systems and methods using in-line contextual queries | |
HK1179704B (en) | Search systems and methods using in-line contextual queries |