« PreviousContinue »
METHOD AND APPARATUS FOR DATABASE
INDUCTION FOR CREATING FRAME BASED
REFERENCE TO RELATED APPLICATIONS 5
This application is a continuation of application Ser. No. 10/727,596, filed Dec. 5, 2003 (now U.S. Pat. No. 7,219,100, issued May 15,2007), which is related to application Ser. No. 09/684,907, filed Oct. 10,2000 (now U.S. Pat. No. 6,810,401, 10 issued Oct. 26, 2004), both of which are hereby incorporated by reference in their entireties.
The growing trend of mass customization in the manufacturing community has accentuated the importance of configuration systems. Configuration systems facilitate the configuration of desired products, services, or other assemblages that require users to gather and assimilate disparate knowledge of 20 makes, models, types, features, options, limitations, manufacturing constraints, etc. of a desired product/service (or group of the same) to be configured. In the manufacturing sector, for example, a configuration system can reconcile the complexities involved with configuring customizable prod- 25 ucts that conform to certain known manufacturing constraints. Through the use of configuration systems, a user can identify any potential manufacturing problems prior to the expenditure of funds.
Typically, configuration is facilitated through interaction 30 by a user, via a user interface, with an inference engine that performs, for example, frame-based inferences to discern product knowledge stored in a knowledge base. The creation of the knowledge base containing the disparate product knowledge involves acquiring the product knowledge from 35 numerous sources and encoding that knowledge using graphical user interface (GUI) tools.
Such GUI tools allow the user (typically, a knowledge engineer) to model the product knowledge in a tree like structure where each node of the tree is known as a frame. The 40 attributes that describe and specialize the frame are represented using slots. The node at each level in a tree inherits properties from its parent node(s) and allows the user to override, extend or specialize these properties at the current level. The level in a tree at which certain attributes are placed 45 depends on the generality of those attributes. For example, attributes that are common to a number of configurable items are placed closer to the top of the tree. Attributes that specialize a configurable item are placed at the lower levels of the tree. This process of creating a frame based knowledge tree is 50 called the product knowledge design process and is implemented by knowledge engineers.
Typically, the process of creating a frame based knowledge tree includes the creation of product information files by acquiring the product knowledge from various product 55 experts. These experts can include pricing experts, manufacturing process experts, product specification experts, customer service experts, etc. The process of amassing the disparate product knowledge, organizing that knowledge in some predetermined hierarchical system, and creating a 60 frame based knowledge tree is very time consuming, cost intensive and requires the coordination of several individuals.
A method for and apparatus for facilitating the creation of a frame based knowledge tree for use with a configuration
system is provided. In accordance with a preferred embodiment, a database induction module interacts with a user interface and a customer-provided product database containing product information. The user sets induction preferences via the GUI, and the induction module accesses product information from the client database files and automatically generates a frame based knowledge tree in light of the user's preferences.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram illustrating a database induction system in accordance with a preferred embodiment of the invention;
FIG. 2 is a screen shot of an exemplary graphical user interface used in the FIG. 1 database induction system in accordance with a preferred embodiment of the invention;
FIG. 3 is an exemplary illustration of a flowchart depicting an operational flow of the FIG. 1 database induction system in accordance with a preferred embodiment of the invention;
FIG. 4 is an exemplary illustration of a frame tree of domain knowledge specifications in accordance with a preferred embodiment of the invention;
FIG. 5 is an exemplary illustration of a frame tree constructed based on responses to SQL queries run during generation of a frame based knowledge tree in accordance with a preferred embodiment of the invention; and
FIG. 6 is an exemplary illustration of a frame based knowledge tree constructed in accordance with a preferred embodiment of the invention.
Preferred embodiments and applications of the invention will be described herein. Other embodiments may be realized and structural or logical changes may be made to the embodiments without departing from the spirit or scope of the invention. Although certain embodiments disclosed herein have been particularly described as applied to a knowledge base for specific exemplary products (e.g., plumbing supplies), it should be readily apparent that the invention may be embodied to create a knowledge base for any number of products, services or the like.
In accordance with a preferred embodiment of the invention, a database induction process for creating a frame based knowledge tree is implemented using a processor-based system that may be supported in a stand-alone, networked, mainframe, or client-server architecture. A single (or multiple) program memory module is provided for storing one or more computer programs used to perform the functionality described herein.
In accordance with a preferred embodiment, one or more user interfaces are provided as part of (or in conjunction with) the database induction process to permit users to interact with one or more vendor databases and also with an induction module. Individual ones of a plurality of client devices (e.g., network/stand-alone computers, personal digital assistants (PDAs), WebTV (or other Internet-only) terminals, set-top boxes, cellular/PCS phones, screenphones, pagers, kiosks, or other known (wired or wireless) communication devices, etc.) may similarly be used to execute one or more computer programs (e.g., universal Internet browser programs, dedicated interface programs, etc.) to allow users to interface with the vendor databases and the induction module.
In accordance with a preferred embodiment, a user (e.g., knowledge engineer, etc.) of the database induction process interacts with the system to create a frame based knowledge
tree. The interaction with the system is preferably through a series of questions provided by the system with input answers provided by the user. The system may, however, support a variety of other methods of interaction (e.g., command driven, menu driven, script, etc.) 5
FIG. 1 illustrates in block diagram form, a database induction system (and preferred apparatus for performing a process) in accordance with a preferred embodiment of the invention. The system preferably contains a user interface io 100 for enabling the user to interact with an induction module 120, in accordance with induction settings 115 specified by the user, and also for interacting with a database access module 125 enabling the system to access a client database 105. In accordance with a preferred embodiment, the induction set- 15 tings are also stored in memory (not shown) by the interface 100 as saved induction settings 110 for future use.
The database access module 125 interacts with the vendor database 105 to receive the disparate product knowledge that 2Q is to be inducted in the generated knowledge tree. The induction module 120 is preferably coupled to the product knowledge output module 130, where the generated knowledge tree is configured as product knowledge files for use, for example, with a product configuration system. 25
In accordance with a preferred embodiment, the vendor of the product(s) to be configured provides the user (e.g., the knowledge engineer) with at least one database table representing specific information about the product(s) (e.g., plumbing supplies). Below, four such database tables 30 (TABLES 1 -4) are described; however, the first table (TABLE 1) contains the data that is essential to the construction of the knowledge tree. Further, the vendor need not actively provide the database table(s) to the user, but, rather, the vendor need only make the underlying data for the table(s) available to the user via the client database 105.
With reference to TABLE 1, a data table is depicted as containing product catalog data (e.g., product specifications) for a given category of product where each column represents 40 a different attribute (e.g., diameter, length, material, finish, etc.) for the category of product (e.g., pipes), and where each row in the table describes up to four different attribute values such that each row describes a different product. If a certain product attribute is not applicable for a certain product, the 45 attribute value is left blank. While TABLE 1 depicts product data for three different products, it should be readily understood that many more rows and/or columns may be used to describe as many different product attributes and attribute values as are necessary for a given product category. Further, 50 in accordance with a preferred embodiment of the invention, the user may update such data tables representing a vendor's single product line and/or multiple product lines.
With reference to TABLE 2, a frame table is depicted as maintaining items of similar type made by multiple vendors or multiple product lines from the same vendor. This table can be generated by the user to force all vendors of a particular product category (e.g., pipes, valves, etc.) to have the same top-level attributes (e.g., diameter, material, length, finish, etc.) for their respective products. The frame table can also be generated by the vendors who each have multiple product lines and want all the product lines to have common top level attributes (e.g., where such products are standardized in the given industry).
Each row of the frame table, for example, is assigned a unique identification and is associated with a different product category and also with a different product data table e.g., such as TABLE 1) containing a unique set of product attributes and values for the associated product category. The columns labeled Product Category 1 and Product Category 2 can represent the same category of product as supplied by two different vendors or different categories by the same vendor. The two product categories of row 1, for example, although supplied by two different vendors, may have common attributes as listed on Product-table-1. Of course, the frame table may have as many rows and/or columns as are necessary for a given application. Further, in accordance with a preferred embodiment of the invention, the user may update the frame table product lines (e.g., as vendors change).
With reference to TABLE 3, a question repository table is depicted. The questionrepository table contains a list of questions generally asked in a particular industry to describe a certain product in a given product category. The underlying data for the question repository table is supplied by the vendor since the vendor is most familiar with the specific questions a customer will ask in order to arrive at a specific product. In addition, the vendor may choose to add or delete questions as required to describe their product differently. Each row contains a separate question, where the Question ID column contains the unique value by which the question is identified. Further, the Question Title, Question Description and Question Prompt headings are self-explanatory and respectively describe those other attributes of a particular question.
FIG. 2 illustrates a typical screen shot of a user interface 100 implemented with a graphical user interface (GUI). The questions addressing product attributes to be included on the knowledge tree, which are stored by the question repository table, appear in display portions 200 of the GUI in order to prompt the knowledge engineer during interactive knowledge tree construction, as will be described more fully below.
With reference to TABLE 4, a question linking table is depicted as containing references to the frame table (TABLE 2), the question repository table (TABLE 3), and the product data table (TABLE 1). The underlying data for this table, as with TABLES 1-3, is preferably provided by the vendor in 15 order to facilitate the creation of the frame based knowledge tree; however, this table is not necessary to practice this illustrated embodiment of the invention. In fact, the only table necessary for practicing the illustrated embodiment of the invention is TABLE 1, the product data table. TABLES 2-4 facilitate the process of automatic knowledge tree construction but are not absolutely necessary to do so. Further, with regard to the product data table, the product data need not be presented in a single database table in order to practice this illustrated embodiment of the invention, but rather, the product data may be in the form of a plurality of database tables made accessible by the vendor, or in a plurality of tables that follow a relational schema.
Referring back to FIG. 1, the induction module 120 receives the product information from the vendor's database 105, including the information depicted above at TABLES 1-4, via database access module 125. In one embodiment, an interactive (i.e., manual) knowledge tree construction may be utilized, where the user interface 100 prompts the user with a series of questions requiring the user to select from a list of product attributes, the answers to which determine the order, and manner in which the attributes are added to the frame based knowledge tree. In another embodiment, automatic construction (described below) may be utilized, where the process of knowledge tree construction is automatic based on user specified generalization and optimization criteria.
Referring again to FIG. 2, an exemplary screen shot of a GUI is depicted in accordance with a preferred embodiment of the invention. The user may set his preferences, including generalization and optimization criteria, via the FIG. 2 GUI. One example of a user preference may be the number of rows in a compound slot. The user is presented with a series of screens for completing the optimization process. In the series of screens, the user reviews the database tables present in the vendor's database and selects those database tables required for the database induction process (e.g., TABLES 1-4) of the product(s) of interest.
Once the system has identified the necessary database tables for interactive construction, the user is presented with a list of product attributes (e.g., diameter, material, length, finish, etc.). For more simple projects, a knowledgeable user 65 can interactively construct the knowledge tree based on the product attributes by selecting them in the order with which
they are to be added to the knowledge tree. For more complex projects, the user may let the system construct the knowledge tree automatically based on the product data table(s) or can do a combination of both. For example, with reference to FIG. 2, the user may specify at portion 205 a threshold number of rows in a compound slot based on which the induction module 120 shifts from interactive to automatic knowledge tree construction.
For interactively constructing the tree, the user selects the attributes from an attribute list displayed in the user interface at display portions 200, 201. Each attribute selected by the user serves to further split the knowledge tree into separate nodes, where each node may be further split into additional nodes. The following SQL query may be used to display the attribute list at display portions 200, 205:
"SELECT QUESTIONID FROM QUESTION_REPOSITORY-TABLE
WHERE FRAME-TABLE.PKTABLENAME =
It should be readily apparent that the SQL query is generic and may be tailored to a specific application and for specific database names.
For each attribute selected by the user, the induction module 120 queries the vendor database tables for unique values associated with that attribute. For example, where the attribute is color, unique values may be blue, red and green. In another example, where the attribute is shape, the unique values may be circle, square, rectangle, etc. The unique value dataset for each attribute forms the branches of the resultant knowledge tree (e.g., as depicted at FIG. 6 below).
Preferably, in the case of automatic frame tree construction, the induction module 120 (as opposed to the user in the interactive construction) determines the order in which the attributes appear in the knowledge tree. For determining the order, the induction module 120 uses the following generalization and optimization heuristics: 1) domain knowledge; and 2) count of distinct attribute values.
The domain knowledge heuristic is premised on the fact that for a given product or product type, any number of vendors within a given domain will have the same attributes for the same type of product. For example, where the product type is pipes, it is known in the art of plumbing supplies that many vendors will have identified a given pipe at least by diameter and material. In this example, diameter and material are used to split the tree twice. Therefore, at least the first two nodes of the knowledge tree may be pre-specified based on the domain knowledge. FIG. 4 depicts a default frame tree construction for a domain knowledge specification. In this example, there are two nodes 400, 405 (feature frame 1, feature frame 2) where each node is an attribute of the product. Each attribute further respectively includes a plurality of