CA2398769C - Method and system for generating a set of search terms - Google Patents

Method and system for generating a set of search terms Download PDF

Info

Publication number
CA2398769C
CA2398769C CA002398769A CA2398769A CA2398769C CA 2398769 C CA2398769 C CA 2398769C CA 002398769 A CA002398769 A CA 002398769A CA 2398769 A CA2398769 A CA 2398769A CA 2398769 C CA2398769 C CA 2398769C
Authority
CA
Canada
Prior art keywords
search
search terms
user
input
terms
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
CA002398769A
Other languages
French (fr)
Other versions
CA2398769A1 (en
Inventor
Alexander N. Kravets
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Excalibur IP LLC
Original Assignee
Yahoo Inc until 2017
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
Application filed by Yahoo Inc until 2017 filed Critical Yahoo Inc until 2017
Publication of CA2398769A1 publication Critical patent/CA2398769A1/en
Application granted granted Critical
Publication of CA2398769C publication Critical patent/CA2398769C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9538Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

A method and system for providing a set of search terms in response to a user input (110) are disclosed. A first set of search terms is selected from a master set of search terms based upon a match between the input and the search terms or based upon a predefined associated between the input and the search terms (120). A second set of search terms is selected from the first set of search terms in response to a value score that is established for each of the search terms (130). The value score is selected based at least in part upon the amount of revenue that each search term generates for the system's operator.

Description

METHOD AND SYSTEM FOR
GENERATING A SET OF SEARCH TERMS
FIELD OF THE INVENTION
The present invention relates to a method and system for generating a set of search terms in response to an input provided by a user. More particularly, the present invention relates to a method and system for generating a set of search terms in response to an input provided by a user and a value score that is established for each search term.

BACKGROUND
Search engines are commonly used to search the information available on computer networks such as the World Wide Web to enable users to locate information of interest that is stored within the network. To use a search engine, a user typically enters one or more search terms that the search engine uses to generate a listing of information, such as web pages, that the user is then able to access and utilize. The information resulting from the search is commonly identified as a result of an association that is established between the information and one or more of the search terms entered by the user. Different search engines use different techniques to associate information with search terms and to identify related information. These search engines also use different techniques to provide the identified information to the user. Accordingly, the likelihood of information being found as a result of a search varies depending upon the search engine used to perform the search.
This uncertainty is of particular concern to web page operators that make information available on the World Wide Web. In this setting, there are often several web page operators that are competing for the same group of potential views or customers. Accordingly, a web page's ability to be identified as the result of a search is often important to the success of a web page. Therefore, web page operators often seek to increase the likelihood that their web page will be seen as the result of a search.
2 One type of search engine that provides web page operators with a more predictable method of being seen as the result of a search is a "pay for performance"
arrangement where web pages are displayed based at least in part upon a monetary sum that the web page owner has agreed to pay to the search engine operator.
The web page operator agrees to pay an amount of money, commonly referred to as the bid amount, in exchange for a particular position in a set of search results that is generated in response to a user's input of a search term. A higher bid amount will result in a more prominent placement in a set of search results. Thus, a web page operator may attempt to place high bids on one or more search terms to increase the likelihood that their web page will be seen as a result of a search for that term.
However, there are many similar search terms, and it is difficult for a web page operator to bid on every potentially relevant search term. Likewise, it is unlikely that a bid will be made on every search term. Accordingly, a search engine operator may not receive any revenue from searches performed using certain search terms for which there are no bids.
In addition, because the number of existing web pages is ever increasing, it is becoming more difficult for a user to fmd relevant search results. The difficulty of obtaining relevant search results is further increased because of the search engine's dependency on the search terms entered by the user. The search results that a user receives are directly dependent upon the search terms that the user enters.
The entry of one search term may not result in relevant search results, while the entry of only a slightly different search term can result in relevant search results.
Accordingly, the selection of search terms is often an important part of the search process.
However, current search engines do not enable a search engine operator to provide specific search terms, such as those that will produce relevant search results, to a user. A
system that overcomes these deficiencies is needed.

SUMMARY OF THE INVENTION
In accordance with one embodiment of the invention, a set of search terms is provided to a user in response to an input that is provided by the user. In response
3 to the input, a first set of search terms is generated from a master set of search terms where a portion of each of the search terms in the first set match the input.
A second set of search terms is then selected from the first set of search terms based upon a value score that is established for each search term. The value score can be established based, at least in part, upon how much revenue is generated by the search term. The second set of search terms can then be displayed to the user.

According to another embodiment of the invention, in response to input provided by the user, a first set of search terms is generated where the terms are associated with the input, but do not match the input. A second set of search terms is then selected from the first set of search terms based upon a value score that is established for each search term. The value score can be established based, at least in part, upon how much revenue is generated by the search term.

BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a system for providing a set of search terms to a user of a preferred embodiment.

FIG. 2 flow chart of a method for providing a set of search terms to a user of a preferred embodiment.

FIG. 3 is a more detailed flow chart of a portion of the method depicted in FIG. 2.
FIG. 4 is a more detailed flow chart of a portion of the method depicted in FIG. 2.
FIG. 5 is a more detailed flow chart of a portion of the method depicted in FIG. 2.
FIG. 6 depicts an arrangement for displaying a set of search terms of a first preferred embodiment.
FIG. 7 depicts an arrangement for displaying a set of search terms of a second preferred embodiment.
FIG. 8 depicts an arrangement for displaying a set of search terms of a third preferred embodiment.

WO 01/55835 PCTfUS01/00332
4 FIG. 9 is a flow chart of a method for providi.ng a set of search terms to a user of a preferred embodiment FIG. 10 depicts an arrangement for activating a system for providing a set of search terms of a preferred embodiment.

FIG. 11 depicts an arrangement for deactivating a system for providing a set of search terms of a preferred embodiment.

DETAILED DESCRIPTION OF TIIE PRESENTLY PREFERRED
EMBODINIENTS' Referrin.g now to FIG. 1, a system 10 for generating a set of search tertns in response to an input provided by a user is shown. The system 10 comprises a client 20, a website server 30, a predictive search server 40, a database 50, and an event system monitor 70. The system 10 is preferably configured as a client/server architeecture. The client 20 preferably comprises a personal computer but can comprise a workstation or any other suitable computer of any size. The client preferably implements a web browser such as Navigator, Explorer, Netscape, or Mosaic, which enables a user to access a "pay for performance" search engine such as the one operated by GoTo.com at www.goto.com. or as described in U.S. Patent 6, 269, 361.
The system 10 can be used in conjunetion with other types of search engines as well.
The client 20 preferably includes a cache memory 22 that can be used in conjunction with a web browser to store information received from the search server 40, as described below. The cache memory 22 is preferably incorporated with the client 20, but can also be external to the client 20. The client 20 is preferably coupled within the website server 30 via a network 60, such as the Internet.
Alternatively, the client 20 can be coupled with the website server 30 via other networks such as a local area network (LAN), a wide area network (WAN), or a regional or other form of network. The phrase "coupled with," as used herein, means coupled either directly or indirectly via one or more intervening elements.
5 PCT/US01/00332 The client 20 is preferably operative to communicate with the website server 30 using a communication protocol such as HyperText Transfer Protocol (HTTP) or any other suitable protocol. The client 20 is also preferably operative to request a service that is provided by the website server 30 or the predictive search 5 server 40 without having to know any working details about the website server 30 or the predictive search server 40. The client 20 is preferably operative to support JavaScript, which can also be known as ECMAScript, such as the one depicted in Appendix A, which enables the client 20 to generate requests, store information in the cache 22, and display information to a user. The information is preferably displayed through the use of an Internet web browser in an appropriate HTML
subdocument element such as an IFRAME element of the HTML4.0 specification or an ILAYER/LAYER element of the Netscape Navigator.
The website server 30 preferably comprises a computer that is coupled with the client 20, the predictive search server 40, and the event system monitor 70.
Alternatively, the website server 30 can comprise a workstation or any other suitable computer of any size or a plurality of computers connected in a network configuration. The website server 30 preferably comprises a Website Dynamo Servlet in a standard Dynamo Application Server but can comprise a plurality of Website Dynamo Application Servers. The website server 30 is preferably operative to implement a search engine such as the one operated by GoTo.com at www.goto.com or as described in pending U.S. Patent Application No.
09/322,677. The website server 30 is preferably operative to process requests transmitted from the from client 20 and is preferably operative to forward the requests to the predictive search server 40 via an Internet protocol such as the Unreliable Datagram Protocol (UDP).
The predictive search server 40 preferably comprises a computer that is coupled with the website server 30 and the database 50. Alternatively, the predictive search server 40 can conlprise a workstation or any other suitable computer of any size or a plurality of computers connected in a network configuration. The predictive search server 40 preferably includes a cache meniory 42 that can be used
6 to store information such as a value score file, as described below. The cache memory 42 is preferably incorporated with the predictive search server 40, but can also be external to the search server 42. The predictive search server 40 is operative to maintain a master set of search terms. As used herein, the phrase "search term"

means one or more individual words, numbers, identifiers, terms, or any other form of data. The master set of search terms preferably comprises a set of terms used for use with a search engine for searching the information available on the World Wide Web. The master set of search terms can also comprise other sets of information such as library of congress book numbers, a list of car parts for one or more makes of cars, or a list of the makes and models of cars or boats, for example.
The predictive search server 40 preferably maintains a list of precomputed HTML/JavaScripts that correspond to the search terms in the master set. These scripts can be used to display information to a user as a result of a search.
The predictive search server 40 is also operative to receive and store a value score file from the database 50 that lists the value score for each of the search terms within the master set.
The predictive search server 40 is preferably operative to implement a computer program such as the Java program listed in Appendix B attached hereto that enables it to respond to requests from the client 20. The predictive search server 40 is operative to generate UDP protocol responses in response to UDP
requests from the client 20. One such UDP request is a search request that can cause the predictive search server 40 to identify one or more sets of search terms from the master set of search terms in response to an input provided by the user, as described herein. A single predictive search server 40 can be used in conjunction with one or a plurality of Website Dynamo Application Servers. A plurality of predictive search servers 40 can also be used.
While the client 20, the website server 30, and the predictive search server are depicted as separate elements, they can be implemented on a single computer. In addition, the functions of the client 20, the website server 30 and the predictive
7 search server 40 can be combined in a single computer or distributed among many computers.
The database 50 preferably comprises a statistics database that is coupled with the predictive search server 40 and the event system monitor 70. The database 50 preferably comprises a Sun Solaris Server and Oracle database software, but any suitable hardware and software can be used. The database 50 is operative to maintain a list of value scores for the master set of search terms. The database 50 is also operative to receive statistical information relating to the search terms in the master set and update the value scores in response to the statistical information. The database 50 can receive the statistical information from the event system monitor 70. The value scores can be automatically updated in real time, near real time, or at given intervals of time, such as daily, weekly, or monthly. The value scores can be transmitted to the predictive search sever 40 in the form of a value score file.
The value score for each search term can be determined in any number of ways. In a preferred embodiment, a value score comprises a number or index that is between 1 and 100 and is calculated as a composite based upon a number of factors. In a preferred embodiment, where the system 10 is used in conjunction with a pay for performance search engine, the index is a composite in which 85%

of the composite is the revenue that that term has generated for the search engine operator and 15% of the composite is the number of time the term has been used in a search in a certain time period. The revenue is preferably calculated by multiplying the bidded amount for a search term and the number of times that search term is entered. The time period for the number of searches preferably comprises one month but can comprise any period of time. The value score can also comprise one or more letters or other symbols.
In alternative embodiments, the value score can be calculated using different percentages of the same factors. In addition to the above factors, the value score can be calculated using one or more of the following factors: the frequency at which a search term is used, the clickthrough rate of a search term,
8 the paid clickthrough rate of a search term, a demographic profile, and a psychographic profile. The clickthrough rate preferably represents the frequency at which users select or click on search results for a given search term. The frequency can be determined by dividing the total number of search results for a search term that are selected by a user by the total number of searches for a search term that are requested by all the users. This can be used as a measure of how often a user receives relevant information as the result of a search. The demographic profile preferably represents certain characteristics or features of a user that can be used to alter the search terms that are display to that user.
The psychographic profile preferably represents certain preferences or tendencies of a user. For example, the psychographic profile can include the user's sensitivity to price of an item such as a compact disc or the user's preference in music (i.e. rap music versus opera).
The event system monitor 70 is preferably coupled with the website server 30 and the database 50. The event system monitor 70 monitors the events occurring on the website server 30 to determine various parameters such as the total number of searches requested by all users of the site, the number of times each search term is entered by a user, the number of times a user selects one of the search results presented to them, the amount of revenue generated by a search term in a pay for performance type search engine, or other suitable parameters. The event system monitor collects the data required to determine various parameters and is able to generate reports detailing the different parameters that can be sent to the database 50.
The system depicted in FIG. 1 can be used to implement the method depicted in FIG. 2. Assume for purposes of this example that a user is utilizing a web browser operating on the client 20 to search information available in a network such as the World Wide Web, for example. Also assuine that the user is utilizing a pay for performance search engine such as the one that is provided by GoTo.com at www.goto.com, which requires the user to provide an input to initiate the search. Upon receipt of an input from a user (act 110), a first set of
9 search terms is identified from a master set of search terms in response to the input (act 120). The input received from the user preferably comprises three alphanumeric characters entered by the user using a keyboard at the client 20, but can consist of any number of characters as well as any other suitable input such as voice input or other input as discussed herein. A second set of search terms is then selected from the first set of search terms in response to a value score for each search terms in the first set (act 130). The second set of search terms can then be displayed to the user (act 140).
Referring now to FIG. 3, the act of receiving an input from a user (act 120, FIG. 2) preferably comprises the following acts. When a user at the client 20 provides an input, a request is automatically generated by the client 20 and is transmitted to the website server 30 (act 210, FIG. 3). The request includes the input provided by the user and requests a response from the predictive search server 40. Upon receipt of the request, the website server 30 forwards the request to the predictive search server 40 (act 220).
Referring now to FIG. 4, the act of identifying a first set of search terms from a master set of search terms in response to the input provided by the user (act 120, FIG. 2) preferably comprises the following acts. After receiving the request from the website sever 30, the predictive search server 40 identifies a first set of search terms where the first three characters of each search term match the three character input provided by the user (act 230, FIG. 4). The first set of search terms preferably comprises 500 search terms but can comprise any number of search terms. The first set of search terms can then be stored in the cache memory 42 that is coupled with the predictive search server 40 (act 240). In alternative embodiments, the predictive search server 40 can respond to various inputs as described herein and can identify a first set of search terms by identifying search terms that have, for example, less than or greater than three matching characters.
In an alternative embodiment, after the first set of search terms has been selected by the search server 40 (act 230, FIG. 4) the first set of search terms can be transmitted to the client 20 and can be stored in the cache memory 22. The precomputed HTML/JavaScript for each search term can also be transmitted from the predictive search server 40 to the client 20. This process is commonly referred to as aggressive read ahead caching and limits the amount of information that must be transferred form the predictive search server 40 to the client 20 during 5 subsequent stages of the present method. The first set of search terms can then be accessed by either the client 20 or the predictive search server 40 to determine a second set of search terms as described herein.
In an alternative embodiment, the act of identifying a first set of search terms from a master set of search terms in response to the input provided by the
10 user (act 120, FIG. 2), can comprise the following acts. After receiving the request from the website sever 30, the predictive search server 40 identifies a first set of search terms where the first three characters of each search term do not match the three character input provided by the user, but where the search terms are associated with the input provided by the user. The predictive search server preferably identifies this first set of search terms through a reverse indexing process the associates search terms with possible inputs that a user can provide.
This allows for the identification of search terms that would likely be of interest to a user but that do not share the same characters as the search terms.

For example, if a user provided the input "ope" presumably seeking information about an opera, the search term "New York Opera" could be provided.
In other examples, the input of a portion of a recording artist's name could result in the display of songs performed by the artist; the input of a portion of an author's name could result in the display of books by that author; the input of a portion of the name of a state could result in the display of cities located within that state; the input of a portion of a class name could result in the display of students in that class; the input of a portion of a school name could result in the display of teachers in that school; the input of a portion of a symptom of an illness could result in the display of drugs associated with that symptom; the input of a portion of a type of animal could result in the display of animals in that classification; and the input of a portion of the name of an article of manufacture, the name of the manufacturer,
11 or the serial number of the article could result in the display of manufacturers of that type of item. Other relationships are also possible.
In a further alternative embodiment, the act of identifying a first set of search terms from a master set of search terms in response to the input provided by the user (act 120, FIG. 2), can comprise the following acts. The predictive search server 40 can identify a first set of search terms where one or more of the search terms is identified through either a match between the first three characters of the search term and the input provided by the user and one or more of the search terms is identified through a reverse indexing process.

Referring now to FIG. 5, the act of selecting a second set of search terms from the first set of search terms in response to a value score for each search term (act 130, FIG. 2) preferably comprises the following acts. The predictive search server 40 analyzes the value scores that correspond to the search terms collected in the first set (act 250). The can be done through the use of the term value file that can be generated by the database 50 and transmitted to the predictive search server 40, as described herein. The predictive search server 40 can then select a number of search terms, such as six, from the first set of search terms that have the highest value scores (act 260). In alternative embodiments, greater than or less than six search terms can be selected. As described herein, the value score can be determined in various ways.
In an alternative embodiment, the act of displaying the second set of search terms to the client 20 (act 140, FIG. 2) preferably comprises transmitting a precomputed HTML/JavaScript for each term in second set of search terms from the predictive search server 40 to the client 20. In some embodiments this step is not necessary as the precomputed HTML/JavaScript for each of the terms in the first set of search terms is stored at client 20 through the aggressive read ahead caching procedure. The second set of search terms can be displayed to the user is nearly real time while the user is providing the input but before the user finishes providing the input. For example, the second set of search terms can be displayed to the user before the user finishes typing all of the characters of a search term.
12 Referring now to FIGS. 6-8, the second set of search terms can be displayed to the user as shown. The second set of search terms can be displayed as a list 300 in conjunction with a search engine input screen as shown in FIG.
6.

The second set of search terms can also be displayed in a single list 310 in conjunction with a search engine results page as shown in FIG. 7.
Alternatively, the second set of search terms can be displayed in a first list 310 and a second list 320 in conjunction with a search engine results page a shown in FIG. 8. The second set of search terms can also be displayed in other variations and combinations.
The second set of search terms are preferably displayed in alphabetical order but can be displayed in descending order based on the value score for each search term, ascending order of the value scores, other orders based upon the value score, or in virtually any other order irrespective of the value score. The search terms preferably appear as links as shown in FIG. 6 that, when selected by the user, will result in the automatic display of the search results associated with the search term. Alternatively, the second set of search terms can be displayed as a list of terms that when selected by the user appear in the search query box of a search engine. Alternatively, the second set of search terms can be displayed as a drop-down list that can include links to search results.
The method of FIG. 2 can be repeated if the user provides additional input.
For example, if the user provides a further input such as a fourth character, a revised set of search terms can be identified from the first set of search terms, as described herein, and can be displayed to the user, as described herein.
Alternatively, in response to the receipt of additional input provided by a user (act 410, FIG. 9), a revised first set of search terms can be identified from the master set of search terms (act 420), as described herein. A revised second set of search terms can then be identified from the revised first set of search terms (act 430), as described herein and can be displayed to the user (act 440), as described herein.
Referring now to FIGS. 10 and 11, the method and system described herein can be used in conjunction with a search engine such as the one provided by
13 GoTo.com at www. goto.com and can be activated and deactivated by a user through the selection or deselection of one or more links 330 as shown in FIGS. 10 and 11. The links 330 can be displayed in conjunction with a traditional search engine entry and can be selected by a user by "clicking" on one of the links 330 to turn the system on or off.

The foregoing method and system enable a set of search terms to be provided to a user in a predictive or suggestive fashion. When the user provides a partial input, the method and system can present the user with a set of search terms that match the partial input or that are somehow related to the partial input.
The set of search terms can be displayed to the user is nearly real time while the user is providing the input and before user finishes providing the input. The user can then select from the search terms predicted or suggested to them without having to provide the remainder of his intended input. This enables a search engine operator to provide a user with search terms that are likely to produce the best search results as well as the search terms that will generate the most revenue for the search engine operator.
It is to be understood that a wide range of changes and modifications to the embodiments described above will be apparent to those skilled in the art and are contemplated. It is therefore intended that the foregoing detailed description be regarded as illustrative rather than limiting, and that it be understood that it is the following claims, including all equivaleints, that are intended to define the spirit and scope of the invention.
14 ~~D evLC(i ?C l4-!-- BEGIN PREDICTIVE SEARCH HTML FRAGMENT -->

SCRIPT TYPE="text/javascript" LANGUAGE="JavaScriptl.l=><!--//This has to precede the IFRAME/ILAYER
function defaultSB(){
return '<html><body becolor=#ffcc00><center><img src=/images/home/ms.gif><center></body</html>' }
/--></SCRIPT>
<IFRAME ID=SB SRC="javascript:parent.defaultSB()" onFocus="passFocus()"
HEIGHT=88 SCROLLING=NO MARGINHEIGHT=O MARGINWIDTH=O HSPACE=O VSPACE=O
FRAMEBORDER=O>
<ILAYER NAME=OSB><LAYER ID=SB HEIGHT=88 SRC="javascript:parent.defaultSB()"></LAYER></ILAYER>
</IFRAME>

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScriptl.l"><<--/Ilnitialize some useful globals var cache = new Array() //store a hashtable of prefixes and their cache entries var values = new Array() //store a hashtable of prefixes and their cache entry values var noCache = new Array()//store a hashtable of negative responses to prefixes var tabFromUp = false //Get a portable ref to the IFRAME or ILAYER
SB = (document.all) ? document.all.SB : document.OSB.document.SB;
I/Get a portable ref to Keywords search box KW = document.search_Keywords function passFocus(){
if(SB.document.links.length < 1) return if(SB.document.links[0]){
if(tabFromUp) {
SB.document.links[0].focusO
tabFromUp = false }
else {
SB.document_links[SB.document.links.length-1].focus() }
}
}

function change(newValue){
newValue = canonicalize(newValue) //alert('in change with newValue =''+ newValue + ' length= '+ newValue.length) if(newValue.length < 3) {
showDefault() }else if(newValue_length == 3) {
if(cache[newvalue] != null) {
scrollCache(newvalue) }
else {
refreshAndScrollCache(newValue) }
}else {
//alert('in change with newValue + newValue + ' length= + newValue.length) scrollCache(newValue) }
}//change function refreshAndScrollCache(prefix) {//force reload SB.document.location.replace('/d/sc/?prefix=' + escape(prefix) +
'&source=generic') } ' =
function makeHref(term){
return ( '<a href="/d/search/?Keywords='+ escape(term) +
'&type=suggested" target=_parent>'+ term +'</a><br>\n') function indexofMinimum(array){
var minimum = array[0]
var minindex = 0 for (var i in array) {
if(array(i] < minimum){
minimum = array[i]
minIndex = i -} ...~-- --_ _-- --- - --}
return minTndex ]
function showDefault(){
if(SB.document.images == null SB.document.images.length 0) SB.location.replace('javascript:parent.defaultSB()') }

function canonicalize(value) {
while(value.charAt(0) == ' ' 11 value.charAt(0) __ '+r) value = value.substring(l) return value.toLowerCase() }

function setCache(key, c, v) {
//alert('in set cache with key = ' + unescape(escape(key)) + ' KW.value = ' +
KW.value) if(c == null) [
showDefault() //dont cache cache timeouts }else if(c.length == 0) {
noCache[key] = 'none' //do cache negative responses showDefaultO
}else{
for(var i in c) c[i] = unescape(c[i]) //clean up and sava away this prefix cache cache[key] = c values[key] = v scrollCache(canonicalize(KW.value)) //scroll to the latest cursor }
}
function scrollCache(prefix) {
//util arrays var key = prefix.substring(0,3) //alert('in scrollCache with prefix = ' + prefix + ' key = ' + key) if(cache[key] == 'none') return //if no cache then return early var list = new ArrayO
var listValues = new Array() for (var i in cache[key]){
//Skip prefix and those that don't start with prefix if(prefix >= cache[key][i] 11 cache[key][i].indexof(prefix, 0) != 0) continue if(list.length < 5) {//prepopulate list with first candidates list[list.length] = cache[key][i]
listValues[listValues.length] = values[key][i]
}else{
var mi = indexOfMinimum(listValues) if(values[key][i] > li.stValues[mi]) {

lis.t[mi] = cache.[key] [i]
listvaliues[mi] ='values[key][i1 = } .
)//else }//for all-in cache[key]
//At this point list should contain 5 highest value words > prefix, //just alpha sort and show it list.sort() if(list.length > 0){
//give it a style SB.document.write( '<html><head><style> A {font-size:9pt; font-Eamily: Helvetica, Arial}, +
'A:hover (color:red) A:active (color:red}</style></head><body becolor=#ffcc00>~nI) for(var k in list) SB.document.write(makeHref(list[k])) SB.document.write('</body></html>') SB.document.closeO
)else showDefault L) }
//--></script>

-jackage com.go2.search.predictive;

import java.util.*;
unport java.net.*;
unport java.io.*;
r*e This class implements the in-memory Predictive Search cache At boot time a file with cache entries and their corresponding values is loaded and processed by this Class and thereafter a service is made available on a-UDP port to-quickly serve-client-requests @author Alex Kravets <alex@goto.com>
k/
)ublic class PredictiveServer {
i**
t Bind a UDP port and listen for requests t @param args java_lang.String[] - Argumenst: /cache/file/path udpPortToBind rI
)ublic static void main(String args(7) {
//Simple usage check if(args.length != 3) throw new 111egalArgumentException( "Usage: java com.go2.search.predictive.PredictiveServer /path/to/cache perPrefixMax udpPortToBind");
System.out.println("Starting Predictive Server ...\nrotal JVM Mem Usage Before cache load: +
(Runtime.getRuntime().totalMernory())/1000000 + " Megabytes: ");
try ( //Load our cache from a file and maintain some stats about it long start = System_currentTimeMillis()t loadCache(args[0]);
pruneCache(Integer.parseInt(args[1]));
buildMapO;
long end = Systecn.currentTimeMillis();
System.gcO; //Free up some RAN
printStats(start, end);
serviceLoop(Integer.parseInt(args[2]));
}catch(Exception e) {
Systam.out.println("Failed withi e);
e.printStackTrace();
}
1//main ?rivate static void loadCache(String cacheFile) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(cacheFile), 64*1024);
while(true)( String line = reader.readLine();
if(line == null) break; //Indicates we're done with this file int valueSep = line.lastIndexOf(VSEP);
//encode for safe transport in HTML/JavaScript String phrase = line.substring(0, valueSep).trim();
I/Ignore phrases that are less than MIN_PHRASE_LENGTH chars //greater than MAY_PHRASE_LENGTH or contain '\' int len = phrase.length();
if(len < MIN_PHRASE_LENGTH 11 len > MAX_PHRASE_LENGTH 11 phrase.indexOf('\\') != -1) continue;
phraseLength += phrase.length();
phraseCount++;
String prefix = phrase_substring(0, PREFIY_SIZE);

//encode for safe transport in HTt+a,/JavaScript phrase = cleanPhrase(phrase);
String value = line.substring(valueSep + 1).trim{);
ArrayList prefixLines;
//Add a clean line into subBuffers for processing -if((prefixLines = (ArrayList)prefixMap.get(prefix)) != null) {
prefixLines.add(phrase + VSEP t value); //wi11 need to disasemble again }else{ //if we haven't seen this prefix before than create a holder for it prefixLines = new ArrayList(;
prefixMap.put(prefix, prefixLines);
}
}//while more lines to read reader.close(;
I//loadCache ?rivate static void pruneCache(int keep) {
//For every prefix in the cache, leave highest "keep" in values //and then resort alphabetically, remember and drop those prefixes 1/that-had -less than MIN_PRERIX_EMTRIES values -in them ArrayList small = new ArrayList();
//System.out.println("Prefixes with number of entries exceeding + keep +":
Iterator prefixIterator = prefixMap.keySet().iterator();
while(prefixiterator.hasNext()){
String prefix = (String)prefixIterator.next();
ArrayList segment = (ArrayList)prefixMap.get(prefix);
int size = segment.size();
prefixListSize += size;
//Sort entries in the descending order of values if necessary if(size > keep) {//if prefix too big //System.out.println("\I" + prefix + "' by " + (segment.size() - keep) +
Collections.sort(segment, new Comparator(){
public int compare(Object a, Object b) {
String aLine = (String)a;
String bLine = (String)b;
int aValue = Integer.parseSnt(aLine.substring(aLine.lastIndexOf(VSEP) + 1));
int bValue = Integer.parseInt(bLine.substring(bLine.lastlndexOf(VSEP) + 1));
return bValue - aValue; //induce descending ordering }
public boolean equals(Object another) { return super.equals(another); ) });
//Drop those of lower value segment.subList(keep, segment.size()).clear();
}
//Put in desc alpha order for further consumption by buildMap Collections.sort(segment);
//Remember prefixes that are too short for subsequent removal from prefixMap if(size < MIN_PREFIX ENTRIES) small.add(prefix);
}//for all prefixes //Actually drop all those that are too short System.out.println("Number of prefixes with fewer than "+MIN_PREFIX_ENTRIES+"
entries: "+small.size());
for(int i = 0; i< small.size(); i++) {
//System.out.println("Dropping " + small.get(i));
prefixMap.remove(small.get(i));
}
)//pruneCache .Drivate static void buildMap() {
//Precompute HTML/Javascript for every prefix in the map Iterator prefixlterator = prefixMap.keySet().iterator();
while(prefixIterator.hasNext()){
prefixCount++;
String prefix = (String)prefixIterator.next();
//get segment and build Html for it ArrayList segment = (ArrayList)prefixMap.get(prefix);
String html = HTML_HEADER;
//Make sure to add the prefix into it first f!

StringBuffer entries = new StringBuffer("vaz c= new Array(" + ESEP + prefix t ESEP);
5tringBuffer values = new StringBuffer("var v=.new Array(0"):
ListIterator lineIterator = segment.listIterator();
while(line2terator.hasNext())(- -String line = (String)lineIterator.nextO;
'int valueSep = line.lastIndexOf(VSEP);
I/add Javascript String quotes entries.append("," t ESEP + line.substring(0, valueSep) + ESEP);
values.append(',' + line.substring(valueSep + 1));
)//all in prefix segment entries.append(");\n");
values.append(");\n");
html += entries;
html += values;
//html += "for(var i in c) c[il = unescape(c[il);\n";
html "parent.setCache(" + ESEP + prefix + ESEP +c, v);\n";
html += H'P-MII,_FODTER;
prefixMap.put(prefix, html.getHytes());
}//for-all entries //buildMap )rivate static void serviceLoop(int port) throws SocketException {
//Bind our UDP port and set UDP in/out buffers high to improve net I/0 DatagramSocket socket = new DatagramSocket(port);.
socket.setSendButferSize(64*1024);
socket.setReceiveBufferSize(64*1024);
//Enter the eternal loop while(true) {
try {
DatagramPacket in = new DatagrantPacket(inBuffer, inBuffer.length);
socket.receive(in); //block here until a request arrives byte[] output = lookup(new String(inBuffer, 0, in.getLength());
socket.send(new DatagramPacket(output, output.length, in.getAddress(), in.getPort()));
//System.out.println("Recieved: " + packet.getData().length + " bytes");
}catch(IOException ioe) {}//Indicates read failure, ignore and try again )//eternal while I/serviceLoop rivate static String cleanPhrase(String dirty)( return URLEncoder.encode(dirty).replace('+',' ');
int apoIndex = -1;
StringBuffer sb = new StringBuffer(dirty);
while((apolndex = dirty.indexOf(charToEscape, apolndex + 1)) != -1) sb.insert(apoLndex, return sb.toString(;
//cleanPhrase )rivate static byte[l lookup(String key) {
Object data = prefixMap.get(key);
return (data != null) ? (byte[]) data : NOPREFIX_HTML;
//lookup )rivate static void printStats(long start, long end) {
System.out.print("Total number of entries: "+ phraseCount + System. out.
println ("Average cache entry is: + phraseLength/phraseCount + characters") System.out.print("Total number of good prefixes: "+prefixCount +"");
System. out. println ("Average size (Df a good prefix list:
"+(prefixListSiae/prefixCount) + entries");
System.out.print("Time to load cache: "+(end - start)/1000.0 +" seconds.");
System.out.println(" Rate: "+ phraseCount/((end - start + 1)11000.0) +" per second");
System.out.println("Total JVM Mem Usage After Cache Load: "+
(Runtime.getRuntime().totalMemory())/1000000 + " Megabytes:

Runtime.getRuntime().totalMemory(/phraseCount + " bytes per phrase");
//System.out.println("Sample HTML: \n" + new String((byte[])prefixMap.get("afr")));
//printStats //Constants private static final int PREFIX SIZE = 3;
private static final int MIN PREFIX_ENTRIES = 3;
private static final int MIN PHRASE_LENGTH = 4;
private static final int MAX PHRASE LENGTH = 30;
private static final String HTtUL_HEADER ="<html><head><script>\n";
private static final String HTML_FOOTER ="</script></head></htm1>";
private static final char ESEP =
private static final char VSEP =
private static final byte[]
NOPREFIX I3TML=(HTML_HEADER+"parent.setCache(\"\", new Array(), new xray O);\n"+HTML_FOOTER).getBytesO;

//maps possible prefixes to byte-encoded HTML/JavaScript for them private static final TreeMap prefixMap = new TreeMap();
//preallocate a single receive buffer for all inbound requests private static final byte[] inBuffer = new byte[16]p //statistics related stuff private static int phraseCount;
private static int phraseLength;
private static int prefixcount;
private static int prefixListeize;
//class PredictiveServer

Claims (19)

WHAT IS CLAIMED IS:
1. A method of generating a search term list in response to an input from a user, the method comprising:
(a) providing a server coupled with a database;
(b) maintaining a master set of search terms in the database;
(c) determining a value score for each search term in the master set, wherein the value score for each term is determined in response to a number of times that the search term is used during a period of time and by an amount of revenue generated by each search term;
(d) receiving the input from the user via the server;
(e) selecting a first set of search terms from the master set of search terms in response to the input received from the user; and (f) selecting a second set of search terms from the first set of search terms in response to the value score associated with each search term in the first set of search terms.
2. The method of claim 1, further comprising arranging the second set of search terms in a search term list.
3. The method of claim 1, further comprising displaying the second set of search terms.
4. The method of claim 1, further comprising:
(g) arranging the second set of search terms in a search term list;
(h) displaying the search term list with the terms arranged in descending order based upon the value score for each search term.
5. The method of claim 1, wherein the value score for each search term is determined by a frequency at which the search term is used.
6. The method of claim 1, wherein the value score for each search term is further determined by a number of times that the search term is used during a period of time.
7. The method of claim 1, wherein the input from the user comprises a plurality of characters.
8. The method of claim 1, wherein (b) comprises receiving statistical information for at least one of the search terms in the master set and determining the value score for the at least one search term in response to the statistical information.
9. The method of claim 1, wherein (d) comprises selecting search terms that contain or match the input.
10. The method of claim 1, wherein (d) comprises selecting search terms that are associated with the input.
11. The method of claim 1, wherein (e) comprises selecting search terms that have the highest value score.
12. A system for generating a search term list in response to an input from a user, the system comprising:
a database storing a master set of search terms and a value score for each search term, wherein the value score for each search term is determined in response to a number of times that the search term is used during a period of time and by an amount of revenue generated by each search term;
a server coupled with the database, the server being operative to select a first set of search terms from the master set of search terms in response to the input received from the user and being operative to select a second set of search terms from the first set of search terms in response to the value score associated with the first set of search terms.
13. The system of claim 12, further comprising a client coupled with the server.
14. The system of claim 12, further comprising an event system monitor coupled with the server and the database.
15. The system of claim 12, wherein the server comprises a plurality of servers.
16. A method of generating a search term list in response to an input from a user, the method comprising:
(a) providing a server coupled with a database;
(b) maintaining a master set of search terms in the database;
(c) determining a value score for each search term in the master set wherein the value score is determined by an amount of revenue generated by each search term and a number of times that the search term is used during a period of time;

(d) receiving the input from the user via the server;
(e) selecting a first set of search terms from the master set of search terms in response to the input received from the user wherein a portion of each term in the first set of search terms matches the input; and (f) selecting a second set of search terms from the first set of search terms in response to the value score associated with first set of search terms.
17. The method of claim 16, further comprising displaying the second set of search terms.
18. A method of generating a search term list in response to an input from a user, the method comprising:
(a) providing a server coupled with a database;
(b) maintaining a master set of search terms in the database;
(c) determining a value score for each search term in the master set wherein the value score is determined by an amount of revenue generated by each search term and a number of times that the search term is used during a period of time;
(d) receiving the input from the user via the server;
(e) selecting a first set of search terms from the master set of search terms in response to the input received from the user wherein each term in the first set of search terms is associated with the input; and (f) selecting a second set of search terms from the first set of search terms in response to the value score associated with first set of search terms.
19. The method of claim 18, further comprising displaying the second set of search terms.
CA002398769A 2000-01-31 2001-01-05 Method and system for generating a set of search terms Expired - Lifetime CA2398769C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/494,818 US6704727B1 (en) 2000-01-31 2000-01-31 Method and system for generating a set of search terms
US09/494,818 2000-01-31
PCT/US2001/000332 WO2001055835A1 (en) 2000-01-31 2001-01-05 Method and system for generating a set of search terms

Publications (2)

Publication Number Publication Date
CA2398769A1 CA2398769A1 (en) 2001-08-02
CA2398769C true CA2398769C (en) 2009-05-05

Family

ID=23966104

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002398769A Expired - Lifetime CA2398769C (en) 2000-01-31 2001-01-05 Method and system for generating a set of search terms

Country Status (8)

Country Link
US (2) US6704727B1 (en)
EP (1) EP1272926A4 (en)
JP (1) JP2003529140A (en)
AU (1) AU2001226312A1 (en)
CA (1) CA2398769C (en)
DE (1) DE10195233T1 (en)
GB (1) GB2375860B (en)
WO (1) WO2001055835A1 (en)

Families Citing this family (250)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7364068B1 (en) 1998-03-11 2008-04-29 West Corporation Methods and apparatus for intelligent selection of goods and services offered to conferees
US7437313B1 (en) 1998-03-11 2008-10-14 West Direct, Llc Methods, computer-readable media, and apparatus for offering users a plurality of scenarios under which to conduct at least one primary transaction
US7729945B1 (en) 1998-03-11 2010-06-01 West Corporation Systems and methods that use geographic data to intelligently select goods and services to offer in telephonic and electronic commerce
US7386485B1 (en) 2004-06-25 2008-06-10 West Corporation Method and system for providing offers in real time to prospective customers
US6055513A (en) 1998-03-11 2000-04-25 Telebuyer, Llc Methods and apparatus for intelligent selection of goods and services in telephonic and electronic commerce
US8315909B1 (en) 1998-03-11 2012-11-20 West Corporation Methods and apparatus for intelligent selection of goods and services in point-of-sale commerce
US7702537B2 (en) 1999-05-28 2010-04-20 Yahoo! Inc System and method for enabling multi-element bidding for influencing a position on a search result list generated by a computer network search engine
US7035812B2 (en) * 1999-05-28 2006-04-25 Overture Services, Inc. System and method for enabling multi-element bidding for influencing a position on a search result list generated by a computer network search engine
US7016852B1 (en) 1999-09-30 2006-03-21 Eugene M. Lee Fee transaction system and method for intellectual property acquisition and/or maintenance
US20090307577A1 (en) * 2001-08-28 2009-12-10 Lee Eugene M System for providing a binding cost for foreign filing a patent application
US7016851B1 (en) * 1999-09-30 2006-03-21 Eugene M. Lee Systems and methods for preparation of an intellectual property filing in accordance with jurisdiction- and/or agent specific requirements
US20020138297A1 (en) * 2001-03-21 2002-09-26 Lee Eugene M. Apparatus for and method of analyzing intellectual property information
US20060229930A9 (en) * 1999-11-15 2006-10-12 Gottfurcht Elliot A Method to generate advertising revenue based on time and location
US7020845B1 (en) * 1999-11-15 2006-03-28 Gottfurcht Elliot A Navigating internet content on a television using a simplified interface and a remote control
US6389467B1 (en) 2000-01-24 2002-05-14 Friskit, Inc. Streaming media search and continuous playback system of media resources located by multiple network addresses
US6704727B1 (en) * 2000-01-31 2004-03-09 Overture Services, Inc. Method and system for generating a set of search terms
US9246975B2 (en) 2000-03-17 2016-01-26 Facebook, Inc. State change alerts mechanism
US7624172B1 (en) 2000-03-17 2009-11-24 Aol Llc State change alerts mechanism
US7010537B2 (en) * 2000-04-27 2006-03-07 Friskit, Inc. Method and system for visual network searching
AU2001277265A1 (en) * 2000-07-05 2002-01-14 Daren Paul Murrer Paid search engine bid management
US6691107B1 (en) * 2000-07-21 2004-02-10 International Business Machines Corporation Method and system for improving a text search
US20020099770A1 (en) * 2000-09-08 2002-07-25 Muse Corporation Hybrid communications and interest management system and method
US8484177B2 (en) 2001-03-21 2013-07-09 Eugene M. Lee Apparatus for and method of searching and organizing intellectual property information utilizing a field-of-search
US6694331B2 (en) * 2001-03-21 2004-02-17 Knowledge Management Objects, Llc Apparatus for and method of searching and organizing intellectual property information utilizing a classification system
US7089195B2 (en) 2001-04-30 2006-08-08 Ari Rosenberg System and method for the presentation of advertisements
US7739162B1 (en) 2001-05-04 2010-06-15 West Corporation System, method, and business method for setting micropayment transaction to a pre-paid instrument
AU2002321795A1 (en) * 2001-07-27 2003-02-17 Quigo Technologies Inc. System and method for automated tracking and analysis of document usage
WO2003017023A2 (en) * 2001-08-14 2003-02-27 Quigo Technologies, Inc. System and method for extracting content for submission to a search engine
US8112529B2 (en) 2001-08-20 2012-02-07 Masterobjects, Inc. System and method for asynchronous client server session communication
US9541977B1 (en) 2001-08-28 2017-01-10 Eugene M. Lee Computer-implemented method and system for automated claim charts with context associations
US7885987B1 (en) 2001-08-28 2011-02-08 Lee Eugene M Computer-implemented method and system for managing attributes of intellectual property documents, optionally including organization thereof
US9460414B2 (en) 2001-08-28 2016-10-04 Eugene M. Lee Computer assisted and/or implemented process and system for annotating and/or linking documents and data, optionally in an intellectual property management system
US9508101B1 (en) 2001-09-21 2016-11-29 Google Inc. Systems and methods for providing stock ticker information
US20030130994A1 (en) * 2001-09-26 2003-07-10 Contentscan, Inc. Method, system, and software for retrieving information based on front and back matter data
DE10148676A1 (en) * 2001-10-02 2003-04-24 Gaston Glock System for activating a firearm with an identification device
US7680817B2 (en) * 2001-10-15 2010-03-16 Maya-Systems Inc. Multi-dimensional locating system and method
US8316306B2 (en) * 2001-10-15 2012-11-20 Maya-Systems Inc. Method and system for sequentially navigating axes of elements
US7606819B2 (en) 2001-10-15 2009-10-20 Maya-Systems Inc. Multi-dimensional locating system and method
US8590013B2 (en) 2002-02-25 2013-11-19 C. S. Lee Crawford Method of managing and communicating data pertaining to software applications for processor-based devices comprising wireless communication circuitry
US20050222901A1 (en) * 2004-03-31 2005-10-06 Sumit Agarwal Determining ad targeting information and/or ad creative information using past search queries
JP2003316807A (en) * 2002-04-23 2003-11-07 Communication Research Laboratory Information retrieving device and recording medium with information retrieving software stored thereon
US9946788B2 (en) * 2002-07-23 2018-04-17 Oath Inc. System and method for automated mapping of keywords and key phrases to documents
US20080058106A1 (en) * 2002-10-07 2008-03-06 Maya-Systems Inc. Multi-dimensional locating game system and method
AU2003279992A1 (en) * 2002-10-21 2004-05-13 Ebay Inc. Listing recommendation in a network-based commerce system
US20050125240A9 (en) * 2002-10-21 2005-06-09 Speiser Leonard R. Product recommendation in a network-based commerce system
US7590696B1 (en) 2002-11-18 2009-09-15 Aol Llc Enhanced buddy list using mobile device identifiers
US7899862B2 (en) 2002-11-18 2011-03-01 Aol Inc. Dynamic identification of other users to an online user
US8701014B1 (en) 2002-11-18 2014-04-15 Facebook, Inc. Account linking
US7428580B2 (en) 2003-11-26 2008-09-23 Aol Llc Electronic message forwarding
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
US7640306B2 (en) 2002-11-18 2009-12-29 Aol Llc Reconfiguring an electronic message to effect an enhanced notification
WO2004046867A2 (en) 2002-11-18 2004-06-03 America Online, Inc. People lists
US8965964B1 (en) 2002-11-18 2015-02-24 Facebook, Inc. Managing forwarded electronic messages
US8122137B2 (en) 2002-11-18 2012-02-21 Aol Inc. Dynamic location of a subordinate user
US8306908B1 (en) 2002-12-31 2012-11-06 West Corporation Methods and apparatus for intelligent selection of goods and services in telephonic and electronic commerce
US7613776B1 (en) 2003-03-26 2009-11-03 Aol Llc Identifying and using identities deemed to be known to a user
US8712857B1 (en) 2003-03-31 2014-04-29 Tuxis Technologies Llc Methods and apparatus for intelligent selection of goods and services in mobile commerce
US7792828B2 (en) 2003-06-25 2010-09-07 Jericho Systems Corporation Method and system for selecting content items to be presented to a viewer
US7653693B2 (en) 2003-09-05 2010-01-26 Aol Llc Method and system for capturing instant messages
US8464290B2 (en) 2003-08-01 2013-06-11 Tacoda, Inc. Network for matching an audience with deliverable content
US9928522B2 (en) 2003-08-01 2018-03-27 Oath (Americas) Inc. Audience matching network with performance factoring and revenue allocation
US9118812B2 (en) 2003-08-01 2015-08-25 Advertising.Com Llc Audience server
US20050125290A1 (en) * 2003-08-01 2005-06-09 Gil Beyda Audience targeting system with profile synchronization
US7805332B2 (en) 2003-08-01 2010-09-28 AOL, Inc. System and method for segmenting and targeting audience members
US8150732B2 (en) * 2003-08-01 2012-04-03 Tacoda Llc Audience targeting system with segment management
US9117217B2 (en) 2003-08-01 2015-08-25 Advertising.Com Llc Audience targeting with universal profile synchronization
US7617203B2 (en) * 2003-08-01 2009-11-10 Yahoo! Inc Listings optimization using a plurality of data sources
US20050060294A1 (en) * 2003-09-12 2005-03-17 Rainey Jim E. Advertising based on a search string and user attribute combination
US7130819B2 (en) * 2003-09-30 2006-10-31 Yahoo! Inc. Method and computer readable medium for search scoring
US7844589B2 (en) * 2003-11-18 2010-11-30 Yahoo! Inc. Method and apparatus for performing a search
WO2005070164A2 (en) * 2004-01-12 2005-08-04 Chromotopy, Inc. Method and system for search engine enhancement
US20070088683A1 (en) * 2004-08-03 2007-04-19 Gene Feroglia Method and system for search engine enhancement
US20100299320A1 (en) * 2004-03-26 2010-11-25 Ecapable, Inc. Method and System to Facilitate Decision Point Information Flow and to Improve Compliance with a Given Standardized Vocabulary
US20060224573A1 (en) * 2004-03-26 2006-10-05 Ecapable, Inc. Method and system to facilitate decision point information flow and to improve compliance with a given standardized vocabulary
US20110231206A1 (en) * 2004-03-26 2011-09-22 Ecapable, Inc. Method which creates a community-wide health information infrastructure
US20050267872A1 (en) * 2004-06-01 2005-12-01 Yaron Galai System and method for automated mapping of items to documents
US7836044B2 (en) 2004-06-22 2010-11-16 Google Inc. Anticipated query generation and processing in a search engine
US7487145B1 (en) * 2004-06-22 2009-02-03 Google Inc. Method and system for autocompletion using ranked results
KR100497643B1 (en) * 2004-09-21 2005-07-01 엔에이치엔(주) Method and system for adjusting the balance of account of the advertiser in a keyword advertisement
US7178720B1 (en) 2004-09-30 2007-02-20 West Corporation Methods, computer-readable media, and computer program product for intelligent selection of items encoded onto portable machine-playable entertainment media
US7904337B2 (en) 2004-10-19 2011-03-08 Steve Morsa Match engine marketing
US20060109327A1 (en) * 2004-11-01 2006-05-25 Diamond Arthur S Radiofrequency activated inkjet inks and apparatus for inkjet printing
US8677274B2 (en) 2004-11-10 2014-03-18 Apple Inc. Highlighting items for search results
US7499940B1 (en) 2004-11-11 2009-03-03 Google Inc. Method and system for URL autocompletion using ranked results
WO2006055000A1 (en) * 2004-11-12 2006-05-26 Benninghoff Charles F Iii International system to allocate vendue exclusivity ranking (isvaer)
US20060106769A1 (en) 2004-11-12 2006-05-18 Gibbs Kevin A Method and system for autocompletion for languages having ideographs and phonetic characters
US7340686B2 (en) * 2005-03-22 2008-03-04 Microsoft Corporation Operating system program launch menu search
US7512904B2 (en) * 2005-03-22 2009-03-31 Microsoft Corporation Operating system launch menu program listing
US20100153134A1 (en) * 2005-03-24 2010-06-17 Ecapable, Inc. National Health Information and Electronic Medical Record System and Method
US7840589B1 (en) 2005-05-09 2010-11-23 Surfwax, Inc. Systems and methods for using lexically-related query elements within a dynamic object for semantic search refinement and navigation
US7647312B2 (en) * 2005-05-12 2010-01-12 Microsoft Corporation System and method for automatic generation of suggested inline search terms
US7962504B1 (en) 2005-05-26 2011-06-14 Aol Inc. Sourcing terms into a search engine
US8200687B2 (en) * 2005-06-20 2012-06-12 Ebay Inc. System to generate related search queries
US7703040B2 (en) * 2005-06-29 2010-04-20 Microsoft Corporation Local search engine user interface
US8122034B2 (en) 2005-06-30 2012-02-21 Veveo, Inc. Method and system for incremental search with reduced text entry where the relevance of results is a dynamically computed function of user input search string character count
CA2614440C (en) * 2005-07-07 2016-06-21 Sermo, Inc. Method and apparatus for conducting an information brokering service
US7634462B2 (en) * 2005-08-10 2009-12-15 Yahoo! Inc. System and method for determining alternate search queries
US7752220B2 (en) * 2005-08-10 2010-07-06 Yahoo! Inc. Alternative search query processing in a term bidding system
US7672932B2 (en) * 2005-08-24 2010-03-02 Yahoo! Inc. Speculative search result based on a not-yet-submitted search query
GB0517585D0 (en) * 2005-08-30 2005-10-05 Ramakrishna Madhusudana Intuitive search which delivers fast results on the mobile phone
US9076175B2 (en) * 2005-09-14 2015-07-07 Millennial Media, Inc. Mobile comparison shopping
US20080214154A1 (en) * 2005-11-01 2008-09-04 Jorey Ramer Associating mobile and non mobile web content
US20080214151A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Methods and systems for mobile coupon placement
US7660581B2 (en) 2005-09-14 2010-02-09 Jumptap, Inc. Managing sponsored content based on usage history
US9201979B2 (en) 2005-09-14 2015-12-01 Millennial Media, Inc. Syndication of a behavioral profile associated with an availability condition using a monetization platform
US7676394B2 (en) 2005-09-14 2010-03-09 Jumptap, Inc. Dynamic bidding and expected value
US10592930B2 (en) 2005-09-14 2020-03-17 Millenial Media, LLC Syndication of a behavioral profile using a monetization platform
US20070073719A1 (en) * 2005-09-14 2007-03-29 Jorey Ramer Physical navigation of a mobile search application
US8131271B2 (en) * 2005-11-05 2012-03-06 Jumptap, Inc. Categorization of a mobile user profile based on browse behavior
US20070100650A1 (en) * 2005-09-14 2007-05-03 Jorey Ramer Action functionality for mobile content search results
US20110313853A1 (en) 2005-09-14 2011-12-22 Jorey Ramer System for targeting advertising content to a plurality of mobile communication facilities
US7548915B2 (en) * 2005-09-14 2009-06-16 Jorey Ramer Contextual mobile content placement on a mobile communication facility
US8290810B2 (en) * 2005-09-14 2012-10-16 Jumptap, Inc. Realtime surveying within mobile sponsored content
US20070100652A1 (en) * 2005-11-01 2007-05-03 Jorey Ramer Mobile pay per call
US20070060173A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Managing sponsored content based on transaction history
US8805339B2 (en) 2005-09-14 2014-08-12 Millennial Media, Inc. Categorization of a mobile user profile based on browse and viewing behavior
US9703892B2 (en) 2005-09-14 2017-07-11 Millennial Media Llc Predictive text completion for a mobile communication facility
US8832100B2 (en) 2005-09-14 2014-09-09 Millennial Media, Inc. User transaction history influenced search results
US8156128B2 (en) * 2005-09-14 2012-04-10 Jumptap, Inc. Contextual mobile content placement on a mobile communication facility
US8615719B2 (en) 2005-09-14 2013-12-24 Jumptap, Inc. Managing sponsored content for delivery to mobile communication facilities
US20080214153A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Mobile User Profile Creation based on User Browse Behaviors
US20070100653A1 (en) * 2005-11-01 2007-05-03 Jorey Ramer Mobile website analyzer
US20070073722A1 (en) * 2005-09-14 2007-03-29 Jorey Ramer Calculation and presentation of mobile content expected value
US20070061317A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Mobile search substring query completion
US8660891B2 (en) 2005-11-01 2014-02-25 Millennial Media Interactive mobile advertisement banners
US8027879B2 (en) * 2005-11-05 2011-09-27 Jumptap, Inc. Exclusivity bidding for mobile sponsored content
US20070073717A1 (en) * 2005-09-14 2007-03-29 Jorey Ramer Mobile comparison shopping
US10911894B2 (en) 2005-09-14 2021-02-02 Verizon Media Inc. Use of dynamic content generation parameters based on previous performance of those parameters
US8666376B2 (en) * 2005-09-14 2014-03-04 Millennial Media Location based mobile shopping affinity program
US20070061245A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Location based presentation of mobile content
US20070168354A1 (en) * 2005-11-01 2007-07-19 Jorey Ramer Combined algorithmic and editorial-reviewed mobile content search results
US8209344B2 (en) 2005-09-14 2012-06-26 Jumptap, Inc. Embedding sponsored content in mobile applications
US20070060109A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Managing sponsored content based on user characteristics
US8238888B2 (en) * 2006-09-13 2012-08-07 Jumptap, Inc. Methods and systems for mobile coupon placement
US7769764B2 (en) * 2005-09-14 2010-08-03 Jumptap, Inc. Mobile advertisement syndication
US20070100806A1 (en) * 2005-11-01 2007-05-03 Jorey Ramer Client libraries for mobile content
US20070239724A1 (en) * 2005-09-14 2007-10-11 Jorey Ramer Mobile search services related to direct identifiers
US7752209B2 (en) 2005-09-14 2010-07-06 Jumptap, Inc. Presenting sponsored content on a mobile communication facility
US20090029687A1 (en) * 2005-09-14 2009-01-29 Jorey Ramer Combining mobile and transcoded content in a mobile search result
US8503995B2 (en) 2005-09-14 2013-08-06 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8989718B2 (en) 2005-09-14 2015-03-24 Millennial Media, Inc. Idle screen advertising
US20070061246A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Mobile campaign creation
US8688671B2 (en) 2005-09-14 2014-04-01 Millennial Media Managing sponsored content based on geographic region
US7702318B2 (en) 2005-09-14 2010-04-20 Jumptap, Inc. Presentation of sponsored content based on mobile transaction event
US8311888B2 (en) 2005-09-14 2012-11-13 Jumptap, Inc. Revenue models associated with syndication of a behavioral profile using a monetization platform
US7603360B2 (en) * 2005-09-14 2009-10-13 Jumptap, Inc. Location influenced search results
US20070100805A1 (en) * 2005-09-14 2007-05-03 Jorey Ramer Mobile content cross-inventory yield optimization
US20070073718A1 (en) * 2005-09-14 2007-03-29 Jorey Ramer Mobile search service instant activation
US7577665B2 (en) 2005-09-14 2009-08-18 Jumptap, Inc. User characteristic influenced search results
US20070061242A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Implicit searching for mobile content
US20080215557A1 (en) * 2005-11-05 2008-09-04 Jorey Ramer Methods and systems of mobile query classification
US8819659B2 (en) 2005-09-14 2014-08-26 Millennial Media, Inc. Mobile search service instant activation
US20110143731A1 (en) * 2005-09-14 2011-06-16 Jorey Ramer Mobile Communication Facility Usage Pattern Geographic Based Advertising
US20070061303A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Mobile search result clustering
US8812526B2 (en) 2005-09-14 2014-08-19 Millennial Media, Inc. Mobile content cross-inventory yield optimization
US7912458B2 (en) 2005-09-14 2011-03-22 Jumptap, Inc. Interaction analysis and prioritization of mobile content
US8229914B2 (en) 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
US9058406B2 (en) 2005-09-14 2015-06-16 Millennial Media, Inc. Management of multiple advertising inventories using a monetization platform
US8364540B2 (en) * 2005-09-14 2013-01-29 Jumptap, Inc. Contextual targeting of content using a monetization platform
US20080215623A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Mobile communication facility usage and social network creation
US8302030B2 (en) 2005-09-14 2012-10-30 Jumptap, Inc. Management of multiple advertising inventories using a monetization platform
US10038756B2 (en) 2005-09-14 2018-07-31 Millenial Media LLC Managing sponsored content based on device characteristics
US20080270220A1 (en) * 2005-11-05 2008-10-30 Jorey Ramer Embedding a nonsponsored mobile content within a sponsored mobile content
US20070100651A1 (en) * 2005-11-01 2007-05-03 Jorey Ramer Mobile payment facilitation
US9471925B2 (en) * 2005-09-14 2016-10-18 Millennial Media Llc Increasing mobile interactivity
US20080214204A1 (en) * 2005-11-01 2008-09-04 Jorey Ramer Similarity based location mapping of mobile comm facility users
US20080214152A1 (en) * 2005-09-14 2008-09-04 Jorey Ramer Methods and systems of mobile dynamic content presentation
US8433297B2 (en) 2005-11-05 2013-04-30 Jumptag, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US20070061247A1 (en) * 2005-09-14 2007-03-15 Jorey Ramer Expected value and prioritization of mobile content
US8195133B2 (en) 2005-09-14 2012-06-05 Jumptap, Inc. Mobile dynamic advertisement creation and placement
US8364521B2 (en) * 2005-09-14 2013-01-29 Jumptap, Inc. Rendering targeted advertisement on mobile communication facilities
US8103545B2 (en) 2005-09-14 2012-01-24 Jumptap, Inc. Managing payment for sponsored content presented to mobile communication facilities
US7860871B2 (en) 2005-09-14 2010-12-28 Jumptap, Inc. User history influenced search results
US20080214155A1 (en) * 2005-11-01 2008-09-04 Jorey Ramer Integrating subscription content into mobile search results
US20080242279A1 (en) * 2005-09-14 2008-10-02 Jorey Ramer Behavior-based mobile content placement on a mobile communication facility
US7831474B2 (en) * 2005-10-28 2010-11-09 Yahoo! Inc. System and method for associating an unvalued search term with a valued search term
US8175585B2 (en) 2005-11-05 2012-05-08 Jumptap, Inc. System for targeting advertising content to a plurality of mobile communication facilities
US8571999B2 (en) 2005-11-14 2013-10-29 C. S. Lee Crawford Method of conducting operations for a social network application including activity list generation
US20100285818A1 (en) * 2009-05-08 2010-11-11 Crawford C S Lee Location based service for directing ads to subscribers
US7668821B1 (en) 2005-11-17 2010-02-23 Amazon Technologies, Inc. Recommendations based on item tagging activities of users
US20070143255A1 (en) * 2005-11-28 2007-06-21 Webaroo, Inc. Method and system for delivering internet content to mobile devices
US20070143258A1 (en) * 2005-12-15 2007-06-21 Ori Pomerantz Method and system for generating a collaborative search chronicle in a network environment
US8036937B2 (en) 2005-12-21 2011-10-11 Ebay Inc. Computer-implemented method and system for enabling the automated selection of keywords for rapid keyword portfolio expansion
US7752190B2 (en) 2005-12-21 2010-07-06 Ebay Inc. Computer-implemented method and system for managing keyword bidding prices
US7792858B2 (en) 2005-12-21 2010-09-07 Ebay Inc. Computer-implemented method and system for combining keywords into logical clusters that share similar behavior with respect to a considered dimension
US20090094137A1 (en) * 2005-12-22 2009-04-09 Toppenberg Larry W Web Page Optimization Systems
US20070168465A1 (en) * 2005-12-22 2007-07-19 Toppenberg Larry W Web Page Optimization Systems
US8010523B2 (en) * 2005-12-30 2011-08-30 Google Inc. Dynamic search box for web browser
US20070179845A1 (en) * 2006-02-02 2007-08-02 Microsoft Corporation Merchant rankings in ad referrals
US20070203895A1 (en) * 2006-02-28 2007-08-30 Hossein Eslambolchi Recursive search engine using correlative words
KR100792699B1 (en) * 2006-03-17 2008-01-11 엔에이치엔(주) Method and system for automatically completed general recommended word and advertisement recommended word
US7529795B2 (en) 2006-03-20 2009-05-05 Stragent, Llc Message board aggregator
US8166027B2 (en) * 2006-03-30 2012-04-24 International Business Machines Corporation System, method and program to test a web site
US20070271255A1 (en) * 2006-05-17 2007-11-22 Nicky Pappo Reverse search-engine
US7682961B2 (en) * 2006-06-08 2010-03-23 International Business Machines Corporation Methods of forming solder connections and structure thereof
US7814112B2 (en) * 2006-06-09 2010-10-12 Ebay Inc. Determining relevancy and desirability of terms
US7689548B2 (en) * 2006-09-22 2010-03-30 Microsoft Corporation Recommending keywords based on bidding patterns
US20080177588A1 (en) * 2007-01-23 2008-07-24 Quigo Technologies, Inc. Systems and methods for selecting aesthetic settings for use in displaying advertisements over a network
US20080243830A1 (en) * 2007-03-30 2008-10-02 Fatdoor, Inc. User suggested ordering to influence search result ranking
US8826123B2 (en) * 2007-05-25 2014-09-02 9224-5489 Quebec Inc. Timescale for presenting information
US8051040B2 (en) 2007-06-08 2011-11-01 Ebay Inc. Electronic publication system
US8190627B2 (en) 2007-06-28 2012-05-29 Microsoft Corporation Machine assisted query formulation
US8751507B2 (en) * 2007-06-29 2014-06-10 Amazon Technologies, Inc. Recommendation system with multiple integrated recommenders
US7949659B2 (en) * 2007-06-29 2011-05-24 Amazon Technologies, Inc. Recommendation system with multiple integrated recommenders
US8260787B2 (en) * 2007-06-29 2012-09-04 Amazon Technologies, Inc. Recommendation system with multiple integrated recommenders
CA2601154C (en) * 2007-07-07 2016-09-13 Mathieu Audet Method and system for distinguising elements of information along a plurality of axes on a basis of a commonality
US20090055436A1 (en) * 2007-08-20 2009-02-26 Olakunle Olaniyi Ayeni System and Method for Integrating on Demand/Pull and Push Flow of Goods-and-Services Meta-Data, Including Coupon and Advertising, with Mobile and Wireless Applications
US8601392B2 (en) 2007-08-22 2013-12-03 9224-5489 Quebec Inc. Timeline for presenting information
US10083420B2 (en) * 2007-11-21 2018-09-25 Sermo, Inc Community moderated information
US8065283B2 (en) * 2008-01-24 2011-11-22 Globalspec, Inc. Term synonym generation
US8412571B2 (en) * 2008-02-11 2013-04-02 Advertising.Com Llc Systems and methods for selling and displaying advertisements over a network
US8688674B2 (en) * 2008-02-14 2014-04-01 Beats Music, Llc Fast search in a music sharing environment
CA2657835C (en) 2008-03-07 2017-09-19 Mathieu Audet Documents discrimination system and method thereof
US8447759B2 (en) * 2008-03-13 2013-05-21 Microsoft Corporation Assets suggestion across applications
US20090234851A1 (en) * 2008-03-14 2009-09-17 International Business Machines Corporation Browser Use of Directory Listing for Predictive Type-Ahead
US8726146B2 (en) * 2008-04-11 2014-05-13 Advertising.Com Llc Systems and methods for video content association
US20090287537A1 (en) * 2008-05-14 2009-11-19 Eugene Villoso Dynamic bidding and ranking system
US7991650B2 (en) 2008-08-12 2011-08-02 Amazon Technologies, Inc. System for obtaining recommendations from multiple recommenders
US7991757B2 (en) * 2008-08-12 2011-08-02 Amazon Technologies, Inc. System for obtaining recommendations from multiple recommenders
US8010537B2 (en) * 2008-08-27 2011-08-30 Yahoo! Inc. System and method for assisting search requests with vertical suggestions
US8607155B2 (en) * 2008-09-12 2013-12-10 9224-5489 Quebec Inc. Method of managing groups of arrays of documents
US20100082649A1 (en) * 2008-09-22 2010-04-01 Microsoft Corporation Automatic search suggestions from server-side user history
US8370329B2 (en) * 2008-09-22 2013-02-05 Microsoft Corporation Automatic search query suggestions with search result suggestions from user history
US20100185651A1 (en) * 2009-01-16 2010-07-22 Google Inc. Retrieving and displaying information from an unstructured electronic document collection
US8452791B2 (en) * 2009-01-16 2013-05-28 Google Inc. Adding new instances to a structured presentation
US8412749B2 (en) 2009-01-16 2013-04-02 Google Inc. Populating a structured presentation with new values
US8977645B2 (en) * 2009-01-16 2015-03-10 Google Inc. Accessing a search interface in a structured presentation
US8615707B2 (en) * 2009-01-16 2013-12-24 Google Inc. Adding new attributes to a structured presentation
US8676827B2 (en) * 2009-02-04 2014-03-18 Yahoo! Inc. Rare query expansion by web feature matching
CN103646024A (en) * 2009-03-19 2014-03-19 北京立新盈企信息技术有限公司 Information distribution method used for Internet search engine
US20100306223A1 (en) * 2009-06-01 2010-12-02 Google Inc. Rankings in Search Results with User Corrections
US20110106819A1 (en) * 2009-10-29 2011-05-05 Google Inc. Identifying a group of related instances
US8996550B2 (en) 2009-06-03 2015-03-31 Google Inc. Autocompletion for partially entered query
US7831609B1 (en) 2009-08-25 2010-11-09 Vizibility Inc. System and method for searching, formulating, distributing and monitoring usage of predefined internet search queries
US8266006B2 (en) 2009-11-03 2012-09-11 Ebay Inc. Method, medium, and system for keyword bidding in a market cooperative
US8856115B1 (en) 2009-12-07 2014-10-07 Google Inc. Framework for suggesting search terms
JP5171854B2 (en) * 2010-02-09 2013-03-27 日立ビークルエナジー株式会社 Lithium secondary battery
US9058093B2 (en) 2011-02-01 2015-06-16 9224-5489 Quebec Inc. Active element
US8612418B2 (en) * 2011-07-14 2013-12-17 Google Inc. Mobile web browser for pre-loading web pages
US10289657B2 (en) 2011-09-25 2019-05-14 9224-5489 Quebec Inc. Method of retrieving information elements on an undisplayed portion of an axis of information elements
US8850310B2 (en) * 2011-10-11 2014-09-30 Microsoft Corporation Data entry suggestion lists for designated document data entry areas based on data from other document data entry areas
US8671106B1 (en) 2012-05-23 2014-03-11 Google Inc. Indicators for entities corresponding to search suggestions
US9519693B2 (en) 2012-06-11 2016-12-13 9224-5489 Quebec Inc. Method and apparatus for displaying data element axes
US9646080B2 (en) 2012-06-12 2017-05-09 9224-5489 Quebec Inc. Multi-functions axis-based interface
US9672559B2 (en) 2012-06-14 2017-06-06 Sears Brands, L.L.C. Methods and systems for a digital interface for displaying retail search results
US9569535B2 (en) * 2012-09-24 2017-02-14 Rainmaker Digital Llc Systems and methods for keyword research and content analysis
CN103729359B (en) 2012-10-12 2017-03-01 阿里巴巴集团控股有限公司 A kind of method and system recommending search word
US9600351B2 (en) 2012-12-14 2017-03-21 Microsoft Technology Licensing, Llc Inversion-of-control component service models for virtual environments
US10664537B2 (en) * 2016-03-18 2020-05-26 Amazon Technologies, Inc. User interface element for surfacing related results
US10671266B2 (en) 2017-06-05 2020-06-02 9224-5489 Quebec Inc. Method and apparatus of aligning information element axes

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4290105A (en) 1979-04-02 1981-09-15 American Newspaper Publishers Association Method and apparatus for testing membership in a set through hash coding with allowable errors
US5206949A (en) * 1986-09-19 1993-04-27 Nancy P. Cochran Database search and record retrieval system which continuously displays category names during scrolling and selection of individually displayed search terms
WO1990016036A1 (en) * 1989-06-14 1990-12-27 Hitachi, Ltd. Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus
US5396624A (en) * 1990-12-20 1995-03-07 Visa International Service Association Account file for off-line transaction authorization
US5404507A (en) 1992-03-02 1995-04-04 At&T Corp. Apparatus and method for finding records in a database by formulating a query using equivalent terms which correspond to terms in the input query
US5819259A (en) 1992-12-17 1998-10-06 Hartford Fire Insurance Company Searching media and text information and categorizing the same employing expert system apparatus and methods
US5752051A (en) * 1994-07-19 1998-05-12 The United States Of America As Represented By The Secretary Of Nsa Language-independent method of generating index terms
US5715444A (en) 1994-10-14 1998-02-03 Danish; Mohamed Sherif Method and system for executing a guided parametric search
US5805911A (en) * 1995-02-01 1998-09-08 Microsoft Corporation Word prediction system
JPH08315014A (en) 1995-05-15 1996-11-29 Ricoh Co Ltd Real estate intermediary business supporting system
US5742816A (en) * 1995-09-15 1998-04-21 Infonautics Corporation Method and apparatus for identifying textual documents and multi-mediafiles corresponding to a search topic
JP3020848B2 (en) 1995-09-27 2000-03-15 シャープ株式会社 Related word information search method and information processing device
US5778367A (en) 1995-12-14 1998-07-07 Network Engineering Software, Inc. Automated on-line information service and directory, particularly for the world wide web
US5926811A (en) 1996-03-15 1999-07-20 Lexis-Nexis Statistical thesaurus, method of forming same, and use thereof in query expansion in automated text searching
US5768581A (en) * 1996-05-07 1998-06-16 Cochran; Nancy Pauline Apparatus and method for selecting records from a computer database by repeatedly displaying search terms from multiple list identifiers before either a list identifier or a search term is selected
US5845300A (en) * 1996-06-05 1998-12-01 Microsoft Corporation Method and apparatus for suggesting completions for a partially entered data item based on previously-entered, associated data items
US5802515A (en) 1996-06-11 1998-09-01 Massachusetts Institute Of Technology Randomized query generation and document relevance ranking for robust information retrieval from a database
US5862223A (en) 1996-07-24 1999-01-19 Walker Asset Management Limited Partnership Method and apparatus for a cryptographically-assisted commercial network system designed to facilitate and support expert-based commerce
US5745894A (en) * 1996-08-09 1998-04-28 Digital Equipment Corporation Method for generating and searching a range-based index of word-locations
US5920854A (en) * 1996-08-14 1999-07-06 Infoseek Corporation Real-time document collection search engine with phrase indexing
JPH10171819A (en) 1996-12-06 1998-06-26 Fuji Xerox Co Ltd Information retrieving device
US6285987B1 (en) 1997-01-22 2001-09-04 Engage, Inc. Internet advertising system
US6012053A (en) * 1997-06-23 2000-01-04 Lycos, Inc. Computer system with user-controlled relevance ranking of search results
US6233575B1 (en) * 1997-06-24 2001-05-15 International Business Machines Corporation Multilevel taxonomy based on features derived from training documents classification using fisher values as discrimination values
JPH1125098A (en) * 1997-06-24 1999-01-29 Internatl Business Mach Corp <Ibm> Information processor and method for obtaining link destination file and storage medium
US6014665A (en) * 1997-08-01 2000-01-11 Culliss; Gary Method for organizing information
US6018733A (en) * 1997-09-12 2000-01-25 Infoseek Corporation Methods for iteratively and interactively performing collection selection in full text searches
US5983216A (en) * 1997-09-12 1999-11-09 Infoseek Corporation Performing automated document collection and selection by providing a meta-index with meta-index values indentifying corresponding document collections
US5845278A (en) * 1997-09-12 1998-12-01 Inioseek Corporation Method for automatically selecting collections to search in full text searches
US6021411A (en) * 1997-12-30 2000-02-01 International Business Machines Corporation Case-based reasoning system and method for scoring cases in a case database
JP3181548B2 (en) * 1998-02-03 2001-07-03 富士通株式会社 Information retrieval apparatus and information retrieval method
EP1062602B8 (en) * 1998-02-13 2018-06-13 Oath Inc. Search engine using sales and revenue to weight search results
DE69910466T2 (en) * 1998-02-20 2004-06-24 Hewlett-Packard Co. (N.D.Ges.D.Staates Delaware), Palo Alto Methods for refining descriptors
US6032145A (en) * 1998-04-10 2000-02-29 Requisite Technology, Inc. Method and system for database manipulation
GB2336698A (en) * 1998-04-24 1999-10-27 Dialog Corp Plc The Automatic content categorisation of text data files using subdivision to reduce false classification
US6006225A (en) * 1998-06-15 1999-12-21 Amazon.Com Refining search queries by the suggestion of correlated terms from prior searches
US6253202B1 (en) * 1998-09-18 2001-06-26 Tacit Knowledge Systems, Inc. Method, system and apparatus for authorizing access by a first user to a knowledge profile of a second user responsive to an access request from the first user
US6574632B2 (en) * 1998-11-18 2003-06-03 Harris Corporation Multiple engine information retrieval and visualization system
US6269361B1 (en) * 1999-05-28 2001-07-31 Goto.Com System and method for influencing a position on a search result list generated by a computer network search engine
US20020004735A1 (en) * 2000-01-18 2002-01-10 William Gross System and method for ranking items
US6704727B1 (en) * 2000-01-31 2004-03-09 Overture Services, Inc. Method and system for generating a set of search terms

Also Published As

Publication number Publication date
AU2001226312A1 (en) 2001-08-07
EP1272926A1 (en) 2003-01-08
EP1272926A4 (en) 2005-11-02
JP2003529140A (en) 2003-09-30
US20040230574A1 (en) 2004-11-18
GB0220223D0 (en) 2002-10-09
GB2375860A8 (en) 2003-01-09
GB2375860A (en) 2002-11-27
US7266551B2 (en) 2007-09-04
US6704727B1 (en) 2004-03-09
DE10195233T1 (en) 2003-07-03
WO2001055835A1 (en) 2001-08-02
GB2375860B (en) 2004-04-21
CA2398769A1 (en) 2001-08-02

Similar Documents

Publication Publication Date Title
CA2398769C (en) Method and system for generating a set of search terms
US11860921B2 (en) Category-based search
KR100851710B1 (en) Lateral search
US7895325B2 (en) Server architecture and methods for storing and serving event data
US6366956B1 (en) Relevance access of Internet information services
JP3860036B2 (en) Apparatus and method for identifying related searches in a database search system
US7240049B2 (en) Systems and methods for search query processing using trend analysis
US8250456B2 (en) Structured web advertising
US7668808B2 (en) System for modifying queries before presentation to a sponsored search generator or other matching system where modifications improve coverage without a corresponding reduction in relevance
US6804704B1 (en) System for collecting and storing email addresses with associated descriptors in a bookmark list in association with network addresses of electronic documents using a browser program
US20050278314A1 (en) Variable length snippet generation
US20050065774A1 (en) Method of self enhancement of search results through analysis of system logs
EP1665093A1 (en) System and method for associating documents with contextual advertisements
US8380745B1 (en) Natural language search for audience
WO2001055909A1 (en) System and method for bookmark management and analysis
US8595225B1 (en) Systems and methods for correlating document topicality and popularity
JP4009342B2 (en) Information providing request method, storage medium storing information providing request program, and server computer

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20210105