throbber
I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`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
`

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