throbber
(12) United States Patent
`Ortega et al.
`
`USOO6564213B1
`(10) Patent No.:
`US 6,564,213 B1
`(45) Date of Patent:
`May 13, 2003
`
`(54) SEARCH QUERY AUTOCOMPLETION
`
`(75) Inventors: Ruben E. Ortega, Seattle, WA (US);
`John W. Avery, Seattle, WA (US);
`Robert Frederick, Seattle, WA (US)
`
`6/2002 Gershman et al. ............. 707/4
`6,401,085 B1
`7/2002 Ryan et al. ................. 707/100
`6,421,675 B1
`8/2002 Ferret ............................ 707/3
`6,430,553 B1
`6,466,918 B1 * 10/2002 Spiegel et al. ...
`... 705/27
`6,489,968 B1 * 12/2002 Ortega et al. ............... 345/713
`FOREIGN PATENT DOCUMENTS
`
`WO
`
`WO 99/45487
`
`9/1999
`
`(73) Assignee: Amazon.com, Inc., Seattle, WA (US)
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/551,787
`(22) Filed:
`Apr. 18, 2000
`(51) Int. Cl." ................................................ G06F 17/30
`(52) U.S. Cl. .................................... 707/5: 707/3; 707/4
`(58) Field of Search ............................... 707/1-10, 100,
`707/102, 104
`
`(56)
`
`OTHER PUBLICATIONS
`User's Guide for TextPlus V3.3 for the Palm OS; printed
`from Smartcell.com web site on Dec. 17, 1999 (12 pages).
`Description of TextPlus for Palm Version 3.3 printed from
`Palmgear.com web site on Dec. 17, 1999 (3 pages).
`(List continued on next page.)
`Primary Examiner-Hosain T. Alam
`Assistant Examiner Anh Ly
`(74) Attorney, Agent, or Firm- Knobbe, Martens, Olson &
`Bear LLP
`ABSTRACT
`(57)
`References Cited
`A System for facilitating online Searches Suggests query
`U.S. PATENT DOCUMENTS
`autocompletion Strings (terms and/or phrases) to users dur
`5,675,819 A 10/1997 Schuetze ..................... 704/10
`ing the query entry process, wherein the Suggested Strings
`5,826,240 A * 10/1998 Brockman et al. ............ 705/11
`are based on Specific attributes of the particular database
`5,845,300 A * 12/1998 Comer et al. .....
`... 707/508
`5,864,805. A
`1/1999 Chen et al.................. 7025 access system being searched. A string extraction compo
`5,897,622 A * 4/1999 Blinn et al. ................... 705/26
`nent associated with a database access System, Such as a web
`5,995,928 A 11/1999 Nguyen et al. ...
`... 704/251
`Site of an online merchant, periodically generates a dataset
`6,006,225 A * 12/1999 Bowman et al. ............... 707/5
`r
`6,029,141. A * 2/2000 Bezos et al. ......
`... 705/27
`that contains the autocompletion Strings for the system. The
`6,144.958 A * 11/2000 Ortega et al. .....
`... 707/5
`datasets are preferably biased to favor the database items
`6,169,986 B1 * 1/2001 Bowman et al. ..
`... 707/5
`that are currently the most popular (e.g., best Selling or most
`6,185.558 B1
`2/2001 Bowman et al. ............... 707/5
`frequently viewed), and may be customized to particular
`6,208,339 B1 * 3/2001 Atlas et al. ....
`... 345/780
`users or user groups. The datasets are transmitted to users
`6,223,059 B1
`4/2001 Haestrup ......
`... 455/566
`computing devices, which may include handheld and other
`6,230,173 B1
`5/2001 Ferrel et al. .......
`... 707/513
`wireleSS devices that lack a full keyboard. An autocomple
`6,266,665 B1*7/2001 Vaidyanathan et al. ....... 707/7
`tion client which runs on the computing devices in associa
`6,307,549 B1 10/2001 King et al. ..........
`... 345/810
`tion with a browser uses the datasets to Suggest the auto
`6,370,527 B1 * 4/2002 Singhal ........
`... 707/6
`6,374,241 B1
`4/2002 Lamburt et al. ............... 707/6
`completion Strings as users enter queries that are directed to
`6377.965 B1 is 4/2002 Hachamovitch et al... 707/534
`the database access system.
`6,392.640 B1
`5/2002 Will ........................... 345/184
`6,401,084 B1 * 6/2002 Ortega et al. .................. 707/2
`56 Claims, 6 Drawing Sheets
`
`
`
`36ZOCO
`- is
`
`Search; SONY
`
`SONY WCR
`SONY TV
`SONY TRINITRON
`SONY HANDY CAM
`
`37
`
`66
`(Go)
`
`Facebook's Exhibit No. 1007
`Page 1
`
`

`

`US 6,564,213 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`Jakobsson, M. “Autocompletion in Full Text Transaction
`Entry: A Method for Humanized Input,” Conference Pro
`ceedings on Human Factors in Computing Systems, pp.
`327–332, dated Apr., 1986.
`Housel, B. and Lindquist, D. “WebExpress: A System for
`Optimizing Web Browsing in a Wireless Environment,”
`Proceedings of the Second Annual Internat. Conf. on Mobile
`Computing and Networking, pp. 108-116, dated Nov. 1996.
`
`Chang, H., Tait, C. Cohen, N., Shapiro, M., Mastrianni, S.,
`Floyd, R., Housel, B. and Lindquist, D. “Web browsing in a
`wireleSS environment: disconnected and asynchronous
`operation in ARTour Web Express,” Proceedings of the
`Third Annual ACM/IEEE Internat. Conf. On Mobile Com
`puting and Networking, pp. 260-269, dated Sep. 1997.
`Gessler, S. and Kotulla, A. “PDAs as mobile WWW brows
`ers,” Computer Networks and ISDN Systems 28, pp. 53-59
`(1995).
`* cited by examiner
`
`Facebook's Exhibit No. 1007
`Page 2
`
`

`

`U.S. Patent
`
`May 13, 2003
`
`Sheet 1 of 6
`
`US 6,564,213 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Facebook's Exhibit No. 1007
`Page 3
`
`

