The present invention relates generally to a system and method for optimizing a product. More particularly, this invention relates to a dynamically invoked interface between a user and a sales module that provides assistance in optimizing one or more components associated with a product.
The purchasing process involves an extended process of information gathering and decision-making by the buyer. In some cases, a variety of alternative product choices are available, differing in price and other characteristics. In other cases, the buyer configures a desired product by selecting among options for configurable elements of the product.
An effective salesperson begins the selling process with an information distribution phase in which the salesperson discloses general concepts relating to the product and specific product attributes. Based on this information, the customer selects a base product. The base product is either a single entity or an entity that includes a set of associated components. The salesperson helps the user customize the selected product by suggesting specific components to add to the base product and/or alterations to be made to components that may, by default, come with the base product. For each essential component associated with the base product, the salesperson helps the customer determine which component option is most appropriate for the needs of the customer. The salesperson also helps the customer evaluate optional components associated with the base product to determine if they should be purchased. Alternatively, in the case of a set of fixed product choices, the salesperson guides the buyer by incrementally changing a suggested choice based on systematically changing characteristics. In either case, the salesperson provides many types of important, timely, context sensitive information, suggestions and rationales to help the buyer make decisions. At times, the salesperson takes the initiative in leading the conversation while at other times the customer takes the initiative.
The approaches taken by the salesperson are adaptive. That is, throughout the sales process, the salesperson gauges customer characteristics, such as price sensitivity, interest in interacting with the salesperson, and experience level. The salesperson adjusts the sales pitch to match these characteristics. Thus, rather than pitching each of the available components associated with the base product in some predetermined inflexible way, the salesperson customizes his presentation to match the characteristics of the user.
Two types of electronic commerce software have been developed to aid users in the purchasing process. First, product selection software provides for the filtering of a set of products based on preferred product characteristics and desired uses. Second, configuration software allows a user to customize a product by selecting from lists of options and components provided by the software. Such configuration software is often used as a front-end for “build-to-order” manufacturing.
Typically, configuration software starts with a base system, selected by the user to satisfy a set of user goals as closely as possible. The configuration software provides a graphical user interface that presents a set of options that allow the user to customize each configurable element of the complete product. The configuration software often provides information about each option, usually as some form of specification sheet. Often, configuration software also provides information about each configurable element, such as the criteria for making a selection. Frequently asked questions may also be available. Configuration software often tracks constraints between choices of configurable elements. In some types of configuration software, option pairs that would violate such constraints are made unavailable. In other types of configuration software, the user is warned of any constraint violations as various options are selected. Deployments of configuration software, both as standalone applications and via networked systems, are available from Trilogy, Selectica, Calico Commerce, BT Squared and Siebel Systems.
Conventional electronic commerce configuration software focuses on the ease of selecting “correct” configurations, eliminating the need for human intervention by a salesperson or product expert. Much of the literature on configuration software emphasizes the savings provided by avoiding the “reworking” of inconsistent orders. But in eliminating the salesperson, such approaches also eliminate much of the personalized adaptive, heuristic behavior that make salespeople effective and helps to optimize both the shopping experience and final product choices.
Although existing electronic commerce sites utilize the above software tools to assist the purchaser, they do not provide methods comparable to that of a live salesperson. Some electronic commerce sites provide an electronic sales assistant that attempts to match the needs of the user to products on the electronic commerce site. Common product categories for which electronic sales assistants are currently used to select between pre-configured products include computers, automobiles, vacation destinations, pets, colleges and electronic devices. Sales assistance provided at sites that sell user configurable products, such as computers and automobiles, is far more limited.
But, as seen from such limited attempts at modeling the talents of a live salesperson, to date, no electronic commerce site has effectively reduced the personalized, heuristic, adaptive techniques of live salespeople to machine readable algorithms. For example, the deficiencies in the present use of electronic sales assistants to optimize the selection of a product from a set of pre-configured products is appreciated when the limitations of the features of representative implementations of conventional electronic sales assistants are examined. Representative electronic sales assistants include those offered by Ask Jeeves, Inc. on the etown.com site as “shop with Ida” and those offered by Silknet on the cozone.com site, as well as electronic sales assistants developed by America Online and found on aol.com and kaplan.com. These electronic sales assistants first elicit the goals of the user in terms of desired product features (such as manufacturer and weight), general usages (such as applications to be run), and budget. Existing electronic sales assistants provide either no recommendation or one or more recommendations based on either precise or approximate satisfaction of user goals. America Online ranks these recommendations in terms of how well they meet the goals of the user on a numeric scale while Silknet and Ask Jeeves cluster them within several categories of suitability. Also, the electronic sales assistants provide explanations, such as the ways in which a selected system meets the stated goals of the user (Ask Jeeves, America Online and Silknet).
The electronic sales assistants discussed above are unsatisfactory because they provide inadequate persistence within or across product optimization sessions. Thus, each iteration in the product optimization process is reduced to a “batch transaction,” in which the user mentally maintains comparisons and any sense of progress towards the purchase goal. This burden placed on the user greatly reduces the believability and effectiveness of such electronic sales assistants. Additionally, there is no attempt to match the buying style of the consumer, in terms of the style of interaction desired or the level and kind of information offered. Nor is there any attempt at inferring information about the purchaser based on behavior during the purchasing session or prior sessions. This lack of individualization results in a “one size fits all” assistant aimed at the middle of the targeted audience.
Prior art electronic sales assistants provide only limited help for selecting between pre-configured products and techniques used by these assistants are not adequate to optimize a build-to-order product. Because existing electronic commerce sites have failed to identify methods for integrating the features of a lives sales process into their sales algorithms, they have a significant disadvantage relative to competing physical commerce sites such as retail stores. Accordingly, what is needed in the art of electronic commerce and electronic sales assistants is a system and method for assisting customers in the optimization of products in a manner that exploits the adaptive and heuristic approach of the live sales process.
The present invention provides a system and method for integrating the features of a live sales process into machine readable code. In the present invention, an advisor module gauges the characteristics of the user from diverse sources, such as user conduct while using the module and answers to questions posed to the user. The characteristics of the user are stored in a user profile. The advisor module coordinates with a sales module to provide the user with an interactive experience. Each user input and system response results in updating a subset of the characteristics in the user profile. Further, the updated user profile is used to determine the content of subsequent presentations made to the user. In this manner, the advisor module rapidly converges upon an accurate model of the characteristics of the user and, accordingly, appropriately gauges the sales pitch to these characteristics.
The method of the invention provides for the optimization of a product which includes a base product. As used herein, product optimization is achieved when the user indicates that he or she is satisfied with the product. In the method, an event record is accessed. The event record includes a summary of a sequence of events occurring during a preliminary product selection process. At a minimum, the summary includes an identification of the user and a preliminary designation of a base product. The user profile is obtained based on the identification of the user in the summary. The user profile includes at least one characteristic corresponding to the user. Based on one or more characteristics, selected from the set of characteristics in the user profile, a formatted display is generated and presented to the user. Further, one or more characteristics in the user profile are updated based on the nature of the formatted display and on the response of the user to the formatted display. The process cycles between presenting formatted displays to the user and updating the user profile until a first occurrence of a terminating event. In one aspect of the invention, a terminating event occurs when the user indicates that the product is optimized.
In one embodiment, the formatted display generated for the benefit of the user includes a set of options that are available for a particular component associated with the base product. Further, in one aspect of the invention, the response by the user to the formatted display includes a designation of one such option. When this is the case, the profile associated with the user is updated to reflect the fact that the user selected the option utilizing the assistance of the advisor.
Components featured in the formatted display are dynamically selected from the full set of possible components that correspond to the base product based on a function of one or more characteristics in the user profile. In one embodiment, the formatted display comprises a menu that includes elements such as the various options for a featured component, frequently asked questions associated with the component, a prompt to play an instructional sequence, and recommendation messages.
Another embodiment of the present invention provides a computer readable memory to direct a computer to optimize a product. A user profile database is stored in the memory. Each of the profiles stored in this database is uniquely associated with a different user and includes one or more characteristics of that user. Further, an advisor module is stored in the memory. The advisor module includes executable instructions designed to assist the user in optimizing a product. First, the module includes instructions for accessing an event record. This event record includes a summary of a sequence of events occurring during a preliminary product selection process. At a minimum, this summary includes an identification of the user and a preliminary designation of the product. Second, the module includes instructions for obtaining the user profile associated with the user from the user profile database. Third, the module includes instructions for providing a formatted display based on a function of one or more characteristics in the profile. Fourth, the module includes instructions for receiving a response to the formatted display and for updating at least one characteristic in the user profile based on the response. The instructions for providing a formatted display and updating the user profile are repeated until the first occurrence of a terminating event.
In one embodiment of the invention, the advisor module communicates with a client computer to produce a manifestation. This manifestation is designed to assist the user and therefore includes features such as a dynamic on-screen character, an audible voice, on screen text, a multimedia prop, and/or a sound effect. Further, when the manifestation is an on-screen character, the language, animations and gestures of the character are scaled to match the experience level and interaction style of the user.
The present invention provides a system and method for providing assistance in the optimization of a product that comprises a base product and a plurality of components associated with a base product. Three examples of products are (i), a computer and its associated components, such as hard disk drive options, RAM memory options, and computer monitor options (ii), a motor vehicle and its associated components, such as engine options, stereo options, and color and (iii), a customized service, such as a weekly maid and/or lawn service. In one embodiment, a user makes a preliminary designation of a product. In this embodiment, the preliminary designation includes default options for each of the components associated with the base product. In the case of a computer, for example, the base product may be a particular model of computer and the default options may include a default hard disk drive size, amount of RAM memory, and a particular computer monitor model. An advisor module then assists the user in optimizing the preliminary designation of the product.
Advantageously, the present invention continually updates a user profile associated with the user based responses to events in the component optimization process. Further, the updated user profile affects the approaches the advisor module uses to assist the user in subsequent component optimization steps. In this way, the optimization approaches used by the advisor module match the goals of the user. For example, based on the content of the periodically updated user profile, the advisor module will choose a subset of particular frequently asked questions from a database of frequently asked questions that uniquely match the characteristics of the user as identified in the updated user profile. In another example, the experience level of the user in purchasing products in the given product domain is continuously assessed and used to determine the quantity and content of help menus generated in subsequent component optimization steps. Another advantage of the present invention is that the advisor module is invoked by several different routes. In a first route, the advisor module is invoked by a standard sales module and in a second route, the advisor module is activated by a specific request by the user for assistance with a particular component associated with the base product or by a request for general assistance with the configuration process.
User computer 22 is any device that includes a Central Processing Unit (CPU) 30 connected to a random access memory 50, a network connection 34, and one or more user input/output (“i/o”) devices 38 including output means 40. System memory 50 may also include read-only memory (ROM). Output means 40 is any device capable of communicating with a human and includes, for example, a monitor, voice user interfaces, and/or integrated graphic means such as mini-displays present in web-phones. Typically, user computer 22 includes a main non-volatile storage unit 36, preferably a hard disk drive, for storing software and data. Further, user computer 22 includes one or more internal buses 32 for interconnecting the aforementioned elements. In a typical embodiment, memory 50 includes an operating system 52 and an Internet browser 54.
Server computer 24 includes standard server components, including a network connection device 60, a CPU 62, a main non-volatile storage unit 64, and a random access memory 68. Further, server computer 24 includes one or more internal buses 66 for interconnecting the aforementioned elements. Memory 68 stores a set of computer programs, modules and data to implement the processing associated with the invention. In particular, a preferred embodiment of memory 68 includes an operating system 100 and a HTTP server 102.
Memory 68 further includes sales module 104 for providing the user with a set of available products. Using sales module 104, the user elects a base product from the set of available products. In a preferred embodiment, sales module 104 composes a web page that is transmitted by transmission channel 26 to client 22 and is displayed by browser 54 on computer display 40. In one embodiment, sales module 104 is implemented using configuration software from third party vendors to represent the set of available products. In one aspect of the invention, sales module 104 determines the set of available products by disabling invalid options for components associated with a base product and by providing warning messages that advise the user to not select certain combinations of options for the components associated with a base product.
In a preferred embodiment, sales module 104 provides information related to a subset of the components that are associated with the base product. Then, the user configures a permissible version of the selected base product using sales module 104. Sales module 104 provides the user with pricing information for each product in the set of available products based on pricing information stored in sales module database 106.
Memory 68 further includes an advisor module 108 for assisting a user in the optimization of a product selected by the user with the assistance of sales module 104. In one embodiment, the interactions between the user and sales module 104 are tracked. In one aspect, advisor module 108 is invoked when an interaction in a set of predetermined classes of interaction occurs. For example, advisor module 108 is invoked when the user selects a “sales advisor” button. As a second example, advisor module 108 is invoked when the user has selected a product from the set of available products and begins to use sales module 104 to configure the components associated with the base product. In this second example, the initial entry of the user into a sales module 104 is a type of event that invokes an instance of the advisor module. Accordingly, in one embodiment, the instance of the advisor module 108 invoked by sales module 104 introduces itself to the user, summarizes its capabilities, and incrementally determines the goals of the user.
An important advantage of advisor module 108 over prior art advisor applications is the methods used by the advisor module 108 to determine the goals of the user. For example, like prior art systems, advisor module 108 will query the user to determine the goals of the user. However, unlike prior art systems, there is no requirement that the user answer the questions in order to initiate advisor assistance and rigid nonadaptive approaches to product optimization are not used. Rather than using answers to questions as a sole source of data about a user, advisor module 108 determines the goals of the user from diverse sources of information, including information derived from a user associated profile 114, the interactions between sales module 104 and the user during the initial product selection, and available responses to questions posed by advisor module 108.
User profiles 114 are stored in a user profile database 112. Portions of user profile database 112 may be present in memory 68. Generally, however, user profile database 112 is stored on disk 64 and individual profiles 114 are fetched to memory 68 as needed. Memory 68 also includes a knowledge database 110 that includes information relating to each product in the set of available products offered by sales module 104. Knowledge database 110 further includes information about each of the options that are available for the components associated with an available base product.
Server 24 also includes a current base product database 116 which is stored on disk 64. Portions of the current base product database 116 are loaded into memory 68 as needed. Database 116 tracks the current base product selected by each user of system 20, and the components associated with such base products. A typical nth entry in database 116, for example, will indicate which option, from the set of options corresponding to component n, has been designated for a given base product. For nonessential components, one of the options that the user may choose for a component is a designation that the component will not be part of the optimized product. Further, database 116 includes a history of changes the user has made to the base product.
Finally, memory 68 includes one or more service routines such as interface protocol handler 118 for facilitating communication between sales module 104 and advisor module 108.
User profile 114 contains data that is used to model the user. This data is continually collected and updated during a session between a user and sales module 104 and/or advisor module 108 and is maintained in user profile database 112 for use in subsequent sessions. User profile 114 is populated with data collected from sales module 104 through explicit user selections and data that is inferred from user actions. Explicit selections include user selections of product options such as options selected for a component and demographic data which may be used to compute shipping costs. User profile 114 data is also inferred from the manner in which the user interacts with the sales module 104. For example, when the user modifies an option for a component more than once, advisor module 108 infers that the user needs additional information on the component.
User interactions with the advisor module 108 are also used to populate user profile 114. In general, advisor module 108 will ask explicit questions to ascertain the requirements of the user at the beginning of an advisor module 108 session when such information is not available in the user profile 114. Advisor module 108 also determines the requirements of the user from user information consumption patterns, such as the frequency that the user accepts advice provided by the advisor module and the types of frequently asked questions and/or instructional sequences requested by the user.
Referring to
User profile 114 includes an advisor interaction history database 220 that is used to compute and update elements of other portions of user profile 114, including product preference database 240 and user interaction characteristics 270. For example, a history of the number of times the user has asked for general assistance 222 is used as a factor to compute the interest the user has in interacting with advisor 272. In one embodiment, advisor interaction database 220 is populated with user provided answers to questions such as “would you like to me to suggest the best items for you?” In another embodiment, advisor interaction database 220 stores a calculation of the amount of advice the user would like based on factors such as the frequency that the user accepts advisor module 108 recommendations 228 or answers questions generated by advisor module 108. In a preferred embodiment, advisor interaction database 220 tracks the interest level in each component associated with a base product (224). Such interest levels are, in part, based on the type of information consumed by the user (226). This information includes the number and types of frequently asked questions (FAQs) that are chosen by a user for review and by the nature of the requests for advice that are made by the user.
In live sales pitches, care is taken to not repeat the same sales point or rationale too many times. Accordingly, advisor interaction database 220 tracks the rationales that have been offered to a user 230 in selecting a particular option for a component associated with the base product of interest. Rationales that have already been offered to a user by advisor module 108 more than a predetermined number of times during a particular session, or indeed, during a given number of past sessions, are down weighted.
User profile 114 includes a product preference database 240 that stores information about the user such as price sensitivity 242, budget constraints 244, usage requirements 246, and feature preferences 248. Product preference database 240 provides the tools that facilitate the provision of information and suggestions by advisor module 108 and help the module avoid providing information and suggestions that are less relevant to meeting the requirements of the user. For example, user price sensitivity 242 is used by advisor module 108 to filter candidate recommendations and to select those that are most likely to be accepted by the user. Typically, an important user requirement is the need to constrain the product to a specific budget 244. In some instances, the user will explicitly define budget 244 early in the optimization method of the present invention. In other instances, budget 244 is determined by advisor module 108 based on the choices the user made in selecting an initial product prior to product optimization.
In one embodiment of the present invention, advisor module 108 initially determines a price sensitivity 242 by considering factors such as the relative price of the selected base product compared to similar base systems. Another method is to consider the costs of the major components corresponding to the base product that have been chosen by the user. In cases where the product to be optimized is a computer system, one approach in accordance with this embodiment of the invention, will measure the relative price of the designated CPU clock speed and type. Then, the cost of the designated CPU clock speed and type is used to determine price sensitivity 242. In one aspect of the invention, the cost of the base system is combined with a statistical analysis of consumer spending patterns to compute price sensitivity. Such spending patterns include, for example, the average amount spent by consumers on other components as a function of CPU clock speed and type. An important advantage of the present invention is that price sensitivity is continually refined by advisor module 108 based on selections made by the user during the optimization process and the refined price sensitivity 242 affects the methods used by advisor module 108 in assisting the user with the optimization of a product.
Usage requirements 246 are used by advisor module 108 to calibrate the information and suggestions that advisor module 108 provides to the user. Typical usage requirements for the computer system product domain may be categorical, such as a designation as to whether the user is a consumer or is commercial, or quantitative. Quantitative usage requirements include, for example, an indication of the amount of Internet usage. As used herein, usage refers to factors such as the amount of bandwidth intensive applications a user requires, photo processing, tele-commuting, home office and related applications. Further, such usages are defined as current, projected or potential usages. In a preferred embodiment, the advisor module 108 will query the user for a ranking of predicted needs for each of the most typical uses of a particular base product. Preferably, such rankings are on a multi-level scale with a predetermined number of levels ranging from low to high and including a ranking such as “no opinion.” In an alternative embodiment, usage requirements 246 are limited to a categorical list of usages that the user has indicated are of the most interest.
In one embodiment, usage requirements 246 are grouped into a hierarchy as shown in
In another embodiment, each of the requirements in the hierarchical tree shown in
Returning to
User profile 114 further tracks user interaction characteristics 270. In general, user interaction characteristics 270 identify the interaction style and preferences the user has for interacting with advisor module 108. This includes the amount of interest the user has in interacting with advisor module 108 (272), the amount of interest the user has demonstrated in getting recommendations (274), the average response time (276) the user has exhibited in responding to past recommendations, and user interactions style (278).
Although
One of skill in the art will appreciate that the exemplary structure of user profile 114 provides a number of advantages. The specific requirements of a user are uniquely tracked by user profile 114. Such requirements may take the form of positive requirements, such as an amount of Internet usage, as well as negative requirements, such as an indication that the user “does not like inkjet printers.” Further, profile 114 is continuously updated during the product optimization process to continually calibrate the format of the optimization process to the requirements of the user.
In the methods of the present invention, advisor module 108 assists the user in optimizing a product by matching one or more characteristics associated with a user, as indicated in periodically updated user profile 114, with product attributes stored in knowledge database 110. Knowledge database 110 includes information about components associated with a product, the features of such components, questions that are frequently asked by users when optimizing a product (frequently asked questions), and the relationship between component options and typical user goals.
Available product database 400 includes a list of available base products 404, components 406 that correspond to base product 404, and any relevant constraints. Each component 406 includes a set of available options. In a preferred embodiment, these options are referenced by stock keeping units (SKUs), absolute, or relative prices. It is anticipated that the content of available products database 400 is updated frequently, on the order of several times a day. Therefore, in one embodiment, advisor module 108 verifies that it is using the most up to date version of available product database 400 each time a user selects a new base product 404. Generally, available product database 400 is the only portion of knowledge database 110 that is accessed by both sales module 104 and advisor module 108. There is no requirement that available product database 400 be organized in the hierarchical manner shown in
Product specification database 420 generally comprise two parts: (i) the specifications of the base product 404 and (ii) the set of specifications for each component 406 corresponding to a base product 404. Each specification is dependent upon the nature of the base product or component. For example, the specifications for a hard disk are size, type, and average access time. The data in product specification database 420 is used by advisor module 108 for (i), providing values for product attributes of options that are used in slots in the recommendations, rationales, frequently asked questions, and instructional sequences and (ii), mapping a component option into the appropriate ranges in product qualities database 430.
Product qualities database 430 includes the rating of the suitability of each specification or combination of specifications for each usage of each component 406. Thus, each quality in product database 430 is a composite or abstraction of one or more specifications (attributes) obtained from product specification database 420. Typically product qualities database 430 is indexed by product use or orientation. Product uses for a sport utility vehicle, for example, include child transportation, running errands, off-road sporting, and towing. Exemplary product orientations include categories such as “latest and greatest” and “budget-minded.”
The configuration process used by sales module 104 (
To facilitate the optimization process, product qualities database 430 provides a uniform means of offering recommendations and rationales related to the suitability of each component 406. Using attribute to quality mapping tables 432, application quality desirability tables 434, and pricing maps 436, database 430 encapsulates the qualities of each component 406 associated with a base product 404. For example, the suitability for each significant range of the xth quality of component 406 to the yth user requirement is stored in database 430. In one embodiment, this suitability factor is a numerical weight used by advisor module 108 to correlate various possible product configurations with the requirements of the user. A suitability factor may be selected from a desirability scale such as:
Null Irrelevant to user requirement y
1 Unsatisfactory for user requirement y
Table 2 is an exemplary application quality table 434 in accordance with the present invention. For each component 406, Table 2 quantifies the need for the component as a function of a potential application for the product. For example, in the case of a computer, the entry for a printer in Table 2 designates how suitable the printer is for particular applications such as desktop publishing and downloading music over the Internet. In this example, the printer has no relevance to downloading of music. Thus, if user profile 114 indicates that the only potential user application for the computer system is to download music, based on that usage, advisor module 108, aided by the information in application quality table 434, will not emphasize the purchase and selection of a printer during product optimization.
In one embodiment of the present invention, the information in attribute to quality mapping table 432 (
Product heuristics database 440 (
Preferably, a component recommendation 444 includes a description of an option corresponding to a given component 406 in sufficient detail to distinguish the option from other available options for the given component 406. In one embodiment, this description is an abbreviated version of the description provided for the option as presented by sales module 104. For example, when an available option for a component 406 of a computer system 404 is “Advanced Audio J45 Super Woofer with Surround Sound,” a corresponding component recommendation 444 is “Advanced Audio” when there are no other speaker options available from the manufacturer of Advanced Audio.
The present invention uses product rationales 446, which are reasons, consistent with the goals of the user, for selecting a component or component option. In a preferred embodiment, advisor module 108 will select a product rationale 446 that is most relevant to the requirements of the user and display this product rationale 446 concurrently with the component recommendation 444.
In one embodiment of the present invention, the different types of advice that are stored in component recommendations 444 are indexed by two tags. The first tag represents the specificity of the advice, on a scale ranging from general to specific. Specific advice references a particular option associated with a component 406. The second tag used to index component recommendations 444 is the amount of information in a particular component recommendation 444. At one end of the second tag, a component recommendation 444 provides only information about the corresponding component and no recommendation is provided. At the other end of this second tag, a component recommendation 444 provides a particular course of action together with only the most general information, such as an explanation that the suggested course of action “increases the quality of the product.” An example of an item in the database 444 that is tagged as general and informational only would be “A disk with a SCSI interface will load data faster than the ATA interface,” whereas the item “A SCSI interface loads your photos 50% faster than the same disk with an ATA interface” is also informational only, but more specific. An example of an item that is tagged as specific and provides a particular recommendation would be “You should get the 20.1 GB SCSI disk for only $50 more than the ATA interface because it will load your photos 50% faster.”
In some aspects of the invention, the information present in component recommendations 444 is related to the product. Examples of information directed to the product includes guidelines of key components 406 of a product, the most demanding applications that the product can handle, and the overall price range of typical configurations of the product. In yet other aspects of the invention, the information present in a component recommendation 444 concerns specific components 406 in a product, such as component 406 functionality, component 406 interrelationships, component 406 qualities, or the procedure for adding component 406 to a base product 404 when the user already possesses base product 404 and is ordering component 406 at a later date. In additional aspects of the present invention, the information present in component recommendations 444 relate to the individual qualities of components 406, such as the benefit that the nth quality of a component 406 will have on an application to be accomplished with the product. An example of such a quality, in accordance with this aspect of the invention, is “look for print speed and paper handling capacity for home office applications.”
In other aspects of the present invention, recommendations 442 are related to the system in general, such as the designation of an appropriate price range for a product or an indication of which components 406 are the most critical to the accomplishment of the stated requirements of the user. In other aspects of the present invention, recommendations 442 relate to specific components 406, such as the advantages and/or disadvantages of adding a particular component 406 to a base product 404.
In some cases, the content of a recommendation 442 is tailored to the preferences of the user as defined by user profile 114. For example, the following information is provided to a user which who is unlikely to respond to an unsolicited recommendation:
When user interaction style 278 is introverted, advisor 108 moderates the tone of the recommendation. For example:
An important advantage of the present invention is that advisor module 108 will generate a highly customized formatted display at each stage during a product optimization process. In one embodiment, the formatted display takes the form of a menu that includes the options that are associated with a particular component 406 in need at optimization. In addition, the formatted display will include a set of frequently asked questions 452 that are often asked by users when optimizing component 406. To generate this portion of the formatted display, advisor module 108 will query frequently asked questions (FAQ) database 452 using profile elements from the user profile 114 associated with the user. Thus, FAQ database 452 is filtered to yield FAQs of highest interest to the user. In one embodiment, user profile 114 elements that are used to filter FAQ database include applications, usages of interest to the user, component qualities and attributes of interest to the user, component qualities that affect the satisfaction level of the user as a function of product application, level of user knowledge of the given product domain, and qualities and/or attributes whose values differ between the current selection and selection to be recommended by advisor module 108.
Preferably, FAQ database 452 is populated with questions and answer templates for each component 406, qualities of components 406 and key applications impacted by the component 406. In one embodiment, FAQ databases 452 of the present invention are highly structured unlike conventional FAQ databases. Further, in one embodiment, FAQ database 452 contains definitions and descriptions about the operation of a component 406. For example, if component 406 is a hard disk, a representative FAQ is “how does a hard disk work?” Additionally, in one aspect of the invention FAQ database 452 includes questions that highlight less known qualities of the component 406. For example, if component 406 is RAM memory and one or more of the options include the ECC attribute, a corresponding FAQ may ask “what is ECC memory?” Additionally, representative FAQs define relevant units of quality that are used to describe the associated component 406. For example, in the case of a component 406 that is a hard drive, such a question may address and answer the question “what is a gigabyte?”
In yet another aspect of the invention, FAQ database 452 is populated with questions that reinforce the importance of a particular quality that formed the basis for which advisor module 108 recommended a particular component 406. For example, when advisor module 108 recommends a particular hard disk because the application determined that speed was an important quality, advisor module 108 will include a FAQ such as “Why is disk speed important?” in the formatted display. Other examples of such FAQs include the question “Why do I need more disk space?” in cases in which advisor module 108 judged that disk size is an important quality to optimize.
In still another aspect of the present invention, the formatted display generated by advisor module 108 includes FAQs that inform the user about qualities that advisor module 108 has determined should be considered by the user when comparing the various options available to the user for a component 406 and to educate the user on how to review a data sheet or other form of data that provides comparative information for the various options associated with a component 406. For example, in the case of a component 406 that is a hard disk for a computer system, an illustrative FAQ in accordance with this aspect of the invention is “What should be considered when selecting a disk?” Advantageously, the FAQs of the present invention include questions and answers for the most demanding applications for a component 406, criteria for the component 406 when considering a specific application and what's new in a component where the latest technology or features for a component are described (e.g., “What's new in printers?”). Further FAQ database 452 include questions and answers that address the difficulty or possibility of upgrading a component 406 at a later date (e.g., “How can I add more memory later?”). In order to help the user evaluate the default or their current selection, the FAQ includes questions about their specific selection. The answers are constructed from templates using data in product specification database 420.
Table 4 provides an exemplary list of questions in FAQ database 452 that relate to hard drive components 406.
In some embodiments of the present invention, the formatted display generated at each stage during an product optimization process provides the user with the option to review an instructional sequence 454 that provide more detail about a component 406 than what is typically found in a FAQ. Topics covered by instructional sequences 454 include how components 406 work, which components 406 are most critical to a product, and the relationship between components 406 and similar topics. In one embodiment, instructional sequences 454 are not general tutorials on subjects related to the system being optimized but, rather, are brief lessons presenting specific product concepts, product features, information about usage requirements. In one embodiment of the present invention, instructional sequences 454 have a presentation duration of approximately two to three minutes. In such embodiments, the instructional sequence occupies about three frames so that it does not interfere with the continuity of the product optimization. In one aspect of the invention, advisor module 108 will ask the user to evaluate usefulness of the instructional sequence 454 upon termination of the sequence based on criteria such as the appropriateness of the level of materials presented and the scope of the material covered during the sequence. Such feedback is used to update user profile 114 and to guide advisor module 108 in generating more appropriate formatted displays in subsequent optimization steps. For example, such information is used to determine when subsequent formatted displays should contain prompts for additional instructional sequences 454.
In a preferred embodiment, the formatted display presented to the user at each stage of the optimization process is in the form of a menu. Advisor module 108 generates the menu based on updated characteristics in the user profile 114. In one aspect of the invention, advisor module 108 selects a menu template 460 from knowledge database 110 and populates the template with elements selected from other portions of knowledge database 110, such as frequently asked questions, options associated with one or more component 406 to be optimized, a prompt to run an instructional sequence 454 (instructional sequence prompt), and recommendation messages. Recommendation messages of the present invention take several forms. In one form, a recommendation message reinforces a decision made by the user, (e.g. “That is a great choice”). In a second form, a recommendation messages invites the user to reconsider a choice or explicitly indicate which option the user should select for a given component 406 based on a characteristic in user profile 114.
In one embodiment, Advisor module 108 employs a plurality of strategies for determining which option or options for a component best match user profile 114. The recommendation algorithm computes answers to following types of questions:
In one embodiment of the present invention, a best-fit algorithm is employed. This function maximizes the overall satisfaction level for all of the goals of the user. In this method, the satisfaction level relative to the goals of the user is computed for each option available for a component relative to the currently selected line item.
An exemplary recommendation algorithm is now described to illustrate how user profile 114 is combined with knowledge database 110 to provide rankings of options. The recommendation algorithm accesses usage requirements 246 and price sensitivity 242 as inputs from user profile 114 for the candidate ranking process.
Rankings for each option available for a component are computed by the following procedure:
(a) Product specification database 420 is used in conjunction with the attribute to quality mapping table 432 to determine the appropriate range for each candidate option for each quality of the component.
(b) Candidates are ranked using values in the application qualities desirability table 434 for the applications of interest to the user weighted by the importance of these applications to the user.
(c) Candidates are further filtered using data from price maps 436 to select options that are likely to be accepted based on the price sensitivity 242 and budget 244 of the user.
In certain cases, it is more beneficial to raise goals above a satisfactory or barely adequate level rather than raising other goals to very satisfactory or outstanding. Using a non-linear scale as illustrated in Table 5, the recommendation algorithm favors selection of options that increase ratings of goals at the lower end of the scale. This corresponds to the real life situation that the perceived difference between unsatisfactory and satisfactory is larger than the perceived difference between satisfactory and outstanding. In some embodiments, a mathematical function is used instead of a lookup table.
The structure of various preferred systems and data structures in accordance with the present invention have now been disclosed. Attention now turns to
When the event received in processing step 502 is termination event (508-Yes), the instance of advisor module 108 ends (510). Processing step 510 includes termination processes such as file clean up, modification of the user profile, and/or generation of a farewell display. When the event received in processing step 502 is not a termination event (508-No), processing step 512 is executed. In processing step 512, a formatted display is generated based on one or more characteristics in updated profile user 114. It will be appreciated that, in one embodiment of the present invention, one of the characteristics considered in the generation of the formatted display is the classification of event 502, which was stored in user profile 114 during processing step 506.
The formatted display generated in processing step 512 is selected from a broad array of different possible display formats. In one embodiment, the formatted display comprises a menu that includes one or more elements selected from knowledge database 110. However, there is no absolute requirement that the formatted display include a menu. In fact, it is possible that, depending upon the nature of one or more characteristics present in updated user profile 114, advisor module 108 will limit the formatted display generated in processing step 512. For example, it is possible that advisor module 108 will limit the formatted display to a single recommendation message, a single user-posed clarifying question, a reinforcement message, or indeed, no formatted display whatsoever. Once the formatted display has been generated (512), the user profile is updated to record the format type and content of the display (514). Importantly, this update ensures that in subsequent iterations of the processing loop illustrated in
Now that an embodiment in which the general nature of the processing steps of the present invention have been disclosed, attention turns to the processing steps of runtime embodiments, which are in accordance with the present invention, so that important advantages of the present invention are highlighted. The first of these runtime embodiments is illustrated in
In
In response to the request for base product information, sales module 104 obtains relevant product information from sales module database 106 (
It will be appreciated that one advantage of the present invention is that the organization of user profile 114 allows advisor module 108 to use information that has been gathered about a user from a prior optimization of a product even in instances where the prior product is completely unrelated to the product that is currently being optimized. When a determination is made that there is an insufficient amount of information in user profile 114 to effectively assist the user in optimizing the product (610-No), a loop is initiated in which advisor module 108 asks the user a seed question (612), the user answers the seed question using browser 54 (614), and one or more characteristics in the user profile 114 that corresponds to the user is updated based on the answer to the seed question (616). The loop consisting of processing steps 612, 614, and 616 is repeated in some embodiments until the profile is sufficiently populated. In other embodiments, the maximum number of times the loop can repeat is restricted by either an absolute value or a value that is a function of a characteristic in the profile, such as the interest in interacting with advisor 272 (
The processing steps executed by advisor module 108 continues with the execution of processing step 618, in which advisor module 108 uses one or more characteristics from updated user profile 114 to generate a formatted display. Further, advisor module 108 updates user profile 114 to reflect the nature of the formatted display generated (618). Processing step 618 provides a distinct advantage over prior art systems and methods because an adaptive approach is taken to building the formatted display based on user characteristics rather than rigid predetermined menus. In some embodiments, the formatted display generated in processing step 618 comprises a menu that includes the various options available for one or more components associated with the base product of interest, one or more frequently asked questions associated with such components, a prompt for an instructional sequence 454 (instructional sequence prompt), and/or a recommendation message. Once advisor module 108 has generated a formatted display, it is communicated to browser 54 on client 22. Browser 54 presents the formatted display (620) and waits for a user response (628). Concurrently, after advisor module 108 has generated the formatted display and updated user profile 114 (618), the advisor module 108 waits for the next event (646).
Advantageously, in
Because sales module 104 and advisor module 108 operate in an asynchronous manner, the user has the choice of interacting with sales module 104 or advisor module 108 at all times. For example, in
At this stage, the overall procedure used in the runtime embodiment of
The process of
Sales module 104 notifies advisor module 108 of the user response (652). Advisor module 108 proceeds to update user profile 114 based on the interaction with sales module 104 (654). Advisor module 108 advances to the generation of a formatted displayed that will assist the user in optimizing a product (656). The formatted display is presented to the user with the assistance of browser 54 (658) and the browser waits for a user response (628). Further, advisor module 108 updates the user profile based on the nature of the formatted display generated in processing step 656 (660). After processing step 660, advisor module 108 waits for an event 646. After step 660 updates the user profile, if the triggering event is not a termination event, advisor module 108 advances to step 646 and waits for the next event.
In processing step 670, sales module 104 processes the user interaction of processing step 650 and updates a selection display. Further, the updated selection display is presented to the user by browser 54 (672). After processing step 670, sales module 104 waits for the next event to occur (640). Similarly, after processing step 672, browser 54 waits for the user to respond to the sales selection display (628). It will be appreciated that processing step 650 (
The process of
In response to the user interaction of processing step 680, advisor module 108 updates one or more characteristics in user profile 114 (682) and generates a formatted display based, in part, on one or more characteristics in user profile 114 (684). The formatted display is communicated to client 22 and displayed by browser 54 (686). Further, user profile 114 is updated based on the nature of the formatted display generated in processing step 684 (688). If the user has made a change in an option selected for a component associated with the base product, advisor module 108 notifies sale module 104 of this change (690) and waits for the next event (646) if the triggering event is not a termination event. Sales module 104 processes the component selection identified in processing step 690 and updates the selection display when necessary (692) and waits for the next event (640). When an updated selection display is generated in processing step 692, the updated selection display is communicated to client 22 and presented by browser 54 (694). Then, browser 64 waits for a user response (628).
One of skill in the art will appreciate that an important advantage of the present invention is that it uses all available information about the user to determine the optimal way to present information rather than relying on fixed choices, predetermined procedures, and scripts. Thus, valuable information about the user inferred from user interactions with advisor module 108 are not lost, but rather, are used to customize the actions taken by advisor module 108 to the unique characteristics of the user.
One advantage of the present invention is that the user is not required to respond to the menu. For example, the user can simply ignore the menu provided by advisor module 108 and interact directly with sales module 104. When the user chooses to respond to the menu, advisor module 108 determines whether the response is a recommendation request (704). If the user selects a frequently asked question (704-No), advisor module 108 provides the content for the frequently asked question (718) and goes to the wait state 628.
When the user selects a recommendation request from menu 702 (704-Yes), advisor module 108 determines whether there is sufficient information in the user profile 114 to offer a recommendation (706). If there is insufficient information (706-No), advisor module 104 will elicit further response from the user or choose to proceed without sufficient information (710). If advisor module 108 chooses to proceed without sufficient information, it will offer the best advice possible in absence of such information. An illustration of a situation where advisor module 104 will choose to forgo requesting additional information, despite having inadequate user profile 114 data, is the case in which the characteristic “interest in interacting with advisor” 272 in user profile 114 (
When sufficient information to make a recommendation is present in user profile 114 or advisor module 108 decides to proceed in the absence of such information (706-Yes), advisor module 108 determines whether the current option designated for component N meets the goals of the user. If the currently designated option for component N meets the goals of the user (708-Yes), the option is reinforced with a statement such as “Option X should meet your needs because of goal/circumstance Y” (712). If the currently designated option for component N does not meet the goals of the user, advisor module 108 will offer specific alternative recommendations for component N (714). After either step 712 or 714 is executed, advisor module 108 returns to the state of step 646 (
Like
When the current option meets the goals of both the user and the seller (802-Yes), advisor module 108 determines whether it is appropriate to cross-sell related components related to the component that was changed in step 800 (806). A factor in this decision is the likelihood that the user will accept a recommendation from advisor module 108. Further, advisor module 108 will check which components are the most appropriate to cross-sell relative to the newly changed component based on the relationship of such candidate components to the newly changed component. In one example, advisor module 108 chooses to cross-sell a backup ZIP drive, but not a digital camera, when the user selects a hard drive. Other factors used in the analysis of processing step 806 include the proximity of the placement of components within the display provide by sales module 104 and whether the candidate component has been previously considered by the user. Further, in one embodiment, the analysis in processing step 806 is assisted by a matrix provided by the seller that details the components which are most desirable to cross-sell for each component associated with a base product.
When advisor module 108 decides that a cross-sell is not appropriate (806-No), the module reinforces the change made by the user with a reinforcement message such as “That is a great choice!” (808). In one embodiment, the reinforcement message is followed by a rationale. When advisor module 108 decides to cross-sell a product (806-Yes), it determines which of two approaches to take in making the cross-sell (810). In the first cross-sell approach (810-Yes), advisor module recommends a specific option for candidate component Y (812). In the second cross-sell approach, the user is asked to consider candidate component Y but the advisor module 108 does not explicitly recommend which option should be selected for component Y (814). It will be appreciated that the updated user profile 114 plays an important role in decisions made in steps 802, 806 and 810.
In
Once advisor module 108 has determined what kinds of recommendations should be made in order to optimize the product identified by the user, the module will select one or more appropriate templates for the formatted display that is presented to the user (930). The templates are chosen from the available templates found in menu template 460 (
In processing step 940, advisor module 108 selects the best rationales for the recommendations adopted in processing step 920. Processing step 940 is advantageous because it correlates user characteristics from user profile 114 with a library of product rationales 446 found in knowledge database 110 and only uses the subset of rationales in the library of rationales that will most likely be appreciated by the user. Further, because user profile 114 is updated using all interactions between the user and advisor module 108, the user profile rapidly converges on the exact characteristics of the user, thereby improving the selection process of step 940.
In some embodiments, advisor module 108 selects additional elements for the formatted display. One exemplary class of additional elements are suggestions, such as “give another reason for picking component X/option Y,” that are added in step 960. Another exemplary class of additional elements are frequently asked questions (FAQs), which are selected in step 980. The particular FAQs selected in step 980 are chosen from FAQ database 452 (
An exemplary formatted display in response to a user request for a recommendation is provided in Table 7. The recommended option is described in sufficient detail to distinguish it from other disks with the same capacity. The rationale in the recommendation corresponds to a significant improvement in a quality of the component for an important usage. The menu elements allow the user to accept, reject, or get further reasons for accepting a recommendation. The frequently asked question selected for the user are based on user profile 114 elements such as usage requirements of interest to the user, domain knowledge of the user and previous consumption of frequently asked questions.
In
When the user rejects the recommendation (1000-rejected), processing steps 1010 thru 1016 weight characteristics in user profile 114 differently than in the case when the user accepts the recommendation. For example, in processing step 1010, the importance of usages and qualities that are listed for a rationale used to support the recommendation are down-weighted. Further, the importance of user profile characteristics “interest in getting recommendations” 274 from advisor module 108 and “interest in interaction with advisor 108” 272 are down-weighted (1012, 1016) whereas the importance of the user profile characteristic “price sensitivity” 242 is up-weighted (1014) when the selected item is inside the component price limit.
When the user ignores the recommendation (1000-ignored), the importance of the characteristics “interest in interacting with advisor 108” 272 and “interest in getting recommendations from advisor 108” 274 are down-weighted (1020).
In one embodiment, manifestations of advisor module 108 and sales module 104 are displayed simultaneously by web browser 54. For example, in one embodiment, advisor module 108 and sales module 104 manifestations are represented by separate hypertext markup language (HTML) frames. In another embodiment, the two modules are Java applets that are run concurrently by client 22. In yet another embodiment, advisor module 108 and sales module 104 are independent applications that are executed in a multitasking operating system environment such as UNIX or Microsoft Windows. In one embodiment, manifestations of modules 104 and 108 are presented to the user display 40 in an asynchronous manner regardless of how the underlying modules are encoded and executed. That is, the user is free to either use or ignore advisor module 108. When the user ignores advisor module 108, sales module 104 is used to complete the transaction.
In the embodiment shown in
When speech bubble 1118 is not large enough to provide the formatted display generated by advisor module 108 during various stages of the product optimization process, the speech bubble is expanded. In one aspect, the speech bubble is expanded to the full screen, to present, for example, an instructional sequence. In another aspect of the invention, the advisor module 108 augments speech bubble 1118 with a pop-up window. Further, character manifestation 1120 uses a gesture to direct the user's attention to the pop-up window. Control bar 1222 contains user control elements such as specialized icons that allow the user to directly interact with the advisor module, such as requesting different types of general assistance.
Although sales module 104 and advisor module 108 are depicted on the same server 24 in
The present invention can be implemented as a computer program product that includes a computer program mechanism embedded in a computer readable storage medium. For instance, the computer program product could contain advisor module 108 and sales module 104 (
The foregoing descriptions of specific embodiments of the present invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, obviously many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in an order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.
| Number | Name | Date | Kind |
|---|---|---|---|
| 3829088 | Pahlas | Aug 1974 | A |
| 4451985 | Pullman | Jun 1984 | A |
| D276626 | Lockwood | Dec 1984 | S |
| 4567359 | Lockwood | Jan 1986 | A |
| RE32115 | Lockwood et al. | Apr 1986 | E |
| D286956 | Lockwood | Dec 1986 | S |
| 4793810 | Beasley, Jr. | Dec 1988 | A |
| 4949278 | Davies et al. | Aug 1990 | A |
| 4992940 | Dworkin | Feb 1991 | A |
| 4999833 | Lee | Mar 1991 | A |
| 5002491 | Abrahamson et al. | Mar 1991 | A |
| 5059127 | Lewis et al. | Oct 1991 | A |
| 5175800 | Galis et al. | Dec 1992 | A |
| 5204813 | Samph et al. | Apr 1993 | A |
| 5206903 | Kohler et al. | Apr 1993 | A |
| 5208869 | Holt | May 1993 | A |
| 5211563 | Haga et al. | May 1993 | A |
| 5214715 | Carpenter et al. | May 1993 | A |
| 5251268 | Colley et al. | Oct 1993 | A |
| 5261823 | Kurokawa | Nov 1993 | A |
| 5267865 | Lee et al. | Dec 1993 | A |
| 5294229 | Hartzell et al. | Mar 1994 | A |
| 5302132 | Corder | Apr 1994 | A |
| 5309355 | Lockwood | May 1994 | A |
| 5310349 | Daniels et al. | May 1994 | A |
| 5337141 | Egli et al. | Aug 1994 | A |
| 5345380 | Babson, III et al. | Sep 1994 | A |
| 5397865 | Park | Mar 1995 | A |
| 5411947 | Hostetler et al. | May 1995 | A |
| 5412576 | Hansen | May 1995 | A |
| 5434994 | Shaheen et al. | Jul 1995 | A |
| 5441415 | Lee et al. | Aug 1995 | A |
| 5444774 | Friedes | Aug 1995 | A |
| 5458494 | Krohn et al. | Oct 1995 | A |
| 5493490 | Johnson | Feb 1996 | A |
| 5513991 | Reynolds et al. | May 1996 | A |
| 5513994 | Kershaw et al. | May 1996 | A |
| 5546539 | Poling | Aug 1996 | A |
| 5576951 | Lockwood | Nov 1996 | A |
| 5581664 | Allen et al. | Dec 1996 | A |
| 5586218 | Allen | Dec 1996 | A |
| 5594791 | Szlam et al. | Jan 1997 | A |
| 5615296 | Stanford et al. | Mar 1997 | A |
| 5625748 | McDonough et al. | Apr 1997 | A |
| 5630025 | Dolby et al. | May 1997 | A |
| 5636036 | Ashbey | Jun 1997 | A |
| 5652897 | Linebarger et al. | Jul 1997 | A |
| 5678002 | Fawcett et al. | Oct 1997 | A |
| 5701399 | Lee et al. | Dec 1997 | A |
| 5701419 | McConnell | Dec 1997 | A |
| 5708798 | Lynch et al. | Jan 1998 | A |
| 5710887 | Chelliah et al. | Jan 1998 | A |
| 5721845 | James et al. | Feb 1998 | A |
| 5727950 | Cook et al. | Mar 1998 | A |
| 5743746 | Ho et al. | Apr 1998 | A |
| 5745765 | Paseman | Apr 1998 | A |
| 5748711 | Scherer | May 1998 | A |
| 5757904 | Anderson | May 1998 | A |
| 5758257 | Herz et al. | May 1998 | A |
| 5781914 | Stork et al. | Jul 1998 | A |
| 5784539 | Lenz | Jul 1998 | A |
| 5788504 | Rice et al. | Aug 1998 | A |
| 5788508 | Lee et al. | Aug 1998 | A |
| 5802526 | Fawcett et al. | Sep 1998 | A |
| 5802536 | Yoshii et al. | Sep 1998 | A |
| 5809282 | Cooper et al. | Sep 1998 | A |
| 5812743 | Takahashi | Sep 1998 | A |
| 5822743 | Gupta et al. | Oct 1998 | A |
| 5825651 | Gupta et al. | Oct 1998 | A |
| 5825869 | Brooks et al. | Oct 1998 | A |
| 5827070 | Kershaw et al. | Oct 1998 | A |
| 5844554 | Geller et al. | Dec 1998 | A |
| 5852814 | Allen | Dec 1998 | A |
| 5867562 | Scherer | Feb 1999 | A |
| 5872833 | Scherer | Feb 1999 | A |
| 5877966 | Morris et al. | Mar 1999 | A |
| 5895466 | Goldberg et al. | Apr 1999 | A |
| 5904485 | Siefert | May 1999 | A |
| 5907706 | Brodsky et al. | May 1999 | A |
| 5909589 | Parker et al. | Jun 1999 | A |
| 5918217 | Maggioncalda et al. | Jun 1999 | A |
| 5920848 | Schutzer et al. | Jul 1999 | A |
| 5944839 | Isenberg | Aug 1999 | A |
| 5947747 | Walker et al. | Sep 1999 | A |
| 5951694 | Choquier et al. | Sep 1999 | A |
| 5956683 | Jacobs et al. | Sep 1999 | A |
| 5956709 | Xue | Sep 1999 | A |
| 5960399 | Barclay et al. | Sep 1999 | A |
| 5963939 | McCann et al. | Oct 1999 | A |
| 5963940 | Liddy et al. | Oct 1999 | A |
| 5963953 | Cram et al. | Oct 1999 | A |
| 5966429 | Scherer | Oct 1999 | A |
| 5970482 | Pham et al. | Oct 1999 | A |
| 5974446 | Sonnenreich et al. | Oct 1999 | A |
| 5978648 | George et al. | Nov 1999 | A |
| 5983220 | Schmitt | Nov 1999 | A |
| 5987376 | Olson et al. | Nov 1999 | A |
| 5987415 | Breese et al. | Nov 1999 | A |
| 5991394 | Dezonno et al. | Nov 1999 | A |
| 6002854 | Lynch et al. | Dec 1999 | A |
| 6012051 | Sammon, Jr. et al. | Jan 2000 | A |
| 6018722 | Ray et al. | Jan 2000 | A |
| 6021403 | Horvitz et al. | Feb 2000 | A |
| 6029099 | Brown | Feb 2000 | A |
| 6032129 | Greef et al. | Feb 2000 | A |
| 6035283 | Rofrano | Mar 2000 | A |
| 6038544 | Machin et al. | Mar 2000 | A |
| 6044142 | Hammarstrom et al. | Mar 2000 | A |
| 6044146 | Gisby et al. | Mar 2000 | A |
| 6055569 | O'Brien et al. | Apr 2000 | A |
| 6067525 | Johnson et al. | May 2000 | A |
| 6070142 | McDonough et al. | May 2000 | A |
| 6070149 | Tavor et al. | May 2000 | A |
| 6088722 | Herz et al. | Jul 2000 | A |
| 6091930 | Mortimer et al. | Jul 2000 | A |
| 6094673 | Dilip et al. | Jul 2000 | A |
| 6105003 | Morohashi et al. | Aug 2000 | A |
| 6112186 | Bergh et al. | Aug 2000 | A |
| 6117187 | Staelin | Sep 2000 | A |
| 6119101 | Peckover | Sep 2000 | A |
| 6122632 | Botts et al. | Sep 2000 | A |
| 6125356 | Brockman et al. | Sep 2000 | A |
| 6137870 | Scherer | Oct 2000 | A |
| 6138105 | Walker et al. | Oct 2000 | A |
| 6145002 | Srinivasan | Nov 2000 | A |
| 6167383 | Henson | Dec 2000 | A |
| 6169979 | Johnson | Jan 2001 | B1 |
| 6173266 | Marx et al. | Jan 2001 | B1 |
| 6173279 | Levin et al. | Jan 2001 | B1 |
| 6177932 | Galdes et al. | Jan 2001 | B1 |
| 6178546 | McIntyre | Jan 2001 | B1 |
| 6182059 | Angotti et al. | Jan 2001 | B1 |
| 6188751 | Scherer | Feb 2001 | B1 |
| 6192110 | Abella et al. | Feb 2001 | B1 |
| 6201948 | Cook et al. | Mar 2001 | B1 |
| 6205207 | Scherer | Mar 2001 | B1 |
| 6212502 | Ball et al. | Apr 2001 | B1 |
| 6219654 | Ruffin | Apr 2001 | B1 |
| 6220743 | Campestre et al. | Apr 2001 | B1 |
| 6223609 | Leifeld et al. | May 2001 | B1 |
| 6233547 | Denber | May 2001 | B1 |
| 6233570 | Horvitz et al. | May 2001 | B1 |
| 6236978 | Tuzhilin | May 2001 | B1 |
| 6237035 | Himmel et al. | May 2001 | B1 |
| 6243680 | Gupta et al. | Jun 2001 | B1 |
| 6243684 | Stuart et al. | Jun 2001 | B1 |
| 6243754 | Guerin et al. | Jun 2001 | B1 |
| 6247005 | Edwards et al. | Jun 2001 | B1 |
| 6249807 | Shaw et al. | Jun 2001 | B1 |
| 6249809 | Bro | Jun 2001 | B1 |
| 6253173 | Ma | Jun 2001 | B1 |
| 6256620 | Jawahar et al. | Jul 2001 | B1 |
| 6260035 | Horvitz et al. | Jul 2001 | B1 |
| 6262730 | Horvitz et al. | Jul 2001 | B1 |
| 6263066 | Shtivelman et al. | Jul 2001 | B1 |
| 6263325 | Yoshida et al. | Jul 2001 | B1 |
| 6266649 | Linden et al. | Jul 2001 | B1 |
| 6275806 | Pertrushin | Aug 2001 | B1 |
| 6278996 | Richardson et al. | Aug 2001 | B1 |
| 6282527 | Gounares et al. | Aug 2001 | B1 |
| 6282565 | Shaw et al. | Aug 2001 | B1 |
| 6285986 | Andrews | Sep 2001 | B1 |
| 6304864 | Liddy et al. | Oct 2001 | B1 |
| 6317722 | Jocobi et al. | Nov 2001 | B1 |
| 6321209 | Pasquali | Nov 2001 | B1 |
| 6330554 | Altschuler et al. | Dec 2001 | B1 |
| 6332129 | Walker et al. | Dec 2001 | B1 |
| 6337906 | Bugash et al. | Jan 2002 | B1 |
| 6341276 | Bender et al. | Jan 2002 | B1 |
| 6343116 | Quinton et al. | Jan 2002 | B1 |
| 6343329 | Landgraf et al. | Jan 2002 | B1 |
| 6356284 | Manduley et al. | Mar 2002 | B1 |
| 6356633 | Armstrong | Mar 2002 | B1 |
| 6356869 | Chapados et al. | Mar 2002 | B1 |
| 6356884 | Thaler | Mar 2002 | B1 |
| 6370526 | Agrawal et al. | Apr 2002 | B1 |
| 6377944 | Busey et al. | Apr 2002 | B1 |
| 6381640 | Beck et al. | Apr 2002 | B1 |
| 6389124 | Schnarel et al. | May 2002 | B1 |
| 6393428 | Miller et al. | May 2002 | B1 |
| 6397193 | Walker et al. | May 2002 | B1 |
| 6401061 | Zieman | Jun 2002 | B1 |
| 6411926 | Chang | Jun 2002 | B1 |
| 6411947 | Rice et al. | Jun 2002 | B1 |
| 6427063 | Cook et al. | Jul 2002 | B1 |
| 6434230 | Gabriel | Aug 2002 | B1 |
| 6442438 | Naillon | Aug 2002 | B1 |
| 6442493 | Jurisch et al. | Aug 2002 | B1 |
| 6442519 | Kanevsky et al. | Aug 2002 | B1 |
| 6449356 | Dezonna | Sep 2002 | B1 |
| 6449588 | Bowman-Amuah | Sep 2002 | B1 |
| 6449646 | Sikora et al. | Sep 2002 | B1 |
| 6451187 | Suzuki et al. | Sep 2002 | B1 |
| 6460037 | Weiss et al. | Oct 2002 | B1 |
| 6473791 | Al-Ghosein et al. | Oct 2002 | B1 |
| 6473794 | Guheen et al. | Oct 2002 | B1 |
| 6477520 | Malaviya et al. | Nov 2002 | B1 |
| 6480599 | Ainslie et al. | Nov 2002 | B1 |
| 6493686 | Francone et al. | Dec 2002 | B1 |
| 6498921 | Ho et al. | Dec 2002 | B1 |
| 6519571 | Guheen et al. | Feb 2003 | B1 |
| 6519628 | Locascio | Feb 2003 | B1 |
| 6526387 | Ruffin et al. | Feb 2003 | B1 |
| 6529954 | Cookmeyer, II et al. | Mar 2003 | B1 |
| 6553346 | Yu | Mar 2003 | B1 |
| 6560590 | Shwe et al. | May 2003 | B1 |
| 6563921 | Williams et al. | May 2003 | B1 |
| 6571225 | Oles et al. | May 2003 | B1 |
| 6574599 | Lim et al. | Jun 2003 | B1 |
| 6578054 | Hopmann et al. | Jun 2003 | B1 |
| 6581048 | Werbos | Jun 2003 | B1 |
| 6584185 | Nixon | Jun 2003 | B1 |
| 6584312 | Morin et al. | Jun 2003 | B1 |
| 6598039 | Livowsky | Jul 2003 | B1 |
| 6600749 | Hayball et al. | Jul 2003 | B1 |
| 6604141 | Ventura | Aug 2003 | B1 |
| 6606598 | Holthouse et al. | Aug 2003 | B1 |
| 6614885 | Polcyn | Sep 2003 | B2 |
| 6615172 | Bennett et al. | Sep 2003 | B1 |
| 6633846 | Bennett et al. | Oct 2003 | B1 |
| 6650748 | Edwards et al. | Nov 2003 | B1 |
| 6652283 | Van Schaack et al. | Nov 2003 | B1 |
| 6658396 | Tang et al. | Dec 2003 | B1 |
| 6658598 | Sullivan | Dec 2003 | B1 |
| 6665395 | Busey et al. | Dec 2003 | B1 |
| 6665640 | Bennett et al. | Dec 2003 | B1 |
| 6665644 | Kanevsky et al. | Dec 2003 | B1 |
| 6694314 | Sullivan et al. | Feb 2004 | B1 |
| 6694482 | Arellano et al. | Feb 2004 | B1 |
| 6724887 | Eilbacher et al. | Apr 2004 | B1 |
| 6732188 | Flockhart et al. | May 2004 | B1 |
| 6741698 | Jensen | May 2004 | B1 |
| 6748369 | Khedkar et al. | Jun 2004 | B2 |
| 6760727 | Schroeder et al. | Jul 2004 | B1 |
| 6771765 | Crowther et al. | Aug 2004 | B1 |
| 6775378 | Villena et al. | Aug 2004 | B1 |
| 6798876 | Bala | Sep 2004 | B1 |
| 6819759 | Khue et al. | Nov 2004 | B1 |
| 6826549 | Marks et al. | Nov 2004 | B1 |
| 6829603 | Chai et al. | Dec 2004 | B1 |
| 6895558 | Loveland | May 2005 | B1 |
| 6901397 | Moldenhauer et al. | May 2005 | B1 |
| 6922689 | Shtivelman | Jul 2005 | B2 |
| 6934381 | Klein et al. | Aug 2005 | B1 |
| 6941304 | Gainey et al. | Sep 2005 | B2 |
| 6965865 | Pletz et al. | Nov 2005 | B2 |
| 6999990 | Sullivan et al. | Feb 2006 | B1 |
| 7050977 | Bennett | May 2006 | B1 |
| 7065188 | Mei et al. | Jun 2006 | B1 |
| 7068774 | Judkins et al. | Jun 2006 | B1 |
| 7092509 | Mears et al. | Aug 2006 | B1 |
| 20010014868 | Herz et al. | Aug 2001 | A1 |
| 20010032140 | Hoffman | Oct 2001 | A1 |
| 20010044743 | McKinley et al. | Nov 2001 | A1 |
| 20010044751 | Pugliese, III et al. | Nov 2001 | A1 |
| 20010044759 | Kutsumi et al. | Nov 2001 | A1 |
| 20010049632 | Rigole | Dec 2001 | A1 |
| 20010051893 | Hanai et al. | Dec 2001 | A1 |
| 20010054064 | Kannan | Dec 2001 | A1 |
| 20020002502 | Maes et al. | Jan 2002 | A1 |
| 20020004764 | Stolze et al. | Jan 2002 | A1 |
| 20020010645 | Hagen et al. | Jan 2002 | A1 |
| 20020036658 | Carolan et al. | Mar 2002 | A1 |
| 20020055890 | Foley | May 2002 | A1 |
| 20020055906 | Katz et al. | May 2002 | A1 |
| 20020107824 | Ahmed | Aug 2002 | A1 |
| Number | Date | Country |
|---|---|---|
| 2 301 664 | Jul 1998 | CA |
| 2 248 897 | Oct 2001 | CA |
| 2 485 238 | Dec 2004 | CA |
| 0 077 175 | Apr 1983 | EP |
| 0 496 492 | Jan 1992 | EP |
| 0 496 492 | Jan 1992 | EP |
| 0 829 996 | Mar 1998 | EP |
| 0 700 563 | Sep 1998 | EP |
| 1 191 772 | Mar 2002 | EP |
| 1 324 534 | Jul 2003 | EP |
| 1 424 844 | Jun 2004 | EP |
| 1 494 499 | Jan 2005 | EP |
| 0 977 175 | Nov 2005 | EP |
| 2 343 772 | Jul 1997 | GB |
| 10133847 | May 1998 | JP |
| 2002055695 | Feb 2002 | JP |
| 2002189483 | Jul 2002 | JP |
| 2002366552 | Dec 2002 | JP |
| 2002374356 | Dec 2002 | JP |
| 2004030503 | Jan 2004 | JP |
| 2004104353 | Apr 2004 | JP |
| 2004118457 | Apr 2004 | JP |
| 2004220219 | Aug 2004 | JP |
| 2004241963 | Aug 2004 | JP |
| 2004304278 | Oct 2004 | JP |
| 2005258825 | Sep 2005 | JP |
| WO 9215951 | Sep 1992 | WO |
| WO 9321587 | Oct 1993 | WO |
| WO 9502221 | Jan 1995 | WO |
| WO 9527360 | Oct 1995 | WO |
| WO9744767 | Nov 1997 | WO |
| WO 9744767 | Nov 1997 | WO |
| WO 9832107 | Jul 1998 | WO |
| WO9832107 | Jul 1998 | WO |
| WO 9901826 | Jan 1999 | WO |
| WO 9904347 | Jan 1999 | WO |
| WO 9953676 | Oct 1999 | WO |
| WO0029977 | May 2000 | WO |
| WO 0029977 | May 2000 | WO |
| WO 0070481 | Nov 2000 | WO |
| WO 0073955 | Dec 2000 | WO |
| WO 0075851 | Dec 2000 | WO |
| WO 0104814 | Jan 2001 | WO |
| WO 0133414 | May 2001 | WO |
| WO 0135617 | May 2001 | WO |
| WO 0137136 | May 2001 | WO |
| WO 0139028 | May 2001 | WO |
| WO 0139082 | May 2001 | WO |
| WO 0139086 | May 2001 | WO |
| WO 0182123 | Nov 2001 | WO |
| WO 0209399 | Jan 2002 | WO |
| WO 0219603 | Mar 2002 | WO |
| WO 0227426 | Apr 2002 | WO |
| WO 02061730 | Aug 2002 | WO |
| WO 03069874 | Aug 2002 | WO |
| WO 02073331 | Sep 2002 | WO |
| WO 03009175 | Jan 2003 | WO |
| WO 03021377 | Mar 2003 | WO |
| WO 2004059805 | Jul 2004 | WO |
| WO 2004091184 | Oct 2004 | WO |
| WO 2004107094 | Dec 2004 | WO |
| WO 2005006116 | Jan 2005 | WO |
| WO 2005011240 | Feb 2005 | WO |
| WO 2005013094 | Feb 2005 | WO |
| WO 2005069595 | Jul 2005 | WO |
| WO 2006050503 | May 2006 | WO |
| WO 2006062854 | Jun 2006 | WO |
| WO 2007033300 | Mar 2007 | WO |