`US007039635Bl
`
`c12) United States Patent
`Morgan et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,039,635 Bl
`May 2, 2006
`
`(54) DYNAMICALLY UPDATED QUICK
`SEARCHES AND STRATEGIES
`
`(75)
`
`Inventors: Bruce A. Morgan, Bellevue, WA (US);
`Keith D. Senzel, Seattle, WA (US)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 649 days.
`
`(21) Appl. No.: 10/226,506
`
`(22) Filed:
`
`Aug. 22, 2002
`
`Related U.S. Application Data
`
`(60) Provisional application No. 60/388,153, filed on Jun.
`11, 2002.
`
`(51)
`
`Int. Cl.
`FOJB 21104
`(2006.01)
`(52) U.S. Cl. ................................. 707/4; 707/5; 707/10
`(58) Field of Classification Search .................... 707/3,
`707/4, 5, 10
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`4,255,796 A * 3/1981 Gabbe et al.
`
`.................. 707/3
`
`5,797,098 A *
`6,026,388 A *
`6,226,620 Bl *
`6,321,224 Bl*
`6,411,950 Bl*
`6,826,566 Bl *
`* cited by examiner
`
`8/1998 Schroeder et al. .......... 455/464
`212000 Liddy et al .................... 707 /1
`512001 Oon .. ... ... ... ... ... .. ... ... ... .. 705/2
`11/2001 Beall eta!. .................... 707/5
`612002 Moricz et al.
`... ... ... .. ... ... 707 /3
`11/2004 Lewak et al ................... 70714
`
`Primary Examiner-Jack M. Choules
`(74) Attorney, Agent, or Firm-Ronald M. Anderson
`
`(57)
`
`ABSTRACT
`
`In response to characters entered within a Find dialog box,
`a minifind window is dynamically updated to provide cor(cid:173)
`responding search strategies and quick matches from content
`search data that are being searched. The search strategies
`and quick matches that are listed are dynamically updated as
`the user inputs additional characters in the Find dialog box.
`At any time, the user can initiate a full text search to
`populate a search results pane, based upon the characters
`input, by selecting a Go control or pressing the Enter key.
`Alternatively, the user can select one of the quick matches
`or search strategies, to populate the search results pane with
`corresponding items obtained from the content search data,
`which are most likely to relate to the information desired by
`the user. This approach is applicable to finding information
`in almost any data accessed locally, or over a network.
`
`24 Claims, 8 Drawing Sheets
`
`!---------------------------------------------------------------~
`I
`I
`
`SYSTEM MEMORY
`-------(ROM- -----
`
`BIOS
`
`PROCESSING
`UNIT
`
`24
`
`26
`
`48
`
`VIDEO
`ADAPTER
`
`21
`
`23
`
`53
`
`NETWORK
`INTERFACE
`
`l
`
`1
`
`47
`
`51
`
`LAN
`
`8
`
`REMOTE
`COMPUTER
`
`50
`
`l'll1ll!lilll
`
`APPLICATION
`PROGRAMS
`
`OTHER PROGRAM
`MODULES
`
`PROGRAM DATA
`
`38
`
`37
`
`OTHER
`PROGRAM
`MODULES
`
`46
`
`1/0 DEVICE
`INTERFACE
`(E.G., SERIAL) I+-'----
`
`30
`
`=---
`t
`t
`31
`38~~
`29
`40
`
`42
`
`54
`
`f KEYBOARD/O
`
`1
`
`Comcast, Exhibit-1003
`
`
`
`tit = """"
`\C °" w
`"'--...1 = w
`rJl
`d
`
`QO
`
`0 ......
`......
`......
`1J1 =(cid:173)
`
`('D
`('D
`
`O'I
`0
`0
`N
`"'
`N
`~
`~
`
`~ = ~
`
`~
`~
`~
`•
`00
`
`e •
`
`PROGRAMS
`APPLICATION
`
`36
`
`54
`
`42
`
`.. MODEM
`
`I
`
`(E.G., SERIAL) t •
`
`INTERFACE
`1/0 DEVICE
`
`I ;111111111 -
`
`WAN/
`
`52
`
`46
`
`50
`
`I
`COMPUTER
`
`REMOTE
`
`INTERFACE
`NETWORK
`
`53
`
`r KEYBOARD) a
`
`FIG. I
`
`40
`
`38 LJ~ ~
`
`i
`
`29
`
`31
`
`i
`
`30
`
`28
`
`SYSTEM
`OPERATINGIAPPLICATIONI p~6~~~M I PROGRAM
`
`PROGRAMS MODULES
`
`DATA
`
`INTERFACE
`DISK DRIVE
`
`OPTICAL
`
`INTERFACE
`DISK DRIVE
`MAGNETIC
`
`INTERFACE
`
`DRIVE
`
`HARD DISK
`
`PROGRAM DATA
`
`33
`
`SYSTEM BUS
`
`..-----------,
`
`23
`
`21
`
`36
`
`35
`
`MODULES
`
`OTHER PROGRAM
`
`PROGRAMS
`APPLICATION
`
`37
`
`36
`
`27
`
`38
`
`35
`
`22
`
`20
`
`'y----
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`47~/18
`
`MONITOR
`
`'
`:
`
`I VIDEO ~ 48
`
`ADAPTER
`
`UNIT
`
`PROCESSING
`
`: · _______ (ROM~ 24
`:-,----------~--------------------------------------------'
`
`SYSTEM MEMORY
`
`1
`
`2
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 2 of 8
`
`US 7,039,635 Bl
`
`~----L-[_1_10, -
`
`SEARCH
`SEARCH
`STRATEGIES LIST If-- STRATEGY
`GENERATION
`
`[108
`
`H
`
`-
`~~---------~~ '-'106
`USER SEARCH
`STRING
`
`f 114
`
`r112
`
`,,.
`
`r104
`
`QUICK MATCHES
`LIST
`
`CONTENT
`If-- QUICK MATCH.__ SEARCH
`GENERATION
`PROVIDER
`
`f 102
`' I
`CONTENT
`SEARCH
`DATA
`
`\
`
`r-._,116
`
`r118
`
`r120
`
`RESULTS LIST
`
`~--_L._-
`
`A D DI T 10 NA L - ,_
`i.,~-----~ SEARCH
`...---t----j'
`PROVIDERS
`
`I ADDITIONAL f~
`lrl /7
`SEARCH
`DATA
`
`\
`
`I
`
`I
`
`I
`
`\
`
`\
`
`\
`
`r'
`
`100
`
`FIG. 2
`
`3
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 3 of 8
`
`US 7,039,635 Bl
`
`START
`
`OPEN MINIFIND
`IF CLOSED
`
`WAIT FOR USER
`TO TYPE A
`CHARACTER
`
`150
`
`152
`
`NO
`
`154
`
`--~A~~z
`--<oMs ELAPSED SINCE~
`LAST CHARACTER
`
`NO
`
`YES
`
`POPULATE
`SEARCH
`STRATEGIES
`
`POPULATE
`QUICK
`MATCHES
`
`156
`
`158
`
`160
`
`FIG. 3
`
`HAS USER
`PRESSED ENTER, OR
`CLICKED GO, SEARCH
`STRATEGY, OR
`QUICKMATC
`
`YES
`
`CLOSE
`MINIFIND
`
`,
`
`WAS
`WEB CENTER ITEM, OR
`DOT-COM ITEM HI-LIGHTED
`OR GO, ENTER, 0
`CLICK?
`~-___,N~O _ __f 166
`POPULATE SEARCH
`RESULTS
`
`- - - - - - - - . i
`
`NAVIGATE TO HI(cid:173)
`LIGHTED MATCH
`
`164
`
`!':..
`
`YES
`
`170
`
`JUMP TO WEB
`CENTER OR
`DOT-COM
`
`DO SEPARATE
`SEARCH
`
`172
`
`DONE
`
`168
`
`4
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 4 of 8
`
`US 7,039,635 Bl
`
`BREAK SEARCH
`STRING INTO PARTS
`OF SPEECH AND
`TOKENS
`
`FIND MATCHES
`BETWEEN CONTENT
`TYPE ALIAS AND
`TOKENS
`
`200
`
`202
`
`204
`
`NO---<
`
`206
`
`LIST PREDEFINED
`DEFAULT SEARCH
`STRATEGIES
`
`214
`
`CREATE MATCHING
`SEARCH STRATEGY -~
`AND ADD TO LIST
`
`,-----(cid:173)
`
`REMOVEANY
`CONFLICTING
`STRATEGIES
`
`208 .... '-~
`I
`
`210
`
`NO
`
`ORDER STRATEGIES
`' - - - - - - - - - - - i BY RANKING
`FIG. 4
`
`/
`
`156
`
`YES
`
`212
`
`5
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 5 of 8
`
`US 7,039,635 Bl
`
`COUNT
`CHARCTERS
`ENTERED
`
`250
`
`252
`/
`//couNT " (-
`LESSTHAN ~
`PREDEFINED
`'.----NO
`
`/
`- - -<
`
`POPULATE QUICK
`MATCHES WITH
`ENTIRE LIST OF
`ARTICLES, MEDIA,
`TITLES, ETC.
`
`258
`
`POPULATE QUICK MATCHES
`WITH SUBSET LISTING OF
`ARTICLES, MEDIA, TITLES,
`ETC. HAVING WORDS
`STARTING WITH
`CHARACTERS
`
`254
`
`SCROLL LIST TO FIRST
`PREFIX MATCH (OR
`CLOSEST AVAILABLE)
`
`260
`
`256
`
`SCROLL LIST TO FIRST
`PREFIX MATCH (OR
`CLOSEST AVAILABLE)
`
`~------ CONTINUE-----------'
`
`/
`
`158
`
`FIG. 5
`
`6
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 6 of 8
`
`US 7,039,635 Bl
`
`COUNT
`CHARCTERS
`ENTERED
`
`300
`
`302
`
`POPULATE SEARCH
`RESULTS WITH ENTIRE
`LIST OF ARTICLES,
`MEDIA, TITLES, ETC.
`
`312
`
`SCROLL LIST TO FIRST
`PREFIX MATCH (OR
`CLOSEST AVAILABLE)
`
`314
`
`304
`
`POPULATE SEARCH
`RESULTS WITH SUBSET
`LISTING OF ARTICLES,
`MEDIA, TITLES, ETC. HAVING
`WORDS STARTING WITH
`CHARACTERS
`
`306
`
`SCROLL LIST TO FIRST
`PREFIX MATCH (OR
`CLOSEST AVAILABLE)
`
`308
`~MORE THAN3----------
`.--~~~~~ CHARACTERS?
`NO
`
`YES
`
`310
`
`DO FULL TEXT SEARCH
`
`/
`
`166
`
`FIG. 6
`
`7
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 7 of 8
`
`US 7,039,635 Bl
`
`362
`
`352
`
`358
`
`fi
`Slt6'$'
`,F~oo 4~ntlons
`SciJNh> Er4,'Ctflt.«irt
`'lkflnlt\J1Vmnnnipn.'1Nt'.na
`A tl~'!f TMNlff~
`#i lload 'Type
`Cl A ~1 R~-e~
`A l/Ot!'lllfOtliJislJIOt:r
`
`FIG. 7A
`
`352
`S;e~rch Strale{Jles .. ,
`.
`~~~
`:."'la~q Find Atlas Maps of ~urk''
`'0 Ef Find Web sites about "'Turk"
`· 0 ~ find definition:> of "'Turk"
`: L Sear:_~-E~~rta.5o~f~.' '1
`0 Bf Qrnck Mab::;l":ies •••
`e a DTurk Broda
`g el Diurk Edwards
`8 ~ Turkana
`0 6i' DTurkana Boy
`. Turkan~, lake
`0 B 'U~'IT~..::T(!IV'n:Tic:~
`0 Birds CreekT Ontariov Ca~
`0 Birds Hill, Manitoba, Canal
`
`Turk"
`
`364
`
`358
`
`366
`
`FIG. 7B
`
`8
`
`
`
`U.S. Patent
`
`May 2, 2006
`
`Sheet 8 of 8
`
`US 7,039,635 Bl
`
`360
`
`·t:1_&1:_c~~Je>!':~)ilt:,k~:i~::<: ht·
`
`0 Turkey-Turkey WoterhofeL
`Turkey (bird)
`Updated! Turkey (coun
`.s::i:u~~.Y c--
`·
`country
`bird
`Turkey Corn
`0 Turkey Creek
`di Turkey Facts and Figures
`0 Turkey Gap
`Turkey Gnat 372~
`0 Turkey Hill
`0 Turkey Lake
`0 Turkey Mountains
`Turkey Stearnes
`D Turkey Trot
`Turkey Vulture
`0 Turkey Waterhole
`0 Turkey Well Out Camp
`Turkey Work
`ilt Turkey: Historical Oates
`0 Turkeycock Mountain
`Turkeyfish
`Turkeyfoot Grass
`Iii Turkey's Mountain Barrier.
`0 Ulubey (Ordu, Turkey)
`.
`0 Ulubey (U~k. Turkey)
`0 Uluki$1a (Ni!}de, Turkey)
`0 Ululo~la (Niijde, Turkey)
`0 Ozumlu {Erzincan, Turkey:.
`0 O:zumlO (l<onya, Turkey) ·
`\Ian (city. Turkey)
`0 Van (province, Turkey)
`I!! Weaving Rugs at Home in
`0 Venice (<;anakkale, Turke·.
`0 Venice (i<;el, Turkey)
`.
`0 Venice (Zonguldak, Turke·
`8 Ye;ilyurt (Malatya, Turkey
`0 YeGifyurt (Tokat, Turkey} :
`0 Yozgat (administrative div:.
`0 Vozgat (city, T.:.rkey)
`·
`
`1ten1s containing the
`word(s) "turkey~"
`,
`Updated! Turkey (coun'
`1959: Turkey
`1962:Turkey
`1964: Turkey
`1979: Turkey
`
`364
`
`358
`
`366'
`
`Maps
`Find Web sites about "Turkey"
`Find definitions of "Turkey"
`Search Encarta.com for "Turke •
`- - - - - - - - . _....:J
`Quick Matches ...
`DTurkey
`Turkey (bird)
`Turkey (countFy)
`Turkey Corn
`turkey Gnat
`~ ~.~~~oW-QTl;t..,....tl'''~,;-'":·
`FIG. 8
`
`354"
`
`356"
`
`358
`
`/ 380
`
`FIG. 10
`
`374
`
`376
`FIG. 9
`
`9
`
`
`
`US 7,039,635 Bl
`
`1
`DYNAMICALLY UPDATED QUICK
`SEARCHES AND STRATEGIES
`
`RELATED APPLICATIONS
`
`This application is based on prior co-pending provisional
`application Ser. No. 60/388,153, filed Jun. 11, 2002, the
`benefits of the filing date of which is hereby claimed under
`35 U.S.C. § 119(e).
`
`FIELD OF THE INVENTION
`
`This invention generally pertains to dynamically varying
`search data in response to an input by a user; and more
`specifically, provides for dynamically updating a proposed
`list of quick matches and a proposed list of search strategies
`in response to input by a user, to enable the user to more
`efficiently search and access desired information in a body
`of data.
`
`BACKGROUND OF THE INVENTION
`
`The amount of facts, information, and other data that are
`available online and in various data resources and reference
`works has grown tremendously in the recent past and will
`likely continue to expand exponentially. However, as the
`amount of data available increases, the task of identifying
`specific data of interest becomes correspondingly more
`difficult. Traditionally, hard copy reference works, such as
`encyclopedias, have been consulted to obtain information on
`a variety of topics. A person interested in reading informa(cid:173)
`tion about a specific topic would either consult a subject
`index typically provided in the last volume of an encyclo(cid:173)
`pedia, or simply select an appropriate volume to page
`through and find the desired information, based on the letter
`of the alphabet of the topic. For example, information on the
`"Civil War" might be found by selecting the encyclopedia
`volume that includes topics starting with the letter "C," and
`then paging through the topics that are alphabetically
`arranged within that volume, until the pages for the section
`on the Civil War topic are found.
`The task of accessing a desired topic or specific informa(cid:173)
`tion relating to a topic has been made much easier with the
`availability of relatively low-cost software reference works
`that are analogous to hard copy encyclopedias. In addition to
`text and images, the software reference works also typically
`include maps, animations, videos, and sound files relating to
`selected topics. Microsoft Corporation's ENCARTA™ Ref(cid:173)
`erence Library is an excellent example of such a software
`reference product. Currently, several gigabytes of data can 50
`be provided on a single digital video disk (DVD) in a
`software reference library. The Internet includes terabytes of
`data that can be used to supplement the data in a reference
`work. Unlike a hardcopy reference work, when attempting
`to access information in software reference libraries or on 55
`the Internet, it is not possible for a person to physically
`thumb through the data to find information based upon the
`initial letters of keywords or topics of interest. However,
`software reference works include search facilities that are
`designed to perform an analogous function by enabling a
`user to input a topic, or one or more keywords, a phrase, or
`question in a text box. The user then typically either presses
`the Enter key or selects a "Go" button or other equivalent
`control to initiate a search of the available data based upon
`the text input by the user.
`In response to the user initiating the search as described
`above, a search engine will typically parse the text that was
`
`2
`input and then produce a listing of search topics, sometimes
`many pages long, of possible "hits" that may be appropriate
`to the user's input. Search modules may rank these "hits" or
`search results according to their likely relevance to the input
`text, placing those that appear to be more relevant first in the
`list. For example, if a user inputs several keywords, hits that
`have more of the keywords will be listed before hits that
`have fewer keywords. However, it can be somewhat frus(cid:173)
`trating for a user reviewing the search results produced by
`10 such searches, since the hits may have little apparent rel(cid:173)
`evance to the information that the user desired to find. One
`reason that the results of a search may not be as expected is
`because the user may be looking for a particular category of
`information, but the words input by the user can be inter-
`15 preted by the search module in a different manner, so that the
`search returns results in an entirely different category. For
`example, if the user enters the word "turkey" hoping to find
`information on the correct temperature at which to roast a
`turkey, the results of the query may be a list of information
`20 related to the country "Turkey," or general information
`about the bird "turkey," or about commercial establishments
`that sell roasted or smoked turkeys. Accordingly, it would be
`preferable to provide a user an option for limiting the search
`results that will be returned to a specific category, before the
`25 search is actually carried out.
`Reference works will sometimes enable a user to select a
`specific category prior to entry of a search query. For
`example, a user might selectively make a search for a
`geographic location by initially limiting the search to data
`30 maintained in an atlas database. Alternatively, after the user
`enters a query, the search engine may provide a list of
`alternatives in different categories from which the user may
`choose to more accurately access information of interest. For
`example, one search engine developed for use on the Inter-
`35 net (http://www.askjeeves.com) enables a user to enter a
`query as a plain language question. After the query is
`entered, the search engine parses the query text and displays
`a list of several possible questions representing different
`questions that may be related for which the search engine
`40 can provide information, as well as a list of related search
`terms, and a list of the search results for the search that was
`done in response to the query previously entered by the user.
`By selecting one of the proposed queries or search terms that
`seems to more closely indicate the information of interest,
`45 the user may be able to better access the desired information,
`since the search results returned in response to the user's
`query may not be very closely related to the desired infor(cid:173)
`mation.
`Often, searches can be implemented by entering only a
`single word, particularly, ifthe user has the ability to choose
`among various search strategies related to the word, and/or
`the ability to choose among items that are related to the
`word. For many words, it may be that typing only a portion
`of the word is sufficient to indicate the word in its entirety,
`or at least to narrow the field of choices regarding related
`matching
`items. Microsoft Corporation's
`INTERNET
`EXPLORER™ and other programs provide auto completion
`of text entries, using entries that were previously input in the
`program, but this capability does not extend to indicating
`60 proposed search strategies or proposed matching items,
`based upon a partial entry of a word or phrase. Almost every
`program that proposes alternative searches or keywords does
`so only after the user has actually completed a query and
`entered it. Instead of requiring the user to enter a query
`65 before responding, it would be desirable to dynamically list
`proposed search strategies and possible matches that corre(cid:173)
`spond to the characters input by the use, and to refine the list
`
`10
`
`
`
`US 7,039,635 Bl
`
`3
`of proposed search strategies and matches as the user
`continues to input additional letters in a text box. Such an
`approach is analogous in some respects to the manual
`technique applied by a person in looking up information in
`an index or listing based upon the alphabetical order of the
`characters in a word.
`Preferably, after at least a minimum number of characters
`are entered by a user, the dynamically refined matches
`should be listed in a preferred order of priority, with the
`matching items having the characters input by the user as
`their first characters, followed by alternative choices that
`include the characters input by the user, as part of other
`words in the matching items. A user should also have the
`option to enter all of the characters of a keyword or multiple 15
`words, to enable full text searching. After dynamically
`modifying the list of proposed search strategies and matches
`corresponding to the characters that have been input, a user
`should be able to select one of the search strategies or
`matches that will likely yield the desired information the 20
`user is attempting to find. This approach would be extremely
`helpful for children, who may not be comfortable typing
`long words, and for people whose native language (e.g., the
`Asiatic languages) is relatively complex and not easily
`entered in a text box using a keyboard. The prior art does not 25
`provide any corresponding dynamically updated listing of
`search strategies or matching items.
`
`10
`
`4
`ingly to the likelihood of matching the input of the user. If
`no matching item is found in the content data being searched
`for a quick match, the closest available quick match is
`included in the list. If no match is found for a search strategy
`in the content data, the search strategy list is populated with
`a plurality of default predefined search strategies.
`A user can press the Enter (or other designated) key or
`select a designated control in a user interface, to initiate a
`search based upon characters input by the user.
`After initiating a search, the user can return to the
`previous lists of quick matches and search strategies, by
`selecting a designated control provided in the user interface.
`An advanced search option is also provided to enable
`searching for information in the content data specifically
`limited or filtered to a selected category or type.
`Another aspect of the present invention is directed to a
`system for searching data. The system includes a memory in
`which machine instructions are stored, a display, a user input
`device, and a processor coupled to the memory, the display,
`and the user input device. The processor executes the
`machine instructions to implement functions generally con(cid:173)
`sistent with the above described method.
`Yet another aspect of the present invention is directed to
`a memory medium having machine instructions for imple(cid:173)
`menting the steps of the method discussed above.
`
`SUMMARY OF THE INVENTION
`
`30
`
`BRIEF DESCRIPTION OF THE DRAWING
`FIGURES
`
`To simplify searching for information, the present inven(cid:173)
`tion is directed to a method for dynamically responding to a
`string of characters being input by a user in a text box to
`define a search of available content data. After the first
`character is input in the text box, separate lists of quick
`matches and search strategies are populated by searching the
`content data to identify items related to the character that
`was input. The quick match list may include one or more
`items, each having a word that begins with the character. An 40
`exemplary search strategy might be, "find the [character that
`was input] in an atlas."
`As the user inputs an additional character, the populations
`of the search strategy and quick match lists are updated
`appropriately to refer to items that include the characters
`input. After at least a predefined number of characters are
`input, the lists are populated only with quick matches and
`search strategies corresponding only to data that refer to the
`characters input by the user. At any time, the user may select
`one of the quick matches or one of the search strategies in
`these respective lists to initiate the search of the data based
`upon the selected item, or may initiate a search based upon
`the characters thus far input. A search result pane is popu(cid:173)
`lated with the results of the search. The user may select an
`item included in the search results pane to access the
`information associated with the selected item in the content
`data.
`The lists of items populating the quick matches and search
`strategies are not updated until at least a predefined time
`interval has elapsed since the last character was input by the
`user, to avoid incurring an undesirable delay while the lists
`are dynamically repopulated, when the user wants to rapidly
`input a plurality of characters. After the predefined number
`of characters are input, the lists are populated only with
`items that include the characters input. The order of the
`quick matches in the list are preferably prioritized accord-
`
`The foregoing aspects and many of the attendant advan(cid:173)
`tages of this invention will become more readily appreciated
`as the same becomes better understood by reference to the
`35 following detailed description, when taken in conjunction
`with the accompanying drawings, wherein:
`FIG. 1 is a block diagram of a generally conventional
`personal computer (PC) system that is suitable for imple(cid:173)
`menting the present invention;
`FIG. 2 is a block diagram illustrating functional compo(cid:173)
`nents of the present invention;
`FIG. 3 is an overview flow chart illustrating the steps
`implemented in accord with the present invention in
`response to a user entering input text to initiate a search of
`45 data;
`FIG. 4 is a more detailed flow chart illustrating the steps
`carried out to populate a search strategies list;
`FIG. 5 is a more detailed flow chart illustrating the steps
`50 carried out to populate a quick matches list;
`FIG. 6 is a more detailed flow chart showing the steps
`carried out to populate a search results pane;
`FIG. 7Aillustrates an exemplary Find dialog box for entry
`of a search query prior to input of any text, showing a list of
`55 default general search strategies;
`FIG. 7B illustrates the exemplary Find dialog box after
`four characters have been input, showing how the list of
`search strategies has changed in response thereto, and show(cid:173)
`ing a list of corresponding quick matches;
`FIG. 8 illustrates the exemplary Find dialog box after a
`full word has been input, showing changes in the list of
`search strategies and quick matches;
`FIG. 9 illustrates an exemplary search results pane pro-
`65 duced after a user has pressed Enter (or Go); and
`FIG. 10 illustrates exemplary advanced options for filter(cid:173)
`ing the search results.
`
`60
`
`11
`
`
`
`US 7,039,635 Bl
`
`5
`DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`System Suitable for Executing the Present Invention
`Although not required, the present invention will be
`described in the general context of computer executable
`instructions, such as program modules that are executed by
`a PC. Generally, program modules include routines, pro(cid:173)
`grams, objects, components, data structures, etc. that per(cid:173)
`form particular tasks or implement particular abstract data
`types. Moreover, those skilled in the art will appreciate that
`this invention may be practiced with other computer system
`configurations, particularly in regard to a client device for
`displaying a Web page, including handheld devices, pocket
`personal computing devices, digital cell phones adapted to
`connect to a network, and other microprocessor-based or
`programmable consumer electronic devices, game consoles,
`TV set-top boxes, multiprocessor systems, network PCs,
`minicomputers, mainframe computers, industrial control
`equipment, automotive equipment, aerospace equipment,
`and the like. The invention may also be practiced in distrib(cid:173)
`uted computing environments where tasks are performed by
`remote processing devices that are linked through a com(cid:173)
`munications network. In a distributed computing environ(cid:173)
`ment, program modules may be located in both local and
`remote memory storage devices.
`With reference to FIG. 1, an exemplary system for imple(cid:173)
`menting the present invention includes a general purpose
`computing device in the form of a conventional PC 20,
`provided with a processing unit 21, a system memory 22,
`and a system bus 23. The system bus couples various system
`components including the system memory to processing unit
`21 and may be any of several types of bus structures,
`including a memory bus or memory controller, a peripheral
`bus, and a local bus using any of a variety of bus architec(cid:173)
`tures. The system memory includes read only memory
`(ROM) 24 and random access memory (RAM) 25. A basic
`input/output (BIOS) system 26, containing the basic routines
`that help to transfer information between elements within 40
`the PC 20, such as during start up, is stored in ROM 24. The
`PC 20 further includes a hard disk drive 27 for reading from
`and writing to a hard disk (not shown), a magnetic disk drive
`28 for reading from or writing to a removable magnetic disk
`29, and an optical disc drive 30 for reading from or writing
`to a removable optical disc 31, such as a CD-ROM or other
`optical media, such as a DVD on which data being searched
`by the present invention may be stored. Hard disk drive 27,
`magnetic disk drive 28, and optical disc drive 30 are
`connected to system bus 23 by a hard disk drive interface 32,
`a magnetic disk drive interface 33, and an optical drive
`interface 34, respectively. The drives and their associated
`computer-readable media provide nonvolatile storage of
`computer-readable machine instructions, data structures,
`program modules, and other data for PC 20. Although the
`exemplary environment described herein employs a hard
`disk, a removable magnetic disk 29, and a removable optical
`disc 31, it will be appreciated by those skilled in the art that
`other types of computer-readable media, which can store
`data that is accessible by a computer and may be searched
`by the present invention, such as magnetic cassettes, flash
`memory cards, digital video disks, Bernoulli cartridges,
`random access memories (RAMs), read only memories
`(ROMs), and the like, may also be used in the exemplary
`operating environment.
`A number of program modules may be stored on the hard
`disk, magnetic disk 29, optical disk 31, ROM 24 or RAM 25,
`
`6
`including an operating system 35 (with a browser function),
`one or more application programs 36 (such as a setup
`program), other program modules 37, and program data 38.
`A user may enter commands and information into PC 20
`through input devices such as a keyboard 40 and a pointing
`device 42. Other input devices (not shown) may include a
`microphone, joystick, game pad, satellite dish, scanner,
`digital camera, or the like. These and other input devices are
`often connected to processing unit 21 through an input/
`10 output (I/O) device interface 46 that is coupled to the system
`bus. Output devices, such as a printer (not shown), may also
`be connected to processing unit 21 through an I/O device
`interface 46 that is coupled to the system bus. Similarly, a
`monitor 47 or other type of display device is also connected
`15 to system bus 23 via an appropriate interface, such as a video
`adapter 48, and is usable to display Web pages, and/or other
`information accessed in accord with the present invention.
`In addition to the monitor, PCs are often coupled to other
`peripheral output devices (not shown), such as speakers
`20 (through a sound card or other audio interface-not shown).
`Such input/output devices are generally referred to as
`peripheral devices. For purposes of discussion in regard to
`the present invention, general peripheral device 56 is
`coupled to PC 20 via I/O device interface 46. The term I/O
`25 device interface is intended to encompass each interface
`specifically used for a serial port, a parallel port, a game port,
`a keyboard port, and/or a USB port. Through I/O device
`interface 46, information is communicated between periph(cid:173)
`eral device 56 and processing unit 21 via system bus 23.
`30 Peripheral device 56 includes firmware memory 58 for
`storing information. Firmware memory 58 may be erasable
`programmable read only memory (EPROM), flash memory,
`magnetic storage, or other memory. Firmware memory 58
`stores a vendor ID, a product ID, serial number, firmware
`35 revision level, and/or other information related to the periph(cid:173)
`eral device 56. Firmware memory 58 also stores a URI or
`other type of address indicating a location from which a
`driver, data, and/or other material relevant to the peripheral
`device can be accessed and/or downloaded.
`PC 20 may operate in a networked environment using
`logical connections to one or more remote sources, such as
`a remote computer 49. In regard to the present invention, the
`URI or address stored in the memory of the peripheral
`device may specify a location that is accessed through
`45 remote computer 49. Remote computer 49 may be another
`PC, a server (which is typically generally configured much
`like PC 20), a router, a network PC, a peer device, a satellite,
`or other common network node, and typically includes many
`or all of the elements described above in connection with PC
`50 20, although only an external memory storage device 50 has
`been illustrated in FIG. 1. The logical connections depicted
`in FIG. 1 include a local area network (LAN) 51 and a wide
`area network (WAN) 52. Such networking environments are
`common in offices, enterprise-wide computer networks,
`55 intranets, and the Internet.
`When used in a LAN networking environment, PC 20 is
`connected to LAN 51 through a network interface or adapter
`53. When used in a WAN networking environment, PC 20
`typically includes a modem 54 or other means for establish-
`60 ing communications over WAN 52, such as the Internet.
`Modem 54, which may be internal or external, is connected
`to the system bus 23, or coupled to the bus via I/O device
`interface 46, i.e., through a serial port. In a networked
`environment, program modules depicted relative to PC 20,
`65 or portions thereof, may be stored in the remote memory
`storage device. It will be appreciated that the network
`connections shown are exemplary and other means of estab-
`
`12
`
`
`
`US 7,039,635 Bl
`
`7
`lishing a connnunications link between the computers may
`be used, such as wireless communication and wide band
`network links.
`
`Overview of the Present Invention
`The present invention recognizes that some types of
`information included in content search data are stored in
`such a way that search results can more efficiently be
`presented as the user inputs text on a character-by-character
`basis, with the search results becoming narrower in scope
`and more accurate as more characters are typed. This
`approach is an excellent way to support both Far Eastern
`languages that are difficult to type, and users with limited
`typing and/or spelling abilities, such as children. Other types
`of information included in content search data are best
`presented as a list of results after a user presses an Enter key
`on a keyboard or otherwise indicates that no further input is
`to be provided. Input of a full word or a phrase may be better
`during full text-searches, where the search tends to take a
`significant amount of processing time and typing would be
`hindered if a character-by-character dynamic approach were
`attempted.
`Clearly, it is preferable to innnediately show to the user
`the "best match" for a search string input by the user,
`without requiring an additional selection on the part of the
`user. For example, if the user types "Seattle" and presses
`Return (i.e., the Entel key or a Go control), it is preferable
`to innnediately show data about the city of Seattle rather
`