`HAMILTON & TERRILE, LLP
`en
`10-----------------------------------------------------------------------
`g ~
`d
`11: '¢"
`(f)~
`:::) ~
`0'>0
`o(cid:173)
`o~
`~~ .....
`
`8911 North Capital of Texas Highway
`Westech Center Suite 3150
`Austin, Texas 78759
`512.338.9100 Telephone
`512.345.7225 Facsimile
`
`January 12, 2005
`
`COMMISSIONER FOR PATENTS
`P.O. Box 1450
`Alexandria, VA 22313-1450
`
`Enclosed herewith for filing is a patent application, as follows:
`Brian K. Showers, Brandon M. Beck, Nathan E. Little
`Inventor(s):
`Title:
`Attribute Prioritized Configuration Using a Combined Configuration-Attribute Data Model
`Docket No.:
`T00128
`Customer Number: 33438
`
`~ Return Receipt Postcard
`X This Transmittal Letter
`~ Check for Filing Fees and Recordation of Assignment Fees
`.J..§_ page(s) Specification (not including Claims)
`_5_ page(s) Claims
`1
`page(s) Abstract
`-9- sheet(s) of Drawings
`page(s) Declaration For Patent Application and Power of Attorney (executed in counterpart)
`4
`_1_ page(s) Recordation Form Cover Sheet
`1
`page(s) Assignment
`-1- page(s) Nonpublication Request
`
`For
`
`Total Claims
`
`Independent Claims
`
`CLAIMS AS FILED (fees computed under §1.9(0)
`Number
`Number
`Filed
`Extra
`
`Rate
`
`-20
`
`0
`
`20
`
`4
`
`X
`
`X
`
`$50
`
`$200
`
`1:8] Fees for search ($500) and examination ($200) in the amount of:
`
`1:8] Fee for filing the recordation of assignment in the amount of:
`
`$
`
`$
`
`$
`
`Basic Fee
`300.00
`
`0.00
`
`200.00
`
`700.00
`
`40.00
`
`1:8] Check enclosed for filing the patent application and assignment in the amount of:
`~1,240.00
`1:8] The Commissioner is hereby authorized to charge any additional fees which may be required,
`or credit any overpayment to Deposit Account 502264
`
`EXPRESS MAIL LABEL NO:
`
`EV571047089US
`
`Respectfully submitted,
`
`~~
`
`Kent B. Chambers
`Attorney for Applicant(s)
`Reg. No. 38,839
`
`Page 1 of 489
`
`FORD 1006
`
`
`
`c::
`HAMILTON & TERRILE, LLP
`en
`10-----------------------------------------------------------------------
`g ~
`d
`11: '¢"
`(f)~
`:::) ~
`0'>0
`o(cid:173)
`o~
`~~ .....
`
`8911 North Capital of Texas Highway
`Westech Center Suite 3150
`Austin, Texas 78759
`512.338.9100 Telephone
`512.345.7225 Facsimile
`
`January 12, 2005
`
`COMMISSIONER FOR PATENTS
`P.O. Box 1450
`Alexandria, VA 22313-1450
`
`Enclosed herewith for filing is a patent application, as follows:
`Brian K. Showers, Brandon M. Beck, Nathan E. Little
`Inventor(s):
`Title:
`Attribute Prioritized Configuration Using a Combined Configuration-Attribute Data Model
`Docket No.:
`T00128
`Customer Number: 33438
`
`~ Return Receipt Postcard
`X This Transmittal Letter
`~ Check for Filing Fees and Recordation of Assignment Fees
`.J..§_ page(s) Specification (not including Claims)
`_5_ page(s) Claims
`1
`page(s) Abstract
`-9- sheet(s) of Drawings
`page(s) Declaration For Patent Application and Power of Attorney (executed in counterpart)
`4
`_1_ page(s) Recordation Form Cover Sheet
`1
`page(s) Assignment
`-1- page(s) Nonpublication Request
`
`For
`
`Total Claims
`
`Independent Claims
`
`CLAIMS AS FILED (fees computed under §1.9(0)
`Number
`Number
`Filed
`Extra
`
`Rate
`
`-20
`
`0
`
`20
`
`4
`
`X
`
`X
`
`$50
`
`$200
`
`1:8] Fees for search ($500) and examination ($200) in the amount of:
`
`1:8] Fee for filing the recordation of assignment in the amount of:
`
`$
`
`$
`
`$
`
`Basic Fee
`300.00
`
`0.00
`
`200.00
`
`700.00
`
`40.00
`
`1:8] Check enclosed for filing the patent application and assignment in the amount of:
`~1,240.00
`1:8] The Commissioner is hereby authorized to charge any additional fees which may be required,
`or credit any overpayment to Deposit Account 502264
`
`EXPRESS MAIL LABEL NO:
`
`EV571047089US
`
`Respectfully submitted,
`
`~~
`
`Kent B. Chambers
`Attorney for Applicant(s)
`Reg. No. 38,839
`
`Page 2 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`"Express Mail" mailing label number:
`
`EV571047089US
`
`ATTRIBUTE PRIORITIZED CONFIGURATION USING A COMBINED
`CONFIGURATION-ATTRIBUTE DATA MODEL
`
`Brian K. Showers, Brandon M. Beck, and Nathan E. Little
`
`BACKGROUND OF THE INVENTION
`
`Field of the Invention
`
`(1)
`
`The present invention relates in general to the field of information processing,
`
`and more specifically to a system and method for prioritizing configuration using a
`
`combined configuration-attribute data model.
`
`DESCRIPTION OF THE RELATED ART
`
`(2)
`
`Computer assisted product configuration continues to offer substantial benefits
`
`to a wide range of users and industries. Figure 1 depicts a conventional product
`
`configuration process 100 performed by a configuration engine 101. The
`
`configuration process 100 represents one embodiment of an inference procedure. In
`
`one embodiment of a conventional inference procedure, configuration query 102 is
`
`formulated based on user configuration input, a configuration engine performs the
`
`configuration query 102 using a configuration model 104, and the configuration
`
`engine provides an answer 106 to the configuration query I 02 based on the
`
`configuration query 102 and the contents ofthe configuration model104. The answer
`
`106 represents a particular response to the configuration query 102.
`
`(3)
`
`A configuration model 104 uses, for example, data, rules, and/or constraints
`
`(collectively referred to as "data") to define compatibility relationships between parts
`
`(also commonly referred to as "features") contained in a specific type of product. A
`
`part represents a single component or attribute from a larger, more complex system.
`
`Parts may be combined in different ways in accordance with rules and/or constraints
`
`to define different instances of the more complex system. For example, "V6 engine"
`
`or the exterior color "red" can be parts on a vehicle, and a specific hard disk drive can
`
`-1-
`
`Page 3 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: TOOI28
`
`be a part on a computer. A part group, also called a group or family, represents a
`
`collection of related parts. For example, an "Engines" group might contain the parts
`
`"V6 engine" and "4 cylinder engine". A product configuration is a set of parts that
`
`define a product. For example, a vehicle configuration containing the parts "V6
`
`engine" and "red" represents a physical vehicle that has a red exterior and a V6
`
`engine. A product can be a physical product such as a vehicle, computer, or any other
`
`product that consists of a number of configurable features such as an insurance
`
`product. Additionally, a product can also represent a service such as financial
`
`services, insurance services, or consulting services.
`
`( 4)
`
`An attribute represents a particular detail about a part or part group. Attributes
`
`describe details about the part or part group. A single part or part group can have
`
`many attributes. For example, the part "V6 engine" might have a price attribute of
`
`"$500", a weight attribute of"l,OOO lbs" and a description attribute of"Six cylinder
`
`gas engine." Also, an attribute for a given part or part group may change depending
`
`on context (what other parts or attributes are present). For example, the price attribute
`
`for the "V6 engine" might be "$500" when the "XLT trim" part is present and the
`
`price attribute for the "V6 Engine" might be "$800" when the "XL trim" part is
`
`present.
`
`(5)
`
`A configuration query (also referred to as a "query") is essentially a question
`
`that is asked about the parts, relationships, and attributes in a configuration model.
`
`The answer returned from a configuration query will depend on the data in the
`
`configuration model, the approach used for answering the question, and the specifics
`
`of the question itself. For example, one possible configuration query, translated to an
`
`English sentence, is the following: For the given configuration model, are the parts
`
`"red" and "V6 engine" compatible with each other? Another possible configuration
`
`query is the following: For the given configuration model, is the "V6 engine" part
`
`standard or optional when in the presence of the "XLT trim", "XL trim", "USA", and
`
`"Canada" parts, wherein "standard" and "optional" are attributes?
`
`(6)
`
`The configuration model104 can be used to determine, for example, which
`
`parts are compatible with other parts, and provide additional details around specific
`
`relationships. For example, a vehicle configuration model can indicate that "red" (a
`
`-2-
`
`Page 4 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`part) is the standard feature from the color part group for a specific vehicle and "red"
`
`is not compatible with "V6 engine" (a part). Configuration model 104 may also
`
`contain additional information needed to support specific product related queries.
`
`Configuration models can be developed in any number of ways. U.S. Patent no.
`
`5,825,651 entitled "Method and Apparatus for Maintaining and Configuring
`
`Systems", inventors Gupta et a!., and assigned to Trilogy Development Group, Inc.,
`
`describes an example configuration engine and rules based configuration model. U.S.
`
`Patent no. 5,825,651 (referred to herein as the "Gupta Patent") is incorporated herein
`
`by reference in its entirety. U.S. Patent no. 5,515,524 entitled "Method and
`
`Apparatus for Configuring Systems", inventors John Lynch and David Franke, and
`
`assigned to Trilogy Development Group, Inc., describes another example
`
`configuration engine and constraint based configuration model. U.S. Patent no.
`
`5,515, 524 (referred to herein as the "Lynch Patent") is also incorporated by reference
`
`in it entirety.
`
`(7)
`
`Figure 2 depicts an example configuration model 200 of a product represented
`
`in a graphical, tree based form. The product can be configured to include part
`
`combinations Al, Bl or B2, Cl, Xl or X2, and Y1 or configured to include part
`
`combinations A2, B2, C2, X2, and Yl or Y2. The configuration model200 includes
`
`rules to define these part relationships. Table 1 represents an example rule set,
`
`wherein "S" represents "standard" and "0" represents optional. Configuration model
`
`200 represents a relatively non-complex configuration model. Actual configuration
`
`models for a single product can include hundreds of thousands or more parts, rules,
`
`and attributes.
`
`Example Configuration Rules for a Product
`
`Al S ALL
`
`A20ALL
`
`Bl SAl
`
`B2 SA2
`
`-3-
`
`Page 5 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`Example Configuration Rules for a Product
`
`B20Al
`
`Cl S AI
`
`C2 SA2
`
`XIS Cl
`
`X2 SC2
`
`X20Cl
`
`Yl S Cl
`
`Yl S C2
`
`Y20C2
`
`Table 1
`
`(8) Many configuration queries are formulated with respect to attribute values.
`
`Such processing is referred to herein as "attribute-based configuration" Attributes can
`
`(1) be used to find "preferred" answers to configuration queries (such queries are
`
`referred to herein as "attribute-prioritized queries") and (2) be an output of a
`
`configuration query (such queries are referred to herein as "attribute queries") and (3)
`
`be used in a query that is both an attribute-prioritized query and an attribute query.
`
`An example of an attribute-prioritized query is the following: "Given a set of
`
`configured parts, return the part with the lowest cost that is compatible with the given
`
`parts, according to the rules in a given configuration model". An example of an
`
`attribute query is the following: "Given a configuration model and a fully specified
`
`configuration, determine the sum of the price attributes for all of the parts in that
`
`configuration." Attribute-based configuration processing has conventionally suffered
`
`from scale and performance issues, an example of which is described below.
`
`(9)
`
`Example: A Conventional Approach to Attribute-Prioritized Solutions
`
`-4-
`
`Page 6 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`(10) When more than one answer to a configuration query is valid, the attributes of
`
`each configuration answer can be used to assign a preference weighting to the valid
`
`answers. For example, there may be many answers that satisfy the configuration
`
`query of"Add parts to the list of 'red' and 'V6 engine' until a complete vehicle is
`
`specified." However, attribute values can be used to identify preferred valid answers
`
`such as the least expensive vehicle, the most expensive vehicle, the heaviest vehicle,
`
`etc.
`
`( 11)
`
`Figure3 depicts a conventional attribute based priority configuration system
`
`300 (also referred to as a "conventional attribute based priority configuration
`
`engine"), and Figure 4 depicts a conventional attribute based priority solution process
`
`400 to determine an attribute based priority solution. Client systems 301(1) through
`
`301 (n) access the conventional attribute based priority solution system 300 via a
`network 302, such as the Internet. The system 300 and process 400 are typically
`
`implemented configured as a server computer system.
`
`(12) Conventionally, a configuration model 304 is driven solely by configuration
`
`rules 306. Thus, in operation 402, configuration rules 306 are manipulated to form a
`
`configuration model 304 that is capable of answering configuration questions. The
`
`configuration model 304 is separated from attribute information 308 and, thus, the
`
`configuration model 304 is not used to process attribute related data. In operation
`
`404, the conventional attribute based priority solution process 400 answers an
`
`attribute specific configuration query 310 to determine an attribute based priority
`
`solution by querying configuration model 304 for the set of valid answers 312. The
`valid answers 312 represent product configurations that conform to the configuration
`model 304. Operation 404 then interrogates the attributes to find the preferred answer
`
`from the set of valid answers. Operation 406 then applies attribute information 308 to
`
`the valid answers 312 to associate each valid answer with the attributes that apply to
`
`the valid answer. A weight can be derived from the applied attribute information 308
`
`to generate weighted answers 314. For example, for the attributes "standard" and
`
`"optional", the weight can be the total number of standard features or the total number
`optional features in each answer. Operation 408 uses a preference algorithm 316, e.g.
`
`search for the valid answer with the most standard features and lowest price, to select
`the preferred valid answer 318 given the weighted valid answers. The particular
`
`-5-
`
`Page 7 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`preference algorithm is a matter of system usage. Once a preferred answer is selected,
`
`conventional attribute based priority solution process 400 can determine answers for
`
`the next configuration query.
`
`(13) A software application developed by Trilogy Development Group, Inc. and
`
`referred to as "MCC Config" implemented the conventional attribute based priority
`
`configuration system 300 using a modified attribute based priority solution process
`
`400. MCC Config solved a configuration problem by taking partial configuration
`
`answers as input data and over an iterative processes providing a complete
`
`configuration output. The modified process was an iterative process that created a
`
`single, preferred complete configuration over multiple iterations, rather than
`
`providing all valid complete configurations and choosing a preferred one. For each
`
`iteration the configuration model 304 provided a set of part selections. The set of part
`
`selections formed a subset ofthe all of the part selections that needed to be made to
`
`generate a preferred, complete configuration. The modified process then used the
`
`attribute information 308 and the preference algorithm 316 to make the part selections
`
`provided by the configuration model 304. Part selections answers were then fed back
`
`into the configuration model 304 and added to the partial configuration answers. The
`
`partial configuration answers were then used by the configuration model 304 to
`
`generate the next set of part selections that needed to be made, and so on until the
`
`configuration was completed. For example, in an automotive configuration context, a
`
`user could initially select a engine=V6 and color=red. The configuration engine could
`
`determine that, for example, 2 different transmissions and 6 different body styles were
`
`compatible with engine=V6 and color=red. The modified process would then select a
`
`transmission and body style from the set of transmissions and body styles provided
`
`according to the preference algorithm 316. If "standard" was the controlling
`
`preference in the preference algorithm 316, the modified process would select the
`
`standard transmission and body style, if possible, from the available choices. The
`
`selected transmission and body style would then be added to the initial user selections
`
`and the process would repeat until a complete configuration was attained.
`
`( 14)
`
`Process 400 exhibits the drawback of expending effort to determine valid
`
`answers that will eventually be ignored if they are not preferred by the attribute
`
`-6-
`
`Page 8 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`model. Also, the number of valid answers can be so large that calculating the full set
`
`and identifying the preferred answer is often computationally infeasible.
`
`SUMMARY OF THE INVENTION
`
`(15)
`
`In one embodiment of the present invention, a method for using computer
`
`assisted configuration technology to generate one or more attribute prioritized
`
`configuration answers to one or more configuration queries includes receiving one or
`
`more configuration queries from a client system. The method further includes
`
`processing the one or more configuration queries using a combined configuration
`
`rules-attributes model to determine valid configuration answers prioritized by one or
`
`more predetermined attributes and providing at least a subset of the valid
`
`configuration answers to the client system.
`
`(16)
`
`In another embodiment ofthe present invention, a computer system to
`
`generate one or more attribute prioritized configuration answers to one or more
`
`configuration queries includes a processor and a storage medium having data encoded
`
`therein. The data includes processor executable code for:
`
`receiving one or more configuration queries from a client system;
`
`processing the one or more configuration queries using a combined
`
`configuration rules-attributes model to determine valid configuration
`
`answers prioritized by one or more predetermined attributes; and
`
`providing at least a subset of the valid configuration answers to the client
`
`system.
`
`(17)
`
`In another embodiment of the present invention, a computer storage medium
`
`includes data embedded therein to cause a computer system to generate one or more
`
`attribute prioritized configuration answers to one or more configuration queries. The
`
`data includes processor executable code for:
`
`receiving one or more configuration queries from a client system;
`
`processing the one or more configuration queries using a combined
`
`configuration rules-attributes model to determine valid configuration
`
`answers prioritized by one or more predetermined attributes; and
`
`providing the valid configuration answers to the client system.
`
`-7-
`
`Page 9 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: TOOI28
`
`(18)
`
`In another embodiment of the present invention, a computer system to
`
`generate one or more attribute prioritized configuration answers to one or more
`
`configuration queries includes means for receiving one or more configuration queries
`
`from a client system. The computer system further includes means for processing the
`
`one or more configuration queries using a combined configuration rules-attributes
`
`model to determine valid configuration answers prioritized by one or more
`
`predetermined attributes and means for providing at least a subset of the valid
`
`configuration answers to the client system.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`(19) The present invention may be better understood, and its numerous objects,
`
`features and advantages made apparent to those skilled in the art by referencing the
`
`accompanying drawings. The use of the same reference number throughout the
`
`several figures designates a like or similar element.
`
`(20)
`
`Figure 1 (prior art) depicts a conventional product configuration process.
`
`(21)
`
`Figure 2 (prior art) depicts a configuration model in graphical, tree based
`
`form.
`
`(22)
`
`Figure 3 (prior art) depicts a conventional attribute based priority solution
`
`system.
`
`(23)
`
`Figure 4 (prior art) depicts a conventional attribute based priority solution
`
`process.
`
`(24)
`
`Figure 5 depicts a combined configuration rules-attribute configuration
`
`system.
`
`(25)
`
`Figure 6 depicts a combined configuration rules-attribute configuration
`
`process.
`
`(26)
`
`Figure 7 depicts an example trie implementation of a configuration rules(cid:173)
`
`attributes model.
`
`-8-
`
`Page 10 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: TOOI28
`
`(27)
`
`Figure 8 depicts a block diagram illustrating a network environment in which
`
`the system and process of Figures 5 and 6 may be practiced.
`
`(28)
`
`Figure 9 depicts an example data processing system used in the network of
`
`Figure 8.
`
`DETAILED DESCRIPTION
`
`(29) A combined configuration rules-attribute configuration system uses an
`
`integrated configuration model to efficiently identify and attribute prioritize valid
`
`configuration answers to attribute-prioritized configuration queries. Submitting an
`
`attribute-based configuration query to the combined configuration rules-attribute
`
`configuration system allows the query to be answered in a single step. The combined
`
`configuration rules and attribute information guide product configuration processing
`
`and minimize configuration processing by, for example, calculating only the valid
`
`configuration answers that are candidates for the preferred valid answer(s). Thus, the
`
`combined configuration rules-attribute configuration system can minimize the number
`
`of valid configuration answers to be considered for presentation to a client system or
`
`other user of the combined configuration rules-attribute configuration system.
`
`(30)
`
`Figure 5 depicts combined configuration rules-attribute configuration system
`
`500 communicatively coupled to client systems 501(1) through 501(n) via a network
`
`such as the Internet, wherein n 2:: 1. The combined configuration rules-attribute
`
`configuration system 500 can also be referred to as a configuration engine. Combined
`
`configuration rules-attribute configuration system 500 operates in accordance with
`
`combined configuration rules-attribute configuration process 600. Operation 602
`
`integrates configuration rules 502 and attribute information 504 into a configuration
`
`rules-attribute model 506. Configuration rules 502 are any type of configuration rules
`
`data such as the configuration rules described with reference to Table 1. As described
`
`above, attributes can represent any particular detail about a part or part group. Table
`
`2 sets forth example attribute types. An attribute can also be an aggregate of other
`
`attributes. For example, a part group price may be an aggregate of prices for other
`
`parts and/or part groups.
`
`-9-
`
`Page 11 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: TOOI28
`
`Example Attribute Types
`
`Standard
`
`Optional
`
`Price
`
`Weight
`
`Towing Capacity
`
`Description
`
`Warranty
`
`Fuel Efficiency
`
`Table 2
`
`(31) The implementation of configuration rules-attributes model 506 is a matter of
`
`design choice. In one embodiment, the configuration rules-attributes model 506 is
`
`implemented as a trie, and trie operations are used to manipulate the data. Example
`
`tries and trie operations are set forth in U.S. Patent Application Serial No. 10/404,891,
`
`entitled "Configuration Model Consistency Checking Using Flexible Rule Space
`
`Subsets", inventor Shawn A. P. Smith, filing date March 31, 2003, and assigned to
`
`Trilogy Development Group, Inc .. U.S. Patent Application Serial No. 10/404,891 is
`
`hereby incorporated by reference in its entirety.
`
`(32)
`
`Figure 7 depicts an example trie implementation of configuration rules(cid:173)
`
`attributes model 506. The trie implemented configuration rules-attributes model 700
`
`includes a root node XI and two part groups 702 and 704. Each complete branch of
`
`the model 700 represents a valid configuration. A trie-based representation can be
`
`used to represent the valid combinations in a compact and precise manner. Nodes in
`
`part group 702 contain parts AI, A2, and A3. Each ofthe parts AI, A2, and A3 may
`
`be annotated with one or more associated attributes such as ATTAI, ATTA2, and
`
`-I 0-
`
`Page 12 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`ATIA3. Each ofthe parts B1 and B2 may include one or more attributes such as
`
`A TIB 1 and A TIB2. The attributes associated with different parts may be the same
`
`or may be different. Model 700 additional includes leaf nodes 706, 708, and 710 with
`
`associated aggregate attribute values. For example, each leaf node could include the
`
`total number of standard parts in the product represented by the valid configuration
`
`branch to which the leaf node is attached and/or could include the price of the product
`
`represented by the valid configuration branch to which the leaf node is attached.
`
`(33)
`
`In one embodiment, "release" attributes are combined with configuration rules
`
`to form the configuration rules-attributes model 506. "Release" attributes describe
`
`how a part is available within a valid configuration context. For example, release
`
`attributes could specify that the "V6 engine is the 'standard' engine" and the "V8
`
`engine is an 'optional' engine." Thus, in one embodiment, the configuration rules(cid:173)
`
`attributes model 506 not only represents which combinations of parts are valid
`
`together but also how those parts are released.
`
`(34) Referring to Figures 5, 6, and 7, client systems 501(1) through 501(n) each
`
`access combined configuration rules-attribute configuration system 500 to configure a
`
`product by submitting a respective configuration query 508. The particular data
`
`structure(s) used to represent configuration query 508 is a matter of design choice and
`
`depends upon, for example, configuration engine specifications, etc. In one example,
`
`the configuration query 508 results from the selection of a particular feature displayed
`
`via a web browser application executed by client system 501(i), wherein i is an
`
`element of the set { 1, ... , n}. The combined configuration rules-attribute
`
`configuration system 500 receives the configuration query 508 in operation 604. In
`
`operation 606, combined configuration rules-attribute configuration system 500
`
`interrogates configuration rules-attributes model 506 with configuration query 508
`
`and an attribute based preference algorithm 510 to determine a set of one or more
`
`attribute prioritized, valid configuration answers 512. In one embodiment, combined
`
`configuration rules-attribute configuration system 500 processes the configuration
`
`query 508 and configuration rules of configuration rules-attributes model 506 in
`
`accordance with the Gupta Patent or the Lynch Patent.
`
`-11-
`
`Page 13 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: TOOI28
`
`(35) The preference algorithm 510 is a matter of system usage and depends upon
`
`which preferences are anticipated to be consistent with the user preferences of client
`
`system 50l(i). For example, the user of client 50l(i) could select the preference(s) for
`
`valid configuration answers or some or all of the preference(s) could be
`
`predetermined by combined configuration rules-attribute configuration system 500.
`
`In one embodiment, a preference is for maximizing the number standard parts. Thus,
`
`only valid configurations with a maximum number of standard parts or a number of
`
`standard parts that is greater than or equal to a predetermined threshold are
`
`determined to be valid answers. In another embodiment, only valid configurations
`
`that have a towing capacity greater than or equal to a predetermined threshold are
`
`determined to be valid answers. The preference algorithm can then prioritize valid
`
`configurations based upon evaluation of more than one type of attribute. For
`
`example, only valid configuration answers with a maximum number of standard parts,
`
`a fuel efficiency greater than or equal to a predetermined threshold, and a price less
`
`than or equal to a predetermined threshold are presented to a user. The valid answers
`
`can be prioritized in accordance with one or more attribute values. For example, valid
`
`answers can be ordered based on lowest to highest price.
`
`(36) Thus, operation 606 uses the configuration rules-attributes model 506 to
`
`process each configuration query 508 with valid answers determined in accordance
`
`with preference algorithm 510. For example, the preference algorithm could prefer
`
`valid configurations that maximize the combined number of standard-attribute
`
`features in the answer. For example, the configuration query 506 might be to "Find
`
`the complete configuration that contains that parts "red" and "V 6" and maximizes the
`
`number of standard-attribute parts.'' There could be many possible configurations
`
`that contain "red" and "V6" but the configuration rules-attributes model 506 allows
`
`operation 606 to single out the valid answers that meet the preference algorithm.
`
`Thus, operation 606 does not spend resources calculating other "red" and "V6"
`
`configurations that do not contain the maximal number of standard parts.
`
`(37) Once operation 606 determines one or more prioritized, valid configuration
`
`answers 512, operation 608 provides the attribute prioritized, valid configuration
`
`answer(s) 512 to the client system 50 I (i) that submitted the configuration query 508.
`
`The number of prioritized, valid configuration answers can be a predefined number or
`
`-12-
`
`Page 14 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`a user selected number. For example, if"standard" and "price" are the controlling
`
`preferences, only "X" valid configuration answers 512 are provided to the user, where
`
`X is the predefined or user selected number. The combined configuration rules(cid:173)
`
`attribute configuration process 600 then returns to operation 604 to process a
`
`subsequent configuration query 508.
`
`(38) Thus, it is often the case that a single set of configuration rules and a single set
`
`of attributes will be used to perform many configuration queries. By using a
`
`configuration rules-attributes model 506 to perform product configurations in
`
`accordance with configuration query 508, the combined configuration rules-attribute
`
`configuration process 600 is able to realize several performance and complexity
`
`benefits such as:
`
`(39) Using a combined configuration rules-attributes model 506 to process
`
`configuration queries allows the performance impact of combining multiple attributes,
`
`e.g. maximizing the number(s) of a certain attribute(s) or totaling the values of certain
`
`attributes, to be minimized by pre-processing combinations of multiple attributes of
`
`valid configurations and amortizing the preprocessed combinations over many
`
`queries. Thus, attributes and rules may be static while the configuration query 508
`
`and preference algorithm 51 0 may change more quickly. If the process of combining
`
`multiple attributes (e.g. adding the number of standard attributes) is slow, the
`
`combinations of multiple attributes can be pre-calculated, stored in memory, and then
`
`used for many different configuration query/preference algorithm pairs.
`
`(40) By processing a single query against the combined configuration rules(cid:173)
`
`attributes model 506, the combined configuration rules-attribute configuration process
`
`600 does not need to evaluate non-preferred answers, which increases the
`
`performance of combined configuration rules-attribute configuration system 500 and
`
`lowers the resources necessary to process a configuration query 506.
`
`( 41) The number of preferred configuration answers provided to the user can be
`
`limited to reduce the amount of information provided to the user that has a low
`
`probability of relevancy to the user.
`
`-13-
`
`Page 15 of 489
`
`FORD 1006
`
`
`
`Attorney Docket No.: T00128
`
`(42)
`
`Figure 8 is a block diagram illustrating a network environment in which a
`
`combined configuration rules-attribute configuration system 500 and combined
`
`configuration rules-attribute configuration process 600 may be practiced. Network
`
`802 (e.g. a private wide area network (WAN) or the Internet) includes a number of
`
`networked server computer systems 804(1)-(N) that are accessible by client computer
`
`systems 806(1 )-(N), where N is the number