Abstract:
A shopping server proposal system includes a mechanism that enhances the online retailer&#39;s existing database system with the necessary information to provide the desired services. The existing catalog of items is analyzed based on a set of predefined rules for a given retail store. This analysis determines which of the items in the catalog are related to other items in the catalog. The result of this analysis includes new relations of the catalog items that are written into the retailer&#39;s existing database system. The mechanism for assembling this information, based on a set of predefined rules, is independent of the retailer or the retailer&#39;s industry. The provides retail businesses with a competitive edge by enabling them to offer automated shopping advice to solve the shoppers&#39; problems of finding related and matching items, and by providing a list of related items based on the selected item&#39;s properties.

Description:
FIELD OF THE INVENTION 
     The present invention relates to the field of electronic commerce (e-commerce), and it particularly relates to consumer-to-business transactions. More specifically, in the context of this invention, a business can be a retail store or a group of merchants whose retail items can be combined based on attributes such as colors, sizes, and style in fashion stores. The present invention is equally applicable to other stores that market, for example, hardware, tools, electronics, and other items. 
     BACKGROUND OF THE INVENTION 
     The World Wide Web (WWW) is comprised of an expansive network of interconnected computers upon which businesses, governments, groups, and individuals throughout the world maintain inter-linked computer files known as web pages. Shoppers navigate these pages by means of computer software programs commonly known as Internet browsers. Due to the vast number of WWW sites, many web pages have a redundancy of information or share a strong likeness in either function or title. The vastness of the unstructured WWW causes shoppers to rely primarily on Internet search engines to retrieve information or to locate businesses. These search engines use various means to determine the relevance of a shopper-defined search to the information retrieved. 
     The authors of web pages provide information known as metadata within the body of the hypertext markup language (HTML) document that defines the web pages. A computer software product known as a web crawler systematically accesses web pages by sequentially following hypertext links from page to page. The crawler indexes the pages for use by the search engines from information about a web page as provided by its address or Universal Resource Locator (URL), metadata, and other criteria found within the page. The crawler is run periodically to update previously stored data and to append information about newly created web pages. The information compiled by the crawler is stored in a metadata repository or database. The search engines search this repository to identify matches for the shopper-defined search rather than attempt to find matches in real time. 
     A typical search engine has an interface with a search window where the shopper enters an alphanumeric search expression or keywords. The search engine sifts through available web sites for the shopper&#39;s search terms, and returns the search of results in the form of HTML pages. Each search result includes a list of individual entries that have been identified by the search engine as satisfying the shopper&#39;s search expression. Each entry or “hit” may include a hyperlink that points to a Uniform Resource Locator (URL) location or web page. 
     Electronic shopping (or e-shopping) has been gaining popularity as the popularity of the World Wide Web increases. E-shopping continues to evolve from a means of providing an easy way of accessing (and publishing) information on the Internet to a virtual marketplace where almost every merchandise can be traded, as it is in the physical world. As more retail businesses market their merchandise over the WWW, it will become more important for a business to distinguish itself from the competition. One of the significant deficiencies of online retail stores is the amount of shopping advice they can offer. Typically, the shopper does not have access to a sales clerk to accompany him or her in finding the items of choice, or related and matching items. 
     For example, if the shopper is browsing in a regular real-world clothing store he or she can ask a sales clerk for assistance in finding items. The sales clerk can make recommendations of items that may match or enhance the chosen items. This type of advice is often missing in online shopping stores. Certain online stores try to compensate for this deficiency by offering online chat rooms as an additional service. However, online chat rooms require staffing thus added operational expense. There is therefore a need to automate the online service advice. 
     In addition, merchants may wish to perform “cross-selling” of goods and services, that is selling related and associated items in addition to the actual sale. In real-world shopping stores sales clerks are able to assist the shoppers by providing useful advice, which might result in additional sales. For instance, a sales clerk may recommend a shirt, and a tie, which match the selected trouser. Rather than selling only the trouser, the sales clerk will sell related additional items and increase the merchant&#39;s sales. As pointed out earlier, an Internet-based shopping site does not typically have the possibility of enhancing sales by utilizing cross-selling. 
     The following are exemplary attempts to provide personalized services in the field of the present invention. For a more detailed description of the services, reference is made to the corresponding web sites. 
     Broadvision provides solutions in the area of personalization, marketing and promotional tools for web sites. This company&#39;s web site enables companies to cross-sell items, that is, selling similar or related versions, or up-sell items, that is, newer versions, to shoppers based on previous purchases in their shopping basket, and communities of which they are members. The main focus and emphasis of Broadvision is an end-to-end application for rapid deployment and dynamic personalization of high transaction volume retail e-commerce sites. However, Broadvision does not use a rule-based approach to automatically generate linkage between different articles. 
     Dynamo Personalization Server is a rule-driven personalization platform based on the Dynamo Application Server. Dynamo Personalization Server allows targeting specific content to a particular user or group of users based on business rules created by business managers. It combines explicit user data from existing marketing databases with implicit information gathered on user behavior, and other related sources of information. According to the specifications of this product, it does not allow cross-selling based on rules regarding the items and does not offer enabling technology to enhance a database system to provide retail item associations. 
     The Rules-Based Merchandising engine of the Annuncio Bright product allows marketers to create a new program (for sales, marketing) based on their expertise. According to the product data sheet, the merchandising engine offers the following services: It enables marketers to apply their merchandising expertise to create successful programs. It further features a guided rules builder and supports many criteria, such as shopper profile, product, catalog, services, content. It also encourages mixing of criteria to create dynamic offers. 
     Though the merchandising engine of the Annuncio Bright product handles the creation of the rules, the result of the rule creation is not an association of items but a set of rules that define how items are related. Furthermore, this product provides and handles rules on the level of items and item categories, but not item attributes, with the items being still associated manually. It would be desirable to have a system and method that apply such a ruleset to an existing database. 
     The Blaze Advisor product focuses on the creation of “business rules” that are the basis of an application. It allows the creation of rules down to the level of item attributes. As with the rules-based merchandising engine of the Annuncio Bright product, which was discussed earlier, the result of the Blaze Advisor rule creation does not automatically enhance a database. Furthermore, since the rules created by the Blaze Advisor product are used during runtime, they are not independent of the underlying database system. As used herein, “runtime”, means the rules are applied while the program is executed. The alternative would be to precompute the result of applying the ruleset and then access its results during runtime. There is therefore still a need for a method that performs a pre-computation to write association information into a database such that the related items can be easily found and accessed during runtime. 
     SUMMARY OF THE INVENTION 
     It is one feature of the present invention to enable online retail businesses to offer automated online shopping advice based on the shopper&#39;s current browse or for-purchase selection. An online shopping site (or server) can make suggestions of the best match items for the shoppers&#39; current browse or for-purchase selections, potentially eliminating the need for personalized customer service, online chat advice, or store assistants. To this end, the system and method of the present invention automatically produce web pages or content that enhance the potential sale of selected items by associating other products that are linked via a pre-determined rule set, thus enhancing the shoppers&#39; purchasing experience. 
     It is another feature of the present invention to enable online retail businesses to offer online shopping advice based on the shoppers&#39; current browse or for-purchase selections. The online shopping site or server can suggest items that appropriately match or enhance the shoppers&#39; current browse or for-purchase selection. To this end, the present system and method focus on the automated association of items. As used herein an item can be described or characterized by a set of attributes. An existing rule set describes how items can be combined. The automated association enables retailer shopping web sites to offer shopping proposals based on these associations. The present invention describes how the retailers&#39; database system can be enhanced and modified to support the shopping proposal application, independent of the retailer, the retailer&#39;s industry or the retailer&#39;s database system. 
     The foregoing and other features and advantages of the present invention are realized by a shopping server proposal system and method that are generally comprised of a mechanism that enhances the online retailer&#39;s existing database system with the necessary information to provide the desired services. The existing catalog of items is analyzed based on a set of predefined rules for a given retail store (e.g. furniture, clothing, electronics, etc.). This analysis determines which of the items in the catalog are related to other items in the catalog. For example, one of the rules may define that any outdoor clothing item for men that is not underwear, can be combined with any other outdoor clothing item for men if the colors of the items match. The result of this analysis is a new set of relations of catalog items including a set of properties (e.g., color, size, category, etc.). These relations are written into the retailer&#39;s existing database system. The mechanism for assembling this information, based on a set of predefined rules, is independent of the retailer or the retailer&#39;s industry (e.g., furniture, clothing, electronics, etc.) by using intermediate formats. However, retailer specific customizations may be necessary. 
     The system utilizes additional information available during a shopper&#39;s shopping experience, i.e., when the shopper browses the online store and views a selection, to enable the online retailer to provide additional information to the shopper based on the user&#39;s browsing history or previous known online events of the same user. For example, if the shopper selects a shirt from the retailer&#39;s list of items, the retailer&#39;s server may return a web page containing information about the selected item. On a conventional web page rendering, the page only contains links to the retailer&#39;s catalog. However, according to the present invention, the page can contain information about related items, such as a matching pair of trousers, socks, etc. This additional information can be presented in a variety of ways. For example, this information can be incorporated into the Web page with the focus on the original selected item, or additional windows or animation can be used, to enhance the presentation of the additional information. 
     The present system and method provide the retail businesses with a competitive edge by enabling them to offer automated shopping advice to solve the users&#39; problems of finding related and matching items, and by providing a list of related items based on the selected item&#39;s properties (e.g., color, size, etc.). The system and method are expected to increase sales as shoppers are provided with additional opportunities to select and buy items. 
     Buyers are more likely to return to a site if they enjoy the shopping experience. Using the present system, shoppers are made aware of items they may not encounter in conventional online stores, by manually browsing and searching the inventory. Customer satisfaction is very likely to increase which will have a positive effect on the online traffic. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The various features of the present invention and the manner of attaining them will be described in greater detail with reference to the following description, claims, and drawings, wherein reference numerals are reused, where appropriate, to indicate a correspondence between the referenced items, and wherein: 
         FIG. 1  is a high level block diagram of an exemplary overall environment in which a shopping server proposal system of the present invention may be used; 
         FIG. 2  is a book diagram depicting the shopping server proposal system of  FIG. 1  in relation to an Internet service provider, a graphical user interface, and the World Wide Web; 
         FIG. 3  is a block diagram provides a more detailed illustration of a retail online server shown using shopping server proposal system of  FIG. 1  for the creation of shopping advisor knowledge base from an existing retailer&#39;s database and an existing ruleset; 
         FIG. 4  illustrates an exemplary use of the shopping advisor knowledge base of the retail online server of  FIG. 3  and 
         FIG. 5  is a flow chart illustrating the creation of the shopping advisor knowledge base of  FIG. 3 ; and 
         FIG. 6  is a flow chart illustration the use and operation of the shopping server proposal system of the foregoing figures including the shopping advisor knowledge base of  FIG. 5 . 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The following definitions and explanations provide background information pertaining to the technical field of the present invention, and are intended to facilitate the understanding of the present invention without limiting its scope: 
     Crawler: A program that automatically explores the World Wide Web by retrieving a document and recursively retrieving some or all the documents that are linked to it. 
     Dictionary: A database of context-related terms. 
     E-business, e-shopping, or e-commerce transactions: Business transactions conducted online using the Internet or another communications network. 
     HTML (Hypertext Markup Language): A standard language for attaching presentation and linking attributes to informational content within documents. During a document authoring stage, HTML “tags” are embedded within the informational content of the document. When the web document (or “HTML document”) is subsequently transmitted by a web server to a web browser, the tags are interpreted by the browser and used to parse and display the document. In addition to specifying how the web browser is to display the document, HTML tags can be used to create hyperlinks to other web documents. 
     Internet: A collection of interconnected public and private computer networks that are linked together with routers by a set of standards protocols to form a global, distributed network. 
     Retailer or merchant: Includes for example, a merchant, retailer, wholesaler, distributor, or any appropriate person in the chain of commerce. 
     Search engine: A remotely accessible World Wide Web tool that allows users to conduct keyword searches for information on the Internet. 
     Server: A software program or a computer that responds to requests from a web browser by returning (“serving”) web documents. 
     URL (Uniform Resource Locator): A unique address that fully specifies the location of a content object on the Internet. The general format of a URL is protocol://server-address/path/filename. 
     Web browser: A software program that allows users to request and read hypertext documents. The browser gives some means of viewing the contents of web documents and of navigating from one document to another. 
     Web document or page: A collection of data available on the World Wide Web and identified by a URL. In the simplest, most common case, a web page is a file written in HTML and stored on a web server. It is possible for the server to generate pages dynamically in response to a request from the user. A web page can be in any format that the browser or a helper application can display. The format is transmitted as part of the headers of the response as a MIME type, e.g. “text/html”, “image/gif”. An HTML web page will typically refer to other web pages and Internet resources by including hypertext links. 
     Web site: A database or other collection of inter-linked hypertext documents (“web documents” or “web pages”) and associated data entities, which is accessible via a computer network, and which forms part of a larger, distributed informational system such as the WWW. In general, a web site corresponds to a particular Internet domain name, and includes the content of a particular organization. Other types of web sites may include, for example, a hypertext database of a corporate “intranet” (i.e., an internal network which uses standard Internet protocols), or a site of a hypertext system that uses document retrieval protocols other than those of the WWW. 
     World Wide Web (WWW, Web): An Internet client-server hypertext distributed information retrieval system. 
       FIG. 1  portrays an exemplary overall environment in which a shopping server proposal system  10  of the present invention may be used. The system  10  includes a software or computer program product which is typically embedded within, or installed on, a host server  15 . The system  10  may include several host servers  15  that are dispersed geographically to co-ordinate the reduction of access time from online shoppers, customers, or users  35 ,  37 ,  39 . Host servers  15  may be owned and maintained by the online retail outlets or they may alternatively be contracted by the online retail outlets to third party service providers. 
     The cloud-like communication network  20 , which is represented as a cloud to indicate an indeterminate number of connections, is comprised of communication lines and switches connecting servers  25  and  27  to gateways  30 . The servers  25 ,  27  and the gateway  30  provide the communication access to the WWW. Shoppers located at remote Internet sites, are represented by a variety of computers such as  35 ,  37  and  39 , and can query the host server  15  for the desired information. 
     The host server  15  is connected to the network  20  via a communications link such as a telephone, cable, or satellite link. The servers  25  and  27  can be connected via high-speed Internet network lines or links  44  and  46  to other computers and gateways. The servers  25  and  27  provide access to stored information such as hypertext or web documents indicated generally at  50 . The hypertext documents  50  most likely include embedded hypertext links to other locally stored pages and may also contain information such as location of stores, retail outlets, malls, etc. 
     In addition, while the system  10  is described in connection with the WWW, it can also be used with a stand-alone database of computers  35 , servers  25 , gateways  30 , and mobile computing devices  38  for applications that do not require interaction with the WWW. The mobile computing unit  38  can be a handheld set designed for the application of this invention or it could be a personal digital assistant (PDA) with a downloaded software application suited to implementing the method of the present invention. A mobile phone  199  can also be used as a mobile computing unit for the purposes of this invention. The increasing trend to combine a personal digital assistant  38  and cell phone  199  facilitates the convenience of using satellite communications to interact with the user. A satellite  80  be used to establish communication between the shoppers  35 ,  37 ,  39 , servers  25 , gateways  30 , and the system  10 . 
       FIG. 2  illustrates the system  10  of  FIG. 1  in relation to an Internet service provider  100 , a shopper indicated by a browser or graphical user interface (GUI)  140 , and the WWW  20 . A history session logging system  144  records all the actions performed by the shopper while shopping at one or more retail online servers, i.e.,  300 ,  305 ,  310 . 
     A proxy server  221  can optionally be used in conjunction with the system  10  and the history session logging system  144  as an interface between the service provider  100  and the system  10 . In this illustration, the proxy server  221  is shown implemented by the service provider  100  in order to protect the shoppers&#39; private information from unauthorized hacking. It should however be understood that from a technical aspect, the proxy server  221  and the system  10  can be integrated into a single application or software program, and can reside, for example, either on the server of the service provider  100  or on an independent server  15 . 
     As shown, the server  15  is not limited to a single retail online server  300 , but can service a multitude of other servers, i.e.,  305 ,  310 . The server  15  can be part of the retail online servers  300 ,  305 ,  310 , part of service provider  100 , or part of an independent service. 
     Searches on the WWW  20  are performed by the search service provider  100  that generally comprises a web crawler  200 , a search engine repository  210 , an indexing engine  220 , a query transformer  230 , a search engine  240 , a search results transformer  250 , and an indexed data repository  260 . In use, the crawler  200  crawls the WWW  20  and downloads web documents to the search engine repository  210  where they are stored and updated systematically. The abstract/indexing engine  220  indexes the web documents and generates abstracts for the documents. The abstracts and the indexed data are stored in the abstracts/indexed data repository  260  for later use by the search engine  240 , as appropriate. 
     The search engine repository  210  is a data store maintained by a web information gatherer such as the web crawler  200 . The search engine repository  210  maintains information or metadata from previously encountered web pages. This metadata is used by the indexing engine  220  to prepare the index. Preferably, the search engine repository  210  is maintained centrally by the search service provider  100 . Alternatively, the search engine repository  210  may be located and maintained on an independently provided system to which the search service provider  100  has access. The indexing engine  220  generates a description for each web document from the metadata stored in the search engine repository  210 . The query transformer  230 , prompted by the browser  140 , applies an internal query request to the indexed data stored in the indexed data repository  260 , and generates a search result with matches (or query results)  270  that are specific to the user&#39;s query. 
     In one embodiment, the system  10  and/or the history session logging system  144  record the shopper&#39;s actions during a visit to a current retail online server, i.e.,  300 , and optionally the shopper&#39;s actions during visits to other sites prior to browsing the server  300 . The shopper&#39;s actions include for example, the queries made by the shopper, the URLs visited by the shopper, the products and/or services purchased by the shopper, the quotes requested by the shopper, the prices provided to the shopper, individual session profiles, etc. In addition, the shopper can manually enter additional information about himself or herself, such as hobbies, resume information, etc. 
     The bulk of this information is generally referred to herein as “shopper profile,” and can be saved on the shopper&#39;s computer, i.e.,  35 , for privacy reason, or, if authorized by the shopper, it can be saved on a secure site such as a dedicated repository provided by the service provider  100 , or on an independently maintained server. The information forming the shopper profile is indexed by an indexing engine for ease of access. The shopper profile can be saved for either a short time, such as the duration of the session to the current server  300 , or for an extended period of time for use in future sessions. 
       FIGS. 3 and 5  provide a more detailed illustration of an exemplary retail online server  300  that utilizes the system  10  for the creation of a shopping advisor knowledge base  400  from an existing retailer&#39;s database  350  and an existing ruleset  360 . The retailer database system  350  is a system that is conventionally used by the retailer&#39;s web site application to offer online shopping services. For simplicity, it is assumed that the retailer database system  350  is a relational database system. It should however be understood that the present invention can be adapted to work with other types of database systems, e.g. object oriented database systems. 
     The retailer&#39;s relational database system  350  is used during web site operations to provide shoppers with information about offered items and the available inventory. Data types which can consist of numerical identifiers and descriptive labels, may be defined by the following Tables 1-5, for an online clothing store: 
     
       
         
               
             
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Database table (TYPES) containing item descriptions 
               
             
          
           
               
                 Type # 
                 Type description 
                 Categories 
               
               
                   
               
               
                 0 
                 T-shirt 
                 2, 3 
               
               
                 1 
                 Short Sleeve shirt 
                 2, 3 
               
               
                 2 
                 Dress 
                 6, 7 
               
               
                 . . . 
                 . . . 
                 . . . 
               
               
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Database table (CATEGORIES) containing category descriptions 
               
             
          
           
               
                 Category # 
                 Category description 
               
               
                   
               
               
                 0 
                 Sleepwear 
               
               
                 1 
                 Underwear 
               
               
                 2 
                 Sportswear 
               
               
                 . . . 
                 . . . 
               
               
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
             
           
               
                 TABLE 3 
               
             
             
               
                   
               
               
                 Database table (COLORS) containing color descriptions 
               
             
          
           
               
                 Color # 
                 Color description 
               
               
                   
               
               
                 0 
                 White 
               
               
                 1 
                 Blue 
               
               
                 2 
                 Yellow 
               
               
                 . . . 
                 . . . 
               
               
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
             
           
               
                 TABLE 4 
               
             
             
               
                   
               
               
                 Database table (SIZES) containing size descriptions 
               
             
          
           
               
                 Size # 
                 Size Description 
               
               
                   
               
               
                 0 
                 S - Small 
               
               
                 1 
                 M - Medium 
               
               
                 2 
                 L - Large 
               
               
                 . . . 
                 . . . 
               
               
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
               
               
               
               
             
               
               
               
               
               
               
             
           
               
                 TABLE 5 
               
             
             
               
                   
               
               
                 Database table (ITEMS) containing items and their availability. 
               
             
          
           
               
                 Item # 
                 Type # 
                 Color 
                 Size 
                 Price ($) 
                 Availability 
               
               
                   
               
             
          
           
               
                 0 
                 0 
                 0 
                 0 
                 30.00 
                 100 
               
               
                 0 
                 0 
                 1 
                 0 
                 30.00 
                 56 
               
               
                 0 
                 0 
                 0 
                 1 
                 35.00 
                 50 
               
               
                 . . . 
                 . . . 
                 . . . 
                 . . . 
                 . . . 
                 . . . 
               
               
                   
               
             
          
         
       
     
     Tables 1 to 5 are stored in the retailer&#39;s database system  350 , and represent a simplified database schema. For ease of description, Tables 1 to 5 omit the normalization and efficiency issues. In this example, Table 1 contains data type “TYPES” that includes both a number and a subcategory description. For example, the number 1 and the subcategory “short sleeves shirt”, or the number 2 and the subcategory “long sleeve shirts”. 
     Similarly, Table 2 contains data type “CATEGORY” that includes both a number and a category description. For example, the number 1 and category description “sleepwear”, or the number 2 and the category “everyday wear”. Table 3 contains data type “COLOR” that includes both a number and a color descriptor. For example, the number 1 and the color red, or the number 2 and the color blue. Table 4 contains data type “SIZE” that includes both a number and a size description. For example, the number 1 and the size description “small”, or the number 2 and the size description “medium”. Table 5 contains data type “PRICE” that includes only a number. For example, the value of the price “35.50”, or “99.99”. In addition, data type “AVAILABILITY” contains only a number. For example, the number 25 indicates that 25 items are available in stock. 
     In this simplified retailer&#39;s database system  350 , the labels include numbers and descriptors, and the schema is meant to be illustrative of a basic setup. It should be clear that more elaborate schemes can be readily developed. In this embodiment, the descriptors are used to demonstrate what kind of information is available in a retailer&#39;s database system  350 . The entire information in the database  350  is stored using a schema which defines relations, fields and keys. 
     Software applications, fed by queries from the shoppers&#39; web browsers  140 , can access the elements (e.g. fields, keys, values) of the retailer&#39;s database system  350 , by using SQL (a standard query language). For example: a shopping server application requests that all available items in size L (large) for a price lower than $50.00 be displayed. The shopper&#39;s web browser  140  passes information to the shopping server application, which accesses the database  350  by issuing a logical SQL query similar to the following:
         “SELECT*FROM ITEMS WHERE PRICE&lt;50.00 AND SIZE=2 AND AVAILABILITY &gt;0”       

     The database  350  responds with a subset of items, evaluated from the descriptors, which meet the requirements of the SQL query. The shopping server application can then encode this list in HTML and send it to the shopper&#39;s web browser  140 . 
     As used herein, a ruleset  360  includes a number of rules that define the related items under certain conditions. For example, rule A of ruleset  360  may be as follows: if the item is a shirt then related items are pants, skirts, etc. As another example, rule B of ruleset  360  may be as follows: if the item has the color red then related items have the colors blue, black or white. 
     A rule generally includes two parts: the evidence and the conclusion. As an example, in rule B above, if it is assumed that an item has the color red, it is concluded that related items must have the color black, blue or white. Such a rule may be provided in a machine readable (e.g. XML) form to a terminology conversion module  371 . It is assumed here that the ruleset  360  is industry dependent but is reusable for retailers of the same industry. Retailer specific extensions of the ruleset  360  are optional and do not affect the underlying invention. 
     The shopping server proposal system  10  is generally comprised of a terminology conversion module  371  that communicates with the retailer&#39;s database system  350  and takes as input the ruleset  360 . The terminology conversion module  371  is responsible for providing an analysis and relation creation module  390  with appropriate input. In turn, the analysis and relation creation module  390  updates a knowledge base  400 . 
     Since retailers may use a variety of database systems  350 , and numerous vendors for database applications, the system  10  is capable of supporting heterogeneous terminologies, that is various naming-schemes, used to access and retrieve information from the database systems  350 . As an example, even though two retailers in the same industry use the same database system  350 , the tables and values in the database systems  350  can be named differently, but remain nonetheless accessible by the system  10 . 
     An important function of the terminology conversion module  371  is to associate the terminology of the retailer independent ruleset  360  with the schema terminology of the retailer database system  350 . The schema of the database system  350  may be retailer specific, depending on the type of database system  350  or the manufacturer of the database application. 
     The function of the terminology conversion module  371  can be generally described by the following iterative process, and is illustrated by block or step  615  of the method  610  of creating the shopping advisor knowledge base  400  ( FIG. 5 ):
         create a list of each term used in the ruleset  360  (list_ 1 );   create an (initially empty) list of term mappings (list_ 2 );   for each term in list_ 1 , perform the following: perform a lookup of the ruleset term; associate the ruleset term with a corresponding term in the schema of the database system  350 ; and store the new association in list_ 2 ; and   serialize list_ 2  into machine readable form.       

     The step of looking up the ruleset term can be implemented in several ways. According to one implementation, the terminology conversion module  371  can perform the lookup interactively, i.e., the administrator of the database system  350  may select an element (e.g., a field or a value) from the database system  350  for each of the terms of the ruleset  360 . 
     According to another implementation, the retailer provides the mappings externally, as additional input to the terminology conversion module  371 . This could be a simple list of term types, such as: item, article; XL, Extra Large. 
     Another implementation is an automated association using heuristics, such as where a term in the database system  350  has the same meaning as a term in the ruleset  360  with the same name. Though the foregoing implementations have been described separately, it should be clear that these techniques can also be combined. As an example, user interaction may be requested when a term of either the ruleset  360  or the database system  350  cannot be found in the database or the ruleset respectively. 
     The output of the terminology conversion module  371  can be, for example, in an intermediary format, such as a XML document  380  that describes the mappings of the terms of the database system  350  to the terms of the ruleset  360 , as well as database specific information about field names. The following is an exemplary output document  380 : 
     
       
         
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
               
             
               
             
           
               
                   
               
             
             
               
                 &lt;DATABASE_RULESET_MAPPING&gt; 
               
             
          
           
               
                   
                 &lt;MAPPING&gt; 
               
             
          
           
               
                   
                 &lt;DB_TERM&gt; 
               
             
          
           
               
                   
                 &lt;FIELD_TERM value=“Item” table=“ITEMS”/&gt; 
               
             
          
           
               
                   
                 &lt;/DB_TERM&gt; 
               
               
                   
                 &lt;RULESET_TERM value=“Article”/&gt; 
               
             
          
           
               
                   
                 &lt;/MAPPING&gt; 
               
               
                   
                 &lt;MAPPING&gt; 
               
             
          
           
               
                   
                 &lt;DB_TERM&gt; 
               
             
          
           
               
                   
                 &lt;FIELD_TERM value=“Color” table=“COLORS”/&gt; 
               
             
          
           
               
                   
                 &lt;/DB_TERM&gt; 
               
               
                   
                 &lt;RULESET_TERM value=“Color”/&gt; 
               
             
          
           
               
                   
                 &lt;/MAPPING&gt; 
               
               
                   
                 &lt;MAPPING&gt; 
               
             
          
           
               
                   
                 &lt;DB_TERM&gt; 
               
             
          
           
               
                   
                 &lt;VALUE_TERM value=“red” field =“Color 
               
             
          
           
               
                   
                 description” 
               
             
          
           
               
                   
                 table=“COLORS”/&gt; 
               
             
          
           
               
                   
                 &lt;RULESET_TERM value=“Color”/&gt; 
               
             
          
           
               
                   
                 &lt;/MAPPING&gt; 
               
               
                   
                 . . . 
               
             
          
           
               
                 &lt;/DATABASE_RULESET_MAPPING&gt; 
               
               
                   
               
             
          
         
       
     
     By providing a generic output document  380 , the analysis and relation creation module  390  can be independent of the retailer and the underlying database system  350 . 
     The analysis and relation creation module  390  analyses the ruleset  360  at block  619  of  FIG. 5 , and creates the shopping advisor knowledge base  400 . This shopping advisor knowledge base  400  is represented as a set of relations in the existing database system  350 , that is the output of analysis and relation creation module  390  is an extension of the retailer&#39;s exiting database system  350 . 
     The input to the analysis and relation creation module  390  includes the output of the terminology conversion module  371  and the ruleset  360 . An important objective of the analysis and relation creation module  390  is to discover which items offered by a retailer are related to an item selected by the shopper, based on the ruleset  360  and the data in the database system  350 . As used herein, the term “item” refers to a particular piece, such as a shirt, and its distinguishing properties, such as color, size, price, etc. 
     The process of analyzing the ruleset  360  and creating the shopping advisor knowledge base  400  includes the following steps:
         create a mapping list to store references to all the related items of an item;   for each item (referred to as the current item later on) of the retailer database system  350  perform the following steps:
           search the terms from the ruleset  360  for terms that are applicable to the current item;   if any of the rules are applicable, combine the applicable rules and create an SQL statement; and if the result set of this statement is not empty, create a list of references to all the related items of the result set, and store a mapping of {current item, list of references} in the mapping list; and   
           create a new database table to hold the mappings for each item and its related items, based on the entries of the mapping list.       

     As shown in Table 1 above, an item is a record in the database system  350  with a set of attributes, with the attributes being the field names and values. The rules in the ruleset  360  specify conditions that refer to these fields. A rule is applicable to an item if the item satisfies the evidence part of the term from ruleset  360 . For example, it is assumed for illustration purposes, that two applicable rules D and E were found for an item X (a red shirt). Rule D may specify that if an item is a shirt (the evidence), all items that are either long trousers or skirts or shorts (the conclusion) are related items. Rule E may specify that if an item has the color red, related items must have the colors black, blue or white. The item X matches both evidences and therefore the two rules D and E are applicable. 
     Once all the applicable rules (i.e., D and E) are identified, the analysis and relation creation module  390  identifies the items in the retailer&#39;s database that can be considered to be related items. As used herein, a “related item” satisfies all the conclusions of each of the applicable rules. In the example above, assume that two applicable rules were found for the current item (i.e., a red shirt). The first rule is: if the item is a shirt then the related items must be long trousers, skirts, or shorts. The second rule is: if the item has the color red then the related items must have the colors blue, black or white. It therefore follows that all items in the database system  350  that are skirts, long trousers, or shorts (conclusion of the first rule), with one of the colors concluded by the second rule, are considered related items. 
     The related items can be readily determined by combining the conclusions of all applicable rules into an SQL statement of, for example, the following form:
     SELECT “Item #” FROM Table.ITEMS WHERE Type=“long trousers” OR Type=“shorts” OR Type=“skirt”)   AND(Color=“black” OR Color=“blue” OR Color=“white”)   

     The results of this SQL query is a list of item numbers that are references to the related items. This information can easily be stored in a new database table (i.e., the knowledge base  400 ) as part of, or an extension of the database system  350 . 
     As explained earlier, the output of the analysis and relation creation module  390  is a new database table or the knowledge base  400  that is communicated and written to the existing retailer database system  350 . Based on the entries in the mapping list, the new knowledge base  400  can be of conjoined item numbers and related item references, and can assume, for example, the form in the following Table 6: 
     
       
         
               
             
               
               
             
           
               
                 TABLE 6 
               
             
             
               
                   
               
               
                 Result database table (RELATED_ITEMS) 
               
             
          
           
               
                 tem # 
                 Related Items 
               
               
                   
               
               
                 0 
                 1, 2, 3 
               
               
                 1 
                 4, 5, 6 
               
               
                 2 
                 2, 6 
               
               
                 . . . 
                 . . . 
               
               
                   
               
             
          
         
       
     
     The process of creating the knowledge base  400  is done once, and may only have to be repeated when either the schema of the database system  350  or the ruleset  360  changes. Having described the creation of the knowledge base  400 , its use will now be described in connection with  FIG. 4 . 
       FIGS. 4 and 6  illustrate an exemplary usage, or a method of use  650 , of the knowledge base  400 . A shopper  35  browses an online retailer shopping site  300  and selects an item to look at or to buy at block  510 . Instead of having the shopping site  300  simply return a web page containing information about the selected item, the shopping server  300  can now include information about related items. 
     To this end, the shopping server  300  is provided with three modules: A request analysis module  500 , a relation finder module  525 , and a response creation module  550 . The request analysis module  500  receives incoming requests  510  from the shoppers  35  and identifies the currently selected item or items. This information is extracted from the request (step  652 ), which is typically an HTTP GET or POST request. The request  510  contains all the necessary pieces of information, i.e., item number, attributes, etc., which uniquely identify the user&#39;s current selection. The request analysis module  500  extracts that information, at block  652 , and delivers this information  653  to the relation finder module  525 . It should be noted here that, depending on the underlying implementation, the request may not contain all information about selected item but just a simple reference. In such a case, the above mentioned process of extracting the information about the selected item  652  may access the database. For the purpose of clarity we omitted this in  FIG. 6 . 
     The relation finder module  525  issues an SQL statement, based on the input from the request analysis module  500 . The result of this SQL statement is the set of the related items  657  from the database system  350  ( FIG. 5 ). This result set includes references to the related items  657  and to all the attributes of the related items  657 , and is delivered to the response creation module  550 . 
     The response creation module  550  receives the result set of related items and attributes and the originally selected items, and creates, at block  660  ( FIG. 6 ), a dynamic response  600  to the shopper&#39;s request  510 . This response can be, for example, an HTML page that is rendered and displayed by the shopper  35  using the web browser or user interface  140  ( FIG. 3 ). This dynamically created HTML page focuses on the originally selected item but also offers advice to the user about the related items. There are several ways to provide this advice. One possibility is to provide a highly visible button for the user to press to review related items. Another possibility is the use of additional windows and frames. Other possibilities include animation, audio, and/or video attachments. However this implementation depends on the retailer&#39;s preferences and the available technology on the shopper&#39;s side. 
     It is to be understood that the specific embodiments of the invention that have been described are merely illustrative of certain application of the principle of the present invention. Numerous modifications may be made to the shopping server proposal system  10  and associated method described herein without departing from the spirit and scope of the present invention. For example, the system  10  can provide advice in the form of a recommendation. 
     As used herein, the term advice is based on the fact that all associations between items are created based on the ruleset. The ruleset is defined by one or more experts in a certain fields such as fashion or electronics, and will lead to associations that are reasonable and appropriate in terms of the respective field. As a result every related item can be understood as an advice or a recommendation to combine the currently selected item with any one or more of the related items. 
     With regards to the personalization aspect, if a user&#39;s profile is known, the user&#39;s preferences in terms of colors sizes and prices could be combined with the present invention but is not precomputed with the ruleset.