throbber
111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US007739080Bl
`
`c12) United States Patent
`Becket al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,739,080 Bl
`Jun.15,2010
`
`(54) CONSOLIDATION OF PRODUCT DATA
`MODELS
`
`(75)
`
`Inventors: Brandon M. Beck, Austin, TX (US);
`Shawn A. P. Smith, Austin, TX (US)
`
`(73) Assignee: Versata Development Group, Inc.,
`Austin, TX (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 28 days.
`
`(21) Appl. No.: 10/827,078
`
`(22)
`
`Filed:
`
`Apr. 19, 2004
`
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Int. Cl.
`(2006.01)
`G06F 7160
`(2006.01)
`G06F 19100
`(2006.01)
`G06F 9144
`(2006.01)
`G06N 5102
`U.S. Cl. ............................... 703/2; 700/95; 700/97;
`705/7; 706/47
`Field of Classification Search ................. 703/1-2;
`700/95, 97; 705/7; 706/47
`See application file for complete search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,515,524 A *
`5,576,965 A *
`5,615,341 A *
`5,802,508 A *
`5,825,651 A *
`5,873,081 A *
`5,996,114 A *
`
`5/1996 Lynch eta!. .................. 703/13
`1111996 Akasaka eta!. ............... 700/97
`3/1997 Agrawal eta!. ............... 705/10
`9/1998 Morgenstern ................ 706/55
`10/1998 Gupta eta!.
`................ 700/103
`211999 Hare! ... ... .. ... ... ... ... ... .. ... 707/3
`1111999 Moeller ...................... 714/699
`
`6,002,854 A *
`6,009,406 A *
`6,178,502 B1 *
`6,216,109 B1 *
`6,241,775 B1 *
`6,300,948 B1 *
`6,405,308 B1 *
`
`12/1999 Lynch eta!. ................... 703/1
`12/1999 Nick ........................... 705/10
`112001 Caswell eta!. ................. 713/1
`4/2001 Zweben et al .................. 705/8
`6/2001 Blatchford .. ... ... .. ... ... ... 623/27
`10/2001 Geller et al ................. 715/866
`6/2002 Gupta eta!.
`................... 713/1
`(Continued)
`
`OTHER PUBLICATIONS
`Symbolic Model Checking an approach to the state explosion prob(cid:173)
`lem; Kenneth L McMillan; May 1992; Carnegie Mellon University.*
`(Continued)
`
`Primary Examiner-Kamini S Shah
`Assistant Examiner-Akash Saxena
`(74) Attorney, Agent, or Firm-Hamilton & Terrile, LLP;
`Kent B. Chambers
`
`(57)
`
`ABSTRACT
`
`A model consolidation process combines multiple configu(cid:173)
`ration models into a single unified configuration model that
`contains the union of the allowable combinations (i.e. com(cid:173)
`binations that are buildable) from each of the original models.
`An aspect of at least one embodiment ofthe model consoli(cid:173)
`dation 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 pos(cid:173)
`sible. If an incompatibility is detected that caunot be auto(cid:173)
`matically 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.
`
`22 Claims, 13 Drawing Sheets
`
`Directed Acyclic Graph (DAG)
`
`200 )
`
`Family C
`
`• • •
`
`Page 1 of 26
`
`FORD 1001
`
`

`
`US 7, 739,080 Bl
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`2008/0147584 A1 *
`
`6/2008 Buss ........................... 706/47
`
`6,584,369 B2 *
`6/2003
`6,807,576 B1 * 10/2004
`6,882,892 B2 *
`4/2005
`6,983,187 B2 *
`112006
`7,171,400 B2 *
`112007
`7,188,333 B1*
`3/2007
`7,480,597 B2 *
`112009
`7,574,379 B2 *
`8/2009
`7,584,079 B2 *
`9/2009
`2002/0013631 A1 *
`112002
`2002/0165701 A1 * 1112002
`2003/0069737 A1 *
`4/2003
`2004/0002838 A1 *
`112004
`2004/0030786 A1 *
`2/2004
`2004/0133457 A1 *
`7/2004
`2006/0106626 A1 *
`5/2006
`2006/0136904 A1 *
`6/2006
`2007/0074180 A1 *
`3/2007
`
`Patel eta!. .................. 700/100
`Jeffries et a!. ............... 709/225
`Farrah eta!. .................. 700/97
`Kern, Thomas .............. 700/97
`Koubenski et al. ............. 707/3
`LaMotta et a!. ............. 717/106
`Clark et al. .................... 703/2
`Flaxer eta!. .................. 705/26
`Lichtenberg et a!. ........... 703/2
`Parunak eta!. ................ 700/28
`Lichtenberg et a!. ........... 703/7
`Koubenski et al. ............. 705/1
`Oliver eta!. ................... 703/2
`Zehavi ....................... 709/229
`Sadiq et al. .................... 705/7
`Jeng et al ....................... 705/1
`Weidmanetal. ............ 717/172
`............. 717/136
`Hinchey et a!.
`
`OTHER PUBLICATIONS
`
`UVT: a unification-based tool for knowledge base verification; Polat,
`F. Guvenir, H.A.; Expert, IEEE; Publication Date: Jun. 1993; vol. 8,
`Issue: 3; on pp. 69-75 ;ISSN: 0885-9000.*
`The combining DAG: a technique for parallel data flow analysis;
`Kramer, R.; Gupta, R.; Sofia, M.L.; Parallel and Distributed Systems,
`IEEE Transactions on; vol. 5, Issue 8, Aug. 1994 pp. 805-813.*
`J. Estublier, J. Favre, P. Morat, "Toward SCM/PDM Integration?"
`Spring-Verag Berlin Heidelberg 1998.*
`An Object Model for Evolutionary Configuration Management
`(1993) Hannu Peltonen, Tomi Miinnistii, Reijo Sulonen, Kari Alho.*
`The combining DAG: a technique for parallel data flow analysis;
`Kramer, R.; Gupta, R.; Sofia, M.L.; Parallel and Distributed Systems,
`IEEE Transactions on; vol. 5, Issue 8, Aug. 1994 pp. 805-813 (this
`reference is cited and provided with office action dated Jul. 5, 2006). *
`* cited by examiner
`
`Page 2 of 26
`
`FORD 1001
`
`

`
`102
`
`104
`
`106
`
`Stitched Rules
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`+
`
`I
`
`I I lllililii!lilillil!ll!i!i!l!l!i!lilililiililililil!il
`
`II
`
`II
`
`Space defined by the , u,.,.,---'
`of models 102 and 1 04
`
`Space defined by the
`MDC of Model 102
`108
`
`Unspecified Buildable
`Configurations
`112
`
`Figure 1 (prior art)
`
`Space defined by the
`MDC of Model102
`11Q
`
`MKT2 space
`116
`
`MKT1 space
`114
`
`~ = := ....
`0 ....
`
`~Ul
`N
`
`0
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`....
`0 .....
`....
`
`(.H
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """"'
`
`Page 3 of 26
`
`FORD 1001
`
`

`
`U.S. Patent
`
`Jun.15,2010
`
`Sheet 2 of 13
`
`US 7,739,080 Bl
`
`-
`-
`
`(!)
`<(
`0
`.c.
`a.
`ro
`.....
`(!)
`(.)
`(3
`>.
`(.)
`<(
`"'0
`......
`Q)
`(.)
`.....
`Q)
`i5
`
`<(
`
`2!:-. E
`ro
`LL
`
`co
`2!:-
`.E
`ro
`LL
`
`u
`2!:-
`.E
`ro
`LL
`
`•
`•
`•
`
`C'-
`
`e
`:::s
`.t:n
`Li:
`
`Page 4 of 26
`
`FORD 1001
`
`

`
`U.S. Patent
`
`Jun.15,2010
`
`Sheet 3 of 13
`
`US 7,739,080 Bl
`
`I
`I
`I
`-
`
`Q)
`..l<:
`.....
`IU
`:::!!:
`
`-
`
`Q)
`..l<:
`.....
`IU
`:::!!:
`
`...-- -
`
`""' ..........
`
`"
`" 0:::
`
`UJ
`en
`
`C)
`z
`UJ
`
`C)
`z
`UJ
`
`0:::
`UJ
`en
`
`t'
`"'
`....
`0
`"t::
`S:
`e
`:::,
`.tn
`u:
`
`~
`
`t'
`"'
`....
`0
`"t::
`S:
`e
`:::,
`-~
`LL:
`
`C"')
`
`N
`N
`(0
`
`Q)
`"C
`0
`...
`E
`
`0 -
`
`(!)
`<(
`c
`
`N
`<r-
`CD
`"C
`c:
`co
`N
`Q
`CD
`rn
`Cii
`"C
`0
`...
`E
`
`0 -
`
`(!)
`<(
`c
`
`Page 5 of 26
`
`FORD 1001
`
`

`
`r 504
`
`USA Model
`
`Canada Model
`
`""
`r 5os ~
`r 5oa v v
`
`,..
`
`Conventional Model
`Stitching Process
`
`"= 510
`
`Mexico Model
`
`may be created and
`maintained
`independenUy.
`502
`
`500 )
`
`-..
`
`Combined
`USA+Canada+Mexlco
`Model
`
`I
`
`'
`
`I
`I
`
`\_ Contains all of the
`information present
`in the USA, Canada,
`
`unspecified
`buildable
`configurations.
`512
`
`Figure 5 (Prior Art)
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`2'
`:=
`......
`~Ul
`N
`0 ......
`0
`
`rFJ =(cid:173)
`......
`,j;o,.
`
`('D
`('D
`
`0 .....
`......
`(.H
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = ""'"'
`
`Page 6 of 26
`
`FORD 1001
`
`

`
`MKT Family
`
`•
`
`ENG Family
`
`•
`
`Configuration Model602: defining constraints= {SER1}
`,-----------------------
`.------------------------------;
`!
`!
`! MKT1
`
`MKT1.ENG1
`
`MKT2
`
`I
`I !.----------
`
`intersect
`
`MKT1.ENG2
`
`MKT2.ENG1
`
`MKT2.ENG2
`
`intersect
`
`604
`
`606
`
`Configuration Model612: defining constraints= {SER2}
`
`.......................................................................... ,
`SER Family
`
`Complete Model Is the
`Intersection of MKT, ENG,
`SER Families
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`MKT1.ENG1.SERt
`MKT1.ENG1.SER2
`MKT1. ENG2.SE R1
`MKT1. ENG2.SE R2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2. ENG2.SE R1
`MKT2. ENG2.SE R2
`
`.------------------------------;:
`ENG Family
`
`------------------------------------,
`SER Family
`.
`
`i
`'
`I
`!
`I
`!intersect
`~
`I
`i
`--------------l==---\-
`;
`-\:.::
`
`MKT1.ENG1
`
`MKTI.ENG2
`
`MKT2.ENG1
`
`MKT2.ENG2
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`·----------------i------------------
`616
`;.
`
`602
`
`612
`
`622
`
`r-----------------------r
`~
`MKT Family
`'
`I
`MKT1~'''~ !
`1.
`i Intersect
`~
`I
`i
`==~~----------\-
`
`MKT2
`
`-\:.:: 614
`
`MKT1 ~'-'-'-"!
`
`MKT2~'-'-'-~ !
`!
`................................................ •
`
`608
`( .......................................................................... ,
`
`'
`
`Complete Model Is the
`Intersection of MKT, ENG,
`SERFamllies
`
`'
`
`610
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1. ENG2.SE R2
`MKT2. ENG1.SE R1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2. ENG2.SE R2
`61 ~-------------------------------------~
`
`620
`
`636
`
`Combination of Model 602
`and Model612
`
`MKT1.ENG1.SER1
`MKT1.ENGI.SER2
`MKTI.ENG2.SER1
`MKTI.ENG2.SER2
`MKT2.ENGI.SER1
`MKT2.ENGI.SER2
`MKT2.ENG2.SER1
`MKT2. ENG2.SE R2
`
`\::=
`
`Actual Result of Combining Configuration Models 602 and 612
`..................................................
`~
`MKTFamlly
`!
`!
`I
`!intersect
`I
`I
`
`-------·--------------------.. ,.
`~
`ENG Family
`MKTI.ENGI ~ ~
`i
`!
`!
`~---~-:~~~~-~~--~---!
`
`MKT1.ENG2
`
`MKT2.ENG1
`
`!intersect
`
`SER Family
`
`MKT1.ENG1.SER1
`MKT1.ENGI.SER2
`MKTI.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENGI.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`624
`
`626
`Figure 6 (Prior Art)
`
`628
`
`630
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`2'
`:= ....
`0 ....
`
`~Ul
`N
`
`0
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`Ul
`0 .....
`....
`
`(.H
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = ""'"'
`
`Page 7 of 26
`
`FORD 1001
`
`

`
`704
`
`Model A
`
`706
`
`Model B
`
`•
`•
`•
`
`Model N
`
`700
`
`)
`
`~
`7J)_
`•
`~
`~
`~
`
`~ = ~
`
`2'
`:= ....
`0 ....
`
`~Ul
`N
`
`0
`
`Model
`Consoldation
`Process
`
`Consolidated
`A+B+ ... + N
`Model
`
`710
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`0\
`0 .....
`....
`
`(.H
`
`Contains all of the
`information present in
`Models A through N.
`712
`
`Set of models that
`may be created and
`maintained
`independently.
`ZQ2
`
`Figure 7
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """"'
`
`Page 8 of 26
`
`FORD 1001
`
`

`
`Adjusting Model612 So It May Be Combined With Model602
`, ....................................................... .,
`~
`MKTFamily
`
`ENG Family
`
`SER Family
`
`'
`,
`:
`I
`!
`:
`i
`:
`L
`!
`·--------------,-------------j
`
`MKT1.ENG1
`
`MKT1.ENG2
`
`MKT2.ENG1
`
`MKT2.ENG2
`
`I
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`
`MKT2.ENG1.SER2 Ej l
`:L 608
`i
`--------------------------------------!
`
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`606
`
`v- 602
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`N
`0
`
`-
`CD
`.!
`0
`""'
`
`-
`
`1
`
`1
`
`1
`
`I
`
`'
`:
`:
`!
`! MKT1
`:
`:
`::!:
`:
`i
`S
`!
`:
`"l;j
`~ i
`'
`:
`l;
`L 604
`8 i ______________________ j
`
`N ... CD
`
`a;
`"CC
`0
`==
`r:::
`0
`~ = Cl>
`
`I;:
`r:::
`0
`0
`
`N ... CD
`
`a;
`"tt_
`o"tt ==s
`0 =
`r:::
`.,
`~~ =-1:1>
`'E
`0
`0
`
`compare
`----------.& .............................. ,
`MKTFamlly
`
`compare
`
`r---------------------------••t
`
`ENG Family
`
`.
`
`MKT1
`
`MKT1.ENG1
`
`MKT1.ENG2
`
`intersect
`
`intersect
`
`614
`
`MKT2ENG1 ~ [
`!'-- 616
`!
`MKT2 ENG2
`.......................................................................
`
`r""'"'"'"'"'"'"'"'"'"""'"'"'"'"'"'"'"'"'"'"'"'"'"''"''"'"'"''"''"'"''"'"""'"'-"'1
`SERFamily
`
`:
`:
`i
`i
`i
`i
`i
`:
`L
`-----~-~:~~~~:~-=~------------j
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`
`.------------------------·--------·-... -,
`
`Complete Model
`
`612
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`616
`
`No adjuslmenl required
`for MKT family.
`
`___________ !___________
`
`MKTFamily
`
`MKT1
`
`intersect
`
`r- 824
`
`, _______________________ ...
`
`Adjust model612 by adding space to ENG family
`and removing space from SER.
`
`·--------------~--------------~-------------------------------------·
`!
`!
`
`ENG Family
`
`SER Family
`
`MKT1.ENG1
`
`MKT1.ENG2
`
`832
`
`intersect
`
`MKT2.ENG1
`
`MKT2.ENG2 ~ ~ 826
`
`.. ______________________________ 1
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`;. ____________________________________ j'-
`
`'
`
`Figure 8
`
`Adjustments to families may not affect
`the complete model.
`
`-----------------~-----------------
`
`I
`
`822
`
`834
`
`828
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`~----------------·-------------------
`
`2'
`:= ....
`0 ....
`
`~Ul
`N
`
`0
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`-....l
`0 ....
`....
`
`(.H
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """"
`
`Page 9 of 26
`
`FORD 1001
`
`

`
`Result of Combining Configuration Models 602 and 612 Using Model Consolidation System 1200
`
`Configuration Model 602: defining constraints= {SER1}
`·------------------------------,
`
`ENG Family
`
`.
`
`MKTFamily
`
`602
`
`MKT1
`
`MKT2
`
`. .
`i
`!.----------
`
`intersect
`
`MKT1.ENG1
`
`MKT1.ENG2
`
`MKT2.ENG1
`
`MKT2.ENG2
`
`intersect
`
`·------------------------------------,
`i
`I
`
`SER Family
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1 .SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`Complete Model Is the
`Intersection of MKT, ENG,
`SER Families
`
`.............................. _ .. _____________________ i
`i
`!
`i
`!
`!
`i
`!
`!
`!
`I
`~
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2. ENG2.SER1
`MKT2.ENG2.SER2
`.
`!-------------------------------------
`
`604
`
`606
`
`608
`
`610
`
`------------··--------~
`MKT Family
`
`~
`
`ENG Family
`
`Configuration Model612 (ADJUSTED): defining constraints= {SER2}
`,------------------------------,
`................................................................................................ T
`~
`~
`SER Family
`MKT1 ENG1 SER1 ~ !
`!
`~
`I
`i
`i
`i
`i
`
`intersect
`
`MKT1 ENG1 SER2
`MKT1 ENG2 SER1
`MKT1 ENG2 SER2
`MKT2 ENG1 SER1
`MKT2 ENG1 SER2
`MKT2 ENG2 SER1
`MKT2 ENG2 SER2
`
`-------------------------------·------.
`
`Complete Model is the
`Intersection of MKT, ENG,
`SER Families
`
`•
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2. ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2. ENG2.SER2
`l-----------------------------------
`
`822
`
`MKT1
`
`MKT2
`
`~
`~
`MKT1.ENG1
`I
`I
`! MKT1.ENG2
`! ,
`! 1ntersect !
`!
`! MKT2.ENG1
`! MKT2.ENG2
`~-----------------------------
`
`J
`
`I
`
`824
`
`826
`
`828
`
`830
`
`Actual Result of Combining Configuration Models 602 and 612 (ADJUSTED)
`
`MKTFamlly
`
`ENG Family
`
`SERFamlly
`
`~-----------------·---------------.
`
`Consolidation of Modol602
`and Model 612
`
`922
`
`MKT1
`
`intersect
`
`MKT2
`
`MKT1.ENG1
`
`MKT1.ENG2
`
`MKT2.ENG1
`
`MKT2.ENG2
`
`intersect
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2.ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2.ENG2.SER2
`
`MKT1.ENG1.SER1
`MKT1.ENG1.SER2
`MKT1.ENG2.SER1
`MKT1.ENG2.SER2
`MKT2. ENG1.SER1
`MKT2.ENG1.SER2
`MKT2.ENG2.SER1
`MKT2. ENG2.SER2
`
`·------------------------------~
`
`924
`
`926
`
`-
`
`-
`
`-
`
`·-------------------------------------\
`
`-'C 928
`
`·------------------------------------ \::
`1
`
`930
`
`Figure 9A
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`~ = = ....
`0 ....
`
`~
`
`Ul
`N
`
`0
`
`rFJ =(cid:173)
`.....
`
`('D
`('D
`
`QO
`
`0 .....
`....
`
`(.H
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """'
`
`Page 10 of 26
`
`FORD 1001
`
`

`
`602
`
`612
`
`930
`
`Stitched Rules
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`+
`
`I
`
`I -
`
`I 1 liillilililimmmimililiiiliiiliilliilliiilil 1
`
`I
`
`I I
`
`Space defined by the , .... .,.~___J
`of models 602 and 612
`
`Space defined by the
`MDC of Model602
`
`Space defined by the
`MDC of Model612
`
`~ = := ....
`0 ....
`
`~Ul
`N
`
`0
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`\0
`0 .....
`....
`
`(.H
`
`Figure 98
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """"'
`
`Page 11 of 26
`
`FORD 1001
`
`

`
`1000
`
`~
`
`1001
`I
`
`1002
`I
`
`I
`
`Build a unified DAG from the I
`
`rules of all input models
`
`~t"!~-="by~
`
`1004
`
`1005
`
`Determine which families
`can't be trivially combined
`together
`
`Create marker rules for the
`non-trivial families and add
`them to the indexed rules
`
`For each family, qualify its
`rules with the defining
`constraints from the model it
`comes from
`
`1006 :
`
`~
`constraints from the RHS of I
`
`Remove added defining
`
`rules where they cause
`cycles in the DAG
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`~
`
`= := ....
`....
`
`~Ul
`N
`0
`
`0
`
`rFJ
`
`('D
`('D
`
`=-
`.....
`....
`0
`.....
`0
`....
`
`(.H
`
`d
`rJl
`-....l
`~ w
`
`\C = 00
`= = """"
`
`LHS is from
`a trivial family
`
`LHS is from a
`non-trivial family
`
`Perform the non-trivial
`combination algorithm
`
`1010
`'
`
`( Stop )
`
`Figure 10
`
`Page 12 of 26
`
`FORD 1001
`
`

`
`U.S. Patent
`
`Jun.15,2010
`
`Sheet 11 of 13
`
`US 7,739,080 Bl
`
`1107
`
`Output optionality overlap
`error message
`
`No
`
`1100
`
`~
`
`1101
`
`1102
`
`1103
`
`1104
`
`1105
`
`1106
`
`Start
`
`Group all of the rules
`together by LHS feature
`
`Determine all possible sets
`of rules with overlapping
`RHS features
`
`Resolve false buildables
`
`Optionally apply restriction
`rules
`
`Figure 11
`
`Page 13 of 26
`
`FORD 1001
`
`

`
`1204(1)
`
`1204(2)
`
`Network
`1202
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`2'
`:= ....
`0 ....
`
`~Ul
`N
`
`0
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`....
`N
`0 .....
`....
`
`(.H
`
`1206(N) 1206(N-1}
`
`1206(9
`
`Figure 12
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """"'
`
`Page 14 of 26
`
`FORD 1001
`
`

`
`/1300
`
`1317
`
`.
`
`I
`
`•11 DISPLAY I
`
`·1314
`
`1318
`
`1315
`
`MAIN
`
`/
`MEMORY •
`
`.
`
`1319 G.
`
`DRIVER
`
`1/0 •
`
`Processor •
`
`VIDEO
`I MEMORY
`
`~
`00
`•
`~
`~
`~
`
`~ = ~
`
`~ = := ....
`0 ....
`
`~Ul
`N
`
`0
`
`('D
`
`(.H
`
`rFJ =-('D
`.....
`....
`0 .....
`....
`
`(.H
`
`·1310
`
`1309
`
`USER INPUT
`DEVICE(S)
`
`MASS STORAGE
`
`Figure 13
`
`d
`rJl
`-....l
`~ w
`
`\C = 00 = = """"'
`
`Page 15 of 26
`
`FORD 1001
`
`

`
`US 7,739,080 Bl
`
`1
`CONSOLIDATION OF PRODUCT DATA
`MODELS
`
`BACKGROUND OF THE INVENTION
`
`2
`
`Main feature
`
`Optionality Constraints
`
`Time frame
`
`4.8literV8
`
`s
`
`XL&US
`
`May-December Rule 1
`2003
`
`15
`
`Rule 1 means "the 4.8liter V8 is standard with the XL trim
`and US market from May to December 2003." The main
`feature represents the feature that is being affected by the rule.
`Optionalities can be positive or negative: positive optionali(cid:173)
`ties state that the main feature can work with the constraints;
`negative optionalities state the main feature cannot work with
`the constraints. Constraints qualifY the rule and can be an
`arbitrary Boolean expression of features such as AND, NOT,
`and OR operators. In the rules below, a"." indicates an AND
`operation, a"-" indicates a NOT operation, and a"+" indi(cid:173)
`cates an OR operation. The timeframe specifies when the
`other rule elements are effective.
`A buildable configuration describes what features can and
`can't exist with other features of a product. The example rule
`above defines a buildable configuration in the following way:
`"the 4.8 liter V8 is buildable (because it is standard) with the
`25 combination of XL and US." If the combination of features,
`such as of XL and US, is not buildable, the example rule is
`inactive. Consequently, even though the engine is buildable
`with that combination, if the combination is not buildable, the
`three features together are not a buildable configuration. A
`30 rule that would make the example rule inactive is the follow-
`ing:
`
`20
`
`35
`
`Main feature Optionality
`
`XL
`
`N
`
`Constraints
`us
`
`Time frame
`
`September 2002
`
`Rule2
`
`1. Field of the Invention
`The present invention relates in general to the field of
`information processing, and more specifically to a system and
`method for consolidating data from various product data 10
`models.
`2. Description of the Related Art
`A configurable product can be described by a configuration
`model having a set of configuration rules. A configurable
`product can be conceptually broken down into sets of select(cid:173)
`able families and features of families that make up each
`product. A family represents a classification of a particular
`type of feature. Families are typically classified as groups of
`features with the same functional purpose. Example families
`for an automobile are "engines," "tires," "seats," and "exterior
`paint color." Families can also represent other groups such as
`market areas. For example, a family can include a marketing
`region such as USA, Canada, Mexico, Europe, or any other
`region. Families can be represented in terms of the minimum
`and maximum number of features that must be present in a
`configuration from a family for the configuration to be valid.
`A common family minimum and maximum or "(min, max)"
`is ( 1, 1 ). This notation means that exactly one feature from the
`family must be part of a configuration for the configuration to
`be valid. Other common (min, max) settings are (0, 1 ), mean(cid:173)
`ing that either no features or a single feature from the family
`must be present in a configuration for it to be valid, and (0,
`-1 ), meaning that zero or any positive number of features
`from the family must be present in a configuration for it to be
`valid.
`A feature represents an option that can be ordered on a
`product. All features are members of a family. Features are
`both assigned optionalities and used to qualifY other features 40
`and the optionalities assigned to them. An example feature
`from the engine family is a "4.8 liter V8." Features relate to
`each other via ordering codes or optionalities. Example
`optionalities include "S", "0", "M", and "N," which translate
`to standard, optional, mandatory, and not available. A specific
`example would be "the 4.8 liter V8 engine is standard on the
`GS trim."
`Features relate to each other via configuration rules. A rule
`can be characterized as generally including a 'left hand side',
`(LHS), a 'right hand side' (RHS), and a specified relationship
`between the LHS and RHS. Each LHS feature may be asso(cid:173)
`ciated with one or more RHS features, which indicates that a
`single feature in the LHS may be constrained or otherwise
`qualified by one or more RHS features. The RHS describes
`when a rule is in effect and what features are particularly
`affected. For example, a rule with a RHS of"XA, XB" means
`that the rule is in effect in cases where you have at least XA
`and XB in a buildable configuration, and XA and XB are
`features particularly affected by the rule along with the LHS
`feature. Configuration rules include optionalities that define a 60
`relationship between the LHS and RHS. Further exemplary
`discussion of LHS and RHS rule concepts is described in
`Gupta eta!., U.S. Pat. No. 5,825,651 entitled "Method and
`Apparatus for Maintaining and Configuring Systems."
`A configuration rule includes a main feature, an optional(cid:173)
`ity, one or more constraints, and an applicable timeframe. As
`an example:
`
`45
`
`50
`
`55
`
`Rule 2 means "the XL trim main feature is not available
`with US from September of2002 onward." Until the XL main
`feature is made available with the US by changing the option(cid:173)
`ality from "N" to one that expresses a positive relationship,
`there will not be a buildable configuration for XL, US, and the
`4.8 L engine.
`Thus, a rule defines a buildable configuration between its
`main feature and its constraints only. A rule does NOT define
`a buildable configuration relationship between the members
`of its constraints. A separate rule must define that buildable
`configuration. Consequently, all rules together for a product
`define the complete product buildable configurations. In
`order to determine if the three features in the example rule
`(the main feature and the constraints) are a buildable configu(cid:173)
`ration, the rules written on each of those features (i.e. where
`each feature is the main feature) should to be considered
`jointly. Inactive rules do not define buildable configurations
`until they become active.
`A "model" refers to a collection of rules that define the
`buildable configurations of one or more products.
`Referring to FIG. 2, the families in each model are inter(cid:173)
`nally organized in accordance with a directed acyclic graph
`("DAG") 200. The DAG contains an edge between a child
`family and a parent family if there exists a rule with a LHS
`feature that belongs to the child family and a RHS feature that
`belongs to the parent family. The DAG organization allows a
`65 child family to reference an ancestor but not the other way
`around. Cyclic references within a model as in FIG. 4 can
`produce ambiguities within the model.
`
`Page 16 of 26
`
`FORD 1001
`
`

`
`US 7,739,080 Bl
`
`3
`Each model contains variations of the buildable configu(cid:173)
`rations of the product. For example, a company may market a
`product with a particular set of standard features in one region
`and market the same product with a different set of standard
`features in another region. For example, in an automotive 5
`context, a V6 engine may be standard for a particular auto(cid:173)
`mobile model in one country, and a VS engine may be stan(cid:173)
`dard for the particular automobile model in another country.
`In a computer context, a power supply with a 11 OV input may
`be standard in one country and a power supply with a 220V 10
`input may be standard in another country.
`Defining and maintaining the configuration space for a
`large product can often be difficult to do in a single configu(cid:173)
`ration model. In order to limit the complexity and facilitate
`maintenance the configuration space is often defined in mul- 15
`tiple configuration models. Each of these models are then
`assigned a set of defining constraints that specifY which por(cid:173)
`tion of the overall configuration space for the product it is
`defining. An example breakdown of the configuration space
`definition for an automotive vehicle could be into 3 separate 20
`models. Each model would define the configuration space of
`the automobile in one of 3 countries: USA, Canada, or
`Mexico. In this example each configuration model would
`have as a defining constraint one of the features representing
`each country. In the USA model the only allowable configu- 25
`rations would all contain the "USA" feature. Although not
`specifically included in this example, time can also be a
`defining constraint.
`A model may contain labels that describe the time period
`and space over which the model applies (also referred to as 30
`"model defining constraints"). For example, a model which
`describes the availability of cars in the United States during
`the years 2004 to 2006 may have defining constraints of
`"CARS.USA.2004-2006" while a model that describes the
`availability of all vehicles in North America during 2005 may 35
`have defining constraints of "{CARS+TRUCKS}.{USA+
`CANADA+MEXIC0}.2005".
`While it is convenient to have this logical separation of the
`configuration space for maintenance purposes it is often
`desired to provide a single unified model that represents the 40
`configuration space for the entire product. The resulting uni(cid:173)
`fied configuration model can then be used to answer any
`questions that one of the original models could answer and it
`will give the same result. The set of allowable feature com(cid:173)
`binations for the unified model should be equivalent to the 45
`union of allowable feature combinations for each of the origi(cid:173)
`nal configuration models.
`Thus, despite the differences in various models, it is often
`desirable to combine the multiple models into a consolidated
`model having a unified set of rules (also referred to as 50
`"stitched rules"). Referring to FIG. 5, the conventional con(cid:173)
`solidation system 500 includes a model 502 that represents a
`set of three models that may be created and maintained sepa(cid:173)
`rately. Model 504 is, for example, a configuration model that
`describes how a particular product may be built and sold for 55
`the USA market. Model 506 is a configuration model that
`describes how the same product may be built and sold for the
`Canadian market. Model 508 is a configuration model that
`describes how the same product may be built and sold for the
`Mexican market. Models 504, 506, and 508 may be combined 60
`into a single model 512 by conventional consolidation (also
`referred to as "stitching") processes 510. The consolidated
`model 512 will contain stitched rules that represent all the
`information present in the original three models. However, in
`many circumstances the conventional consolidation pro- 65
`cesses 510 produce unspecified configuration buildables in
`consolidated model 512. "Unspecified configuration build-
`
`4
`abies" are configuration buildables included in consolidated
`model512 that are not defined in any of the source models, i.e.
`models 504, 506, and 508. An unspecified configuration
`buildable is, thus, an error that can have significant adverse
`consequences. Conventional consolidation processes do not
`automatically detect unspecified configuration buildables and
`correct them. Since models can contain thousands, hundreds
`of thousands, or more rules, a high degree of automation is
`often a key to success for modeling and model data driven
`technologies.
`Referring to FIG. 1, for example, assume models 102 and
`104 are two configuration models with the following rules:
`Model102: model defining constraints={MKTl}
`MKTlOALL
`ENGl SALL
`Model104: model defining constraints={MKT2}
`MKT20ALL
`ENGl SALL
`ENG20ALL
`The rules in models 102 and 104 are interpreted as allowing
`the following buildable configurations:
`Model102:
`MKTl.ENGl
`Model104:
`MKT2.ENG1
`MKT2.ENG2
`An example conventional consolidation process 510 that
`simply combined the rules from models 102 and 104 using a
`simple aggregation process would yield a consolidated model
`106 with the following rules:
`Model 106: model defining constraints
`{MKT1+MKT2}
`MKTlOALL
`MKT20ALL
`ENGl SALL
`ENG20ALL
`The rules of model 106 are interpreted as allowing the
`following buildable configurations:
`Model106:
`MKT1.ENG1 (corresponds to element 108)
`MKT1.ENG2 (corresponds to element 112)
`MKT2.ENG1 (corresponds to element 110)
`MKT2.ENG2 (corresponds to element 110)
`Model106 includes the model space defined by the model
`defining constraints 108 of model 102 and the model space
`defined by the model defining constraints of 110 of model
`104. Unfortunately, in addition to representing the stitched
`rules of models 102 and 104, model 106 also includes an
`unspecified buildable configuration "MKT1.ENG2" 112. In
`the embodiment ofFIG.1, buildable configurations of model
`104 have been extended into the model defining constraints
`MKT1 space 114. Model defining constraints space MKT2
`space 116 accurately contains only the buildable configura(cid:173)
`tions ofmodel104.
`The consolidated model should faithfully represent the
`buildable configurations of the products represented by mod(cid:173)
`els 102 and 104 without including any errors such as the
`unspecified buildable configurations 112. Conventional con(cid:173)
`solidation processes attempt to solve this problem by modi(cid:173)
`fYing, adding, and removing stitched rules so that rules from
`each source model do not extend outside of the space defined
`by their source model's defining constraints.
`An example enhanced conventional consolidation process
`510 that combined the rules from models 102 and 104, con(cid:173)
`straining each to their source model's defining constraints,
`would yield a consolidated model 406 with the following
`rules:
`
`("MDC")=
`
`Page 17 of 26
`
`FORD 1001
`
`

`
`US 7,739,080 Bl
`
`5
`Model406: model defining constraints={MKT1+MKT2}
`MKTl 0 ALL
`(source model 102's defining
`constraints={MKTl})
`ENG1 S MKTl
`(source model 102's defining
`constraints={MKTl})
`MKT2 0 ALL
`(source model 104's defining
`constraints={MKT2})
`ENG1 S MKT2
`(source model 104's defining
`constraints={MKT2})
`ENG2 0 MKT2
`(source model 104's defining 10
`constraints={MKT2})
`The rules of model 406 are interpreted as allowing the
`following buildable configurations:
`Model406:
`MKTl.ENGl
`MKT2.ENG1
`MKT2.ENG2
`The new model 406 accurately combines the intent of
`source models 102 and 104 without introducing new unspeci(cid:173)
`fied buildable combinations.
`Although consolidation appears to be the straight forward
`process of adding all the rules from each model being con(cid:173)
`solidated and

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