`

`U.S. Patent
`
`May 13, 2003
`
`Sheet 2 of 6
`
`US 6,564,213 B1
`
`
`
`
`
`36ZCO)
`
`--
`
`s
`
`as
`
`66
`
`62
`
`a (g
`
`SONY
`SOFTWARE
`SONGS
`SOCKS
`SONY WCR
`SONGS FROM THE ATTIC
`SO LONG AND THANKS FOR ALL THE FISH
`
`A7C2 24
`
`36ZCO
`
`Search; SONY
`
`SONY WCR
`SONY TV
`SONY TRINITRON
`SONY HANDY CAM
`
`A7C2 2A
`
`6O
`
`66
`(Go)
`
`Facebook's Exhibit No. 1007
`Page 4
`
`

`

`U.S. Patent
`
`May 13, 2003
`
`Sheet 3 of 6
`
`US 6,564,213 B1
`
`
`
`
`
`(G) OIVA ANOS
`
`
`
`(978) AL ANOS
`
`
`
`(6): Nos || • • •[(s) SÐNOS
`
`
`
`(S) WVO WONVH \NOS
`
`
`
`
`
`Facebook's Exhibit No. 1007
`Page 5
`
`

`

`on
`
`<a
`
`SLONdONd
`
`(S)aSVavVLvd
`
`ALISDIMLNVHOYNSAN
`
`SSAN5SGAM
`
` Po
`
`U.S. Patent
`
`May13, 2003
`
`Sheet 4 of 6
`
`US 6,564,213 Bl
`
`YSWOLSNO
`
`Jsvavivd
`
`JNOSOLNV
`
`ASVaVLlVd
`
`vivd
`
`NOILOVYLXI
`
`(S‘O14)
`
`AMANO
`
`YAAYAS
`
`dWOSOLNV&F
`
`Or—eS
`
`dDWOOSOLNV
`
`LASVLVG|LN3IT9
`
`Facebook's Exhi
`
`it No. 1007
`Page 6
`
`Facebook's Exhibit No. 1007
`Page 6
`
`
`
`
`
`
`
`

`

`U.S. Patent
`
`May 13, 2003
`
`Sheet 5 of 6
`
`US 6,564,213 B1
`
`GENERATE DATASET
`FROM QUERY LOG
`
`GET OUERY LOG
`DATA FOR LAST
`M DAYS
`
`52
`
`52
`
`FILTER OUT OUERIES THAT
`PRODUCED NULL QUERY
`RESULT OR REQUIRED
`SPELL CORRECTION
`
`547
`
`OPTIONALLY PARTITION OUERY
`DATA ACCORDING TO USER
`GROUPS, AND PERFORM
`REMAINING STEPS FOR
`EACH USER GROUP
`
`
`
`56
`
`ss
`
`IDENTIFY AND ASSIGN SCORES
`TO MOST FREQUENTLY
`USED SEARCH TERMS
`AND PHRASES
`
`
`
`STORE RESULTS IN TRE
`OR OTHER DATA STRUCTURE
`
`LAST
`GROUP
`
`YES
`
`END
`
`AC2 15
`
`Facebook's Exhibit No. 1007
`Page 7
`
`

`

`U.S. Patent
`
`May 13, 2003
`
`Sheet 6 of 6
`
`US 6,564,213 B1
`
`
`
`GENERATE DATASET
`FROM ITEM DESCRIPTIONS/
`
`GET USER PURCHASE
`HISTORES FOR LAST
`X DAYS
`
`
`
`
`
`
`
`
`
`
`OPTIONALLY PARTITION PURCHASE
`HISTORY DATA ACCORDING TO
`USER GROUPS, AND PERFORM
`REMAINING STEPS FOR EACH
`SUCH GROUP
`
`
`
`
`
`
`
`IDENTIFY Y BEST
`SELLING TEMS
`
`FOR EACH BEST SELLING
`|TEM EXTRACT CHARACTERIZING
`TERMS AND/OR PHRASES AND
`ASSIGN SCORES
`
`STORE RESULTS IN TRE
`OR OTHER DATA STRUCTURE
`
`LAST
`GROUP
`2
`
`
`
`
`
`A72 6
`
`Facebook's Exhibit No. 1007
`Page 8
`
`

`

`1
`SEARCH QUERY AUTOCOMPLETION
`
`US 6,564,213 B1
`
`FIELD OF THE INVENTION
`The present invention relates to methods for assisting
`users in efficiently entering Search queries.
`BACKGROUND OF THE INVENTION
`A variety of techniques have been developed for reducing
`the amount of time and effort needed for Search engine users
`to locate desired items within large domains of items. One
`Such technique, which is described in published interna
`tional patent application WO 99/45487 assigned to
`Amazon.com, Inc., involves ranking the Search result items
`for display based on the frequencies with which users of the
`system have selected the items. With this method, the most
`frequently accessed items among a population of users tend
`to be displayed near the top of the Search results list,
`reducing the need for the Searcher to Scroll through long lists
`of Search results.
`Another technique, which may be invoked when a Search
`query produces a large number of hits, involves Suggesting
`related terms to add to the query. One Such method, which
`is described in U.S. Pat. No. 6,006,225 assigned to
`Amazon.com, Inc., involves Suggesting the terms that have
`appeared in combination with the Submitted term(s) the most
`frequently in recent, Successful query Submissions. For
`example, if the user Submits the book search “thin air” and
`obtains a long list of matching titles, the Search System may
`Suggest adding “into” to the query based on the high
`frequency with which other users have recently submitted
`the query “into thin air.” AS with the Search result ranking
`method described above, this method tends to direct the
`Searcher to the items that are currently the most popular
`among the population of users. Other known techniques for
`assisting users in conducting Searches include (a) displaying
`to the user Search queries being Submitted by other users
`(implemented by the Metaspy TM service of the Metacrawl
`er.com web site), and (b) providing links for the most
`popular searches of the day on the site (implemented by the
`Altavista web site).
`It is also known in the art to provide an autocompletion
`tool that Suggests completed text Strings to the user as the
`user enters text. For example, Microsoft's Internet Explorer
`browser automatically Suggests completed URLS as the user
`enters text in the URL field; and the TextPlusTM for Palm tool
`Suggests autocompletion words and phases (based on fre
`quency of use) as users enter text within Palm Pilot"M
`applications. These tools generally operate based on text
`Strings that have previously been entered on the particular
`PC, Palm Pilot, or other computing device. As a result, the
`tools generally are not helpful when the user enters a new
`term or phrase.
`One problem that is not fully addressed by the above and
`other known methods is that of reducing the number of
`keystrokes, Voice commands, or other actions needed to
`enter a Search query for Searching a particular catalog or
`database, Such as the products database of on online mer
`chant. This problem is particularly important to users of
`handheld and other wireleSS computing devices that do not
`include full keyboards. The present invention seeks to
`address this problem.
`SUMMARY OF THE INVENTION
`The present invention overcomes the above and other
`problems by Suggesting autocompletion Strings (terms and/
`
`5
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`or phrases) to users during the query entry process, wherein
`the Suggested Strings are based on Specific attributes of the
`particular database acceSS System being Searched. In accor
`dance with the invention, a String extraction component
`asSociated with a particular database access System, Such as
`a web site of an online merchant, periodically generates a
`dataset that contains the autocompletion Strings (terms and/
`or phrases) for the System. The datasets are transmitted to
`users computing devices, which may include handheld and
`other wireless devices that lack a full keyboard.
`An autocompletion client which runs on the computing
`devices in association with a browser uses the datasets to
`Suggest autocompletion Strings as users enter queries that are
`directed to the database access System. Because the auto
`completion Strings are not based Solely on Strings entered on
`the particular computing device, they tend to be helpful for
`entering both new and previously entered text Strings. The
`invention may be used regardless of the particular text input
`method used (stylus/graffiti, Voice, keyboard, etc.).
`The datasets are preferably generated So as to favor the
`items and/or Search Strings that are currently the most
`popular. For example, if Pokemon toys are currently the best
`Selling or most-frequently-Searched-for items within the
`database, the term POKEMON may be suggested whenever
`a user enters the letters “PO,” even though many hundreds
`of other items in the database may start with “PO.” In one
`embodiment, the datasets are generated periodically at least
`in part by extracting the Search terms and phrases that have
`appeared the most frequently within Successful Search que
`ries within a Selected period of time, Such as the last X dayS.
`In another embodiment, the autocompletion Strings are
`periodically extracted from database descriptions of the
`most popular items within the database (e.g., the best selling
`or most frequently accessed items over a Selected window of
`time). The datasets may also be customized to particular
`users or user groups. In one embodiment of the autocomple
`tion client, the user can Submit a Suggested autocompletion
`String as the query with a Single action, Such as clicking or
`tapping on the String.
`An important benefit of the invention-particularly for
`users of wireleSS computing devices-is that it significantly
`reduces the number of keystrokes, voice commands, or other
`actions needed to enter a query. Another benefit, in certain
`embodiments, is that the Suggested Strings Strongly reflect
`the browsing activities, and thus the item interests, of a
`population of users. Another benefit, which is inherent in the
`preferred methods for generating the datasets, is that the
`Suggested Search Strings do not produce a null query result.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 illustrates the basic components and process flow
`of a System that embodies the invention.
`FIGS. 2(a) and 2(b) illustrate an example user interface
`that may be used to Suggest autocompletion Strings.
`FIG.3 illustrates the general form of a trie search tree that
`may be used to rapidly look up autocompletion Strings.
`FIG. 4 illustrates one embodiment of the system shown in
`FIG. 1.
`FIG. 5 illustrates a method for extracting autocompletion
`Strings from a query log.
`FIG. 6 illustrates a method for extracting autocompletion
`Strings from item descriptions according to item sales his
`tories.
`Throughout the drawings, like reference numbers are used
`to reference items that are identical or functionally similar.
`
`Facebook's Exhibit No. 1007
`Page 9
`
`

`

`3
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`The present invention provides a System and associated
`methods for Suggesting autocompletion Strings to users
`during entry of Search queries. The autocompletion Strings
`are based one or more attributes of the particular database
`System being Searched, Such as the identities of the items
`contained within the database, frequencies with which users
`have performed particular actions with respect to Such items,
`and/or queries Submitted by users to Search the database. AS
`a result, the Suggestions tend to be helpful to the query entry
`process. The invention is particularly useful with computers
`that lack a full keyboard, Such as handheld computing
`devices, cellular telephones, automobile computers and
`wearable computers, but may also be used with PCs and
`other computing devices that have full keyboards. The
`invention may be used with any of a variety of text entry
`methods, including but not limited to handwriting recogni
`tion (e.g., graffiti), Voice recognition, and keyboard entry.
`For purposes of illustration, the invention will be
`described primarily in the context of web-based Systems and
`Systems for Searching catalogs of online merchants. It will
`be recognized, however, that the invention is not So limited.
`FIG. 1 illustrates the basic components and process flow
`of a preferred embodiment of the invention. A database
`access System 20 includes a database 22 and a query Server
`24. The database 22, which may be any type of data
`repository or combination of data repositories, Stores records
`or other representations of items. The items may, for
`example, be products that are available for Sale, web pages
`that have been indexed by a crawler program, or businesses.
`For convenience, the term “item' will be used to refer
`interchangeably to the items themselves and to the database
`representations of Such items.
`The query server 24 provides functionality for remote
`users to Search the database 22 for desired items using
`textual queries. The database access System 20 may also
`provide alternative methods for locating items within the
`database, Such as a browse tree or an item recommendation
`Service.
`AS depicted in FIG. 1, Searches may be performed using
`a variety of different types of computing devices 40, Such as
`a conventional PC 40A, or a handheld (wireless) computing
`device 40B that lacks a full keyboard (e.g., does not have
`fixed keys for the characters A-Z). The handheld computing
`device 40B may be a PDA (personal digital assistant) such
`as a Palm Pilot device, or may be a cellular telephone that
`includes Internet browsing capabilities. Typically, Such
`handheld devices provide an interface for entering text using
`handwriting recognition and/or voice recognition
`The components associated with the query autocomple
`tion function include a String extraction component 46, an
`autocompletion server 48, and an autocompletion client 50.
`The autocompletion client 50 runs in association with a
`browser 54, and is responsible for Suggesting autocomple
`tion Strings to users during entry of Search queries that
`correspond to (e.g., are entered into a search page of) the
`database acceSS System 20. In one embodiment, the auto
`completion client 50 is implemented as a browser plug-in
`that can be downloaded from the database access system 20
`to assist users in the Searching process. Alternatively, the
`autocompletion client may be provided as an integral com
`ponent of the browser 54. The user interface provided by the
`autocompletion client is preferably dependent upon the type
`of computing device (PC, handheld, Voice-activated, etc.)
`being used.
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,564,213 B1
`
`15
`
`25
`
`4
`The String extraction component 46 is responsible for
`periodically generating one or more datasets 30 that contain
`autocompletion Strings (terms and/or phrases) that describe
`items within the database 22. The autocompletion Strings are
`preferably extracted from a log of query Submissions (as
`illustrated in FIGS. 4 and 5) and/or from the item descrip
`tions within the database 22 (as illustrated in FIG. 6),
`although other Sources of information could be used Such as
`customer reviews or manufacturers’ databases. AS illustrated
`in FIG.3 and described below, each dataset 30 is preferably
`in the form of a data Structure, Such as a trie, that is adapted
`to be rapidly searched by the autocompletion client 50.
`String Scores or weights may be included in this data
`Structure to favor certain Strings over others.
`If the database 22 is large (e.g., over one million items),
`the dataset generation task is preferably performed Such that
`the autocompletion Strings Suggested generally correspond
`to the items and/or the Search Stings that are currently the
`most "popular.” For example, if Pokemon products are
`currently the best Selling items within the database 22, the
`term POKEMON may be suggested whenever a user enters
`the letters “PO,” even though many hundreds of other items
`in the database may have names that start with “PO.” One
`method for achieving this goal is to monitor the browsing
`(and if applicable, purchasing) activities of users to identify
`the most popular items, and to then parse Such items to
`identify characterizing terms and/or phrases. FIG. 6 provides
`one example of this method. Another method, which is
`illustrated in FIGS. 4 and 5 and described below, involves
`monitoring query Submissions over time to identify the most
`frequently used Search terms and/or phrases. AS discussed
`below, the datasets 30 may optionally be customized to
`particular users and/or groups of users.
`As depicted in FIG. 1, the autocompletion server 48
`dispatches the datasets 30 generated by the String extraction
`component 46 to the computing devices 40, which in-turn
`Store the data structures (preferably in nonvolatile storage
`over multiple Sessions) for Subsequent use. Any of a variety
`of methods may be used for controlling the timing for Such
`data transferS. For example, using the autocompletion client
`50, the user may be able to manually initiate a transfer of the
`latest dataset, or to Set up parameters for the automatic
`background downloading of new datasets. The frequency
`with which new datasets are made available for download
`ing may be dependent upon the frequency with which
`updates are made to database 22. For example, an online
`merchant that frequently adds new products to its online
`catalog may wish to generate new datasets on a relatively
`frequent basis (e.g., once per day) using a sliding window
`approach. Rather than Sending the entire dataset 30 each
`time, the autocompletion Server 48 could simply dispatch
`updates to previously downloaded datasets.
`Information about the format and addresses of the rel
`evant Search pages may also be periodically Sent to the
`computing devices 40. The autocompletion client 50 may
`then use this information to identify the web pages and
`asSociated Search fields to which the autocompletion func
`tion should be applied. The information about the search
`pages could alternatively be “hard coded” within the auto
`completion client 50.
`An alternative approach that may be desirable with rela
`tively small datasets 30 is to transmit the dataset to the
`computing device 40 with the corresponding web page. With
`this approach, the autocompletion Strings may be custom
`ized to the particular Search functionality provided on the
`web page. For example, for a book Search page, the Strings
`would correspond to book titles within the database 22, and
`
`Facebook's Exhibit No. 1007
`Page 10
`
`

`

`S
`for a music Search page, the Strings would correspond to
`music titles. A further variation is to transmit the auto
`completion client 50 with corresponding Search pages as a
`Java applet.
`The autocompletion client 50 may be configured to pro
`vide autocompletion functionality for multiple, distinct data
`base access Systems 20 (e.g., the webs sites of Several
`different online merchants). In Such implementations, the
`user may download and store the datasets 30 associated with
`each Such database acceSS System the user wishes to browse.
`Alternatively, the autocompletion client 50 may be uniquely
`asSociated with a particular database access System.
`The tasks of generating and disseminating the auto
`completion datasets 30 could be offloaded in-whole or
`in-part by the operator(s) of the database access System(s) to
`a separate business entity. For example, a single busineSS
`entity could perform the String extraction task for multiple
`online merchants under contract, in which case the extracted
`Strings for merchants in Similar busineSS areas could option
`ally be combined within a single dataset. The same busineSS
`entity could provide a Service for disseminating the datasets
`to uSerS.
`FIGS. 2(a) and 20b) illustrate the general form of a user
`interface that may be used by the autocompletion client 50
`for both PCs and handheld computing devices. In this
`example, as the user enters a Search query into a Search field
`60 of the Amazon.com web site (by voice, stylus, etc.), the
`autocompletion client displayS Suggested autocompletion
`terms and phrases in a drop-down box 62. AS illustrated in
`FIG. 2(a), terms are displayed in an upper pane of the box
`and phrases are displayed in a lower pane of the box. In other
`implementations, the autocompletion client may only Sug
`gest one type of string (terms or phrases) without the other.
`As illustrated in FIG. 2(b), once the user has completed a
`term, the autocompletion client may only display Suggested
`phrases.
`The user interface may implement one or more methods
`for the user to perform the dual action of Selecting and
`Submitting a displayed autocompletion String with a single
`Selection action, Such as a single (or double) mouse click, a
`Single (or double) tap on the String with a stylus, or a voice
`command. In one embodiment, for example, if the user taps
`or clicks once on a Suggested String (term or phrase), the
`string is automatically added to the search field 60; and if the
`user taps or clickS twice on a String, the String is automati
`cally Submitted as the Search query. In another embodiment,
`tapping or clicking once on a String causes the String to be
`Submitted as the Search query. In either case, the user can
`advantageously initiate the Search without moving the Stylus
`or mouse cursor away from the Selected String. In embodi
`ments that Support Voice recognition, each Suggested String
`may be displayed in conjunction with a number (1, 2, 3, . .
`..) that can be used as a voice command to perform the dual
`action of Selecting the String and initiating the Search.
`Many Search engines allow the user to Specify a particular
`context for performing the Search. The context may, for
`example, be a particular item category (e.g., books, music,
`or electronics), a particular record field (e.g., title, artist, or
`Subject), or a combination thereof. In Such cases, the auto
`completion Strings Suggested to the user may depend upon
`the particular context designated by the user. For example,
`when the user conducts a title Search for books, the auto
`completion Strings may be limited to terms and phrases that
`appear within book titles, or that have appeared in book title
`Searches conducted by other users.
`FIG. 3 illustrates the general form and content of a trie
`data Structure 30 that may be used for the Storage and lookup
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,564,213 B1
`
`6
`of autocompletion Strings. The leaf nodes of the trie repre
`Sent autocompletion phrases, and are preferably Stored
`together with respective scores (shown in parenthesis).
`Autocompletion terms may be represented within the trie
`either as leaf nodes or as intermediate nodes, and are
`likewise preferably Stored with respective Scores. Although
`only alphabetical characters are shown, the trie may also
`include numeric and/or other types of characters that com
`monly occur within Search queries for the particular System.
`In operation, each time the user enters a character of the
`search query, the autocompletion client 50 effectively moves
`down the trie by one level to a node that matches the entered
`characters, and then Searches the nodes falling below that
`node for the X terms having the highest Scores and Yphrases
`having the highest Scores, where X and Y are the maximum
`numbers of terms and phrases, respectively, to be displayed
`at a time. The located terms and phrases, if any, are then
`displayed to the user as in FIG. 2.
`In embodiments in which the Suggested Strings depend
`upon the Search context, the terms and phrases may be
`tagged within the trie to indicate the contexts to which they
`correspond. For example, nodes containing the term SONY
`may be tagged to indicate that they correspond to the item
`category “electronics.” The autocompletion client 50 uses
`these tags to effectively filter out nodes that do not corre
`spond to the context of the user's Search.
`Each score within the trie reflects an estimated probability
`or prediction that the user is entering the corresponding
`String. The Scores are preferably based on at least one of the
`following: (a) the frequency with which the String has
`appeared within Search queries of users over a Selected
`period of time, optionally giving more weight to Searches
`that are deemed “Successful.” (b) the sales ranks or other
`popularity ranks of the item(s) to which the String
`corresponds, and (c) the frequency of occurrence of the
`String within the database 22.
`Prior to transmitting the trie to a given user, the Scores
`may optionally be adjusted based on information known
`about the particular user. For example, if the user has shown
`a strong affinity for electronics products over other types of
`products within the database 22, all of the Scores associated
`with Strings corresponding to the electronicS items may be
`multiplied by an appropriate Scaling factor. The String con
`tent of the trie may similarly be customized to the user, Such
`as by deleting nodes that correspond only to item categories
`for which the user has shown no interest. AS discussed
`below, another customization method that may be used
`involves generating community-Specific datasets 30 that
`correspond to the activities (e.g., query Submissions) or
`interests (e.g., purchases) of particular communities or user
`groupS.
`Another type of data Structure that could be used for
`autocompletion is a related terms table of the type described
`in above-referenced U.S. Pat. No. 6,006,225. Each entry in
`the related terms table includes two components: (1) a
`keyword, and (2) a “related terms” list, which is preferably
`a ranked list of the X terms that have occurred the most
`frequently in multi-term Search queries that included the
`keyword. For example, the related terms list for the keyword
`COSMOS might start with the terms SAGAN and SPACE,
`indicating that SAGAN has occurred the most frequently,
`and SPACE has occurred the second most frequently, in
`searches that included the term COSMOS. With this type of
`data Structure, once the user has entered a term that appears
`as a keyword within the table, the autocompletion client 50
`could simply Suggest adding the most highly ranked terms in
`the corresponding related terms list. If the user begins
`
`Facebook's Exhibit No. 1007
`Page 11
`
`

`

`US 6,564,213 B1
`
`15
`
`35
`
`45
`
`25
`
`7
`entering characters of the Second term of the query, the client
`could then filter out from the list the terms that no longer
`apply, and display any remaining terms in their ranked order.
`FIGS. 4 and 5 illustrate an embodiment of the FIG. 1
`System in which the autocompletion datasets 30 are gener
`ated using information Stored within a query log 76 of an
`online merchant, Such as Amazon.com. The information
`contained within the query log that may be used in the
`dataset generation process preferably includes the follow
`ing: (a) the query and Search context of each Search, (b) an
`identifier of the user who performed the search, (c) the
`number of hits (items found) by the search, (d) whether any
`of the query terms were modified by a query Spell checker
`component, and (e) the time the Search was performed. The
`query log 76 also preferably includes information that may
`be used to determine whether the user viewed, purchased, or
`added to a shopping cart a Search result item. Techniques for
`processing query logs to extract Such information are
`described, for example, in published international patent
`application WO 99/45487, assigned to Amazon.com, Inc.,
`the disclosure of which is hereby incorporated by reference.
`FIG. 5 illustrates the basic method used by the string
`extraction component 46 (“process”) to generate one or
`more autocompletion datasets 30 from the query log 76. In
`State 80, the proceSS obtains the query log data for the most
`recent M days (e.g. one week). Limiting the query log data
`in this manner has the desirable effect of producing a dataset
`that Strongly reflects the current item interests of users. In
`State 82, the process filters out all query Submissions that
`produced a null query result or required use of a query spell
`checker. Other types of searches that may be filtered out
`include Searches that produced very large numbers of hits,
`and searches for which the user did not view any of the
`Search results. To preserve Search context information, each
`remaining query may be appended with a code that identifies
`the context of the Search.
`In State 84, the process optionally partitions the remaining
`query log data according to predefined user groups. This
`may be accomplished, for example, using information Stored
`40
`in the customer database 78 (FIG. 4) to identify the com
`munity or communities to which each user belongs.
`Alternatively, each user's community membership may be
`recorded within a cookie on the user's device 40, and
`inserted into the query log 76 when a Search is performed.
`The partitions may, for example, be based on the domiciles
`of the users, as reflected in user Shipping addresses. With this
`approach, a user living in Southern California that types in
`HOLLYWOOD may see autocompletion phrases related to
`Hollywood California, while a user living in South Florida
`who enters the same characters may See autocompletion
`phrases related to Hollywo

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket