throbber
Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 1 of 17 PageID #: 94
`
`
`
`
`
`
`
`Exhibit D
`
`U.S. Patent No. 6,684,220
`
`Method and System for Automatic Information Exchange
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 2 of 17 PageID #: 95
`I 1111111111111111 11111 lllll 111111111111111 111111111111111 1111111111 11111111
`US006684220B 1
`
`(12) United States Patent
`Pfeiff er et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,684,220 Bl
`Jan.27,2004
`
`(54) METHOD AND SYSTEM FOR AUTOMATIC
`INFORMATION EXCHANGE
`
`(75)
`
`Inventors: William P. Pfeiffer, Fort Worth, TX
`(US); Randall M. Schuessler, Fort
`Worth, TX (US); Michael R. Yokell,
`Fort Worth, TX (US)
`
`(73) Assignee: Lockheed Martin Corporation,
`Bethesda, MD (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 492 days.
`
`(21) Appl. No.: 09/666,029
`
`(22) Filed:
`
`Sep. 20, 2000
`
`Int. Cl.7 ................................................ G06F 17/30
`(51)
`(52) U.S. Cl. ....................................... 707/103 R; 707/2
`(58) Field of Search ............................. 707/103 R, 102,
`707/3, 1; 705/51, 52, 54, 57, 80; 703/22;
`713/187, 201; 717/122, 145, 176; 715/503;
`345/734, 744, 784, 821
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`5,801,701 A * 9/1998 Koppolu et al. ............ 345/821
`6,032,147 A
`2/2000 Williams et al. ............ 707/101
`6,038,393 A
`3/2000 Iyengar et al. .............. 395/701
`6,038,565 A
`3/2000 Nock ......................... 707/701
`6,049,807 A
`4/2000 Carroll et al.
`.............. 707/201
`6,049,822 A
`4/2000 Mittal
`........................ 709/217
`6,101,500 A * 8/2000 Lau ........................ 707/103 R
`6,282,547 Bl * 8/2001 Hirsch ........................ 707/102
`6,466,932 Bl * 10/2002 Dennis et al.
`................. 707/3
`
`FOREIGN PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`Bayol, Catherine, "Une Approche Structurelle et Compor(cid:173)
`tementale de la Modelisation Pour la Velisation Pour la
`Verification de Composants VLSI'', These de Docteur de
`L'Universite Joseph Fourier-Grenoble I, 129 pages, Dec.
`12, 1995.
`Donnel, Brian L., "Object/Rule Integration in CLIPS",
`Expert Systems, vol. 11, No. 1, XP001073801, Feb. 1994,
`pp. 29-45.
`Aho, Alfred V., et al, "Introduction to Compiling'', 1986,
`Addison-Wesley Series in Computer Science, Reading,
`ETATS-UNIS D'AMERIQUE, XP002200775, pgs. 1-15,
`19, 60-62, 389-396, 411-431, 1986.
`International Search Report dated Jun. 17, 2002 for PCT/
`US0l/28888 filed Sep. 17, 2001, Jun. 17, 2002.
`
`* cited by examiner
`
`Primary Examiner-Diane D. Mizrahi
`(74) Attorney, Agent, or Firm-Baker Botts, L.L.P.
`
`(57)
`
`ABSTRACT
`
`A method and system for automatic information exchange
`includes a processor and a memory coupled to the processor
`and operable to store a model. The model includes a plurality
`of objects where each of the plurality of objects includes an
`input variable and an output variable. The system also
`includes a loading engine residing in the memory and
`executable by the processor. The loading engine is operable
`to automatically create object links between corresponding
`input variables and output variables of each of the plurality
`of objects. The system may also include an update engine
`residing in the memory and executable by the processor. The
`update engine is operable to sequentially update each of the
`plurality of objects to obtain an output variable value for
`each of the plurality of objects.
`
`FR
`
`2 689 260
`
`10/1993
`
`......... G05B/19/403
`
`31 Claims, 5 Drawing Sheets
`
`60
`~
`
`62
`
`PARENT OBJECT
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 3 of 17 PageID #: 96
`
`U.S. Patent
`
`Jan.27,2004
`
`Sheet 1 of 5
`
`US 6,684,220 Bl
`
`FIG. 1
`
`10
`✓
`
`20
`
`18
`
`MEMORY
`
`30
`\
`LOADING ENGINE
`
`32
`\
`UPDATE ENGINE
`
`REPORTING ENGINE
`
`34
`
`16
`
`OUTPUT DEVICE
`
`PROCESSOR
`
`12
`
`INPUT DEVICE
`
`INFORMATION SOURCE
`
`MODEL LIBRARY
`I
`
`I
`
`MODELS
`
`I
`
`]
`
`1 ~BJ\CTS 1J
`
`44
`
`40
`
`-
`-
`I'\. 42
`
`INDENTIFIER
`VARIABLE
`DATABASE
`\
`50
`
`INTERFACE APPLICATION
`
`14
`
`36
`
`60
`~
`
`64
`
`CONTAINER
`OBJECT
`
`FIG. 2
`
`62
`
`PARENT OBJECT
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 4 of 17 PageID #: 97
`
`70
`~
`
`FIG. 3
`
`72
`
`)
`
`82
`__l_
`I TABLE I 92
`I TEMPERATURE) I
`
`OBJECT
`
`l
`
`90
`
`ALTITUDE
`
`)
`
`ATMOSPHERE OBJECT
`
`86
`88
`I
`98 I rum,11u1~ 1 102 106 I FUNCTION
`
`OBJECT
`
`nn ,rr.T
`
`I
`
`)
`
`I 76
`I TEMPERATUR9
`I
`I
`
`I
`
`I
`
`I
`
`74---1
`
`ALTITUDE /--1
`
`FUNCTION
`OBJECT
`
`ALTITUDE ')
`
`PRESSURE
`
`94
`
`(
`84
`
`96
`
`I
`~ ~ 1---~·-'-
`I-·-···'-
`I DELT<' DEL~ I"' T"'
`I PRESSURE /
`11 o
`?
`I
`\
`I
`104 108
`100
`
`78
`
`PRESSURE ,
`I 80
`
`d •
`r:JJ.
`•
`~
`......
`~
`~ =
`......
`
`~
`~
`?
`N
`~-..J
`N
`0
`0
`,i;;..
`
`~
`~
`
`'JJ. =-
`....
`N
`....,
`0
`Ul
`
`e
`r.,J.
`_,.a-...
`a-...
`~
`,I;;..
`'N
`N
`Q
`~
`i,-
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 5 of 17 PageID #: 98
`
`U.S. Patent
`
`Jan.27,2004
`
`Sheet 3 of 5
`
`US 6,684,220 Bl
`
`START
`
`IDENTIFY INPUT VARIABLES AND
`OUTPUT VARIABLES FOR CONTAINER
`OBJECTS OF PARENT OBJECT
`
`SELECT A CONTAINER OBJECT
`
`IDENTIFY INPUT VARIABLE
`OF CONTAINER OBJECT
`
`DETERMINE WHETHER INPUT VARIABLE
`OF CONTAINER OBJECT IS AN
`INPUT VARIABLE OF PARENT OBJECT
`
`400
`
`402
`
`404
`
`406
`
`FIG. 4A
`410
`
`INPUT
`DETERMINE WHETHER
`VARIABLE
`IS AN OUTPUT VARIABLE
`OF ANOTHER CONTAINER OBJECT
`
`V
`T
`
`YES
`
`416
`
`NO
`
`DETERMINE WHETHER OBJECT LINK
`EXISTS BETWEEN CORRESPONDING
`INPUT AND OUTPUT VARIABLES
`
`YES
`
`CONNECT INPUT VARIABLE OF
`PARENT OBJECT TO CORRESPONDING
`INPUT VARIABLE OF
`CONTAINER OBJECT
`
`422
`
`DETERMINE WHETHER ADDITIONAL
`INPUT VARIABLES EXIST FOR
`CONTAINER OBJECT
`
`420
`
`INPUT VARIABLE OF
`CONNECT
`THE CONTAINER OBJECT TO THE
`CORRESPONDING OUTPUT VARIABLE
`
`DETERMINE WHETHER OUTPUT
`VARIABLE OF CONTAINER
`OBJECT IS OUTPUT VARIABLE
`OF PARENT OBJECT
`
`YES
`
`FROM
`FIG. 4B
`
`IDENTIFY OUTPUT VARIABLE
`OF CONTAINER OBJECT
`
`428
`
`TO
`FIG. 4B
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 6 of 17 PageID #: 99
`
`U.S. Patent
`
`Jan.27,2004
`
`Sheet 4 of 5
`
`US 6,684,220 Bl
`
`FIG. 4B
`
`FROM
`FIG. 4A
`
`434
`
`CONNECT OUTPUT VARIABLE OF
`PARENT OBJECT TO CORRESPONDING
`OUTPUT VARIABLE OF
`CONTAINER OBJECT
`
`454
`
`DETERMINE WHETHER ADDITIONAL
`OUTPUT VARIABLES EXIST FOR
`CONTAINER OBJECT
`
`FROM
`FIG. 4A
`
`DETERMINE WHETHER OUTPUT
`VARIABLE OF CONTAINER OBJECT
`IS INPUT VARIABLE OF ANOTHER
`CONTAINER OBJECT
`
`436
`
`NO
`
`440
`
`TRANSMIT
`ALARM SIGNAL
`
`IDENTIFY CORRESPONDING INPUT
`VARIABLE OF CONTAINER OBJECT
`
`DETERMINE WHETHER OUTPUT
`VARIABLE
`IS ALREADY CONNECTED
`TO CORRESPONDING
`INPUT
`VARIABLE OF CONTAINER OBJECT
`
`442
`
`444
`
`448
`
`450
`
`TO
`FIG. 4A
`
`DETERMINE WHETHER ADDITIONAL
`CONTAINER OBJECTS EXIST IN
`PARENT OBJECT
`
`CONNECT OUTPUT VARIABLE TO
`CORRESPONDING INPUT VARIABLE
`OF CONTAINER OBJECT
`
`DETERMINE WHETHER OUTPUT
`VARIABLE
`IS INPUT VARIABLE OF
`ANOTHER CONTAINER OBJECT
`
`SELECT NEXT CONTAINER OBJECT
`
`462
`
`TO
`FIG. 4A
`
`YES
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 7 of 17 PageID #: 100
`
`U.S. Patent
`
`Jan.27,2004
`
`Sheet 5 of 5
`
`US 6,684,220 Bl
`
`START
`
`IDENTIFY OUTPUT VARIABLE FOR PARENT OBJECT
`
`500
`
`IDENTIFY CONTAINER OBJECT FOR PROVIDING
`THE OUTPUT VARIABLE VALUE
`
`so2 FIG. 5
`
`IDENTIFY INPUT VARIABLE OF CONTAINER OBJECT
`REQUIRED TO UPDATE CONTAINER OBJECT
`
`INPUT VARIABLE VALUE
`DETERMINE WHETHER
`OF CONTAINER OBJECT IS KNOWN
`
`504
`
`506
`
`NO
`
`510
`
`INPUT
`DETERMINE WHETHER ANOTHER
`VARIABLE OF CONTAINER OBJECT IS REQUIRED
`FOR UPDATING CONTAINER OBJECT
`
`IDENTIFY THE CONTAINER
`OBJECT FOR PROVIDING
`THE
`INPUT VARIABLE VALUE
`
`512
`
`UPDATE CONTAINER OBJECT
`
`DETERMINE OUTPUT VARIABLE VALUE
`
`OUTPUT THE OUTPUT VARIABLE
`VALUE FOR THE PARENT OBJECT
`
`DETERMINE WHETHER ANOTHER OUTPUT
`VARIABLE FOR PARENT OBJECT EXISTS
`
`516
`
`518
`
`520
`
`522
`
`YES
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 8 of 17 PageID #: 101
`
`US 6,684,220 Bl
`
`5
`
`10
`
`2
`The present invention provides several technical advan(cid:173)
`tages. For example, in one embodiment, a loading engine
`automatically links corresponding input variables and output
`variables of the objects of a model, thereby alleviating a
`requirement to manually create object links between the
`corresponding input variables and output variables of each
`of the model objects. Accordingly, users of the system need
`not know whether the data is in the form of a table or some
`combination of tables and functions.
`Another technical advantage of the present invention
`includes sequentially updating each of the objects of the
`model to obtain output variable values while substantially
`eliminating duplicate object updates and redundant calcula(cid:173)
`tions. For example, in one embodiment, the system includes
`15 an update engine that sequentially updates each of the model
`objects as an output variable value of the object is required,
`thereby substantially eliminating redundant calculations and
`providing consistency of output variable values of the
`model.
`Other technical advantages of the present invention will
`be readily apparent to one skilled in the art from the
`following figures, descriptions, and claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`1
`METHOD AND SYSTEM FOR AUTOMATIC
`INFORMATION EXCHANGE
`
`TECHNICAL FIELD OF THE INVENTION
`
`The present invention relates generally to the field of
`information processing in a computer system and, more
`particularly, to a method and system for automatic informa(cid:173)
`tion exchange.
`
`BACKGROUND OF THE INVENTION
`
`SUMMARY OF THE INVENTION
`
`Information is often exchanged between tools or applica(cid:173)
`tions in a computer system and between groups of persons
`or employees within an organization. The information may
`include data, such as alphanumeric values, tables, and analy(cid:173)
`sis data. For example, the data may define numerical rela(cid:173)
`tionships between independent and dependent variables in
`either tabular or functional form. The information may also
`include methods, such as tabular information, interpolation 20
`and extrapolation methodologies, and functional
`information, such as equations, intrinsics, and logic. For
`example, the methods may generally include the operations
`used to compute dependent variable values given indepen(cid:173)
`dent variable values including the mechanics of interpola- 25
`tion and extrapolation.
`However, because most tools or applications are written
`to use unique file formats and data structures, translation of
`both the data and the methods used to manipulate the data is
`generally required to accommodate an exchange of the
`information. Additionally, exchanging information between
`applications and groups is further aggravated by heterog(cid:173)
`enous computing environments. Thus, considerable amounts
`of effort and time are required to reformat and restructure the
`data and the methods prior to efficiently using the exchanged
`data and methods.
`
`For a more complete understanding of the present
`invention, and the advantages thereof, reference is now
`made to the following description taken in conjunction with
`the accompanying drawings, wherein like reference numer-
`30 als represent like parts, in which:
`FIG. 1 is a block diagram illustrating a system for
`automatic information exchange in accordance with one
`embodiment of the present invention;
`FIG. 2 is a block diagram illustrating a model of the
`35 system illustrated in FIG. 1 in accordance with an embodi(cid:173)
`ment of the present invention;
`FIG. 3 is a block diagram illustrating another model of the
`system illustrated in FIG. 1 in accordance with an embodi(cid:173)
`ment of the present invention;
`FIGS. 4A and 4B are flow diagrams illustrating a method
`for automatic model object linking in accordance with an
`embodiment of the present invention; and
`FIG. 5 is a flow diagram illustrating a method for updating
`45 model objects in accordance with an embodiment of the
`present invention.
`
`40
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`FIG. 1 is a block diagram illustrating a system 10 for
`automatic information exchange in accordance with one
`embodiment of the present invention. It will be understood
`that system 10 may be otherwise configured within the scope
`of the present invention. For example, system 10 may
`operate as a stand alone system or may be connected to a
`server system or other type of computing system.
`In the embodiment illustrated in FIG. 1, system 10
`comprises a processor 12, an input device 14, an output
`device 16, a memory 18, and an information source 20. The
`60 present invention also encompasses computer software that
`may be stored in memory 18 and executed by processor 12.
`The computer software may also be stored in a variety of
`other types of storage media including, but not limited to,
`floppy disk drives, hard drives, CD ROM disk drives, or
`65 magnetic tape drives. Information, such as variable value
`data or other types of data, may be received from a user of
`system 10 using a keyboard or any other type of input device
`
`Accordingly, a need has arisen for an improved system
`and method for the efficient exchange and utilization of
`information between computer systems and groups of per(cid:173)
`sons or employees within an organization. The present
`invention provides a method and system for automatic
`information exchange that substantially reduces or elimi(cid:173)
`nates problems associated with prior systems and methods.
`In accordance with an embodiment of the present
`invention, a system for automatic information exchange
`includes a processor and a memory coupled to the processor
`and operable to store a model. The model comprises a 50
`plurality of objects. Each of the plurality of objects com(cid:173)
`prises an input variable and an output variable. The system
`further includes a loading engine residing in the memory and
`executable by the processor. The loading engine is operable
`to automatically create object links between corresponding 55
`input variables and output variables of each of the plurality
`of objects.
`According to another embodiment of the present
`invention, a method for automatic information exchange
`includes receiving a model at a processor. The model
`includes a plurality of objects. Each of the plurality of
`objects includes an input variable and an output variable.
`The method also includes automatically identifying the input
`variables and the output variables of each of the plurality of
`objects. The method further includes automatically creating
`object links between the corresponding input variables and
`output variables of each of the plurality of objects.
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 9 of 17 PageID #: 102
`
`US 6,684,220 Bl
`
`3
`14. Output values or results may be output to a user of
`system 10 through output device 16, which may include a
`display, printer, or any other type of output device.
`System 10 includes a loading engine 30, an update engine
`32, a reporting engine 34, and an interface application 36, 5
`which are computer software programs. In FIG. 1, loading
`engine 30, update engine 32, reporting engine 34, and
`interface application 36 are illustrated as being stored in
`memory 18, where they can be executed by processor 12.
`Loading engine 30, update engine 32, reporting engine 34, 10
`and interface application 36 may also be stored on a variety
`of other types of storage media.
`Loading engine 30 processes information from informa(cid:173)
`tion source 20 in preparation for evaluation of the informa(cid:173)
`tion using update engine 32. By way of example, informa- 15
`tion source 20 may comprise a model library 40 having one
`or more models 42 which may be selected by a user of
`system 10 using input device 14. Models 42 each include
`one or more cooperative collections of objects 44 to provide
`a simulation or analysis of selected information. However, 20
`models 42 may be otherwise configured to provide analysis,
`simulation or other user-defined information processing
`parameters.
`Objects 44 generally include data sets, data tables, or
`functions for processing the information according to a 25
`selected model 42. Each object 44 represents an instance of
`some class, and whose classes are all members of a hierar(cid:173)
`chy of classes united via inheritance relationships. Each
`object 44 includes an input variable and an output variable.
`Each object 44 is an identifiable, encapsulated piece of code 30
`and data that provide one or more services when requested
`by a user. Thus, based on an input variable value, the object
`44 provides an output variable value corresponding to the
`table, data set or function of the object 44. Loading engine
`30 automatically creates object links between each of the 35
`input variables and output variables of the objects 44 of a
`selected model 42. As used herein, each means every one of
`at least a subset of the identified objects 44. Additionally, the
`term "automatically" means without further significant user
`action or interaction.
`Information source 20 may also include a variable iden(cid:173)
`tifier database 50 including a unique identifier associated
`with each input variable and output variable of objects 44.
`For example, the unique identifier may include terminology,
`alphanumeric designations, phrases or other suitable iden- 45
`tifiers to identify particular input variables and output vari(cid:173)
`ables of objects 44. The unique identifiers are maintained
`and stored in variable identifier database 50 such that
`loading engine 30 may access variable identifier database 50
`for each object 44 included within a particular model 42 to 50
`automatically determine the input and output variable of the
`object 44 and automatically link corresponding input and
`output variables of the objects 44. However, the input and
`output variables of objects 44 may be otherwise identified
`and stored in variable identifier database 50.
`Update engine 32 processes models 42 and automatically
`updates each object 44 of a model 42 sequentially to obtain
`output variable values of the user-selected model 42 based
`on user-defined input variable values. For example, update
`engine 32 sequentially updates each object 44 of a model 42 60
`to obtain output variable values for each object 44 without
`performing redundant calculations. Thus, a particular object
`44 may be updated when an output variable value of the
`updated object is required to support the update of another
`object 44. The methodology of updating objects 44 using 65
`update engine 32 will be discussed in greater detail below in
`conjunction with FIGS. 3 and 5.
`
`4
`Reporting engine 34 may be used to display output
`variable values of a particular model 42 to a user of system
`10 using output device 16. For example, reporting engine 34
`may provide output variable values in a particular format or
`structure as defined by a user using input device 14.
`However, reporting engine 34 may be otherwise used to
`display or provide output variable values to a user of system
`10.
`Interface application 36 may be used to receive input
`variable values from a user of system 10 using input device
`14 and automatically associate the data or input variable
`values received from the user to corresponding input vari(cid:173)
`ables of objects 44. However, input variable values may be
`otherwise received and associated with the corresponding
`input variables of objects 44.
`FIG. 2 is a block diagram illustrating a model 60 in
`accordance with an embodiment of the present invention.
`Model 60 includes a parent object 62 and container objects
`64 and 66 embedded within parent object 62. Container
`objects 64 and 66 may include a data set object, a function
`object, a table object, or other type of object. Additional
`objects may also be embedded within each container object
`64 and 66. As illustrated in FIG. 2, parent object 62 includes
`input variables A and B and provides output variables X, Y,
`and D. Container object 64 receives values associated with
`input variables A and B and provides output variables X, Y,
`and D. Similarly, container object 66 receives output vari(cid:173)
`ables Y and D from container object 64 and input variable
`C to obtain output variable Z, which is also an output
`variable of parent object 62.
`In operation, the input variables and output variables of
`parent object 62 and container objects 64 and 66 are stored
`in variable identifier database 50. Loading engine 30 is
`executed by processor 12 and automatically creates object
`links between the corresponding input variables and output
`variables of parent object 62 and container objects 64 and
`66. For example, for model 60, loading engine 30 automati(cid:173)
`cally identifies the objects of model 60, in this example,
`40 parent object 62 and container objects 64 and 66. Loading
`engine 30 also automatically identifies the input variables
`and output variables of each object of model 60 to provide
`object links between corresponding input and output vari(cid:173)
`ables.
`For example, parent object 62 may represent a top-level
`object of model 60 such that a user provides input variable
`values for input variables A, B, and C to obtain output
`variable values for output variables X, Y, and Z. Loading
`engine 30 automatically identifies the container objects
`embedded within parent object 62, in this example, con(cid:173)
`tainer objects 64 and 66, and automatically determines
`whether the input variables of parent object 62 correspond to
`an input variable of one of the container objects 64 and 66.
`In the embodiment illustrated in FIG. 2, loading engine 30
`55 automatically creates an object link between input variables
`A and B of parent object 62 and input variables A and B of
`container object 64. Loading engine 30 also automatically
`creates an object link between input variable C of parent
`object 62 and input variable C of container object 66.
`Additionally, loading engine 30 automatically creates
`object links between the container objects 64 and 66 embed(cid:173)
`ded within parent object 62. In the example illustrated in
`FIG. 2, loading engine automatically creates an object link
`between output variables Y and D of container object 64 and
`corresponding input variables Y and D of container object
`66. Loading engine 30 also automatically creates object
`links between output variables X and Y of container object
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 10 of 17 PageID #: 103
`
`US 6,684,220 Bl
`
`5
`64 and output variable Z of container object 66 and output
`variables X, Y, and Z of parent object 62. Thus, loading
`engine 30 automatically identifies and creates object links
`between corresponding input variables and output variables
`of the objects comprising model 60, thereby alleviating a
`requirement of manually creating object links between vari(cid:173)
`ous objects of model 60.
`Accordingly, the present invention also provides greater
`ease of replacement and modification of objects 44 within a
`model 42 than prior systems and methods. For example,
`objects 44 may be freely modified or replaced without
`manually creating object links between the modified or
`replaced object 44 and other objects 44 of the model 42
`because loading engine 30 automatically creates the object
`links between the various objects 44 of a model 42.
`Therefore, the present invention accommodates frequent
`object 44 modification and/or replacement.
`FIG. 3 is a block diagram illustrating a model 70 in
`accordance with an embodiment of the present invention. In
`this embodiment, model 70 includes a parent or atmosphere
`object 72 having an input variable 74 and output variables
`76, 78, and 80. Atmosphere object 72 includes a table object
`82 and function objects 84, 86, and 88. Table object 82
`includes an input variable 90 and an output variable 92.
`Function object 84 includes an input variable 94 and an
`output variable 96. Function object 86 includes input vari(cid:173)
`ables 98 and 100 and output variables 102 and 104. Function
`object 88 includes input variables 106 and 108 and an output
`variable 110.
`In the embodiment illustrated in FIG. 3, model 70 pro(cid:173)
`vides a user of system 10 with various output variable
`values, for example, flight envelope data, in response to
`particular input data or input variable values. For example,
`input variable 74 of atmosphere object 72 may include an
`altitude value for an aircraft flight envelope. Table object 82
`receives the altitude value as input variable 90 and provides
`a temperature value as output variable 92. The temperature
`value provided by output variable 92 is also output as output
`variable 76 of atmosphere object 72. Function object 84
`receives the altitude value as input variable 94 and provides
`a pressure value as output variable 96. The pressure value
`provided as output variable 96 is also output to output
`variable 80 of atmosphere object 72.
`Function object 86 receives the temperature value and the
`pressure value as input variables 98 and 100, respectively,
`and provides a theta value and a delta value as output
`variables 102 and 104, respectively. In this embodiment, the
`theta value may represent a temperature ratio as compared to
`a sea level temperature, and the delta value may represent a
`pressure ratio compared to a sea level pressure. Function
`object 88 receives the theta value and the delta value as input
`variables 106 and 108, respectively, and provides a sigma
`value as output variable 110. The sigma value is also output
`as output variable 78 of atmosphere object 72. In this
`embodiment, the sigma value may represent a ratio of the
`theta value and the delta value. Thus, based on a particular
`altitude values as input variable 74, model 70 provides a
`temperature value, a pressure value, and a sigma value as
`output variables 76, 78, and 80, respectively.
`In operation, a user of system 10 may designate or select
`a particular model 42 from model library 40 and/or may also
`modify the objects 44 included within a particular model 42.
`Loading engine 30 automatically identifies the input vari(cid:173)
`ables and the output variables for each object 44 of the
`selected model 42. For example, loading engine 30 may
`access variable identifier database 50 to retrieve and identify
`
`6
`each input variable and output variable of the objects 44 of
`model 42. For example, in connection with FIG. 3, loading
`engine 30 accesses variable identifier database 50 and auto(cid:173)
`matically identifies the input variables and the output vari-
`5 ables for atmosphere object 72, table object 82, and function
`objects 84, 86, and 88.
`Loading engine 30 initially automatically selects one of
`the objects 82, 84, 86 and 88 of atmosphere object 72 to
`create object links between the input variables and output
`10 variables of the objects 82, 84, 86 and 88 and atmosphere
`object 72. For example, loading engine 30 may automati(cid:173)
`cally select table object 82; however, loading engine 30 may
`also automatically select other container objects within
`atmosphere object 72. After selecting table object 82, load-
`15 ing engine 30 automatically identifies input variable 90 of
`table object 82 and automatically determines whether input
`variable 90 is also an input variable of atmosphere object 72.
`In the embodiment illustrated in FIG. 3, input variable 74 is
`also used as input variable 90 of table object 82, therefore,
`20 loading engine 30 automatically creates an object link
`between input variable 74 and input variable 90. Loading
`engine 30 next automatically determines whether additional
`input variables exist for table object 82. In this example, no
`additional input variables exist for table object 82. Because
`25 no additional input variables exist for table object 82,
`loading engine 30 next automatically identifies the output
`variable for table object 82, in this example, output variable
`92.
`After identifying output variable 92 of table object 82,
`30 loading engine 30 automatically determines whether output
`variable 92 of table object 82 is also an output variable of
`atmosphere object 72. In this case, because the temperature
`value of output variable 92 is also output variable 76 of
`atmosphere object 72, loading engine 30 automatically
`35 creates an object link between output variable 76 of atmo(cid:173)
`sphere object 72 and output variable 92 of table object 82.
`Loading engine 30 next automatically determines whether
`additional output variables exist for table object 82. In this
`example, because no additional output variables exist for
`40 table object 82, loading engine 30 next automatically deter(cid:173)
`mines whether additional container objects are embedded
`within atmosphere object 72.
`Loading engine 30 next automatically selects another
`container object within atmosphere object 72, for example,
`45 function object 84. Loading engine 30 automatically iden(cid:173)
`tifies the input variable for function object 84 and automati(cid:173)
`cally determines whether the input variable for function
`object 84 is also the input variable for atmosphere object 72.
`In this example, because the altitude value input to atmo-
`50 sphere object 72 is also used as an input variable value for
`function object 84, loading engine 30 automatically creates
`an object link between input variable 74 of atmosphere
`object 72 and input variable 94 of function object 84.
`Loading engine 30 next automatically determines whether
`55 additional input variables exist for function object 84. In this
`example, because no additional input variables exist for
`function object 84, loading engine 30 next automatically
`identifies the output variables for function object 84. Load(cid:173)
`ing engine 30 automatically identifies output variable 96 of
`60 function object 84 and automatically determines whether
`output variable 96 is also an output variable of atmosphere
`object 72. In this example, because the pressure value
`provided by function object 84 is also an output variable
`value of atmosphere object 72, loading engine 30 automati-
`65 cally creates an object link between output variable 80 of
`atmosphere object 72 and output variable 96 of function
`object 84.
`
`

`

`Case 1:21-cv-00227-UNA Document 1-4 Filed 02/18/21 Page 11 of 17 PageID #: 104
`
`US 6,684,220 Bl
`
`5
`
`10
`
`7
`Loading engine 30 next automatically determines whether
`additional output variables exist for function object 84. In
`this example, because no additional output variables exist
`for function object 84, loading engine 30 next automatically
`determines whether additional container objects are embed-
`ded within atmosphere object 72 and, if additional container
`objects are embedded within atmosphere object 72, auto(cid:173)
`matically selects another one of the container objects
`embedded within atmosphere object 72, for example, func(cid:173)
`tion object 86.
`After selecting function object 86, loading engine 30
`automatically identifies an input variable for function object
`86, for example, input variable 98, and automatically deter(cid:173)
`mines whether input variable 98 is also an input variable of
`atmosphere object 72. In this example, as illustrated in FIG. 15
`3, because input variable 98 is not an input variable to
`atmosphere object 72, loading engine 30 next automatically
`queries other container objects within atmosphere object 72
`at the same object level as function object 86, often referred
`to as sibling objects, to determine whether input variable 98 20
`is an output variable of a sibling container object embedded
`within atmosphere object 72. If loading engine 30 does not
`locate a corresponding output variable of another container
`object within atmosphere object 72 to provide a value for
`input variable 98, loading engine 30 may automatically 25
`transmit an alarm or warning signal to the user of system 10
`indicating that input variable 98 does not have an associated
`object link, thereby indicating to the user that the model
`requires modification.
`In the embodiment illustrated in FIG. 3, loading engine 30 30
`automatically identifies output variable 92 of table object 82
`as corresponding to input variable 98 of function object 86.
`For example, because the input and output variables have
`been assigned unique identifiers and stored in variable
`identifier database 50, loading engine 30 automatically 35
`accesses variable identifier database 50 to determine corre(cid:173)
`sponding input and output vari

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