`Neal et al.
`
`I lllll llllllll Ill lllll lllll lllll lllll lllll 111111111111111111111111111111111
`US006324534Bl
`US 6,324,534 Bl
`Nov. 27, 2001
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) SEQUENTIAL SUBSET CATALOG SEARCH
`ENGINE
`
`(75)
`
`Inventors: Michael Renn Neal, Superior; James
`Michael Wilmsen, Westminster;
`Christopher Wade Beall, Lafayette, all
`of CO (US)
`
`(73) Assignee: Requisite Technology, Inc.,
`Westminster, CO (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/393,994
`
`(22) Filed:
`
`Sep. 10, 1999
`
`Int. Cl.7 ...................................................... G06F 17/30
`(51)
`(52) U.S. Cl. ................................... 707/3; 707/1; 707/102;
`707/103; 706/12; 706/45; 709/218; 709/224;
`709/245
`(58) Field of Search ..................................... 345/419, 450,
`345/850, 853, 854; 707/1, 2, 3, 4, 5, 6,
`10, 100, 101, 102, 205, 513; 709/224, 218,
`245; 706/12, 45
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`4,468,728 * 8/1984 Wang ....................................... 707/1
`5,630,125 * 5/1997 Zellweger ............................ 707/103
`5,706,497 * 1/1998 Takahashi et al. ....................... 707/5
`5,781,772 * 7/1998 Wilkinson, III et al. ................ 707/3
`5,806,061 * 9/1998 Chaudhuri et al. ...................... 707/3
`5,832,526 * 11/1998 Schuyler .............................. 707/205
`5,924,090 * 7/1999 Krellenstein ............................. 707/5
`
`(List continued on next page.)
`
`OIBER PUBLICATIONS
`
`Kao, David et al., "Efficient Proximity Search in Multivari(cid:173)
`ate Data", Proceedings of the Tenth International Confer(cid:173)
`ence on Scientific and Statistical Database Management, Jul.
`1-3, 1998, pp. 145-154.*
`
`Lee, Jinho et al., "Integrating Structured Data and Text: A
`Multi-dimensional Approach", Proceedings of the 2000
`International Conference on Information Technology: Cod(cid:173)
`ing and Computing, Mar. 27-29, 2000, pp. 264--269.*
`
`Park, Sanghyun et al., "Efficient Searches for Similar Sub(cid:173)
`sequences of Different Lengths in Sequence Databases",
`Proceedings of the 16'h International Conference on Data
`Engineering, Feb. 29 -Mar. 3, 2000, pp. 23-32.*
`
`Primary Examiner---Hosain T. Alam
`Assistant Examiner-Shahid Alam
`(74) Attorney, Agent, or Firm-Blakely, Sokoloff, Taylor &
`Zafman LLP
`
`(57)
`
`ABSTRACT
`
`An electronic catalog search engine is configurable to opti(cid:173)
`mize the search process by identifying the desired item from
`the most advantageous supplier, while efficiently utilizing
`computing resources. The search engine comprises a con(cid:173)
`figurable search and data subset creation mechanism. The
`system accepts search terms from a user, and then executes
`a sequence of search strategies on subsets of the database
`which may include a proximity search, a word count search,
`and a fuzzy logic search. Subsets can be searched in any
`order and different search strategies can be applied to
`different subsets. The sequences are terminated when search
`steps have uncovered at least one match. Each database
`entry has a corresponding product category. A list of cat(cid:173)
`egories from each of the matching products is dynamically
`compiled and displayed to the user. The user can page
`through the list of displayed matches, or alternatively can
`create a subset of the list by selecting only the items within
`one of the categories. In addition, the user can further refine
`the list of items by selecting those items having a particular
`attribute. The invention has the advantage that users with a
`wide range of skills and/or familiarity with products can
`quickly find the products that they need. The system has the
`additional feature of creating electronic requisitions for the
`products listed in the database.
`
`13 Claims, 3 Drawing Sheets
`
`INPUT SEARCH TER~1 (Si
`
`r2oo
`
`"" \
`
`SEA~~~~~SULT
`
`226___,--~
`
`
`
`US 6,324,534 Bl
`Page 2
`
`U.S. PATENT DOCUMENTS
`5,995,971 * 11/1999 Douceur et al. ..................... 707/102
`6,012,053 * 1/2000 Pant et al. ................................ 707/3
`6,014,659 * 1/2000 Wilkinson, III et al. ................ 707/3
`6,018,735 * 1/2000 Hunter ..................................... 707/5
`6,026,398 * 2/2000 Brown et al. ............................ 707/5
`
`6,111,578 * 8/2000 Tesler ................................... 345/356
`6,125,361 * 9/2000 Chakrabarti et al. .................... 707/3
`6,157,922 * 12/2000 Vaughan ................................. 706/46
`6,230,154 * 5/2001 Raz et al. ................................. 707/3
`6,259,451 * 7/2001 Tesler ................................... 345/419
`* cited by examiner
`
`
`
`18
`
`12
`
`WEB BROWSER
`- HTML 3.2
`- JAVASCRIPT 1.1
`
`_ HTIP
`
`~
`
`WEB
`SERVER
`(SERVLET
`SUPPORT)
`
`SERVLETS
`
`-
`
`JDBC
`
`--...-
`
`-JAVAAPI
`-QUERIES
`- HTMUJAVNJAVASCRIPT
`INTERFACE GENERATION
`
`FIG. 1
`
`ORACLE
`8
`
`CONTEXT I
`
`CATALOG
`STRUCTURE
`AND
`V- CONTENT
`14__/
`
`CLASSIFICATION,
`PARAMETRIC,
`MANUFACTURER,
`THESAURI TEXT
`SEARCH DATA
`
`16
`
`d •
`\JJ.
`•
`~
`~ ......
`~ = ......
`
`z
`0
`~
`N
`~-..J
`
`N c c
`'"""'
`
`'Jl =(cid:173)~
`~ .....
`'"""' 0 .....,
`
`~
`
`e
`
`rJ'J.
`O'I
`~
`N
`.i;;..
`11.
`~
`.i;;..
`~
`lo-"
`
`
`
`U.S. Patent
`
`Nov. 27, 2001
`
`Sheet 2 of 3
`
`US 6,324,534 Bl
`
`FIG. 2
`
`~200
`
`202 ~ INPUT SEARCH TERM(S)
`
`204...r-
`
`~
`
`~ (DATA SET)1. (SEARCH METHODOLOGY)1
`206
`
`208...r- NO MATCH
`'
`
`...r-
`210
`
`(DATA SET)2, (SEARCH METHODOLOGY)2
`
`212...r- NO MATCH
`..
`
`214 ~ (DATA SETb, (SEARCH METHODOLOGY)3
`
`MATCH
`
`MATCH
`
`MATCH
`
`216~ NO MATCH
`r .
`218_,.._ .
`
`220_,- NO MATCH
`
`~
`
`222 ...,....-
`
`REPORT NEGATIVE SEARCH RESULT
`
`228
`\
`
`230
`\
`
`232
`\
`
`~
`
`~
`
`234...,,--
`
`236
`\
`
`REPORT
`SEARCH RESULT
`
`-
`
`-
`
`224...r-
`
`-
`
`~
`
`1~
`
`STOP
`
`226
`
`
`
`U.S. Patent
`
`Nov. 27, 2001
`
`Sheet 3 of 3
`
`US 6,324,534 Bl
`
`FIG. 3
`
`300
`
`( Compare )
`_
`_
`
`( View Cart )
`(..-A-d-d -1o-Ca_rt __ )
`_
`_ _
`_
`
`\ 310
`
`~co_n_du_it_s co_nn_e_cto_rs ____ ~ (SEARCH)
`Select a category to expand your search:
`(--V-iew-M-atc-h-in-g -Ca-te-g-or-ies-.-. ~. ) ( Product Index )
`(All Categories)
`304 ~306
`{
`Items: 1-10 of At Least 100 Items that exactly
`matches one or more of the words.
`302-.,,_
`
`@Table Display 0 Visual Display
`
`Select
`
`Category
`
`( Mfg Name ) (Mfg Part Num) Details
`L>."V
`L>."V
`
`I
`
`0
`
`onduit
`Connectors
`
`THOMAS&
`BETTS
`CORP
`
`300TB
`
`Ill
`
`D
`
`Conduit
`Connectors
`
`THOMAS&
`BETTS
`CORP
`
`302TB
`
`DJ
`
`D
`
`Conduit
`Connectors
`
`THOMAS&
`BETTS
`CORP
`
`304
`
`III
`
`0
`
`0
`
`Conduit
`Connectors
`
`THOMAS&
`BETTS
`CORP
`
`306
`
`Ill
`
`Conduit
`Connectors
`
`THOMAS&
`BETTS
`CORP
`
`HC110
`
`Ill
`
`Description
`.6..V
`
`Flexible
`Metal
`Connector
`Tile Bite
`3/8" 1/2"
`To 0.437"
`To 0.656"
`Opening
`
`Flexible
`Metal
`Connector
`Tile Bite
`1/2" 0.750"
`To 0.937"
`Opening
`
`Flexible
`Metal
`Connector
`Tile Bite
`3/4" 0.906"
`To 1.093"
`Opening
`
`Flexible
`Metal
`Connector
`Tile Bite 1"
`1.250" To
`1.468"
`Opening
`
`Set Screw
`Connector 2
`Screw Zinc
`Plated Steel
`For4"
`
`(Supp Name)
`L>."V
`
`Grainger
`
`Grainger
`
`Grainger
`
`Grainger
`
`Grainger
`
`NEXT
`
`308
`
`
`
`US 6,324,534 Bl
`
`1
`SEQUENTIAL SUBSET CATALOG SEARCH
`ENGINE
`
`BACKGROUND OF THE INVENTION
`
`15
`
`1. Field of the Invention
`The present invention relates to computer software for
`database manipulation, and more particularly to a system
`and method for cascading search methodologies on selected
`sets of data from one or more electronic catalogs.
`2. Background of the Invention
`Searchable electronic catalogs are commonly used in
`support of various electronic commerce and purchasing
`functions. These catalogs must have a user interface for
`selectively retrieving data records. Engineers desire to make
`the user interfaces as simple as possible to operate, because
`complexity of the user interface can be a detriment to sales
`from the catalog. Simplicity becomes particularly important
`when the catalog is intended to be accessed by users with
`varying levels of skill or training. In particular, the results of 20
`the search should quickly and easily direct the user to the
`most desirable supplier or source for the requested goods.
`User interfaces that are simple to operate should have the
`capability to handle almost any type of user input. In the case
`of an electronic catalog, if the user knows the exact part
`number of the desired product and enters the part number
`correctly into the user interface, then the database search
`engine will quickly identify the desired record from the
`database based on an exact match with the search string. In
`a more general case, the user may have only partial infor(cid:173)
`mation about the desired product, or may incorrectly type
`the search string.
`Similarly, the output of the search should be easy to
`understand. In an era when large accumulations of data are
`often available, there may be very large aggregations of
`catalog data in which to search and retrieve items. Ideally, a
`catalog search engine would have a mechanism for system(cid:173)
`atically searching through large electronic catalogs so that
`only the most relevant results are displayed to the user.
`An over-abundance of catalog data can be problematic for
`at least two reasons: (1) the desired item may be available
`from many different suppliers, which creates a needlessly
`confusing array of output options for the user; and (2)
`computer system resources are expended to needlessly
`search for the desired item in the entire catalog database
`when a smaller, faster search would have uncovered the item
`from a preferred supplier. Managing the output options
`available to a user may be is particularly important in a
`corporate context in which individual employees are given
`the option of ordering their own supplies. In such a system,
`managers may wish to define a particular hierarchy of
`suppliers and enforce that hierarchy on users by only dis(cid:173)
`playing the most desirable sources for items.
`Previous systems have not adequately addressed the prob- 55
`lems of searching large accumulations of catalog data and
`reporting the results in an efficient manner. Danish et al. in
`U.S. Pat. No. 5,715,444 disclose a process for identifying a
`single item from a family of items in a database. A feature
`screen and search process present the user with a guided 60
`nonclassification parametric search to identify matching
`items based upon user specified criteria and priorities. Also
`disclosed are a method and system appropriate in an Internet
`environment.
`Cochran et al. in U.S. Pat. Nos. 4,879,648 and 5,206,949 65
`disclose a method of variably displaying search terms in
`which two control inputs are used to select a plurality of
`
`2
`terms for a plurality of categories. A term in a visible
`position on the screen becomes a search term or a qualifier
`for other records in the database. The search results are
`dynamically formed on the basis of selected search terms.
`5 The search results can also be grouped in fixed or static lists.
`More recently, Aalbersberg in U.S. Pat. No. 5,946,678
`discloses a user interface for document retrieval in which
`each query word is displayed by means of a distinctive
`representation. In a subsequent results window, each docu-
`10 ment header or title is accompanied by an indicator which
`employs the same distinctive representation to directly indi(cid:173)
`cate to the user the relative contributions of the individual
`query words to each listed document. The distinctive rep(cid:173)
`resentation can take several forms, such as by a different
`color or by means of hatching or shading or by displayed
`icons.
`Efficiently searching through an electronic catalog has
`been the focus of much effort. Prior catalog search algo(cid:173)
`rithms typically employ one of two search strategies. The
`first strategy is a keyword search for selecting database
`records based on matching text strings. The second strategy
`is a classification search for selecting database records based
`on lists of classifications from which to narrow and select the
`database records. Each of the two search strategies has
`disadvantages that can make it difficult for users to find their
`25 desired database records.
`The keyword search strategy has the disadvantage that
`users must be familiar with the appropriate key word terms
`that are likely to yield the desired data records. In addition,
`30 it is not always possible to quickly collect groups of logi(cid:173)
`cally related data records. If a close match is found, but it is
`not the desired exact match, it is not always possible to
`utilize the information in the close match to quickly identify
`all similar data records. A keyword search engine does not
`35 typically have a "more-like-this" function that operates on
`close matches to identify similar items within the database.
`The classification search strategy can take advantage of a
`logical grouping of data records. This search strategy is best
`suited for finding data that break down logically into suc-
`40 cessively greater levels of detail. This search strategy is most
`effective when the data have been carefully edited and
`structured within a database. Finding a single relevant
`record can quickly lead to all other relevant records, as long
`as the grouping logic relates to the way in which the data are
`45 used. Thus, a "more-like-this" function can quickly identify
`all similarly classified records in the database.
`The disadvantage of the classification search strategy is
`that users may not always anticipate the proper classification
`of certain records, and may search the wrong categories for
`50 their desired database record. The user is tied to the logical
`structure of the data, and must learn to navigate the pre(cid:173)
`defined structure of the database in order to locate particular
`data records.
`Whether a search is conducted by keyword or classifica(cid:173)
`tion strategy, the focus is on finding a particular item. In
`some cases the item is available from more than one
`supplier. In other cases, there may be more than one different
`kind of item, available from more that one supplier, that will
`satisfy the user's needs. In any case, it would be desirable to
`further refine the search methodology so that the most
`advantageous suppler is quickly identified to the user. It
`would also be desirable to avoid the computer processing
`time that would otherwise be needlessly expended on
`searching through less desirable supplier catalogs when the
`item has already been found.
`It would be further desirable to have a simple user
`interface, both for inputting search terms and reviewing
`
`
`
`US 6,324,534 Bl
`
`3
`results. On the input side, the software should allow free(cid:173)
`form text searching, with no prerequisites for format or
`content. Thus, it would be desirable to have a system capable
`of identifying the database records most likely to be the
`desired choice of the user, even when user inputs a search
`string having misspelled terms, word fragments, or other
`characteristics of the item being sought. On the output side,
`the software should only display the most advantageous
`sources for items, especially when the items are available
`from many different sources.
`In many commercial situations, it would be advantageous
`to be able to configure the search behavior for a variety of
`factors. In addition to providing a simple user interface, it
`would be desirable to segment a database of searchable
`items into multiple tiers. The combination of search strategy
`and database segmentation would enable the identification
`of items from the most economical sources. It would also
`enable system managers to adjust the results based upon
`changing factors. Finally, such as system would efficiently
`use computing resources. These, and other technical and
`business aspects of catalog search engines, are the motivat(cid:173)
`ing factors for the invention that is described herein.
`
`SUMMARY OF THE INVENTION
`
`30
`
`4
`sequence of search algorithms when at least one database
`record satisfied the search criteria. In some embodiments of
`the invention, the algorithm may be expanded by compiling
`a unique list of classifications from each identified record to
`5 aid the user in further refining the search terms.
`The invention comprises a database along with a search
`engine. The database may consist of an aggregate of supplier
`catalogs, in which each data record further consists of
`category descriptions, manufacturer's name, manufacturer
`10 part number, short text description, and parametrically com(cid:173)
`posed descriptions. Each of the items within the data record
`may be organized by fields.
`The available search algorithms according to the present
`invention may comprise proximity searching, string
`15 matching, stemming, fuzzy logic, and soundex matching. In
`certain embodiments, multiple search algorithms may be
`performed on a data set. For example, if an exact match is
`found, the search halts when all exact matches have been
`identified, and there is no further recourse to other search
`20 algorithms. If no exact match is found, then the search terms
`are manipulated to identify strings with similar roots. If,
`again, no match is found, the search terms are tested further
`according to other algorithms, such as fuzzy logic and
`soundex, until a match is found or the search engine reaches
`25 its logical termination.
`One of the aspects of the search strategy is that the
`searchable terms include the predefined classification terms
`as well as other attributes and parameters of each catalog
`entry. This means that the freeform text input will show text
`string matches against any classification name or parametric
`name. This feature enhances the possibility of finding the
`desired data record based on the keyword search engine.
`Each catalog entry may have one or more associated
`classifications according to type, and a list of unified clas(cid:173)
`sifications may be compiled dynamically from the identified
`matches. Dynamic compilation refers to the process of
`continuously updating the list of classifications whenever
`new matches are identified within a data set. This insures
`that the list continuously and accurately reflects the range of
`classifications of the identified matches. The list is unified in
`the sense that each classification is listed only once, even
`when the identified matches have multiple records with the
`same classification. The classification list is presented to the
`45 user along with the list of matches as an aid to the user for
`further refining the search methodology.
`The invention has the unique aspect of allowing dynamic
`searching of subsets or blocks of databases with a combi(cid:173)
`nation of any of multiple search methodologies supported by
`the software. A system manager can specify which data sets
`or catalogs are searched first and in which sequence they are
`searched. Each block or data set of a particular catalog can
`be searched with a different strategy. A particular combina(cid:173)
`tion of search methodologies can be assigned to a user of the
`invention by name and password. Data suppliers also have
`the ability to request special priority for the searching of
`their data type.
`Those skilled in the art will recognize the benefits and
`objects of this invention, which include but are not limited
`to the following: providing a database search engine that can
`quickly and easily lead users to a desired database record;
`combining the benefits of keyword searching with the ben(cid:173)
`efits of classification searching; providing an interface that
`will process any type of user entry, including misspelled
`65 words and word fragments; increasing the efficiency of the
`search process by first searching in the most desirable data
`sets; and providing a search engine and database structure
`
`35
`
`40
`
`The present invention is a system and method for cas(cid:173)
`cading search methodologies on preselected segments, or
`sets, of data. Each data set is paired with one or more search
`strategies so that the overall effect is to supply the user with
`the most advantageous match to a keyword search. Search
`strategies may include one or more of the following: exact
`search, stem search, soundex search, and fuzzy logic search.
`Data sets may be preselected based on source, shipping
`availability, or any other business reason for choosing, one
`supplier or source over another.
`During a search, a user inputs one or more search terms
`to identify a desired item from an electronic catalog. The
`search engine of the present invention employs the desig(cid:173)
`nated search methodology upon its corresponding data set.
`The hierarchical order of the data sets is established by a
`system manager based on the desirability of procuring an
`item from a particular supplier or source. Once the item has
`been found, the search engine terminates its search, thereby
`saving the computing resources from needless searches
`through the remaining data sets.
`In one embodiment of the invention, the system is con(cid:173)
`figured to search first within a catalog (or data set) of items
`that are designated as in-house, and then to fail-over to a
`second tier catalog (or data set) of vendor-supplied items
`available for short-term delivery. If both searches fail to 50
`yield an acceptable result, the search engine may fail-over to
`special order suppliers with longer lead times for delivery.
`One advantage to the user is that the first search result will
`often be the most desirable option available.
`The text searching can be improved through the use of 55
`sequential search algorithms that are designed to maximize
`the chances of identifying the desired data records. For
`example, several different search algorithms can be
`employed upon the most desirable data set to increase the
`chances of finding an appropriate item within that data set. 60
`For less desirable sources, it may be advantageous to only
`search for exact matches of the search term.
`According to the present invention, a method of selecting
`data records in a catalog database comprises the following
`steps: inputting search terms to a user interface; testing the
`search terms against a sequence of data sets using search
`algorithms designated for each data set; and terminating the
`
`
`
`US 6,324,534 Bl
`
`5
`that maximizes the likelihood of finding the desired database
`records based on a simple user interface.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`These and other features and advantages of the present
`invention will become apparent from the following detailed
`description, taken in conjunction with the accompanying
`drawings, wherein:
`FIG. 1 is a block diagram representation of one embodi(cid:173)
`ment of an electronic catalog requisition system.
`FIG. 2 is a logic block diagram representation of a
`sequential search methodology according to the present
`invention.
`FIG. 3 is an example user interface according to one 15
`embodiment of the present invention.
`
`6
`user. Suppliers may compete with each other for a more
`advantageous position on the cascade of searchable data
`sets. In certain embodiments of the present invention, in
`which only the first exact match is displayed to the user, a
`5 supplier will not have to worry about head-to-head price
`comparisons with other suppliers for stock items.
`The type or format of each catalog in the database 14 may
`be varied as long as the catalog will respond appropriately
`to a text query from the software 10. For example, the
`10 catalog may reside within a relational database or may reside
`within an object-oriented database.
`Referring back to FIG. 1, the storage device 16 may be a
`disk drive, a tape drive, RAM, or any of the known computer
`data storage devices. The application server 12 may reside in
`a computer attached directly to the storage device 16, or
`alternatively may be connected to the storage device 16
`through a network. In each case, the application server 12
`queries the database 14 and directs the results to the work(cid:173)
`station 18.
`Software 10 is executed within the application server 12.
`The software 10 follows an algorithm 200 as shown in the
`logic block diagram of FIG. 2. The user inputs a search
`string, as shown in block 202. In the preferred embodiment,
`the search string is free-form, meaning that the string may be
`any combination of alphanumeric characters or search
`terms, and no particular syntax is required. Also in the
`preferred embodiment, the search string may comprise
`search terms in any order. For example, the search string
`could include the name of an item, a part number for an item,
`or any descriptive attribute of the item. The software 10 is
`designed to handle misspellings, word fragments, or any
`other string that may lead a user to find the desired product
`within the database 14.
`Once one or more search have been entered, the algorithm
`200 proceeds along the logical path 204 to a first search
`strategy shown by block 206. The search strategy consists of
`a data set and a search methodology. The first search
`methodology, for example an "exact string search," is
`applied to the first data set, for example a preferred supplier
`catalog. If the preferred supplier has the exact item, a match
`will be recognized by the algorithm 200 and the logic will
`proceed along schematic lines 228 and 234 until the results
`of the match are reported to the user in block 236. The
`45 algorithm then preferably terminates in block 226, although
`there may be additional steps associated with payment and
`order fulfillment.
`If the first search methodology, as applied to the first data
`set, does not yield a match, the algorithm 200 proceeds along
`schematic line 208 to the second search strategy in block
`210. The second search strategy has a second data set and a
`second search methodology. In general, there is no require(cid:173)
`ment that the second data set must be different from the first
`data set. For example, if the first search strategy in 206 failed
`because there was no exact string match, it may be desirable
`to perform a stem search on the same data set. In that way,
`the preferred supplier may have more than one chance of
`identifying the desired item within its catalog.
`Similarly, in the preferred embodiment there is no require(cid:173)
`ment that the second search methodology in 210 must be
`different from the first search methodology in 206. For
`example, if the first preferred supplier did not yield an exact
`string match to the input search term, the same search
`methodology could be applied to a second preferred suppli-
`65 er's catalog.
`A system manager implements the algorithm 200 by
`preselecting the data sets and search methodologies to yield
`
`30
`
`35
`
`40
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`FIG. 1 is a functional block diagram representation of an 20
`electronic catalog and automated purchase requisition sys(cid:173)
`tem. An application server 12 is connected to interact with
`a database 14 which resides in a computer memory storage
`device 16. Users of the system have workstations 18 that are
`connected to the application server 12 through a wide area 25
`network such as the Internet. Commands entered into the
`web browser cause information to be extracted from the
`database 14 and displayed at the workstation 18.
`The database 14 contains an electronic listing of products.
`The database 14 is constructed in a manner such that it can
`be subdivided, and each subdivision searched separately. For
`example, the subdivisions may be according to in-house
`items and out-of-house items. Alternatively, the subdivisions
`may be according to various suppliers, including the most
`favored suppliers, followed by other less-favored suppliers.
`In yet another embodiment, the subdivisions may be
`arranged according to the fastest delivery dates, such that if
`the same item is available from more than one supplier, the
`supplier with the fastest delivery date will be shown first to
`the user.
`The mechanism for subdividing the database may be any
`of the well-known mechanisms for identifying or grouping
`data records. The subdivisions need not be related to the
`physical storage location of the record within the database.
`For example, data sets may be created by having certain field
`values within the data record. This would be used, for
`example, to create a data set comprising all data records
`from a particular vendor. Alternatively, data sets may be
`created by grouping certain data records into files. In yet 50
`another embodiment, software objects may be used to
`encapsulate certain data to define sets.
`In one embodiment of the invention, the software 10 is
`configured to access one of several electronic catalogs in the
`database 14. The database 14 is typically an aggregate of 55
`product information from multiple suppliers. The same item
`may be listed several times in an aggregated catalog from
`different suppliers. According to the present invention, the
`more favored suppliers can be searched first in a hierarchy
`of cascading searchable data sets. The particular hierarchy is 60
`predefined by a system administrator based on the desirabil-
`ity of purchasing items from a particular supplier, or based
`on particular incentives that may be offered by a supplier for
`the privilege of being moved up the hierarchy.
`There are significant advantages to a supplier for having
`its catalog searched first, because in certain embodiments of
`the invention only the first exact match is reported to the
`
`
`
`US 6,324,534 Bl
`
`20
`
`35
`
`5
`
`7
`the most efficient business strategy. The ordering of the
`search strategies, or the particular data sets and search
`methodologies therein, can be updated as needed to reflect
`changing business conditions. For example, if a particular
`supplier offers a temporary incentive plan, it may be advan-
`tageous to temporarily move that supplier's data set (or
`catalog) to the top of the hierarchy in order to fulfill as many
`items as possible during the period of the promotion.
`Continuing with FIG. 2, if the second search strategy in
`210 fails to yield a match, the algorithm 200 continues along 10
`212 to the third search strategy in 214, and thereafter along
`line 216 until a match is found. The three vertical dots shown
`in 218 are meant to schematically illustrate that the number
`of search strategies is arbitrary.
`In the preferred embodiment, the system manager will 15
`expand the scope of the search strategies from "exact" string
`matches, along a continuum of search methodologies,
`including perhaps fuzzy logic strategies. In this context, a
`fuzzy logic algorithm may also be known in the art as a
`"word wheel" or other name associated with an algorithm
`for testing combinations and permutations of the alphanu(cid:173)
`meric characters in the search string. The intent of a fuzzy
`logic search is to identify products in the database 14 having
`any descriptive similarity to the search string. For example,
`a user who enters a search string having a typographical 25
`error will not generally find an exact match within the
`database 14, but a fuzzy logic algorithm may select the
`desired product on the basis of similarity with the search
`string. The purpose of expanding the search strategies is to
`avoid the situation wherein the search fails to identify the 30
`desired item from any data set, and thereby drops into
`logical block 222 a negative search result is reported to the
`user.
`The software 10 preferably has a single text box for search
`strings, shown as box 300 of FIG. 3. The example search
`string in box 300 is "bic pen red" which represents a
`combination of manufacturer name, classification, and
`attribute. It has been found that users desire the simplicity of
`typing strings at a single location, without differentiating
`whether the string represents a product name, a product
`manufacturer, or a product attribute. Alternatively, there may
`be separate text boxes for different types of search strings.
`The software 10 executes the algorithm 200 to identify the
`first data set that offers a red Bic pen. If the data sets are
`arranged such that the most preferable supplier is first, then 45
`the user will receive a positive search result from that
`preferable supplier. In this way, the system administrator can
`fulfill orders in the most efficient manner.
`The software 10 may also rank the degree of similarity
`between each matched database record with the search
`string. For example, records with a larger number of a