throbber
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 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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket