IP Library Granted Patent US 7,739,080
Granted Patent B1
US 7,739,080 · App. 10/827,078 · Granted Jun 15, 2010

Consolidation of product data models

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,739,080
App. No.
10/827,078
Granted
Jun 15, 2010
Kind
B1
Abstract

A model consolidation process combines multiple configuration models into a single unified configuration model that contains the union of the allowable combinations (i.e. combinations that are buildable) from each of the original models. An aspect of at least one embodiment of the model consolidation process is that it allows models to be combined in such a way that any incompatibilities or contradictions between models are detected and automatically resolved where possible. If an incompatibility is detected that cannot be automatically resolved, then the configuration models should not be combined. Instead if this incompatibility case occurs, at least one embodiment of the model consolidation process produces a description of the problem encountered and report the problem along with the necessary information required for a human to resolve it.

Claims (73)

1. A method of using a computer system to consolidate multiple configuration models of a product, the method comprising:

performing with the computer system:

identifying a conflict between at least two of the configuration models, wherein the configuration models are organized in accordance with respective directed acyclic graphs, each configuration model includes at least one ancestor configuration model family space and a child configuration model family space below the ancestor configuration model family space, a first of the conflicting configuration models comprises an ancestor configuration model family space that is different than an ancestor configuration model family space of a second of the conflicting configuration model, and each child configuration model family space constrains the ancestor configuration model family space above the child in accordance with configuration rules of the configuration model to which the child belongs;

extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family space;

removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space; and

combining the first and second configuration models into a single, consolidated model that maintains a non-cyclic chain of dependencies among families and features of families for use in answering configuration questions related to the product.

2. The method of claim 1 further comprising:

detecting any inconsistencies between rules included in the consolidated model; and

attempting to resolve any detected inconsistencies.

3. A computer system configured for consolidating multiple configuration models of a product, the system comprising:

a processor; and

a memory, coupled to the processor, having code stored therein and executable by the processor for:

identifying a conflict between at least two of the configuration models, wherein the configuration models are organized in accordance with respective directed acyclic graphs, each configuration model includes at least one ancestor configuration model family space and a child configuration model family space below the ancestor configuration model family space, a first of the conflicting configuration models comprises an ancestor configuration model family space that is different than an ancestor configuration model family space of a second of the conflicting configuration model, and each child configuration model family space constrains the ancestor configuration model family space above the child in accordance with configuration rules of the configuration model to which the child belongs;

extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family space;

removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space; and

combining the first and second configuration models into a single, consolidated model that maintains a non-cyclic chain of dependencies among families and features of families for use in answering configuration questions related to the product.

4. A tangible, computer readable medium having instructions encoded therein and executable by a processor to consolidate multiple configuration models of a product, the instructions comprising code for:

identifying a conflict between at least two of the configuration models, wherein the configuration models are organized in accordance with respective directed acyclic graphs, each configuration model includes at least one ancestor configuration model family space and a child configuration model family space below the ancestor configuration model family space, a first of the conflicting configuration models comprises an ancestor configuration model family space that is different than an ancestor configuration model family space of a second of the conflicting configuration model, and each child configuration model family space constrains the ancestor configuration model family space above the child in accordance with configuration rules of the configuration model to which the child belongs;

extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family space;

removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space; and

combining the first and second configuration models into a single, consolidated model that maintains a non-cyclic chain of dependencies among families and features of families for use in answering configuration questions related to the product.

5. The method of claim 1 wherein the configuration models represent configuration models of vehicles.

6. The method of claim 1 wherein the consolidated model includes only buildable configurations.

7. The method of claim 1 wherein:

extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family further comprises:

extending a rule from the first configuration model into the ancestor configuration model family space; and

removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space further comprises:

repairing the extension of the rule in the child family.

8. The method of claim 1 wherein combining the first and second models into a single, consolidated model further comprises:

loading the configuration models into a memory of the computer system;

constructing a directed acyclic graph of all rules in all the configuration models;

for each configuration model, determining which portions of an overall configuration space for which the configuration model does not provide a buildable configuration; and

for each configuration model, constraining statements of the rules within the configuration model to fall within a space of defining features of the configuration model.

9. The method of claim 8 wherein determining which portions of an overall configuration space for which each configuration model does not provide a buildable configuration further comprises:

