[go: up one dir, main page]

HK1172116B - Systems and methods for providing advanced search result page content - Google Patents

Systems and methods for providing advanced search result page content Download PDF

Info

Publication number
HK1172116B
HK1172116B HK12112845.8A HK12112845A HK1172116B HK 1172116 B HK1172116 B HK 1172116B HK 12112845 A HK12112845 A HK 12112845A HK 1172116 B HK1172116 B HK 1172116B
Authority
HK
Hong Kong
Prior art keywords
search
application
data
search results
database
Prior art date
Application number
HK12112845.8A
Other languages
Chinese (zh)
Other versions
HK1172116A1 (en
Inventor
阿米特.约提.巴苏
凯文.哈斯
阿米特.库玛
保罗.塔尔金
易珍熙
Original Assignee
Excalibur Ip, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/563,152 external-priority patent/US8386455B2/en
Application filed by Excalibur Ip, Llc filed Critical Excalibur Ip, Llc
Publication of HK1172116A1 publication Critical patent/HK1172116A1/en
Publication of HK1172116B publication Critical patent/HK1172116B/en

Links

Description

System and method for providing advanced search results page content
Copyright notice
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever.
Technical Field
Embodiments of the invention described herein relate generally to providing advanced content located on a search results page ("SRP"). More specifically, embodiments of the present invention are directed to systems and methods for analyzing user query-related data and providing a plurality of novel interactive controls or applications located within an SRP.
Background
As the internet continues to expand exponentially, the role of search engines has increased dramatically. The enormous amount of data has rapidly become impossible for human users to manipulate themselves. Thus, the use of search engine technology has become a vital tool in the useful operation of the internet.
Great progress has been made in optimizing search engines with respect to the quality of results returned in response to queries. Currently existing algorithms allow users to identify relevant websites, typically within seconds after submitting a query. However, despite these advances, little progress has been made in analyzing specific or aggregate user behavior and providing easily accessible data directly to users on SRPs.
As an example, current prior art fails to take full advantage of semantic data (semanticdata) that exists within a search engine results page. Currently, many websites, including almost all most frequently visited sites, contain semantic data such as RDF/XML, N3, etc., i.e., data that can be extracted and parsed into a format that is easily accessible to the end user. Furthermore, many common search queries may not be satisfied with a website, but rather with a simple application or widget (widget) that is provided directly to the user. Accordingly, there is currently a need for an intelligent, user-centric search results page.
Disclosure of Invention
The present invention is directed to systems and methods for providing one or more aspects in response to a search request, including additional refining (refining) of search results and user interface components that allow a user to access refined data and other objects.
In one embodiment, generating search results includes receiving a search request including at least one search term (searchterm) and accessing a corpus of data related to web content (corpus) based on the search request to determine relevant content for inclusion in a set of search results. The generating of the search result further includes determining at least one pivot data point (pivottrapoint) based on the review of the search result set, the at least one pivot data point being contextually related to the search result set. For a given data point, the systems and methods generate a refined active data link (activedatalink) for the set of search results based on the data pivot point and generate a search result output display for presentation of at least a portion of the set of search results and the active data link. Wherein the method and system support switching the search result output display to present at least a portion of a refinement of the set of search results in response to selection of an active data link for one of the pivot data points.
In one embodiment, generating search results includes receiving a search request including at least one search term and accessing a corpus of data related to web content based on the search request to determine relevant content for inclusion in a result set. The generating of the search results includes determining at least one semantic object in the search result set based on the review of the search result set, the semantic object being related data associated and contained within the web content. The method and system generate an object filter based on the at least one semantic object and generate a search result output display for presentation of at least a portion of the search result set and active data links for the one or more semantic objects. Wherein the method and system support switching the search result output display in response to selection of a given active data link to present at least a portion of a subset of the set of search results, the subset of search results including web content having semantic objects associated therewith.
In one embodiment, generating search results includes receiving a search request including at least one search term and accessing a corpus of data related to web content based on the search request to determine relevant content for inclusion in a set of search results. The method and system include determining a plurality of applications associated with the search request and generating a search result output display for presenting at least a portion of the search result set and at least a portion of the applications.
Thus, the method and system generate improved search results, including context pivot data points, semantic object filtering, and query-triggered application display.
Drawings
The present invention is illustrated by way of example and not limitation in the figures of the accompanying drawings, in which like references are intended to refer to similar or corresponding parts, and in which:
FIG. 1 presents a block diagram illustrating a system for providing a query triggered application in accordance with one embodiment of the present invention;
FIG. 2 presents a block diagram illustrating a system for providing query-based pivot data points in accordance with one embodiment of the present invention;
FIG. 3 presents a block diagram illustrating a system for identifying semantic objects in a search database and providing semantic object contextual linking according to one embodiment of the present invention;
FIG. 4 presents a flowchart illustrating a method for providing a query triggered application in accordance with one embodiment of the present invention;
FIG. 5a presents a flowchart illustrating a method for providing pivot data points associated with a search result set in accordance with one embodiment of the present invention;
FIG. 5b presents a flowchart illustrating a method for retrieving search results associated with pivot data points in accordance with one embodiment of the present invention;
FIG. 6a presents a flowchart illustrating a method for analyzing a search database and identifying semantic objects according to one embodiment of the present invention;
FIG. 6b presents a flowchart illustrating a method for extracting semantic object recognition information from a plurality of search results and providing semantic category links to a user in accordance with one embodiment of the present invention;
FIG. 7 presents a screen diagram illustrating a search results page in accordance with one embodiment of the present invention;
FIG. 8 presents a screen diagram illustrating a plurality of search results retrieved in response to selection of a pivot data point in accordance with one embodiment of the present invention; and is
FIG. 9 presents a screen diagram illustrating a plurality of search results retrieved in response to selection of a semantic category link in accordance with one embodiment of the present invention.
Detailed Description
In the following description, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention.
FIG. 1 presents a block diagram illustrating a system for providing a query triggered application in accordance with one embodiment of the present invention. As shown in the embodiment of FIG. 1, a plurality of client devices 102, 104, and 106 are connected to a search provider 110 via a network 108. The search provider 110 includes a web server 112, a search engine 114, a search database 116, an SRP application server 118, and an SRP application database 120. The SRP application server 118 includes a query checker 122, a query parser 124, a database interface 126, and an application loader 128.
As used herein, an application may be any software implementation that is capable of communicating directly with other computers; a dynamic interface (and static presentation) for the user to interact with; and accessing a corpus of data that is independent of the data used to generate the algorithmic search results.
Client devices 102, 104, and 106 may be general purpose computing devices (e.g., personal computers, television set-top boxes, mobile devices, etc.) having a central processing unit, memory units, persistent storage, audio/video output devices, network interfaces, and so forth. The client devices 102, 104, and 106 are operable to communicate via a network 108, which network 108 may be a local area network or a wide area network, such as the internet. In this embodiment, client devices 102, 104, and 106 send requests to content provider 110 via HTTP, WAP, or similar protocols for client/server exchanges of text, images, and other data.
Client devices 102, 104, and 106 are operable to send requests for search results to search provider 110, the search requests including search terms. These terms may be user-generated search terms, or may be user-assisted, i.e., suggested, search terms. In one embodiment, client devices 102, 104, and 106 are operable to send HTTP requests containing text query strings. For example, a user operating client devices 102, 104, and 106 may enter a query string with search terms, such as "sushinnewyork, ny," and submit the query via an HTML form element.
The search provider 110 receives queries from client devices via the web server 112. In one embodiment, the web server 112 may include various hardware components running web server software, such as APACHEHTTPSERVER, MICROSOFTIIS or any other suitable web server software.
The web server 112 extracts the query string and generates a search engine request to be sent to the search engine 114. The search engine 114 may include various hardware and software components operable to receive requests for search results, optimize search algorithms, and extract data from the search database 116. Various search engine techniques that may be employed are well known in the art and will not be discussed here for the sake of brevity.
Search engine 114 retrieves a plurality of search results from search database 116. In one embodiment, the search database 116 may include a plurality of indices for allowing access to stored resource identifiers associated with a given query. After retrieving the plurality of search results, search engine 114 sends the results back to web server 112.
In addition to retrieving multiple search results, web server 112 may also be operable to send the received query to SRP application server 118. In one embodiment, the SRP application server may comprise a single application server or a plurality of application servers operable to communicate and process data between the SRP application database 120 and the web server 112.
When the SRP application server 118 receives a query from the web server 112, the query checker 122 performs initial pre-processing on the query string. In one embodiment, preprocessing may include formatting of query strings (e.g., removing white spaces, rewriting), term replacement (e.g., replacing obscure terms with appropriate generic terms), query classification, entity identification, or other query parsing techniques known in the art. The query checker 122 is communicatively coupled to a query parser 124. The query parser 124 may decompose the preprocessed query into discrete keyword components and send these keyword components to the database interface 126. In the illustrated embodiment, database interface 126 receives the key component and formulates a regular database request. For example, database interface 126 may be operable to retrieve a plurality of predefined request templates to access SRP application database 120. In response to receiving the plurality of keywords, the database interface 126 may select an appropriate request template and send the request to the SRP application database 120.
SRP application database 120 may include one or more databases, where each database is operable to store information related to SRP applications. In one embodiment, SRP application database 120 includes an index database that stores metadata (e.g., titles, keywords, etc.) associated with applications and an application database that stores executable code associated with a given application.
Database interface 126 may receive application data from SRP application database 120 and forward the received data to application loader 128. In one embodiment, the application loader 128 is operable to format and encapsulate received application data into a format suitable for inclusion on an SRP. For example, the application loader 128 may populate any variable data associated with the application, such as advertisement data, current time data, or any other data that may be determined at runtime.
The application loader 128 is also operable to send the packaged application(s) back to the web server 112. In response, web server 112 may combine the application package(s) with the previously received search results. In one embodiment, combining the application(s) with the search results may include identifying sections of the predefined SRP template and placing the search results and application(s) in the respective template locations. As discussed in more detail below, the application, when loaded, may utilize additional information for execution, which in one embodiment includes data local to the processing system on which the SRP is displayed.
Note that another embodiment may include displaying or launching the application directly, omitting the search results, or displaying the search results in a secondary or other auxiliary display.
FIG. 2 presents a block diagram illustrating a system for providing query-based pivot data points in accordance with one embodiment of the present invention. As shown in the embodiment of fig. 2, a plurality of client devices 202, 204, and 206 are connected to a search provider 210 via a network 208. According to the embodiment of FIG. 2, the search provider 210 includes a web server 212, a search engine 214, a search database 216, and a pivot server 218. The pivot server 218 includes a search result parser 220, a query processor 222, a pivot metric store 224, and a pivot wrapper 226.
In general, the operation of client devices 202, 204, and 206 with respect to requesting search results from web server 212, search engine 214, and search database 216 is substantially similar to the operation with respect to elements 102, 104, 106, 112, 114, and 116, and will not be repeated for the sake of brevity.
In the FIG. 2 embodiment, web server 212 is also operable to send retrieved search results to pivot server 218. In the illustrated embodiment, the search results may be received by search results parser 220. Search results parser 220 performs parsing operations on the received search results, such as grouping the search results by domain or other pivot point. Search results parser 220 then sends the parsed results to query processor 222.
In one embodiment, the query processor 222 receives the submitted query and the parsed search results from the web server 212. The query processor 222 is operable to extract a plurality of pivot metrics from the pivot metric store 224 based on the parsed search results and generate a plurality of pivot data points. For example, pivot metric store 224 may contain domain-specific attributes (e.g., domain-specific search query parameters) to be applied to a given pivot data point. In addition, the query processor 222 is operable to analyze a given query to further refine the selected pivot data points. For example, the query processor 222 may be operable to classify the type of query as being for shopping, travel, public, and so forth. This classification can be used to narrow the list of pivot data points. For example, a search related to shopping may allow the query processor 222 to ignore results from social networking sites when identifying domain-specific pivot data points.
After retrieving the plurality of pivot data points, the query processor 222 can send the pivot data points to the pivot wrapper 226. As used herein, pivot data points are data points that refine a search based on particular data, such as an example of refining to a particular web location, which is an illustrative and non-limiting example. In one embodiment, the pivot packager 226 may be responsible for preparing pivot data points for insertion into the SRP. For example, pivot wrapper 226 can be operative to construct a representation of the pivot data point including an image, JavaScript, and active data links (e.g., HTML hyperlinks) associated with the data pivot point.
The pivot wrapper 226 is also operable to send the wrapped pivot wrapper(s) back to the web server 212. In response, web server 212 may combine the pivot package(s) with the previously received search results. In one embodiment, combining the pivot package(s) with the search results may include identifying sections of a predetermined SRP template and placing the search results and pivot package(s) into respective template locations. Exemplary embodiments of SRP will be further discussed in connection with the flowcharts of fig. 7-9 and fig. 4.
FIG. 3 presents a block diagram illustrating a system for identifying semantic objects in a search database and providing semantic object contextual linking according to one embodiment of the present invention. As shown in the embodiment of fig. 3, a plurality of client devices 302, 304, and 306 are connected to a search provider 310 via a network 308. According to the embodiment of fig. 3, search provider 310 includes a web server 312, a search engine 314, a search database 316, a semantic object server 318, and a semantic object database 320. Semantic object server 318 includes search result loader 322, semantic object extractor 324, semantic object rule store 326, query loader 328, database interface 330, and semantic object wrapper.
In general, the operation of the client devices 302, 304, and 306 with respect to requesting search results from the web server 312, the search engine 314, and the search database 316 is substantially similar to the operation with respect to the elements 102, 104, 106, 112, 114, and 116, and will not be repeated for the sake of brevity.
Semantic object server 318 manages semantic object data located within search results stored in a search database. Semantic object server 318 is also operable to handle the management and retrieval of semantic object data in response to search queries that include search terms.
In one embodiment, search results loader 322 is operable to receive search results from search database 316. In one embodiment, search database 316 may transmit the unanalyzed search results to search results loader 322. For example, search database 316 may send the search results to search results loader 322 for processing before the crawled search results are finalized. Alternatively, search results loader 322 may pull the search results from search database 316 and control the analysis of the search results.
Search result loader 322 sends the search results to semantic object extractor 324. In the illustrated embodiment, semantic object extractor 324 retrieves semantic object definitions from semantic object rules store 326. The semantic object definition may include structured data that describes the format of the semantic data according to known techniques associated with the semantic data. For example, a semantic object definition may describe fields and parameters within a semantic object.
After accessing the semantic object definitions, semantic object extractor 324 analyzes a given search result and determines whether one or more semantic objects exist within the search result. In one embodiment, semantic object extractor 324 parses the content (e.g., HTML source code) of the associated page of search results and identifies page content that matches the pattern described by the semantic object definitions.
If semantic object extractor 324 detects one or more matches with a semantic object, semantic object extractor 324 retrieves the predefined semantic object from semantic object database 320. In one embodiment, semantic object database 320 may store a plurality of predefined semantic object components including image data, executable code data, and tag data.
Semantic object server 318 may also process the user query through query loader 328 to determine whether the semantic object definition corresponds to the user query. For example, the query loader 328 may determine that the submitted user query is likely to be directed to video search results. In this embodiment, the query loader 328 may analyze the query keywords and query the semantic object database 320 to determine whether the associated search results contain the appropriate semantic objects. For example, a user query for "pearljam" may result in semantic object matching to video objects. In this example, database interface 330 may query semantic object database 320 to determine whether there are any video objects within the search results for the query "pearljam".
In an alternative embodiment, semantic object server 318 may analyze search results for a given query to determine if a semantic object exists without analyzing the user query. For example, semantic object server 318 may collate the search results with entries within semantic object database 320 and determine which semantic objects are present within the search results. In another embodiment, semantic objects are returned with the results, and the system uses application logic in the proxy to determine what to do based on what results and objects are returned.
Semantic object packager 332 packages the semantic object filter when semantic object server 318 determines that a semantic object is present within the search result set. In one embodiment, the semantic object filter may include a plurality of components including active data links that identify semantic objects, various image elements, and a markup language for describing the appearance of the object filter. In an alternative embodiment, semantic object server 318 may also be operative to determine what objects should or should not be shown. For example, semantic object server 318 may utilize a predetermined scene-based threshold to determine the number of semantic object filters to display. Alternatively, various other metrics may be used to define the number of results displayed.
The semantic object packager 332 is also operable to send the packaged object(s) back to the web server 312. In response, web server 312 may combine the encapsulated object(s) with the previously received search results. In one embodiment, combining the encapsulated object(s) with the search results may include identifying sections of the predefined SRP template and placing the search results and encapsulated object(s) into the corresponding template locations.
Although illustrated as three distinct environments, servers 118, 218, and 318 may also operate concurrently with web servers, search engines, and search databases. In this embodiment, servers 118, 218, and 318 may all be communicatively coupled to a web server, a search engine, and a search database and may perform the above-described processes simultaneously.
In further environments, FIGS. 1-3 may also include auction servers located at the search providers 110, 210, and 310 for communicating with advertisers. In this embodiment, the advertiser may submit applications, pivot packages, semantic objects, and other objects to be included on the SPR. For example, advertisers may also bid on placement of submitted applications, similar to current advertising architectures with respect to ad placement on SRPs.
Additionally, the systems described in fig. 1-3 may be combined with other query processing techniques. For example, the above-described server may work in conjunction with a history-based processing application, such as a session data analysis application. In this embodiment, the system is operable to analyze the past history of the user over a given period of time to determine the context of a given search. For example, a search for "JAGUAR" after searching for "cars", "buick", and "ford" may indicate that the user is not interested in animals, but in JAGUARAutomobiles are of interest. Thus, the system may limit the focus of the system on pivot data items, semantic object filters, or applications associated with the car.
FIG. 4 presents a flowchart illustrating a method for providing a query triggered application in accordance with one embodiment of the present invention. In one embodiment, the method of FIG. 4 may be performed within the system 100 of FIG. 1. According to the embodiment shown in FIG. 4, method 400 receives and parses a search query, step 400. In the illustrated embodiment, the method may receive a search query from an end user utilizing a search portal via an HTTP request, as is known in the art. The method 400 may then parse the search query according to a predefined set of rules. For example, the method 400 may trim out useless or space characters in the query or other preprocessing algorithms known in the art.
The method 400 then identifies relevant query keywords, step 404. In this step, the method 400 intelligently determines the context and intent of the user query by analyzing the words of the keywords and their syntactic placement. For example, a trivial query such as "mortgaecerculator" may be identified as being associated with a calculator application regarding a mortgage loan. More complex examples such as "sushirestaurantsingnewyork, ny" may identify three general keywords: type of business (restaurant), "genre" or industry of business (sushi), and location keywords (new york city). In an alternative embodiment, the method 400 may further parse the three keywords into a general application identifier such as "restaurant". In another embodiment, the method 400 may intelligently transform queries into associated topics. For example, if the user enters the query "2 +2," the method 400 may determine that the user's query is for a math calculator.
After the query key is identified, the method 400 queries the application database, step 406. In one embodiment, the method 400 may utilize a predefined database interface to extract applications within the database that are associated with or are a similar match to the identified keywords. In one embodiment, the method 400 may also determine a confidence value based on comparing the query to the description of the given application.
If no application is found for the identified keyword, step 408, the method simply provides matching search results, step 410. For example, if the user query is for an ambiguous topic lacking applications, the method 400 may not find any applications associated with the keyword.
If the method 400 determines that an application exists for the user query, the method herein provides the application and search results to the user, step 412. In one embodiment, providing the application may include providing a packaged application object embedded within a search results page.
The method 400 provides the application and search results to the user and monitors the application to determine if the user has selected the application, step 414. Selecting an application may include clicking on an object with a mouse, entering keystrokes, or any user input action known in the art. In one embodiment, monitoring user interactions may be accomplished via client-side executable code such as JavaScript, Flash, or similar client-side techniques.
If the method 400 determines that the user has selected an application, the method executes the application on the user device, step 416. In one embodiment, executing the application may include loading the application from local storage. For example, an application may be embedded on an SRP, but inactive. In response to selecting the application, the method 400 simply activates and displays the application. In an alternative embodiment, the method 400 may access the remote storage device in response to a user selection. In this embodiment, the method 400 may asynchronously retrieve application data and may execute the application upon receipt. The application may execute within the SRP or may execute in a separate display.
Execution of the application may utilize local data, if possible. For example, if the user has existing data that the application may use, such as previously entered information or profile information, the application may interact with the local storage to improve user functionality.
Note that this query-triggered application response may be based on non-web content data. For example, in one embodiment, a search may be performed on data feeds, including third party data feeds. In this embodiment, the method includes registering a plurality of data feeds, including third party data feeds, and creating a persistent repository for the feed data that stores and updates the feed data. In addition, feed data may include, but is not limited to, a list of items in a given domain and metadata about those items. Accordingly, the method for generating search results may further include making a search request for the data feed.
In an alternative embodiment, additional refinement of the search operation may include determining the most appropriate vertical search engine for a given query. This may be performed through analysis of the search terms and/or analysis of the type of search results. Thus, the SRP may include search results from this most appropriate vertical search engine.
FIG. 5a presents a flowchart illustrating a method for providing pivot data points associated with a search result set in accordance with one embodiment of the present invention. Note that the method of fig. 5a and 5b may be performed within the system 200 of fig. 2. According to the embodiment shown in FIG. 5a, method 500a receives a search query, step 502. In the illustrated embodiment, method 500a may receive a search query from an end user utilizing a search portal via an HTTP request, as is known in the art. The method 500a may then retrieve search results associated with the query, step 504. Search result retrieval techniques are well known in the art and will not be repeated for the sake of brevity.
The method 500a selects a given search result and sorts the results, step 506. The method 500a sorts the search results until it generates the necessary number of search result lists, step 508. In one embodiment, the method 500a may categorize all search results. In an alternative embodiment, method 500a may limit the number of sorted search results based on a predetermined threshold amount.
In one embodiment, sorting the search results may include determining a domain name of the search results. Com "and may store this classification data locally. In alternative embodiments, the method 500a may classify the results according to any predetermined classification scheme.
After classification, the method 500a loads the pivot metric, step 510. In one embodiment, the pivot metric may include any metadata associated with a given category. For example, the pivot metric may constrain the application of the category based on the number of results that match. That is, a given category is only applied when the number of results of matching exceeds a predetermined threshold. Alternatively, the pivot metric may include any metadata associated with a given category or domain.
The method 500a then selects a subset of the sorted search results, step 512. Selecting the subset of classified search results may include extracting the top N categories defined by a predetermined threshold. For example, the method 500a may determine that only the first three categories should be utilized.
The method 500a generates pivot data points based on the sorted search results, step 514. In one embodiment, generating pivot data points may include generating independent objects that may be placed within the SRP. For example, the method 500a may utilize pivot metric data and may generate or identify images associated with the category, HTML active data links associated with the pivot point, and associated executable code such as JavaScript associated with the pivot data point. The method 500a may combine these and various other forms of data to generate independent pivot data points. Here, the active link may be generated based on a pivot data point, which may be, for example, content specifying a web location such as "www.example.com" and is a visual representation or manifestation of the pivot point, which is encoded into the SRP and user-selectable interface elements.
Finally, method 500a provides the pivot data point and the search results to the user in the SRP, step 516. In one embodiment, the method 500a embeds the previously generated pivot data point code within an SRP or SRP template, such as in the left hand column, as shown in FIGS. 7-9 below.
FIG. 5b presents a flowchart illustrating a method for retrieving search results associated with pivot data points in accordance with one embodiment of the present invention. According to the embodiment shown in FIG. 5b, method 500b provides pivot points and search results, step 518, as previously described. The method 500b then monitors the SRP to detect a user selection of one of the pivot data points, step 520. Selecting an application may include clicking on an object with a mouse, entering keystrokes, or any user input action known in the art. In one embodiment, monitoring user interactions may be accomplished via client-side executable code such as JavaScript, Flash, or similar client-side techniques.
If the user does not select a pivot data point, the method 500b continues with providing a pivot data point, step 518. If the user selects a pivot data point, the method requests refining of the search results, step 520. In one embodiment, requesting refinement of the search results may include executing a second search query identified by the active data link within the pivot data point. In one embodiment, the second search query may be executed synchronously, i.e., reloading a different second SRP. In an alternative embodiment, the second search query may be executed asynchronously, i.e., simply reloading the search results, without reloading the SRP.
The method 500b then presents the refined search results, step 524. As previously described, presenting refined search results may include displaying a second SRP similar to the first SRP. In one embodiment, the second SRP may include an additional element indicating that the second SRP is based on a refinement of the first SRP by the pivot data point. For example, the second SRP may claim that the search results are refined and may provide an option to return to the first SRP. In one embodiment, this may be a handover option back to the original SRP.
The method 500b continues to display the refined SRP until a return request is detected, step 526. If the method 500b detects that the user submitted a return request, the method presents the original SRP, step 528. As previously described, method 500b may present the original SRP via a synchronous or asynchronous request. It is also noted that the user may switch between different pivot data points SRPs by selecting different active data links while viewing the refined SRP.
FIG. 6a presents a flowchart illustrating a method for analyzing a search database and identifying semantic objects in accordance with one embodiment of the present invention. Note that the steps of the method of FIGS. 6a and 6b may be performed in one embodiment using the system 300 of FIG. 3.
As shown in FIG. 6a, method 600a retrieves a plurality of search results, step 602. Search result retrieval techniques are well known in the art and will not be repeated for the sake of brevity. The method 600a then selects a given search result, step 604, and continues to select search results until no more search results remain, step 614. In an alternative embodiment, method 600a may select a predetermined number of search results to process.
After selecting the search results, the method 600a attempts to identify semantic objects within the search results, step 606. The method 600a may identify semantic objects by comparing search result data to a list of stored semantic object definitions. In this embodiment, the method 600a may execute a pattern matching algorithm to determine whether a defined semantic object exists within the search results. For example, a semantic object definition may specify that textual data formatted according to the vCard file format is to be properly considered a business card, and thus an identifiable object.
If the method 600a does not find any semantic objects, the method 600a continues processing the remaining search results, step 608. If the method 600a determines that a semantic object exists, the method identifies a semantic object class, STEP 610.
In one embodiment, identifying semantic object classes may include examining object definitions to determine appropriate object classes. In this embodiment, the method 600a may query a class database or file that associates object types with defined classes. For example, a vCard object may be assigned to a Business (Business) class. Alternatively, semantic objects may be associated with multiple classes. For example, vCard may be assigned to business and personal (BusinessandPerson) classes.
The method 600a then sorts the search results, step 612. In one embodiment, classifying the search results may include associating the search results with the identified classes. The method 600a then stores the classified data after all data has been processed, step 616. In one embodiment, storing the classification data may include storing the association created in step 612 in a long term storage device, such as a database.
FIG. 6b presents a flowchart illustrating a method for extracting semantic object recognition information from a plurality of search results and providing semantic category links to a user in accordance with one embodiment of the present invention. According to the embodiment shown in FIG. 6b, method 600b receives a search query, step 618. In the illustrated embodiment, the method 600b may receive a search query from an end user utilizing a search portal via an HTTP request, as is known in the art. The method 600b then retrieves search results associated with the query, step 620. Search result retrieval techniques are well known in the art and will not be repeated for the sake of brevity.
The method 600b then selects a given search result, step 622, and identifies semantic object categories, step 624. In the illustrated embodiment, identifying the semantic object categories may include querying a semantic object database to determine whether a match exists for the selected search results. As previously described in connection with fig. 6a, the semantic object database may be pre-populated with a list of search results and associated semantic object identifiers. For example, the method 600b may select a search result identified by the numeric identifier "1234". The method 600b may then query the semantic object database for all entries matching the identifier "1234". If a match is found, the method 600b successfully identifies the semantic object and stores the associated match.
After analyzing the retrieved search results, the method 600b selects a semantic object category for presentation, step 628. In one embodiment, method 600b may select a predetermined number of semantic objects. For example, a predefined scheme may indicate that the method 600b only selects the first three occurrences of semantic objects (e.g., the first three semantic objects that occur within the search results).
The method 600b then encapsulates the semantic objects, step 630. In one embodiment, encapsulating the semantic objects may include generating independent objects that may be placed within the SRP. For example, the method 600b may generate or identify an image associated with the semantic object, an HTML activity data link associated with the semantic object, and associated executable code, such as JavaScript, associated with the semantic object. The method 600b may combine these and various other forms of data to generate independent semantic objects.
Finally, the method 600b presents the search results and semantic object categories, step 632. In one embodiment, method 600b embeds previously generated semantic object code within an SRP or SRP template, as previously described.
In one embodiment, the object may be a structured or unstructured object. In addition, the object filter supports filtering search results based on a single web location content source, where the single web location may be a content-generic and user-action-specific web location (contentgeneralanduser-actionprofessional). As used herein, a web location that is content-generic and user-action-specific is a web location that provides content of a generic nature and allows specific user actions. For example, the web location may be an audio/video distribution web location (e.g., www.youtube.com, www.hulu.com, etc.), a shopping location (e.g., www.amazon.com, etc.), a social media web location (e.g., www.facebook.com, www.linkedin.com, etc.), or a user-generated content web location (e.g., en.
FIG. 7 presents a screen diagram illustrating a search results page in accordance with one embodiment of the present invention. According to the embodiment illustrated in fig. 7, a user may be presented with a generic SRP700 that includes a plurality of components 702, 704, 706, and 708. As shown, the SRP includes a text field 702 indicating a query entered by a user and a plurality of search results 704.
In addition to search results 704, SRP700 also presents sidebar 706, which sidebar 706 includes various data objects including a plurality of pivot data points visible in the output display via active data link 708 and a plurality of semantic object filters visible in the output display via active data link 710. The pivot data points 708 and semantic object filters 710 may include HTML, image, and JavaScript components, as previously described. In addition, pivot data points 708 and semantic object filters 710 may be selected by the user, as will be presented in connection with FIGS. 8 and 9.
FIG. 8 presents a sample screen shot illustrating a plurality of search results retrieved in response to selection of a pivot data point in accordance with one embodiment of the present invention. According to the embodiment shown in fig. 8, in response to selection of the pivot data point 802, the refined SRP800 is presented to the user.
After the user selects pivot data point 802 (labeled "Wikipedia"), search results pane 804 is updated with results 806 from only the field "http:// en. In addition, the updated SRP800 provides a descriptive title bar 808 indicating that the user has moved into a refined search results page. Finally, the title bar 808 of the updated SRP800 includes navigation controls 810 that allow the user to return to the previous SRP 700.
FIG. 9 presents a sample screen shot illustrating a plurality of search results retrieved in response to selection of a semantic category link according to one embodiment of the present invention. According to the embodiment illustrated in FIG. 9, the refined SRP900 is presented to the user in response to selection of the semantic object filter 902.
After the user selects semantic object filter 802 (labeled "videos"), search results pane 904 is updated with results 906 (e.g., YouTube pages) that contain only video objects. In alternative embodiments, a plurality of other objects 802 may be presented to the user along with the other objects. For example, a person or product object may be displayed next to semantic object filter 802. In addition, the updated SRP900 provides a descriptive title bar 908 indicating that the user has moved into a refined search results page. Finally, the updated SRP900 title bar 908 includes navigation controls 910 that allow the user to return to the previous SRP 700.
Fig. 1 to 9 are conceptual diagrams such that the present invention can be explained. It should be understood that various aspects of the embodiments of the invention may be implemented in hardware, firmware, software, or a combination thereof. In such embodiments, the various components and/or steps would be implemented in hardware, firmware, and/or software to perform the functions of the present invention. That is, the same piece of hardware, firmware, or module of software may perform one or more of the illustrated blocks (e.g., components or steps).
In a software implementation, computer software (e.g., programs or other instructions) and/or data is stored on a machine-readable medium as part of a computer program product and loaded into a computer system or other device or machine via a removable storage drive, hard drive, or communications interface. Computer programs (also called computer control logic or computer readable program code) are stored in a main memory or a secondary memory and executed by one or more processors (controllers, etc.) to cause the one or more processors to perform the functions of the invention as described herein. In this document, the terms "machine-readable medium," "computer program medium," and "computer-usable medium" are used to generally refer to media such as: random Access Memory (RAM); read Only Memory (ROM); removable storage units (e.g., magnetic or optical disks, flash memory devices, etc.); a hard disk; and so on.
It is noted that the figures and examples above are not intended to limit the scope of the present invention to a single embodiment, as other embodiments may be implemented by substituting some or all of the elements described or illustrated. In addition, where certain elements of the present invention can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present invention are described, and detailed descriptions of other portions of such known components are omitted so as not to obscure the invention. In this specification, an embodiment showing a singular component is not necessarily limited to other embodiments including a plurality of the same component, and vice versa, unless explicitly stated otherwise herein. Moreover, applicants do not intend for any term in the specification or claims to be ascribed an uncommon or special meaning unless explicitly set forth as such. Additionally, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration.
The foregoing description of the specific embodiments will so fully reveal the general nature of the invention that others can, by applying knowledge within the skill of the relevant art (including the contents of the documents cited herein and incorporated by reference), readily modify and/or adapt for various applications such specific embodiments, without undue experimentation, without departing from the general concept of the present invention. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. It is to be understood that the phraseology or terminology herein is for the purpose of description and not of limitation, such that the terminology or phraseology of the present specification is to be interpreted by the skilled artisan in light of the teachings and guidance presented herein, in combination with the knowledge of one of ordinary skill in the relevant art.
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus, the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

Claims (22)

1. A method for generating search results, the method comprising:
receiving a search request comprising at least one search term;
accessing a plurality of data corpora, the plurality of data corpora including a search database and an application database;
determining, from the search database, relevant content for inclusion in a search result set based on at least one search term in the search request, the content including metadata indicating an application associated with the content;
determining one or more executable applications from the application database based on the metadata; and
generating a search result output display presenting: at least a portion of the set of search results and at least one of the one or more executable applications, wherein,
at least one of the one or more executable applications is created in response to the at least one search term and presented in the display as an embedded, encapsulated application object that, when selected, results in execution of an executable application associated with the metadata.
2. The method of claim 1, wherein the output display of an application includes an active link for local launching of the application.
3. The method of claim 1, wherein the output display of at least one of the applications comprises an active display of the application.
4. The method of claim 1, further comprising:
registering a plurality of applications including application description data;
determining a confidence value for each of the applications based on the comparison of the search terms to the application description data; and
determining at least one application for display by determining whether the confidence value is above a threshold.
5. The method of claim 1, further comprising:
granting the application access to local user data.
6. The method of claim 1, further comprising:
the display of the applications in the application display portion is ordered based on the ranking metric.
7. The method of claim 6, wherein the ranking metric is based on a bidding system for bidding on a value of a placement position in the application display portion.
8. The method of claim 1, wherein the corpus of data relates to non-web content.
9. The method of claim 1, further comprising:
registering a plurality of data feeds including third party feed data;
creating a persistent repository for the feed data that stores and updates the feed data; and
a search request is made for the feed data.
10. The method of claim 9, wherein the feed data includes a list of entries in a given domain and metadata about the entries.
11. The method of claim 1, further comprising:
determining a vertical search engine for a given query; and
including search results from the vertical search engine.
12. A system for generating search results, the system comprising:
a processing device, the processing device comprising:
means for receiving a search request comprising at least one search term;
means for accessing a plurality of data corpora, the plurality of data corpora including a search database and an application database;
means for determining, from the search database, relevant content for inclusion in a search result set based on at least one search term in the search request, the content including metadata indicating an application associated with the content;
means for determining a plurality of executable applications from the application database based on the metadata in response to the search request; and
means for generating a search result output display presenting at least a portion of the set of search results and at least one of the plurality of executable applications, wherein,
at least one of the plurality of executable applications is created in response to the at least one search term and presented in the display as an embedded, packaged application object that, when selected, results in execution of an executable application associated with the metadata.
13. The system of claim 12, wherein the output display of an application includes an active link for local launching of the application.
14. The system of claim 12, wherein the output display of at least one of the applications comprises an active display of the application.
15. The system of claim 12, the processing device further comprising:
means for registering a plurality of applications including application description data;
means for determining a confidence value for each of the applications based on a comparison of the search terms to the application description data; and
means for determining at least one application for display by determining whether the confidence value is above a threshold.
16. The system of claim 12, the processing device further comprising:
means for granting the application access to local user data.
17. The system of claim 12, the processing device further comprising:
means for ranking the display of the applications in the application display portion based on the ranking metric.
18. The system of claim 17, wherein the ranking metric is based on a bidding system for bidding on a value of a placement position in the application display portion.
19. The system of claim 12, wherein the corpus of data relates to non-web content.
20. The system of claim 12, the processing device further comprising:
means for registering a plurality of data feeds including third party feed data;
means for creating a persistent repository for the feed data that stores and updates the feed data; and
means for making a search request for the feed data.
21. The system of claim 20, wherein the feed data includes a list of entries in a given domain and metadata about the entries.
22. The system of claim 12, the processing device further comprising:
means for determining a vertical search engine for a given query; and
means for including search results from the vertical search engine.
HK12112845.8A 2009-09-20 2010-09-16 Systems and methods for providing advanced search result page content HK1172116B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/563,152 US8386455B2 (en) 2009-09-20 2009-09-20 Systems and methods for providing advanced search result page content
US12/563,152 2009-09-20
PCT/US2010/049095 WO2011035007A2 (en) 2009-09-20 2010-09-16 Systems and methods for providing advanced search result page content

Publications (2)

Publication Number Publication Date
HK1172116A1 HK1172116A1 (en) 2013-04-12
HK1172116B true HK1172116B (en) 2016-11-25

Family

ID=

Similar Documents

Publication Publication Date Title
CN102549573B (en) Systems and methods for providing advanced search result page content
CN102549572B (en) For providing the system and method for advanced search result page content
US8452762B2 (en) Systems and methods for providing advanced search result page content
US9652550B2 (en) Indexing application pages of native applications
US10585927B1 (en) Determining a set of steps responsive to a how-to query
US20140280106A1 (en) Presenting comments from various sources
HK1172116B (en) Systems and methods for providing advanced search result page content
HK1172117B (en) Systems and methods for providing advanced search result page content
WO2016046650A1 (en) Method of and server for processing a message to determine intent
Shen et al. A rank-based Prediction Algorithm of Learning User's Intention
HK1179709B (en) Infinite browse