`F'
`
`i
`
`"Yt,V
`
`PATENT NUMBER
`
`6760720
`
`llillilililmililillillllillll
`6760720
`
`i
`
`\.r
`
`\,,.f1t
`
`zo
`tr
`
`tr
`)
`
`6U
`
`Jo
`
`uJ
`u)
`9.
`
`.oIt
`-q()
`-o
`U)
`
`<t,(,g
`o
`
`I
`
`r\
`Fi.t'
`
`U.S. UTIL|TY patent
`o.t.P.E.
`t ir t
`,n3
`scarurueo ]i,qrtj/ a.o. C 7
`
`SUBCLASS
`'*r
`t^-.
`
`,/
`
`./
`
`/arurur
`trffrrl
`
`$
`
`EXAMINER
`
`.fr;'tr t"'i " ,
`
`APPLICATION NO.
`a9/513340
`
`CONT/PRIOR
`
`CLASS
`7A7
`
`. ..i'r"lr.rifi1i:::,1.t ii,::: l::j,:i;:.i.i:iL,:t
`
`Fz
`
`oJ(
`
`L
`o-
`
`i
`
`li.
`
`x.
`
`: i :
`
`!;i r:::,.:;r !... r..- i.-; -. ::::, i..: -. .i::.
`
`i..l ,:,:: _. f .l 1,r,, ,
`
`'.|' i;::i l' i:. -. r-'r l. i -. -i..
`
`1..; 1::r, ^ | l. :.,.
`
`:ri i:t ;:ii i" i::: i"'l !:::i i'j:;; i i.l,:::l
`
`t!JF
`
`F
`
`PTO-2040
`12/99
`
`ISSUING CLASSIFICATION
`cRoss REFERENCE(S)
`
`(oNE SUBCLASS PER BLOCK)
`
`INTERNATIONAL CLASSIFICATION
`
`t-r TERMTNAL'
`I lotsctAtMEn
`
`(date)
`
`L__.1 The term of this patent
`subsequent to --._--=-
`has been disclaimed.
`L-i tne term of this patent shall
`not extend beyonc the expiration date
`of U.S Patent. No.
`
`ksQ'e waMt/iA,I
`
`#T-ffi[,ffiilE-
`
`Totafiaims
`
`{a
`
`NOTICE OF r:LLOWANCE MATLED
`
`7/ zh/c/
`
`L-l The terminal months of
`this patent have been disclarmed.
`
`2w
`
`ISSUE BATCH NUMBER
`
`H:J::Tff::kH:iT"r1J.1Ji:fl?f,:.,i!ilj'1'&,"f,X',$:l.l:o.tiscrosure mav be prohibired by rhe unired states code riile os, sections 12z,111and 368.
`_,
`,tilcted to arth"rlryployees and cbntractors on_fy..__
`
`str# Fhtr $ru F,L€Furmuryr*rtnk
`
`flrrcHe flco-noru
`(Attachsd in pocket on right inside flap)
`
`(FACE)
`
`lr
`.n)
`, q3*
`s{-;
`--l- [.fr
`(r€ra.
`r. f:)
`4r-
`
`i
`
`rd'
`
`4'
`
`i it ij
`
`...i
`
`,'i
`
`*]""-t
`t!
`it{l
`T}1t
`/:i
`iJ-
`n..}.'
`"ti
`
`rj\
`
`{g iI{t Ii { Ij { {
`
`Unified Patents Inc. v. Vilox Technologies LLC
`Ex. 1003 / Page 1 of 328
`
`
`
`PATENT APPLICATION
`
`ililil ilIil tilil ilil ililililil ilililtil ilil ilil
`095 13340
`
`ffi
`
`CONTENTS
`Date Received
`(lncl. C. of M.)
`or
`Date Mailed
`
`.:'qtr\of
`
`rNr,,,;f$ ' ; {i ilJf
`
`Date Received
`(lncl. C. of M.)
`or
`Date Mailed
`
`'t'; 2.
`3.L (
`
`V-Jtl*r,
`f, -{"o
`
`4.
`'\lrr:
`$Y;lc'
`
`7.
`
`8.
`|9.
`l'lb.,o.
`
`11.
`a? 12'
`*i* rr.
`'t4. fi
`
`.\ ll4
`" iltu tz.
`ft.8.
`
`25.
`
`26.
`
`27.
`
`28.
`
`29.
`
`30.
`
`31.
`
`32.
`
`33.
`
`34.
`
`35.
`
`36.
`
`37.
`
`38.
`
`39.
`
`40.
`
`41.
`
`@a
`
`44.
`
`45.
`
`46.
`
`47.
`
`48.
`
`49.
`
`50.
`
`51.
`
`52.
`
`53.
`
`54.
`
`55.
`
`56.
`
`57,
`
`58.
`
`59.
`
`60.
`
`61.
`
`62.
`
`63.
`
`64.
`
`65.
`
`66.
`
`67.
`
`68.
`
`69.
`
`70,
`
`7't.
`
`72.
`
`74.
`
`77.
`
`79.
`
`81.
`
`(LEFT OUTSIDE)
`
`Ex. 1003 / Page 2 of 328
`
`
`
`ISSUESLIP STAPLE AREA (for additional cross references)
`
`FEE DETERMINATION
`O.I.P.E. CLASSIFIER
`
`Claim
`
`Date
`
`-j
`
`Claim
`
`c
`
`101
`
`1G
`1U
`
`toi
`tw
`
`w 1
`
`C
`
`tz
`
`11:
`
`11t
`
`115
`
`INDEX OF CLAIMS
`Rejected
`Allowed
`(Through numeral)... Canceled
`
`Claim
`
`Date
`
`(u
`
`IL
`
`o)
`
`51
`52
`53
`
`54
`
`55
`
`56
`
`58
`
`5S
`
`6C
`61
`
`62
`
`OJ
`
`:
`
`Date
`
`I 1
`
`,
`
`Itr'
`
`*/,
`
`%d
`
`t. I,z
`b/
`41
`
`vt
`
`i
`ctl
`
`(,
`
`4
`
`o
`
`7 t
`
`t
`o
`
`(u
`
`TL
`
`L $
`
`5 L
`
`'7
`
`q
`to 10
`
`1
`
`11
`
`11
`
`11t
`
`1S
`
`zv
`
`l21
`4
`1X
`12t
`
`124
`
`127
`
`za
`
`z9
`
`\'
`Jz
`3i
`13,
`
`3{
`J(
`
`3€
`ec
`
`4C
`
`+ i
`
`t 4
`
`i
`4t
`4i
`
`4(.
`
`^-
`4t
`
`4(
`5(
`
`tl
`
`tl
`
`I
`
`,l
`
`l_t
`l_l
`1_l
`
`JI
`
`64
`oc
`66
`67
`68
`69
`
`70
`
`71
`72
`7Q.
`
`74
`
`75
`76
`77
`78
`79
`
`8C
`
`81
`82
`83
`84
`65
`86
`
`87
`B8
`
`89
`90
`
`91
`
`92
`93
`
`94
`95
`vb
`97
`98
`99
`
`0(
`
`more than 150 claims or 10 actions
`staple additional sheet here
`
`(LEFT TNSTDE)
`
`tz z
`t1 13
`I
`4
`rq
`,
`
`o
`
`T1
`
`I 18
`n 19
`?P zv
`Ll zl
`ul zz
`tl 23
`24
`,/, 25
`,,} 26
`7n 27 -
`14 28
`A 29
`(rr 30
`
`L
`
`LI p'!il
`fl ee
`J+
`'S
`3f 35
`,j
`
`l-l
`L]
`
`/
`
`37
`z4 J6
`JV
`
`40
`
`41
`z
`43
`
`44
`45
`46
`47
`48
`49
`50
`
`Ex. 1003 / Page 3 of 328
`
`
`
`.t'
`
`SEARCHED
`
`SEARCH NOTES
`(TNGLUDING SEARCH STRATEGY)
`
`Class
`
`Sub.
`
`Date
`
`Exmr.
`
`Date
`
`Exmr.
`
`";!,ug (a.,tg,/-.
`Q f*/' t
`Ca4 {'e"qt-t* (/,/,,
`,/
`Llf'tf n L
`Arhg"- HeJ t"-/'
`Dn n"gbur?'
`&rr9^- l/&J */
`ft^-U /A"rn+'re'
`@Y1,9,*/e,{ - /-
`7rl4t flSat^lrs
`
`L en-z
`
`L- L'v
`
`"r.-,
`
`+/,, f"z L r.r-./
`
`uln/z
`4f /s/'z
`,//rslz
`
`L\.-,
`
`L -,-,
`
`A^.4n
`
`ffi
`
`hnq fl-c",-(4- rt/r/oz
`rr/+/, L L"tl
`
`l----.-'
`
`elrl/"3 L"-J
`
`4Crrl {'az..C/-
`[^>n5,..1leJ 4
`Teo,-/h"'z ' 4
`{,r'a'+-l
`
`u I "'14
`Uy J",/ e W 'l^l"l
`
`>l-L1J
`
`ff'f'z L*
`
`L()
`
`,lul'T Lt)
`
`7'7 ,, q
`1,to
`
`7oS Z6
`?-7
`
`'7"1
`
`3,a
`a,lP ,
`Itfl r
`
`/
`
`INTERFERENCE SEARCHED
`or4"
`Sub.
`Class
`Exmr.
`fl",/', LJ
`1o1
`
`Ex. 1003 / Page 4 of 328
`
`
`
`PATENT APPLICATION SERIAL NO.
`
`U.S. DEPARTMENT OF COMMERCE
`PATENT AND TRADEMARK OFFICE
`FEE RECORD SHEET
`
`ffi1$*l8s$s $gn*w$it ss$s*$5? s*r*m
`$i ffi$$* #f:ffi tr
`
`PTO-1556
`(st87)
`
`.U.S. GPO: 1 999459-0821 91 44
`
`Ex. 1003 / Page 5 of 328
`
`
`
`CoMI"IISSIoNER FoR PATINTS
`UNITED STATES PATENT AND TRAoEMARK OFFIoE
`\ AsHrNc'loN. D.C. 20231
`wwwuspto,gov
`
`CONFIRMATION NO.7895
`
`CLASS
`707
`
`GROUP ART UNIT
`2177
`
`ATTORNEY DOCKET
`NO.
`5473
`
`-BIBDATASHEET*
`
`Bib Data Sheel
`
`FILING DATE
`02t25t2000
`
`RULE
`
`SERIAL NLJMBER
`09/513,340
`
`PLICANTS
`
`Joseph L. De Bellis, Southampton, NY
`
`* coNTl NUING DATA **************+rn!******
`
`'* FOR El GN p.P PLI CATI ON S ****************ri*
`
`STA.TE OR
`
`SHEETS
`
`F REQUIRED, FOREIGN FILING LICENSE GRANTED "* SMALL ENTITY **
`* 04/22t2040
`:oreigrr Priority claimed
`f,l u""E no
`15 usic 119 (a-d) condirions mer ! *" F no [.]l MerafterAllowance
`Examine/s Signature
`/erified and Acknowledoed
`
`Initials
`
`e0qSdY'.RY
`NY
`
`DRAWNG
`27
`
`TOTAL
`
`NDEPENDEhI'i
`
`CLAIMS
`40
`
`cLAlf'ts
`
`\DDRESS
`---
`]8598
`\NDREWS KURTH L.L.P.
`I7O1 PENNSYLVANIA AVENUE. N.W.
`ruASHINGTON, DC
`20006
`
`SUITE 3OO
`
`NTLE
`
`Ar
`
`flnt F"""
`
`FILING FEE
`
`RECEIVED
`590
`
`:EES: Authority has been given in Paper
`to charge/credit DEPoslT AccouNT
`\,1o.
`\o.
`for followino:
`
`-
`
`E r.ta Fees (tssue )
`
`Itr cre,qit
`
`-- -l
`
`Ex. 1003 / Page 6 of 328
`
`
`
`:(,
`
`t!.t.sl
`
`PATENT APPLICT".ION TRANSMITTAL LETTER
`
`Docket No.
`5473
`
`TO THE ASSISTANT COMMISSIONER FOR PATENTS
`
`herewith for filing under 35 U.$.C. 111 and 37 C.F.R. 1.53 is the patent application of:
`DE BELLIS, Joseph L.
`
`FOT: SEARCH.ON.THE.FLY/SORT.ON.THE.FLY SEARCH ENGINE
`
`Enclosed are:
`n Certificate of Mailing with Express Mail Mailing Label No.
`E n
`sheets of drawings.
`! A certified copy of a
`tr Signed. E Unsigned.
`E Declaration
`E Power of Attorney
`n Information Disclosure Statement
`tr Preliminary Amendment
`tr
`Verified Statement(s) to Establish Small Entity Status Under 37 C.F.R. 1.9 and 1.27.
`tr other:
`
`application.
`
`For
`
`CLAIMS AS FILED
`#Filed #Allowed #Extra
`
`I
`
`iii
`
`Total Glaims
`
`Indep. Claims
`
`-20 =
`-3-
`Multiple Dependent Claims (check if appticable) tr
`
`40
`
`3
`
`20
`
`0
`
`Rate
`
`$9.00
`
`$39.00
`
`x
`
`x
`
`BASIC FEE
`
`TOTAL FILING FEE
`
`Fee
`
`$180.00
`
`$0.00
`
`$0.00
`
`$345.00
`
`$525.00
`
`tr
`a
`
`A check in the amount of
`to cover the filing fee is enclosed.
`The Commissioner is hereby authorized to charge and credit Deposit Account No.
`as described below. A duplicate copy of this sheet is enclosed.
`A Charge the amount of $525.00 as filing fee.
`A Credit any overpayment.
`A Charge any additional filing fees required under 37 C.F.R. 1.16 and 1.17.
`tr Charge the issue fee set in 37 C.F.R. 1.18 at the mailing of the Notice of Allowance,
`pursuant to 37 C.F.R. 1.311(b).
`
`04-1425
`
`Dated:
`
`Signatare
`Reg. No. 41,817
`John
`DORSEY & WHITNEY LLP
`1001 Pennsylvania Ave., N.W.
`Suite 300 South Tower
`Washington, D.C. 20004
`(202) 82-8800
`
`Ex. 1003 / Page 7 of 328
`
`
`
`lgqb HI 1
`'.lechnical Field
`
`Thetechnical fieldis ffirmationmanagement systems, interfaces, andmechanisms, and
`
`methods for searchins one or more databases.
`
`Background
`
`In the most general sense, a database is a collection of data. Various architectures
`
`have been devised to orgarize data in a comput eizeddatabase. Typically, a comput erized
`
`database includes data stored in mass storage devices, such as tape drives, magnetic hard disk
`
`drives and optical drives. Three main database architectures are termed hierarchical, network
`
`and relational. A hierarchical database assigns different data types to different levels ofthe
`
`hierarchy. Links between data items on one level and data items on a different level are simple
`
`and direct. However, a single data item can appear multiple times in a hierarchical database
`
`and this creates data redundancy. To eliminate data redundancy, a network database stores
`
`data in nodes having direct access to any other node in the database. There is no need to
`
`duplicate data since all nodes are universally accessible. In a relational database, the basic writ
`
`of data is a relation. A relation corresponds to a table having rows, with each row called a
`
`tuple, and columns, with each column called an attribute. From apractical standpoint, rows
`
`represent records ofrelated data and columns identify individual data elements. The order in
`
`which the rows and columns appear in a table has no significance. In a relational database, one
`
`can add a new column to a table without having to modi$r older applications that access other
`
`columns in the table. Relational databases thus provide flexibility to accommodate changing
`
`needs.
`
`All databases require a consistent structure, termed a schem4 to organize and maruage
`
`the information. In a relational database, the schema is a collection oftables . Similarly, for each
`
`table, there is generally one schema to which it belongs. Once the schema is designed, a tool,
`
`known as a database management system (DBMS), is used to build the database and to
`
`operate on data within the database. The DBMS stores, retieves and modifies data associated
`
`:J
`
`4 5 6 7 8 9
`
`10
`
`11
`
`12
`
`13
`
`I4
`
`15
`
`I6
`
`t7
`
`18
`
`t9
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`1;
`
`i"*
`1"i
`
`l,!
`
`iji
`i,#
`
`r"'5
`
`f.*.i
`
`Ex. 1003 / Page 8 of 328
`
`
`
`D@kca 54731PTO f ilirg!/Spcc.wpd
`
`with the database. Lastly, to the extent possible, the DBMS protects data from comrption and
`
`unauthorized access.
`
`Ahumanuser confols the DBMS byproviding a seque,nce ofcommands selected from
`
`a data sublanguage. The syntax ofdata sublanguages varies widely. The AmericanNational
`
`Standards Institute (ANSD and the Intemational Organization for Standardization (ISO) have
`
`adopted Structured English Query Language (SQL) as a standard data sublanguage for
`relationaldatabases. SQLcomprisesadatadefinitionlanguage@DL),adatamanipulation
`
`language (DML), and a data control language (DCL). The DDL allows users to define a
`database, to modify its structure and to destroy it. The DML provides the tools to enter,
`
`modifr and extract data from the database. The DCL provides tools to protect data from
`
`comrption and unauthorized access. Altlrough SQL is standardized, most implementations of
`
`the ANSI standard have subtle differences. Nonetheless, the standardization of SQL has
`
`greatly increased the utility of relational databases for many applications.
`
`Although access to relational databases is facilitated by standard data sublanguages,
`
`users still must have detailed knowledge ofthe schema to obtain needed information from a
`
`database since one can design many different schemas to represent the storage of a given
`
`collection ofinformation. For example, in an elecfonic cofllmerce system, product information,
`
`such as product SKU, product name, product description, price, and tar< code, may be stored
`
`in a single table within a relational database. In another elecfronic commerce system, product
`
`SKU, product name, description, and tax code may be stored in one table while product SKU
`
`and product price are stored in a separate table. In this situation, a SQL query designed to
`
`retrieve aproductprice from adatabase ofthe first electronic commerce systemisnotuseful
`
`for refieving the price for the same product in the other electronic system's database because
`
`the differences in schemasrequiretheuse ofdifferent SQL queriestoretrieveproductprice.
`
`As a consequence, developers of retail applications accessing product information from
`
`relational databases may have to adapt their SQL queries to each individual schema. This, in
`
`1 2 aJ
`
`4 5 6 - 8 9
`
`10
`
`11
`
`l2
`
`l3
`
`I4
`
`15
`
`t6
`
`t7
`
`18
`
`t9
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`t".-
`
`lr
`l*i
`
`,::! i
`i:
`
`i:
`
`Ex. 1003 / Page 9 of 328
`
`
`
`Dockcl 5473IPTO Fililgs/Spc.upd
`
`tum, prevents their applications from being used in environments where there are a wide variety
`
`of databases having different schemas, such as the World Wide Web.
`
`Afurtherproblemwithconventional searchengines is atendencyto retumverylarge
`amounts of data, or to require the search parameters to be narrowed. When large amounts of
`
`data arepresented, the display may take many "pages" before all data is seen by the user. The
`
`time and expense involved in such a data review may be significant.
`
`Summary
`
`A Sort-on-the-Fly/Search-on-the-Fly search engine (hereafter, search-on-the-fly
`
`search engine) provides an intuitive means for searching databases, allowing a user to access
`
`data in the database without having to know anything about the database structure. A user
`
`selects a desired search term, andadatabase manager searches the database for all instances
`
`ofthe desired term, even if a specific file or table does not contain the instance. For example,
`
`ifauserwantsto searchthe databaseusingthename ofaspecific individual as adatabase€nfiy
`
`point, the database manager will search the database using the desired name, and will organize
`
`the searchresults so that all entries associatedwiththatname are displayed. The database
`
`neednothave a specific file (in a flat database) or atable (in arelational database) ofnames.
`
`The user may perform further on-the-fly searches to narrow or focus the search results, or for
`
`otherreasons. Forexample,givensearchresultsforallnamesthatincludethename"Smith,"
`
`the user may then decide to search for all "smiths" that include an association to an address in
`
`New Jersey. The search-on-the-fly search engine then conducts a further search using this
`
`criteria and produces a second search result. Further na:rowing or broadening ofthe search
`
`arepermitted, withthe search-on-the-fly search enginereturningresultsbased on anynew
`
`criteria.
`
`In an embodiment, the search-on-the-fly search engine uses graphical user interfaces
`
`(GLII$ and one or more icons to make the search process as efficient as possible. The GIIIs
`
`may incorporate one or more pull down menus of available search terms. As a user selects an
`
`item from a firstpulldownmenu, a subsequentpulldownmenu displays choices that are
`
`1 2 aJ 4
`
`5 6
`
`8 9
`
`10
`
`11
`
`t2
`
`13
`
`t4
`
`15
`
`I6
`
`t7
`
`18
`
`T9
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`t,,-!
`
`,.;i;
`ii
`
`-3-
`
`|. l
`
`{-
`
`Ex. 1003 / Page 10 of 328
`
`
`
`Docket 5473/PTO Filings/Sp@.wpd
`
`available for searching. The process continues until the search engine has displayed a discrete
`
`data entry from the database. The pulldown menus are not pre-formatted. Instead, the
`
`pulldownmenus are created "on-the-fly''as the user steps through the searchprocess. Thus,
`
`the search-on-the-fly search engine is inherently intuitive, and allows a user with little or no
`
`knowledge of the database contents, its organization, or a search engine search routine to
`
`execute comprehensive searches that return generally accurate results.
`
`The search-on-the-flysearchengine also semches onkeywords specifiedbytheuser.
`
`The search-on-the-fly search engine can be used to exclude certain items. The search-on-the-
`
`fly search engine incorporates other advanced features such as saving search results by
`
`attaching a cookie to a user's computer, and associating icons with the search results.
`
`The search-on-the-fly search engine maybe usedwithboth internal and external
`
`databases. For example, the search-on-the-fly search engine may be used with a company
`
`intemal database and one or more databases accessible through the Internet.
`
`The search-on-the-fly semch engine is user-friendly. With one interface, many different
`
`types of databases or database schemas may be searched or sorted.
`
`Finally, the search-on-the-fly technique, and other techniques discussed above may be
`
`usedinconjunctionwithamethodofdoingbusiness,particularlyabusinessmethodthatuses
`
`the Internet as a communications backbone.
`
`Description of the Drawings
`
`The detailed description will refer to the following figures, in which like numerals refer
`
`to like objects, and in which:
`
`Figure 1 is ablock diagram of a system that uses a search-on-the-fly/sort-on-the-fly
`
`search engine;
`
`Figure 2 is another overall block diagram of the system of Figure 1;
`Figure 3 is a detailed block diagram of the search engine used with the system of
`
`Figure 2;
`
`Figure 4 is an example of a search-on-the-fly using the search engine of Figure 3;
`
`1 2 J 4 5 6
`
`6 9
`
`10
`
`11
`
`t2
`
`13
`
`l4
`
`15
`
`t6
`
`t7
`
`18
`
`t9
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`. t-:
`
`!"*
`
`il
`ti
`
`i:i i
`t.:
`
`-4-
`
`]
`
`Ex. 1003 / Page 11 of 328
`
`
`
`D@kct 5473mO Filitrgyspcc.wpd
`
`Figures 5 - 9 are detailed block diagrams of components of the search engine of
`
`Figure 3;
`
`Figure 10 is another example ofa search-on-the-fly using the search engine of Figure
`
`3;
`
`Figures 11 - 15b are additional examples of a search-on-the-fly using the search
`
`engine of Figure 3;
`
`Figures 16 -20 are flow charts illustrating operations of the search engine ofFigure
`
`3;
`
`Figure 21 illustrates a further function of the search engine of Figure 3 in which
`
`results of more than one search are combined; and
`
`Figures 22 - 26 illustrate graphical user interfaces that may be displayed in
`
`conjunction with operation of the system of Figure 1.
`
`Detailed Description
`
`A sort-on-the-fly/search-on-the-fly search engine (hereafter, search-on-the-fly search
`
`engine) provides an intuitive means for searching various types of databases, allowing a user
`
`to access datainthe databasewithouthavingto know anything aboutthe database structure.
`
`A user selects a desired search term, and adatabase manager searches the database for all
`
`instances ofthe desired term, even if a specific file or table does not contain the instance. For
`
`example, if a user wants to search the database using the name of a specific individual as a
`
`database entrypoint, the databasemanagerwill searchthe database usingthe desiredname,
`
`and will organize the search results so that all entries associated with that name are displayed.
`
`The database need not have a specific file (in a flat database) or a table (in a relational
`
`database) ofnames. The usermayperform further on-the-fly searches to narrow the search
`
`results, or for other reasons. The search engine the,n conducts a further search using this criteria
`
`and produces a second search result. Further narrowing or broadening of the search are
`
`permitted, with the search engine retuming results based on any new criteria.
`
`1 2 a 4 5 6
`
`8 9
`
`10
`
`l1
`
`t2
`
`13
`
`T4
`
`15
`
`T6
`
`17
`
`18
`
`t9
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`ti
`
`,!;
`
`ii
`
`,,x;
`
`Ex. 1003 / Page 12 of 328
`
`
`
`Dockct 5473FTO Filitrgyspec.wpd
`
`Figure I is ablock diagram of a system 10 that uses the search-on-the-fly search
`
`engine. h Figure I , a database 12 is accessed using a hardware/software interface device 100
`
`to provide data to a user terminal 14. Additional databases I 3 and 1 5 may also be accessed
`
`bytheterminal 14usingthedevice 100. Thedatabases 12,13 and l5mayusedifferent
`
`schemas, or may use a same schema. As will be described later, the device 100 may include
`
`the search-on-the-fly search englne. In an altemative efirbodiment, the search-on-the-fly search
`
`engine may be co-located with ttre terminal 14. In yet another ernbodiment, the search-on-the-
`
`fly search engine may be incorporated into the structure of one or more ofthe databases 12,
`
`1 3 and 1 5. The device 1 00 may interface with any one or more of the databases 12, 13 and
`15 using a network connection such as through the Intemet, for example. Other
`
`communicationsmediumsmay alsobeusedbetweentheterminal 14,thedevice 100 and any
`
`one or more of the databases 12, 1 3 and 1 5 . These mediums may include the public switched
`telephone network @STN), cable television delivery networks, Integrated Services Digital
`Networks (ISDN), digital subscriber lines @SL), wireless means, including microwave and
`
`radio communications networks, satellito distibutionnetworks, and any othermedium capable
`
`of carrying digital data.
`
`The system shown in Figure 1 is but one ofmanypossible variations. The search-on-
`
`the-fly search engine could also be incorporated within a single computer, such as apersonal
`
`computer, a computer network with a host server and one or more user stations, an intranet,
`
`and an Internet-based system, as shown in Fi gwe2. Referring again to Figure 2, the terminal
`
`14 maybe anydevice capable ofdisplayingdigital dataincludinghandhelddevices, cellular
`
`phones, geosynchronous positioning satellite (GPS) devices, wrist-worn devices, interactive
`
`phone devices, household appliances, televisions, television set top boxes, handheld computers,
`
`and other computers.
`
`Figure 3 is adetailedblockdiagramofanexemplarysearch-on-the-flysearch
`
`engine
`
`1 25. The search engine 125 includes a request analyzer 1 30 that receives search requests 1 14
`
`from the terminal 14 (not shown in Figure 3) and sends out updated requests I I 5 to a query
`
`-6-
`
`I 2 J 4 5 6
`
`8 9
`
`10
`
`11
`
`12
`
`13
`
`t4
`
`15
`
`16
`
`17
`
`18
`
`t9
`
`20
`
`2l
`
`22
`
`23
`
`aA
`
`25
`
`26
`
`27
`
`'tti
`
`l:
`
`li
`i!
`
`t:
`
`Ex. 1003 / Page 13 of 328
`
`
`
`D@kct J47!/PTO Filirgs/Sp@.wpd
`
`generator 150. A status control 140 receives a status update signal 116 and arequest status
`
`controlsignal ll8andsendsoutarequeststatusresponse
`
`l19totherequestanalyzerl30.
`
`The status contol I 40 also keeps track ofsearch cycles, that is, the nurnber ofsearch iterations
`
`performed. The query generator 150 receives the updated requests 1 15 from the request
`analyzer l30andsendsadatabaseaccesssignal l5l toadatabasedriverlT0. Thequery
`
`generatorl50receivesresults l53ofasearchofthedatabasel?(notshowninFigure3)from
`
`the database driver 170. The query generator 150 provides a display signall7 5 to the terminal
`
`14. ThedatabasedriverlT0sendsadatabaseaccesssignallTltothedatabase12.Ftnally,
`
`a database qualifier L 60 receives information 1 6 I from the database driv er 17 0 and provides
`a list 163 of available data fields from the database 12. As will be described later, the list of
`
`available data fields 1 63 may be displayed to a user at the terminal 14, andmay be sorted and
`
`processed using the request analyzer 130 in conjunction with the database qualifier I 60. The
`
`database qualifier 160 also receives search information and other commands I 3 I from the
`
`request analyzer 130.
`
`The search e,ngine I 25 may identify a database schema by simply using a tial and error
`
`process. Altematively,thesearchenginel}Smayuseothertechniquesknowintheart. Such
`
`techniques are described, for example, in U.S. Patent 5,522,066,"Interface for Accessing
`
`Multiple Records Stored in Different File System Formats," and U.S. Patent 5,974,407,
`
`"Method and Apparatus for Implementing a Hierarchical Database Management System
`
`(FIDBMS) Using a Relationat Database Management System (RDBMS) ad the Implementing
`
`Apparatus," the disclosures of which is hereby incorporated by reference.
`
`The search engine 125 provides search-on-the-fly search capabilities and more
`
`conventional search capabilities. In either case, the search engine I25 may perform a
`
`preliminary database access function to determine ifthe user has access to the database 12.
`
`The search engine 125 also determines the database schema to decide if the schema is
`
`compatible with the user's data processing system. Ifthe database schema is not compatible
`
`with the user's processing system, the search en glne 725 may attempt to perform necessary
`
`n
`
`1 2 aJ 4 5 6
`
`8 9
`
`10
`
`11
`
`12
`
`13
`
`t4
`
`15
`
`t6
`
`t7
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`;r
`
`'rU
`
`I'*
`
`j:
`
`'t
`
`Ex. 1003 / Page 14 of 328
`
`
`
`Dockct 54?3/PTO FililgYsp@.wpd
`
`translations so that the user at the terminal 74may access and view data in the database 12.
`Altematively, the search engine I25 may provide a prompt for the user indicating
`
`incompatibility between the terminal 14 and a selected database.
`The search engine 125 may conduct a search using one or more search cycles. A
`
`search cycle includes receipt of a request 1 14, any necessary formatting ofthe request 1 14,
`
`and any necessary truncation steps. The search cycle ends when a result list 1 75 is provided
`
`to theterminaM. The searchengnel25 mayretain astatus ofeachpast andcurrent search
`
`cycle so that the user can modify the search at a later time. The user may also use this feature
`
`ofretaining a status ofpast and current search cycles to combine results ofmultiple searches,
`
`using, forexample, aBooleanAND function, aBooleanORfunction, orotherlogicfi.nction.
`
`The above listed functions will be described in more detail later.
`
`The search-on-the-fly fi.rnction ofthe search engne 125 begins by determining available
`
`data fields ofthe database 12. The database l2mayhave its data organized in one or more
`
`data fields, tables, or other structures, and each such data field may be identified by a data field
`
`descriptor. In many cases, the data field descriptor includes enough text for the user at the
`
`terminal 14 to determine the general contents ofthe data field. The list of data fields may then
`
`be presented at the terminal l4,for example, in apull down list. An example of such a data
`
`fieldresult listis showninFigure4, whichisfromafederaldatabase showing datarelatedto
`managed health care organizations. This database is available at
`hfil ltobaccopapers.org/dnld.htm. In Figure 4, the first data field listed is '?lanType," which
`is shown in result list 1 56. Other data field descriptors show the general categories of data in
`
`the database.
`
`Using the terminal 14, the user may select one of the data field descriptors to be
`
`searched. For example, the user could select " city." If a number of entries, or records, in the
`
`city data field is short, a further result list of complete city names may be displayed. If the
`
`entries are too numerous to be displayed within a standard screen size, for example, the search
`
`engine I25 may,in an iterative fashion, attempt to reduce, or truncate, the result list until the
`
`-8-
`
`1 2 aJ 4 5 6
`
`8 9
`
`10
`
`11
`
`t2
`
`13
`
`T4
`
`15
`
`T6
`
`t7
`
`18
`
`T9
`
`20
`
`21
`
`22
`
`ZJ
`
`1ALA
`
`25
`
`26
`
`27
`
`It
`
`iri i
`
`i::i
`
`"*'
`t",*
`
`ti
`
`1'1
`
`Ex. 1003 / Page 15 of 328
`
`
`
`Docke! 5473PTO FiliDdspec.wpd
`
`result list may be displayed. In the example shown in Figure 4, entries in the city data field are
`
`sonumerous (thedatabaseincludes allU.S. citiesttrathaveamanagedhealthcareorganization)
`
`thatthe searchenglne 125 hasproduced aresultlist 157 that shows only afirst letterofthe city.
`
`Basedonthe availabledatabasedatafields, theusermaythenperform afurthersearch-on-the-
`fly. In this case, the user may choose cities whose first initial is 'N." The search en gine I25
`thenretums aresult list 158 ofcities whose names start withthe letter'1{." Because inthis
`
`instance the result list 1 5 8 is short, no further truncation is necessary to produce a manageable
`
`list.
`
`Figure 5 is a more detailed block diagram of the request analyzer I 3 0. A protocol
`
`analyzerl33 receivestherequest 114 andprovides anoutput 135 to aconstaintcollator 136.
`
`The protocolanalyzer 133 examines thereceivedrequest 114, determines a format ofthe
`
`request I 14, and performs any necessary tanslations to make the request format compatible
`with the database to be accessed. Ifthe database to be accessed by the terminal 14 is part of
`a same computer system as the terminal 14, then the protocol analyzer 133 may not be
`
`required to perform any translations or to reformat the request 114. If the database to be
`
`accessed is not part ofthe same computer system as the terminal 14, then the protocol an alyzer
`
`133 may be required to reformat the request 114. The reformattingmay be needed, for
`
`example, when arequest I 14 is transmitted over anetwork, such as the Intemet, to a database
`
`coupled to the network.
`
`The constraint collator 1 3 6 provides the updated request I 1 5 (which may be an initial
`
`request, or a subsequent request) to the query generator I 50. The constraint collator I 36 is
`
`responsibleforinterpretingtherequestl14. Theconstaintcollatorl36performsthisfunction
`
`by comparing the request 114 against information stored in the status control 140. In
`
`p articular, the constraint collator 1 3 6 sends the request status conftol signal 1 I 8 to the status
`
`control 1 40 and receives the request status response 1 I 9. The constraint collator 1 3 6 then
`
`compares the request status response 1 19 to constraint information provided with ttre request
`
`1 14 to determine if the constraint status should be updated (e.g., because the request I 14
`
`I 2
`
`aJ
`
`4 5 6 - 8 9
`
`10
`
`11
`
`T2
`
`13
`
`T4
`
`15
`
`I6
`
`17
`
`18
`
`r9
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`ii
`
`i:
`
`ti
`
`1'*i
`
`-9-
`
`/L'
`
`Ex. 1003 / Page 16 of 328
`
`
`
`Dockct 54?3/pTO FititrSyspcc.nld
`
`j
`
`includes anew constaint)' In an enrbodiment, the constaint collator 136 compares consfoaint
`information in a current request 1 14 to consftaint information residing in the status contol 140,
`and ifthe current request 1 14 includes a new constraint, such as a new narowing request (for
`example' when the user clicks, touches orpoints over a field shown in a last search cycle), then
`the constraint collator 136 adds the updated information and sends the updated request I l5
`to the querygenerator 150' Ifthe constraint stafus shouldbe updated, the constraint collator
`136 sends the status update 118 to the status control 140. If the request 114 is a refresh
`request' the constraint collator 1 36 sends a reset command 1 3 1 to the database qualifier 1 60.
`Theupdatedrequest 115 (possiblywithanewconstaint) is thensentto th equery anaryzer 150
`for fuither processing.
`Figure 6 is a block diagram ofthe query generator I 50. The overall functions ofthe
`query generator 1 50 are to scan a database, such as the database 12, using the database driver
`1 70' and to collect search results based on constraints supplied by the request analyzer I 3 0.
`The query generator 150 then returns the search results 175 tothe terminal 14.
`The query generator 1 50 includes a truncator 152 and,adrspatcher 1 54. The truncator
`I 52 receives the updated request 1 1 5, including a new constain! ifapplicable. The truncator
`I 52 creates new queries, based on new conskaints, and applies the new requests I 5 I to the
`database 12 using the database dri ver 170. The truncato r r52may include a variable limit 155
`that is set' for example, according to a capacityofthe termin ai 14 tadisplay the search results
`T7 5 ' rf dataretrieved from the database 12 exceed the limit value, the truncat or l52adjusts
`a size (e'g'' anumberofenties orrecords) ofthe datauntil adiqplayableresult listis achieved.
`one method ofadjusting the size is by cycling (looping). other methods may also be used to
`adjust the size ofthe result list. For example, the terminal 14 may be limited to displ ayng2'
`lines ofdata (entries, records) from the database 12. The trun cator t52will cycle until the
`displayed result list is at most 20 lines. In an embodiment, the truncation prccess used by the
`truncator 1 52 assumes that ifthe user requests all values in a particular data field from the
`database 12' andthereareno otherconshaintsprovidedwiththerequest l 14, andifthesize
`
`I 2 J 4 5 6 1 8 9
`
`10
`
`11
`
`T2
`
`l3
`
`t4
`
`15
`
`I6
`
`t7
`
`18
`
`t9
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`t"=i
`
`i,,.:
`
`l'*
`
`,!
`ti
`
`-10-
`
`tf
`
`Ex. 1003 / Page 17 of 328
`
`
`
`Docket 5473/PTO FiliDgYsp@.wpd
`
`ofthe resulting result list is larger than some numeric parameter related to a display size ofthe
`
`terminal 14, then the constaints may be modified by the tuncator I 52 so that the result list can
`
`accommodated (e. g., displayed on one page) by the term inal | 4. For example, instead of a
`
`fuIl name of a city, some part ofthe name - the first n letters - is checked against the database
`
`12 agatgand n is reduced until the result list is small enough for the capacity ofthe terminal 14.
`
`Ifthe maximum number of displayable results is three (3), and the datab ase 12 contains the
`
`namesofsixcities"ArmandiaArmonk,NewOrleans,NewYork,Riverhead,Riverdale,"then
`
`the first attempt to 'tesolve" the result list will stop after aresult list display is created with the
`
`fulIname of the cities:
`
`1 2 aJ 4
`
`5 6 7 8 9
`
`10
`
`Armandia, Armonk, New Orleans... (the limit was reached)
`
`11
`
`12
`
`14
`
`15
`
`,,*
`1!
`t..n 13
`irl
`l,u
`:*
`j:3
`r't
`lr
`Io
`r.I 17
`l,ii
`ii}
`
`,"
`
`18
`
`19
`
`20
`
`2l
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`Try again with 7 characters:
`
`Armandia, Armonk, New Orl, New Yor, (limit reached again)
`
`Again with 5 characters:
`
`Armandia, Armonk, New O, New Y, (limit reached again)
`
`Again with 3 characters:
`
`Arm(...),New(...),Riv(...). Theseresultsmaynowbedisplayedontheterminall{. The
`
`display of Arm, New, Riv can then be used to conduct a further search-on-the-fly. For
`
`example, a user could then select Riv for a further search-on-the-fly. The result list returned
`
`would then list two cities, namely Riverhead and Riverdale.
`
`In another embodiment, a fixed format is imposed such that all queries generated
`
`against a database will have preset limits corresponding to the capacity of the terminal 14.
`
`In yet another embodiment, the truncator 1 52 may adjust the fiel