determining which families are ancestors of families of defining constraints; and

subtracting a right hand side and a left hand side of each rule of each family that are ancestors of families of defining constraints from a rule representing all buildable configurations.

10. The system of claim 3 further comprising code for:

detecting any inconsistencies between rules included in the consolidated model; and

attempting to resolve any detected inconsistencies.

11. The system of claim 3 wherein the configuration models represent configuration models of vehicles.

12. The system of claim 3 wherein the consolidated model includes only buildable configurations.

13. The system of claim 3 wherein:

the code for extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family space comprises code for extending a rule from the first conflicting configuration model into the ancestor family; and

the code for removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space comprises code for repairing the extension of the rule in the child family.

14. The system of claim 3 the code for combining the first and second models into a single, consolidated model further comprises code for:

loading the configuration models into a memory of the computer system;

constructing a directed acyclic graph of all rules in all the configuration models;

for each configuration model, determining which portions of an overall configuration space for which the configuration model does not provide a buildable configuration; and

for each configuration model, constraining statements of the rules within the configuration model to fall within a space of defining features of the configuration model.

15. The system of claim 14 wherein the code for determining which portions of an overall configuration space for which the configuration model does not provide a buildable configuration further comprises code for:

determining which families are ancestors of families of defining constraints; and

subtracting a right hand side and a left hand side of each rule of each family that are ancestors of families of defining constraints from a rule representing all buildable configurations.

16. The computer readable medium of claim 4 further comprising code for:

detecting any inconsistencies between rules included in the consolidated model; and

attempting to resolve any detected inconsistencies.

17. The computer readable medium of claim 4 wherein the models represent configuration models of vehicles.

18. The computer readable medium of claim 4 wherein the configuration models represent configuration models of vehicles.

19. The computer readable medium of claim 4 wherein:

the code for extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family space comprises code for extending a rule from the first conflicting configuration model into the ancestor family; and

the code for removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space comprises code for repairing the extension of the rule in the child family.

20. The computer readable medium of claim 4 the code for combining the first and second models into a single, consolidated model further comprises code for:

loading the configuration models into a memory of the computer system;

constructing a directed acyclic graph of all rules in all the configuration models;

for each configuration model, determining which portions of an overall configuration space for which the configuration model does not provide a buildable configuration; and

for each configuration model, constraining statements of the rules within the configuration model to fall within a space of defining features of the configuration model.

21. The computer readable medium of claim 20 wherein the code for determining which portions of an overall configuration space for which the configuration model does not provide a buildable configuration further comprises code for:

determining which families are ancestors of families of defining constraints; and

subtracting a right hand side and a left hand side of each rule of each family that are ancestors of families of defining constraints from a rule representing all buildable configurations.

22. A computer system for performing an automatic consolidation of multiple configuration models of a configurable product, the system comprising:

means for identifying a conflict between at least two of the configuration models, wherein the configuration models are organized in accordance with respective directed acyclic graphs, each configuration model includes at least one ancestor configuration model family space and a child configuration model family space below the ancestor configuration model family space, a first of the conflicting configuration models comprises an ancestor configuration model family space that is different than an ancestor configuration model family space of a second of the conflicting configuration model, and each child configuration model family space constrains the ancestor configuration model family space above the child in accordance with configuration rules of the configuration model to which the child belongs;

means for extending at least one of the ancestor configuration model family spaces of the conflicting configuration models so that the ancestor configuration model family spaces of the first and second conflicting configuration models represent the same ancestor configuration model family space;

means for removing from the child configuration model family space any configuration space extended in the ancestor of the child configuration family space; and

means for combining the first and second configuration models into a single, consolidated model that maintains a non-cyclic chain of dependencies among families and features of families for use in providing an answer to configuration questions related to the product.

Assignments (2)
CHANGE OF NAME Recorded Mar 21, 2007
From: TRILOGY DEVELOPMENT GROUP, INC.
To: VERSATA DEVELOPMENT GROUP, INC.
Reel/Frame 019035/0545 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2004
From: BECK, BRANDON M.; SMITH, SHAWN A. P.
To: TRILOGY DEVELOPMENT GROUP, INC.
Reel/Frame 015243/0478 →