United States Patent5980096
Thalhammer-ReyeroNovember 9, 1999

Title

Computer-based system, methods and graphical interface for information storage, modeling and stimulation of complex systems

Abstract

The present invention describes an integrated computer-based graphical interface, methods and systems providing a shell environment for development and deployment for graphic information storage and retrieval, visual modeling and dynamic simulation of complex systems. In the current implementation the system comprises libraries of knowledge-based building-blocks that include sets of icons representing chemical processes, the pools of entities that participate in those processes, and the graphical description of those entities, encapsulating both information and mathematical models within the modular components, in the form of tables and in the form of component icons, and a plurality of methods are associated with each of the icons. The models are built by interconnecting each pool to one or several processes, and each process to one or several pools, resulting in complex networks of multidimensional pathways. A number of functions and graphical interfaces can be selected from the menus associated with each icon, to extract in various forms the information contained in the models build with those building blocks. Those functions include the creation of interactive networks of pathways, graphic selection of complex predefined queries based on the relative position of pools of entities in the pathways, the role that the pools play in the processes, and the structural components of the entities of those pools, and quantitative simulations. The system integrates inferential control with quantitative and semi-quantitative simulation methods, and provides a variety of alternatives to deal with complex dynamic systems and with incomplete and constantly evolving information and data.


Inventors:Thalhammer-Reyero; Cristina (Framingham, MA)
Assignee:Intertech Ventures, Ltd. (Wellesley, MA)
Appl. No.:373992
Filed:January 17, 1995

Current U.S. Class:707/100 703/13 
Field of Search:364/578,222.3,200,513 395/500,800,159,157,155,600,54,161,375 382/199

U.S. Patent Documents
5379366January 1995Noyes
5443791August 1995Cathcart et al.
Foreign Patent Documents
0 367 544May., 1990EP
0367544Sep., 1990EP
WO 91/06050May., 1991WO
Other References
Nilsson ("Object-Oriented chemical process modeling in Omola", IEEE, 1992 IEEE Symposium on Computer-Aided Control System Design, Mar. 17, 1992, pp. 165-172). .
Stevenson et al. ("An intelligent approach to conceptual design automation of chemical processes", IEEE, IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, vol. 2, May 19, 1993, pp. 650-653). .
Uckun ("Model-Based Reasoning in Biomedicine," CRC Press, Inc., 1992), Jan. 1992. .
Walther et al. ("Object-Oriented Data Management for Distributed Scientific Simulations," Society for Computer Simulation, Western Multi-Conference Proceedings, Jan. 1993). .
Basila et al. ("A Model-object based expert system for real-time intelligent control of chemical processes", IEEE Comput. Soc. Press, Proceedings of the Fourteenth Annual International Computer Software and Applications Conference, Oct. 31, 1990, pages. .
Cinar et al. ("Reliable process control with a supervisory expert system", IEEE, Proceedings of the 29th IEEE Conference on Decision and Control, vol. 3, Dec. 5, 1990, pp. 1543-1544). .
Bar et al. ("A Knowledge-based Flowsheet-oriented User Interface for a Dynamic Process Simulator", Computers & Chemical Engineering, vol. 14, No. 11, Jan. 11, 1990, pp. 1275-1280). .
Biegl ("Knowledge-based Generation of Process Simulation Models", IEEE, Proceedings of the 19th Annual Southeastern Symposium on System Theory, Jan. 1, 1987, pp. 139-143). .
Widman et al. ("Semi-Quantitative `Close-Enough` Systems Dynamics Models: An Alternative to Qualitative Simulation," Artificial Intelligence, Simulation and Modeling, 1989), Jan. 1989. .
Karp, P.D., et al., "EcoCyc User's Guide, Version 2.4," Nikos Drakos, Computer Based Learning Unit, University of Leeds, Oct. 17, 1995). .
Pahwa et al. (Automatic database navigation: towards a high level user interface, IEEE, Proceedings of the 4th International Conference on Entity-Relationship Approach, Jan. 1, 1985, pp. 36-43). .
Kravanja et al. ("PROSYN-an automated topology and parameter process synthesizer", Computers & Chemical Engineering, Jan. 1, 1993, 587-594). .
Karp, P.D., et al., "EcoCyc: Encyclopedia of E. Coli Genes and Metabolism," http://www.sri.com/ecocyc/ecocyc.htme Oct. 1995. .
Karp, P.D., et al., "Guide to the EcoCyc Schema," Artificial Intelligence Center, SRI International, 333 Ravenswood Ave., Menlo Park, CA 94025, pkarp@ai.sri.com (Sep. 1995). .
Coppella, S.J., "A Mathematical Description of Recombinant Yeast," Biotechnology and Bioengineering, vol. 35:356-374 (1990). .
Karp, P.D., et al., "Representations of Metabolic Knowledge: Pathways," Proceedings Second International Conference on Intelligent Systems for Molecular Biology, Menlo Park, CA, AAAI Press (1994). .
Karp, P.D., et al., "Automated Drawing of Metabolic Pathways," Proceedings of the Third International Conference on Bioinformatics and Genome Research, H. Lim, C. Cantor and R. Bobbins eds. (Sep. 1994). .
Karp, P.D., et al., "Representing, Analyzing, and Synthesizing Biochemical Pathways," IEEE Expert, pp. 1-27 (May 1994). .
Reddy, V.N., et al., "Qualitative Analysis of Biochemical Reaction Systems," Dept. of Chemical Engineering, Northwestern University, Evanston, IL, pp. 1-9 (No date given). .
Reddy, V.N., et al., "Petri Net Representations in Metabolic Pathways," Proceedings ISMB-93, AAAI Press, pp. 1-9 (1993). .
Kazic, T., "Reasoning About Biochemical Compounds and Processes," Second International Conference on Bioinformatics, Supercomputing and the Human Genome Conference, Proceedings, pp. 1-17 (1993). .
Ball, S.S., et al., "Senex: Symbolic Representation in Molecular Pathology," Department of Pathology, University of Mississippi, Jackson, MS, and Department of Neurology, Thomas Jefferson University, Philadelphia, PA (No date given). .
Ball, S.S., et al., "Senex: Knowledge Representation in Molecular Pathology," Department of Pathology, University of Mississippi, Alpers Neuropathology Laboratory, Thomas Jefferson University, Philadelphia, PA (No date given). .
Widman, L.E., "Semi-Quantitative "Close-Enough" Systems Dynamics Models: An alternative to Qualitative Simulation," Artificial Intelligence Simulation and Modeling, pp. 159-189 (1989). .
Walther, S., et al., "Object-Oriented Data Management for Distributed Scientific Simulations," Society for Computer Simulation, Western Multiconference, Proceedings (Jan. 1993). .
Uckun, S., "Model-Based Reasoning in Biomedicine," Critical Reviews in Biomedical Engineering 19(4):261-292 (1992). .
Kocabas, S., "Computational Models of Scientific Discovery," The Knowledge Engineering Review, 6(4):259-305 (No date given). .
Kiezulas, C.J., et al., "Entwicklung von Expertensystemen," XP000268407, Kunstliche Intelligenz, Elektronik, 40(22):122-123 128-134 (Oct. 1991)..~
Primary Examiner: Teska; Kevin J.
Assistant Examiner: Kik; Phallaka

Claims


What is claimed is:
1. A computer system comprising memory means, storage means, program means, and stored means for building virtual-models of complex-systems in said computer system by creating, configuring, and linking instances of prototypes of building-blocks representing different types of components characteristic of said complex-systems, said means comprising:
one or more libraries of prototypes of linkable building-blocks comprising:
one or more different prototypes of reservoir building-blocks, each instance of said prototype(s) to be used to represent a conceptual population of any number of units of entities or entity-complexes of a given type or in a given state or compartment wherein the units of each of said populations represented may be disperse among the units of other populations in said complex-systems, and
one or more different prototypes of process building-blocks representing one or more different types of processes characteristic of said complex-systems, each instance of said prototype(s) to be configured to represent a conceptual process in which any number of units from one or more of said populations participate, wherein each of said processes represented may comprise any number of equivalent and cumulative actual processes where subpopulations of said populations participate;
wherein each instance of process building-blocks or their components is to be linked to one or more complementary instances of reservoir building-blocks or their components, said links comprising: links from any number of instances of reservoir building-blocks to represent that input(s) to the represented process are output(s) of the represented populations, and links to any number of instances of reservoir building-blocks to represent that output(s) of said represented process are input(s) to the represented populations, wherein said instances of reservoir building-blocks may also have any number of output-input links from and to any number of instances of said process building-blocks;
wherein models resulting from said linking comprise multidimensional networks where the functional nodes are alternating complementary instances of reservoir building-blocks and process building-blocks, enabling any level of complexity from the possible one to many, many to one, and many to many links, and from the possible forward and feedback loops;
wherein any number of instances of said building-blocks representing processes or populations that provide input(s) to a reference process or population represented by a reference instance of said building-blocks or that may directly or indirectly influence said input(s) in one or more pathways are said to be upstream of said reference instance, and any number of instances of said building-blocks representing processes or populations that receive output(s) from said reference process or population or that may directly or indirectly be influenced by said outputs(s) in one or more pathways are said to be downstream of said reference instance; and
wherein said building-blocks may comprise any number of attributes or components which values are either being used to describe characteristics of the types of components of said complex-systems that said types of building-blocks represent, or characteristics of said types of building-blocks in said computer system, or values or data structures used by said program at runtime, or are to be used to more specifically describe or point to characteristics of individual components of said complex-systems that each instance of said types of building-blocks is to represent, or characteristics of each instance of said building-blocks in said computer system, said attributes having values of any type, including but not limited to: character string, integer or real numbers, logical values, fuzzy values, or instances of parameters, variables, lists, arrays, images, or any other data structure, or pointers to other instances of any of said building-blocks, external files, Uniform Resource Locators (URLs), database records, or any other structures, in said computer system or in a network accessible by said computer system; and
means for manipulating said building-blocks by domain experts and/or said program means, comprising:
means to make said prototypes of building-blocks available, including-visual means through menus or palettes and/or programmatic means;
means to instantiate said prototypes of building-blocks, including constructor means to create new instances from their definitions and/or means to clone semi-configured instances of said prototypes of building-blocks, interactively and/or programmatically; and
means to establish said directional output-input links between said complementary instances of said building-blocks, directly or through their components.

2. A computer system as claimed in claim 1, wherein:
said prototypes of process building-blocks comprise one or more input(s) and output(s) to individually represent the one or more input(s) or output(s) of the pool of entities or characteristic of the type of process represented by any of said prototypes;
the output-input links enabled by said stored means are defined as links between said outputs and instances of reservoir building-block(s) or their components, and links between instances of reservoir building-block(s) or their components and said inputs;
any one of said input(s) of an instance of process building-blocks is to be linked to a complementary instance of said reservoir building-block(s) representing the population that provides the represented input, and any one of said output(s) is to be linked to a complementary instance of said reservoir building-block(s) representing the population that receives the represented output; and
said linking results in any instance of said reservoir building-block(s) being linked to any number of instance(s) of said process building-block(s) through any number of input(s) and any number of output(s).

3. A computer system as claimed in claim 2, wherein:
instances of said prototype(s) of reservoir building-blocks are enabled to comprise one or more input(s) and/or output(s) to individually represent the one or more input(s) and/or output(s) of the population represented by each instance;
the output-input links enabled by said stored means are defined as links between outputs of instances of said building-blocks and inputs of instances of complementary building-blocks;
said links are to be established one-to-one between one of said input(s) and one complementary output of an instance of process building-blocks representing the output from the process that provides said input, and between any of said output(s) and one complementary input of an instance of process building-block representing the input to the population that receives said output; and
said stored means further comprise means providing functions associated with said building-blocks to be executed upon selection by a user or by said program means, including navigation means associated with said input(s) and output(s) of said building-blocks to successively display a visual representation of the instances of building-blocks linked to any selected input or output.

4. A computer system as claimed in claim 2, further comprising stored means providing functions associated with said building-blocks or their components to be executed for any number of instances upon selection by a user or by said program means, including selection functions.

5. A computer system as claimed in claim 2, wherein the one or more input(s) and output(s) of said prototypes of process building-blocks are of one or more different types further representing the one or more different types of roles said inputs play in each type of process represented by said prototype of process building-blocks, and the one or more different types of outputs from said process, respectively.

6. A computer system as claimed in claim 5, further comprising stored means providing functions associated with said building-blocks or their components to be executed for any number of instances upon selection by a user or by said program means, including query functions for performing queries comprising one or more criteria, including criteria based on said different types of inputs and/or criteria based on said downstream and/or upstream position of instances of reservoir and/or process building-blocks in relation to any of said instances of building-blocks selected as reference(s).

7. A computer system as claimed in claim 5, further comprising stored means to dynamically simulate the quantitative behavior over time of said virtual-models or their subsystems, comprising:
any number of different types of defined quantitative variables and/or parameters characteristic of the components of said complex-systems associated with said prototypes of reservoir building-blocks and with said prototypes of process building-blocks and/or their different types of inputs and outputs, and
stored means associated with each of said types of variables to compute during a simulation run the values of the instances of said variables associated with any of the instances of said building blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with any of the instances of said building blocks comprised in said model.

8. A computer system as claimed in claim 7, wherein:
said types of quantitative variables comprise one or more different types of state variables associated with each of said reservoir building-blocks representing current quantitative measure(s) of the units in the population each instance represents, including one or more of concentration, density, quantity, scaled-quantity, or any other measure; and
said stored means comprise simulation means associated with said variables to dynamically compute their value, wherein the values for any instance of said state variables associated with any instance of said reservoir building-blocks is computed by integrating the sum of the rate(s) of input from the output(s) of any number of instances of process building-blocks linked as inputs to said reservoir building-block less the sum of the rate(s) of output to the input(s) of any number of instances of process building-blocks linked as outputs of said reservoir building-block, plus or minus any other optional mathematically modeled inputs or outputs.

9. A computer system as claimed in claim 7, wherein:
said types of quantitative variables comprise one or more different types of dependent variables associated with each of said types of process building-blocks and/or their different types of inputs and outputs; and
the stored simulation means enable to dynamically compute the values for any instance of said variables associated with any instance of said process building-blocks and/or its input(s) by incorporating, directly or indirectly, the current value(s) of the corresponding variable(s) of any number of instances of reservoir building-blocks linked to any of the input(s) of said process building-block and/or the values of any number of parameters specific for said instance of process building-blocks and/or its specific input(s).

10. A computer system as claimed in claim 7, further comprising stored means enabling the fitting of the values of one or more of said different types of quantitative parameters, to be used to fit the values of any number of parameters of said types of any number of instances of building-blocks of a virtual-model in order to adapt the behavior of said virtual-model or its subsystems to the experimental observations of said complex systems.

11. A computer system as claimed in claim 4, wherein said stored means comprise navigation functions associated with said building-blocks enabling successive interactive display of visual representations of instance(s) of said building-blocks, including navigation from any selected instance of said building-blocks to any of the instances of complementary building blocks.

12. A computer system as claimed in claim 4, wherein said stored means provide pathways-display functions for dynamically generating at run time visual displays of multidimensional networks of interconnected pathways representing components of the virtual-models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building-blocks that are downstream and/or upstream of any number of selected instances of said building-blocks.

13. A computer system as claimed in claim 4, further comprising stored means to dynamically simulate the quantitative behavior over time of said virtual-models or their subsystems, further comprising:
any number of different types of defined quantitative variables and/or parameters characteristic of the components of said complex-systems associated with said prototypes of reservoir building-blocks and with said prototypes of process building-blocks and/or their inputs and outputs; and
stored means associated with each of said types of variables to compute during a simulation run the values of the instances of said variables associated with any of the instances of said building blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with any of the instances of said building blocks comprised in said model.

14. A computer system as claimed in claim 13, further comprising stored means for performing dynamic mixed-type simulations of said virtual-models with data of different degrees of precision for different parts of said complex-systems, wherein:
said building-blocks comprise two corresponding sets of said quantitative variables and parameters, one set to hold absolute values and the other set to hold scaled relative values; and
said stored simulation means further comprise scaling and unscaling functions defined for different types of said variables.

15. A computer system as claimed in claim 1 further enabling the utilization of said virtual-models, further comprising stored means providing functions associated with said building-blocks or their components to be executed for any number of instances of said building-blocks upon selection by a user or by said program means.

16. A computer system as claimed in claim 15, wherein said stored means provide query functions to perform queries wherein at least one of the search criteria is based on said downstream or upstream position of any number of instances of said building-blocks in relation to any of said instances of building-blocks selected as reference.

17. A computer system as claimed in claim 15, wherein said stored means provide pathways-display functions for dynamically generating at run time visual displays of multidimensional networks of interconnected pathways representing components of the virtual-models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building-blocks that are downstream and/or upstream of any number of selected instances of said building-blocks.

18. A computer system as claimed in claim 1, wherein:
said stored libraries further comprise prototypes of entity building-blocks representing the composition, structure, or other characteristics of different types of entities, entity-complexes, or entity-components characteristic of said complex-systems;
top-level instances of said prototypes of entity building-blocks are to be used to represent a description of a representative unit of any of the populations represented by said instances of reservoir building-blocks;
instances of said prototypes may be composite, comprising or enabled to comprise instances of other entity building-blocks or other components, without any limits as to how many layers of lower-level entity building-blocks are built into any composite entity building-block;
said reservoir building-blocks comprise an entity-pointer which may be set for any instance to point to the corresponding instance of said top-level entity building-blocks and
said stored means further comprise means providing functions associated with said building-blocks to be executed for any number of instances upon selection by a user or by said program means, including: show-entity functions defined for said reservoir building-blocks to display the instance of entity building-block referred to by a selected instance of reservoir building-blocks, if any, and/or navigation functions defined for composite entity building-blocks to successively display visual representation of the components of selected instances.

19. A computer system as claimed in claim 1, further comprising stored means to dynamically simulate the quantitative behavior over time of said virtual-models or their subsystems, comprising:
one or more different types of defined quantitative variables and/or parameters characteristic of the components of said complex-systems associated with said different prototypes of building-blocks and/or their components, and
simulation means associated with each of said types of variables to compute during a simulation run the values of the instances of said variables associated with any of the instances of said building blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with any of the instances of said building blocks comprised in said model.

20. A computer system as claimed in claim 19, wherein:
said types of quantitative variables comprise one or more different types of state variables associated with each of said reservoir building-blocks representing current quantitative measures of the units in the population each instance represents, including one or more of concentration, density, quantity, scaled-quantity, or any other measure; and
said stored means comprise simulation means associated with said variables to dynamically compute their value, wherein the values for any instance of said state variables associated with any instance of said reservoir building-blocks is computed by integrating the sum of the rate(s) of input from any number of instances of process building-blocks linked as inputs to said reservoir building-block less the sum of the rate(s) of output to any number of instances of process building-blocks linked as outputs of said reservoir building-block, plus or minus any other optional mathematically modeled inputs or outputs.

21. A computer system as claimed in claim 19, further comprising stored means enabling the fitting of the values of one or more of said different types of quantitative parameters, to be used to fit the values of any number of parameters of said types of any number of instances of building-blocks of a virtual-model in order to adapt the behavior of said virtual-model or its subsystems to the experimental observations of said complex systems.

22. A computer system as claimed in claim 19, wherein:
said types of quantitative variables comprise one or more different types of dependent variables associated with each of said process building-blocks or its components; and
the associated simulation means enable to dynamically compute the value for any instance of said variables associated with any instance of said process building-blocks by incorporating, directly or indirectly, the current value(s) of the corresponding variable(s) of any number of instances of reservoir building-blocks linked as input(s) of said process building-block and/or the values of any number of parameters specific for said instance of process building-block; or its components.

23. A computer system comprising memory means, storage means, and program means, for building virtual-models of complex-systems in said computer system by creating, configuring and linking instances of prototypes of building-blocks stored in said computer-system, said prototypes representing different types of components characteristic of said complex-systems, comprising:
one or more libraries of prototypes of building-blocks comprising:
one or more different prototypes of reactant building-blocks representing populations of entities that are inputs to different types of processes as well as the different types of roles that the different inputs play in said types of processes,
one or more different prototypes of product building-blocks representing populations of entities that are outputs of different types in different types of processes, and
one or more different prototypes of composite process building-blocks representing different types of processes characteristic of said complex-systems, each instance of said prototypes to be configured to represent a conceptual process in which one or more different populations of entities participate, wherein each of said represented processes may comprise any number of equivalent and cumulative actual processes wherein subpopulations of said populations participate, each prototype comprising or enabled to comprise:
any number of instances of one or more of said prototypes of reactant building-blocks representing the one or more inputs and the one or more different roles each of said inputs play in the represented type of process,
any number of instances of one or more of said prototypes of product building-blocks representing the one or more outputs and types of outputs from said type of process, and
wherein each of said inputs and outputs is to represent a population of any number of units of entities or entity complexes of a given type or in a given state or compartment;
wherein said building-blocks may comprise any number of attributes which values are either being used to describe the characteristics of the types of components of said complex-systems that said types of building-blocks represent, or characteristics of said types of building-blocks in said computer system, or values or data structures used by said program means at runtime, or are to be used to more specifically describe or point to characteristics of individual components of said complex-systems that each instance of said types of building-blocks is to represent, or characteristics of instances of said building-blocks in said computer system, said attributes having values of any type, including but not limited to: character string, integer or real numbers, logical values, fuzzy values, or instances of parameters, variables, lists, arrays, images, or any other data structure, or pointers to other instances of any of said building-blocks, external files, Uniform Resource Locators (URLs), database records, or any other objects, in said computer system or in a network accessible by said computer system;
wherein each of said instances of product building-block(s) is to be linked to complementary instances of reactant building-block(s) on any number of other instances of process building-blocks, to represent that the represented output from a process provides the represented inputs to other processes, wherein any number of instances of product building-block(s) may be linked to any of said instances of reactant building-blocks;
wherein virtual-models resulting from said linking comprise multidimensional networks where the functional nodes are alternating complementary instances of process building-blocks or their components enabling any level of complexity from the possible one to many, many to one, and many to many links, and from the possible forward and feedback loops;
wherein any number of instances of said building-blocks representing components that provide input(s) to a reference component represented by a reference instance of said building-blocks or that may directly or indirectly influence said input(s) in one or more pathways are said to be upstream of said reference instance, and any number of instances of said building-blocks representing components that receive output(s) from said reference component or that directly or indirectly are influenced by said output(s) in one or more pathways are said to be downstream of said reference instance; and
means for manipulating said building-blocks by domain experts and/or said program means, comprising:
means to make said prototypes of building-blocks available, including visual means through menus or palettes, and/or programmatic means;
means to instantiate said prototypes of building-blocks, including constructor means to create new instances from their definitions and/or means to clone semi-configured instances of said prototypes of building-blocks, interactively and/or programmatically; and
means to establish directional output-input links between said complementary instances of building-blocks, including links between instances of said product building-block(s) and instances of said reactant building-block(s).

24. A computer system as claimed in claim 23 enabling the utilization of said virtual-models, further comprising stored means providing functions associated with said building-blocks or their components to be executed for any number of instances of building-blocks upon selection by a user or by said program means, including selection functions.

25. A computer system as claimed in claim 24, wherein said stored means further provide list functions enabling the listing of instance(s) of process building-blocks that are downstream and/or upstream of a selected instance of said building-blocks in any number of said pathways.

26. A computer system as claimed in claim 24, wherein said stored means further provide query functions for performing queries comprising one or more search criteria, including: criteria based on said downstream or upstream position of instances of said building-blocks in relation to any of said instances of building-blocks selected as reference and/or criteria based on said different types of reactant building-blocks.

27. A computer system as claimed in claim 24, wherein
said stored means further provide pathways-display functions for dynamically generating at run time visual displays of multidimensional networks of interconnected pathways representing components of the virtual-models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building-blocks that are downstream and/or upstream of any number of selected instance(s) of said building-blocks.

28. A computer system as claimed in claim 24, further comprising stored means enabling to dynamically simulate the quantitative behavior over time of said virtual-models or their subsystems, comprising:
any number of different types of defined quantitative variables and/or parameters characteristic of the components of said complex-systems associated with said prototypes of process building-blocks and/or their different types of reactant and product building-blocks, and
stored means associated with each of said types of variables to compute during a simulation run the values of the instances of said variables associated with any of the instances of said building blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with any of the instances of said building blocks comprised in said model.

29. A computer system as claimed in claim 28, further comprising stored means enabling the fitting of the values of one or more of said different types of quantitative parameters, to be used to fit the values of any number of parameters of said types of any number of instances of building-blocks of a virtual-model in order to adapt the behavior of said virtual-model or its subsystems to the experimental observations of said complex systems.

30. A computer system as claimed in claim 23, wherein:
said libraries further comprise on or more different prototype(s) of reservoir building-block(s), each instance of said prototype(s) to be configured to represent a conceptual population of any number of units of entities or entity-complexes of a given type or in a given state or compartment, wherein the units of each of said represented populations may be disperse among the units of other populations in said complex-systems;
said instances of reservoir building-block(s) are enabled to comprise any number of input(s) and/or output(s) to individually represent the input(s) and/or output(s) of the population represented by any of said instances;
the output-input links enabled by said stored means are defined as one-to-one links between instances of said product building-blocks and inputs of instances of said reservoir building-block(s), and one-to-one links between outputs of instances of said reservoir building-block(s) and instances of said reactant building-blocks;
any one of said input(s) is to be linked to a complementary instance of said product building-block(s) representing the output from a process that provides said input to the represented population, and any one of said output(s) is to be linked to a complementary instance of said reactant building-block(s) representing the input to a process that uses said output from the represented population;
said linking results in any instance of said process building-blocks being linked, through any number of its reactants and/or products building-blocks, to any number of instances of said reservoir building-block(s), and on any instance of said reservoir building-blocks being linked, through any number of its inputs and/or outputs, to any number of instances of said process building-blocks;
virtual-models resulting from said linking comprise multidimensional networks where the functional nodes are alternating complementary instances of reservoir building-blocks and process building-blocks, enabling considerable complexity from the possible one to many, many to one, and many to many links, and from the possible forward and feedback loops; and
said stored means further comprise means providing functions associated with said building-blocks or their components to be executed for any number of instances of building-blocks upon selection by a user or by said program means, including selection functions.

31. A computer system as claimed in claim 30, wherein said stored means further provide pathways-display functions for dynamically generating at run time visual displays of multidimensional networks of interconnected pathways representing components of virtual-models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building-blocks that are downstream and/or upstream of any number of selected instance(s) of said building-blocks.

32. A computer system as claimed in claim 30, wherein said stored means further provide navigation functions associated with said building-blocks enabling successive interactive display of visual representations of instances of said building-blocks, including navigation from any selected instance of said building-blocks to any of the instances of complementary building blocks linked as input(s) or output(s).

33. A computer system as claimed in claim 30, wherein said stored means further provide simulation functions for dynamically simulating the quantitative behavior over time of said virtual-models or their subsystems, comprising:
any number of different types of defined quantitative variables and/or parameters characteristic of the components of said complex-systems associated with said prototypes of building-blocks and/or their inputs and outputs, and
stored means associated with each of said types of variables to dynamically compute during a simulation run the values of the instances of said variables associated with any of the instances of said building blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with the same instance and/or their inputs and outputs or with instances of said building-blocks linked to said instance as inputs in said model.

34. A computer system as claimed in claim 33, further comprising stored means enabling the fitting of the values of one or more of said different types of quantitative parameters, to be used to fit the values of any number of parameters of said types of any number of instances of building-blocks of a virtual-model in order to adapt the behavior of said virtual-model or its subsystems to the experimental observations of said complex systems.

35. A computer system as claimed in claim 33, wherein said types of quantitative variables comprise one or more different types of state variables associated with each of said reservoir building-blocks representing current quantitative measure(s) of the units in the population it represents, including one or more of concentration, density, quantity, scaled-quantity, or any other measure, with associated simulation means to dynamically integrate the sum of the rate(s) of input from any number of instances of product building-blocks linked to inputs to said reservoir building-block less the sum of the rate(s) of output to any number of instances of reactant building-blocks linked to outputs of said reservoir building-block, plus or minus any other optional mathematically modeled inputs or outputs.

36. A computer system as claimed in claim 33, wherein:
said defined types of quantitative variables comprise any number of different types of dependent variables associated with each of said types of process building-blocks and/or their different types of reactant and product building-blocks, to describe the characteristics of different types of processes and/or their different types of inputs and outputs; and
the associated simulation means enable to dynamically compute the values for any instance of said variables associated with any instance of said process building-blocks and/or its instance(s) of reactant building-blocks by directly or indirectly incorporating: the current value(s) of the corresponding variable(s) of any number of instances of reservoir building-blocks linked to any of said instance(s) of reactant building-blocks, and/or the values of any number of parameters specific for said instance of process building-blocks and/or its instance(s) of reactant building-blocks.

37. A computer system as claimed in claim 23, wherein:
said library further comprises prototypes of entity building-blocks representing the composition, structure, or other characteristics of different types of entities, entity-complexes, or entity-components characteristic of said complex-systems;
instances of said prototypes may be composite, comprising instances of other entity building-blocks or other components to be added, without any limits as to how many layers of lower-level entity building-blocks are built into any composite entity building-block;
top-level instances of said prototypes of entity building-blocks are to be used to represent a description of a representative unit of any of the entities or entity-complexes represented by said instances of reactant and product building-blocks:
said reactant and product building-blocks comprise an entity pointer which may be set for any instance to point to the corresponding instance of said top-level entity building-blocks;
said stored means further provide functions associated with said building-blocks or their components to be executed for any number of instances upon selection by a user or by said program means, including: show-entity functions defined for said reactant and product building-blocks to display the top-level instance of entity building-blocks referred to by a selected instance of said reactant and product building-blocks, and/or navigation functions defined for composite entity building-blocks to display visual representations of the components of selected instances.

38. A method for representing virtual-models of complex-systems in a computer system comprising memory means, storage means, and program means, comprising the steps of:
storing in said computer system program means defining prototypes of linkable building-blocks representing components characteristic of said complex-systems, said prototypes comprising:
one or more types of reservoir building-blocks to represent one or more types of conceptual populations of entities characteristic of said complex-systems, wherein the units of each of said populations represented may be disperse among the units of other populations in said complex-systems, and
one or more different types of process building-blocks to represent one or more different types of conceptual processes characteristic of said complex-system in which any number of units from one or more of said populations participate, wherein each of said processes represented may comprise any number of equivalent and cumulative actual processes wherein subpopulations of said populations participate,
wherein said stored means define any number of attributes and/or components for said building-blocks, which values are either used to describe the characteristics of the types of components of said complex-systems that said types of building-blocks represent, or characteristics of said types of building-blocks in said computer system, or values or data structures used by said program at runtime, or are to be used to more specifically describe or point to characteristics of individual components of said complex-systems that each instance of said types of building-blocks is to represent, or characteristics of instances of said building-blocks in said computer system, said attributes having values of any type, including but not limited to: character string, integer or real numbers, logical values, fuzzy values, instances of parameters, variables, lists, arrays, images, or any other data structure, or pointers to other instances of any of said building-blocks, external files, Uniform Resource Locators (URLs), database records, or any other objects, in said computer system or in a network accessible by said computer system;
storing program means to make said definitions of building-blocks available to the program and/or user, including visual means through menus and/or palettes, and/or programmatic means;
storing program means to instantiate said building blocks, including constructor means in conjunction with said definitions and/or cloning means in conjunction with semi-configured instances of said prototypes;
storing program means to establish directional output-input links between instances of said two complementary kinds of building blocks;
building the different components of a virtual model by instantiating the appropriate types of said building blocks and configuring said instances, wherein:
each instance of said reservoir building-blocks is configured to represent one population of any number of units of entities or entity-complexes of one given type or in a given state or compartment, and
each instance of said types of process building-blocks is configured to represent a conceptual process in which any number of units from one or more of said populations participate; and
establishing output-input links between individual instances of said process building-blocks and any number of corresponding instances of said reservoir building-blocks to represent that output(s) of a represented process are input(s) to any number of corresponding represented population(s), and links between individual instances of said reservoir building-blocks and any number of instances of said process building-blocks to represent that output(s) of a represented population are input(s) to any number of corresponding represented processes, wherein:
virtual-models resulting from said linking comprise multidimensional networks where the functional nodes are alternating complementary instances of reservoir building-blocks and process building-blocks, enabling any level of complexity from the possible one to many, many to one, or many to many links, and from the possible forward and feedback loops, and
any instance(s) of said building-blocks representing populations or processes that provide input(s) to a reference population or process represented by a reference instance of said building-blocks or that directly or indirectly influence said inputs in one or more pathways are said to be upstream of said reference instance, and any instance(s) of said building-blocks representing populations or processes that receive output(s) from said reference population or process or that directly or indirectly are influenced by said output(s) in one or more pathways are said to be downstream of said reference.

39. A method as claimed in claim 38, wherein:
said prototypes of process building-blocks comprise one or more input(s) and/or output(s) to individually represent the one or more input(s) or output(s) characteristic of the type of process represented by any of said prototypes;
the output-input links enabled by said means are defined as links between said outputs and instances of reservoir building-block(s) or their components, and links between instances of reservoir building-block(s) or their components and said inputs;
any of said input(s) of an instances of process building-blocks is to be linked to a complementary instance of said reservoir building-block(s) representing the population that provides the represented input, and
any of said output(s) is to be linked to a complementary instance of said reservoir building-block(s) representing the population that receives the represented output; and
said linking results in any instance of said reservoir building-block(s) being linked to any number of instance(s) of said process building-block(s) through any number of input(s) and any number of output(s), representing that the represented population provide input(s) to or receive output(s) from any number of the represented processes.

40. A method as claimed in claim 39 wherein the one or more input(s) and output(s) of said prototypes of process building-blocks are of
one or more different types further representing the one or more different types of roles said inputs play in each type of process represented by said prototype of process building-blocks, and the one or more different types of outputs from said process, respectively.

41. A method as claimed in claim 39, further representing the dynamic quantitative behavior over time of said virtual-models or their subsystems, further comprising the steps of:
storing means defining one or more different types of quantitative variable(s) and/or parameter(s) characteristic of the components of said complex-systems they represent, in association with the different prototypes of said reservoir building-blocks and of said prototypes of process building-blocks and/or their inputs and outputs; and
storing means associated with said different types of variable(s) to relate the dependencies of the values of instances of said types associated with any of the instances of said reservoir building-blocks and process building-blocks to the values of any number of other instances of variable(s) and/or parameter(s) associated with the same instance or with instances of said building-blocks linked to said instance as inputs.

42. A method as claimed in claim 40, further representing the dynamic quantitative behavior over time of said virtual-models or their subsystems, further comprising the steps of:
storing modeling means defining one or more different types of quantitative variable(s) and/or parameter(s) characteristic of the components of said complex-systems they represent, in association with the different prototypes of said reservoir building-blocks and of said prototypes of process building-blocks and/or their different types of inputs and outputs; and
storing means associated with said different types of variable(s) to relate the dependencies of the values of instances of said types associated with any of the instances of said reservoir building-blocks and process building-blocks to the values of any number of other instances of variable(s) and/or parameter(s) associated with the same instance or with instances of said building-blocks linked to said instance as inputs.

43. A method as claimed in claim 12, wherein:
said defined variables comprise any number of different types of dependent variables associated with each of said prototypes of process building-blocks and/or their different types of inputs and outputs, describing the characteristics of different types of processes and/or the different roles of their different types of inputs and their different types of outputs; and
the modeling means relate directly or indirectly, the values for any instance of said variables associated with any instance of said process building-blocks and/or its different types of input(s) to the current value(s) of the corresponding variable(s) of any number of instances of reservoir building-blocks linked to any of said input(s) and/or to the values of any number of parameters specific for said instance of process building-blocks and/or its specific input(s).

44. A method as claimed in claim 38, further comprising the steps of:
storing in said computer system means to define one or more prototypes of entity building-blocks representing the composition, structure, or other characteristics of different types of entities, entity-complexes, or entity-components characteristic of said complex-systems, wherein:
instances of said entity building-blocks may be used as top-level instances to represent a description of a representative unit of any of the populations represented by said instances of reservoir building-blocks; and
certain of said entity building-blocks may be composite and comprise or enabled to comprise instances of other entity building-blocks or other components, without any limits as to how many layers of lower-level entity building-blocks are built into any composite entity building-block; and
storing means to relate instances of said building-blocks to other instances of building-blocks, including defining for said prototypes of reservoir building-block(s) entity-pointers which may optionally be set for any instance to reference the corresponding instance of said top-level entity building-blocks.

45. A method as claimed in claim 38, further representing the dynamic quantitative behavior over time of said virtual-models or their subsystems, further comprising the steps of:
storing means defining one or more different types of quantitative variable(s) and/or parameter(s) characteristic of the components of said complex-systems they represent, in association with the different prototypes of said reservoir building-blocks and process building-blocks and
storing modeling means associated with said different types of variable(s) to relate the dependencies of the values of instances of said types associated with any of the instances of said building-blocks to the values of any number of other instances of variable(s) and/or parameter(s) associated with the same instance or with instances of said building-blocks linked to said instance as inputs.

46. A method as claimed in claim 45, wherein:
said defined types of quantitative variables comprise one or more different types of state variables associated with each of said prototypes of reservoir building-blocks, representing current quantitative measures of the units in the population it represents, including one or more of concentration, density, quantity, scaled-quantity, or any other measure; and
said modeling means relate the value of instance(s) of said different types of state variable(s) of an instance of reservoir building-block to the values of variable(s) of linked complementary instances of process building-blocks by integrating the sum of the current value(s) of the rate(s) of input from any number of said instances of process building-blocks linked as inputs to said instance of reservoir building-block less the sum of the rate(s) of output to any number of said instances of process building-blocks linked as outputs of said instance, plus or minus any other optional mathematically modeled inputs or outputs of said instance.

47. A method as claimed in claim 45, wherein:
said defined types of quantitative variables comprise one or more different types of dependent variables associated with each of said prototypes of process building-blocks, describing the characteristics of different types of processes; and
the modeling means relate, directly or indirectly the values for any instance of said variables associated with any instance of said process building-blocks to the current value(s) of the corresponding variable(s) of any number of instance(s) of reservoir building-blocks linked to any of said input(s) and/or to the value(s) of any number of parameters specific for said instance of process building-blocks or its components.

48. A method for representing virtual-models of complex-systems in a computer system comprising memory means, storage means, and program means, comprising the steps of:
storing in said computer system program means to define prototypes of building-blocks representing the components characteristic of said complex-systems, said prototypes comprising:
one or more different type(s) of reactant building-blocks representing populations of entities that are input(s) to different types of processes as well as the different types of roles that the different inputs play in said types of processes;
one or more different type(s) of product building-blocks representing populations of entities that are output(s) of different types in different types of processes; and
one or more different types of composite prototypes of process building-blocks representing different types of processes characteristic of said complex-systems, each instance of said prototypes to be configured to represent a conceptual process in which one or more populations of entities participate, wherein each of said represented processes may comprise any number of equivalent and cumulative actual processes wherein subpopulations of said populations participate, each prototype comprising or enabled to comprise:
any number of instances of one or more of said prototype(s) of reactant building-blocks representing the one or more inputs and the one or more different roles each of said inputs play in the represented type of process,
any number of instances of one or more of said prototype(s) of product building-blocks representing the one or more output(s) and types of outputs from said type of process, and
wherein each of said inputs and outputs implies a population of any number of units of entities or entity-complexes of a given type or in a given state or compartment;
wherein said program means further define any number of attributes and/or components for said building-blocks, which values are either used to describe the characteristics of the types of components of said complex-systems that said types of building-blocks represent, -or characteristics of said types of building-blocks in said computer system, or values or data structures used by said program at runtime, or are to be used to more specifically describe or point to characteristics of individual components of said complex-systems that each instance of said types of building-blocks is to represent, or characteristics of instances of said building-blocks in said computer system, said attributes having values of any type, including but not limited to: character string, integer or real numbers, logical values, fuzzy values, instances of parameters, variables, lists, arrays, images, or any other data structure, or pointers to other instances of any of said building-blocks, external files, Uniform Resource Locators (URLs), database records, or any other objects, in said computer system or in a network accessible by said computer system;
storing program means to make said definitions of building-blocks available to the program and/or user, including visual means through menus and/or palettes, and/or programmatic means;
storing program means to instantiate said building blocks, including constructor means in conjunction with said definitions and/or cloning means in conjunction with semi-configured instances of said prototypes, interactively and/or programmatically;
storing program means to establish directional output-input links between instances of said product building-block(s) and instances of said reactant building-block(s);
building the different components of a virtual model by instantiating the appropriate types of said building blocks and configuring said instances, wherein:
each instance of said types of process building-blocks is configured to represent a conceptual process in which any number of populations of entities participate, and
each instance of said reactant or product building-blocks are configured to represent one of the one or more input(s) or output(s), respectively of said process representing populations of any number of entities or entity-complexes of one given type or in a given state or compartment;
establishing output-input links between any instance of product building-block and any number of complementary instances of reactant building-blocks to represent that the output from a process represented by said product building-block provides the input(s) to other processes represented by said linked instances of reactant building-blocks, wherein:
any number of instances of product building-block(s) of different processes building-block(s) may be linked to each of said instances of reactant building-blocks, wherein:
virtual-models resulting from said linking comprise multidimensional networks where the functional nodes are instances of process building-blocks or their reactant and product building-blocks, enabling any level of complexity from the possible one to many, many to one, and many to many links, and from the possible forward and feedback loops, and
any instance(s) of said building-blocks representing components that provide input(s) to a reference component represented by a reference instance of said building-blocks or that may directly or indirectly influence said inputs in one or more pathways are said to be upstream of said reference instance, and any instance(s) of said building-blocks representing components that receive output(s) from said reference component or that directly or indirectly are influenced by said output(s) in one or more pathways are said to be downstream of said reference instance.

49. A method as claimed in claim 48, further comprising the steps of:
storing means to define one or more prototypes of entity building-blocks representing the composition, structure, or other characteristics of different types of entities, entity-complexes, or entity-components characteristic of said complex-systems, wherein:
instances of said entity building-blocks may be used as top-level instances to represent a description of a representative unit of any of the entity populations represented by said instances of reactant and product building-blocks; and
certain of said prototypes of entity building-blocks may be composite and comprise or enabled to comprise instances of other entity building-blocks or other components, without any limits as to how many layers of lower-level entity building-blocks are built into any composite entity building-block; and
storing means to relate instances of said building-block(s) to other instances of building-blocks, including defining for said prototypes of reactant and product building-blocks entity-pointers which may optionally be set for any instance to reference the corresponding instance of said top-level entity building-blocks.

50. A method as claimed in claim 48, further representing the dynamic quantitative behavior over time of said virtual-models or their subsystems, further comprising the steps of:
storing means defining one or more different types of quantitative variable(s) or parameter(s) characteristic of the components of said complex-systems they represent, in association with the different prototypes of said reservoir, process, reactant, and product building-blocks; and
storing means associated with said different types of variables to relate the dependencies of the values of instances of said types associated with any of the instances of said building-blocks to any number of other instances of variable(s) and/or parameter(s) associated with the same instance or with instances of said building-blocks linked to said instance as inputs.

51. A method as claimed in claim 48, wherein:
said stored prototypes further comprise one or more different types of reservoir building-blocks to represent said conceptual populations of entities, wherein the units of each of said represented populations may be disperse among the units of other populations in said complex-systems;
said prototypes enable each instance of said reservoir building-blocks to comprise any number of input(s) and/or output(s) to represent the input(s) and/or output(s) of the represented population;
said means to establish output-input links are defined as links between instances of said product building-blocks and inputs of instances of said reservoir building-block(s), and links between outputs of instances of said reservoir building-block(s) and instances of said reactant building-blocks;
building the components of said virtual model further comprise instantiating the appropriate type(s) of said reservoir building blocks and configuring each instance to represent one population of any number of units of entities or entity-complexes of one given type or in a given state or compartment;
any one of said input(s) is to be linked to a complementary instance of said product building-block(s) representing the output from a process that provides the input represented by said input, and any one of said output(s) is to be linked to a complementary instance of said reactant building-block(s) representing the input to a process that uses the output represented by said output;
said linking results in an instance of said process building-blocks being linked to any number of instances of said reservoir building-block(s) through any number of its reactants(s) or products(s), and any instance of said reservoir building-blocks being linked to any number of instances of said process building-block(s) through any number of its input(s) or output(s)
models resulting from said linking comprise multidimensional networks where the functional nodes are alternating complementary instances of reservoir building-blocks and process building-blocks, enabling considerable complexity from the possible one to many, many to one, or many to many links, and from the possible forward and feedback loops.

52. A method as claimed in claim 51, further representing the dynamic quantitative behavior over time of said virtual-models or their subsystems, further comprising the steps of:
storing means defining one or more different types of quantitative variable(s) and/or parameter(s) characteristic of the components of said complex-systems they represent, in association with the different prototypes of said reservoir, process, reactant, and product building-blocks; and
storing means associated with said different types of variable(s) to relate the dependencies of the values of instances of said types associated with any of the instances of said building-blocks to the values of any number of other distances of variable(s) and/or parameter(s) associated with the same instance or with instances of said building-blocks linked to said instance as inputs.

53. A method for utilizing virtual-models of complex-systems in a computer system comprising memory means, storage means, program means, and stored persistent data sets comprising instances of building-blocks representing the components of said complex-system(s), comprising the steps of:
loading into said memory means one or more of said stored data sets comprising:
any number of instances of one or more different types of reservoir building-blocks, each instance configured to represent a conceptual population of any number of units of entities or entity-complexes of one given type or in a given state or compartment wherein the units of each of said populations represented may be disperse among the units of other populations in said complex-systems, and
any number of instances of one or more different types of process building-blocks, each instance configured to represent a conceptual process of one or more different types characteristic of said complex-systems in which any number of units from one or more of said populations participate, wherein each of said processes represented may comprise any number of equivalent and cumulative actual processes wherein subpopulations of said populations participate;
wherein individual instances of said building-blocks have directional output-input links to instances of complementary building-blocks, including links from any number of instances of said reservoir building-blocks to an instance of said process building-blocks representing that output(s) of the represented population(s), provide input(s) to the represented process, and links from said instance to any number of instances of reservoir building-block(s), representing that output(s) of said process provide input(s) to the represented population(s), wherein said instance(s) of reservoir building-blocks also have any number of output-input links from and to any number of instances of said process building-blocks; and
wherein said building-blocks comprise any number of attributes which values are either used to describe the characteristics of the types of components of said complex-systems that said types of building-blocks represent, or characteristics of said types or individual instances of building-blocks in said computer system, or values or data structures used by said program at runtime, or more specifically to describe or point to characteristics of individual components of said complex-systems that each instance of said types of building-blocks represents, said attributes having values of any type, including but not limited to: character string, integer or real numbers, logical values, fuzzy values, instances of parameters, variables, lists, arrays, images, or any other data structure, or pointers to other instances of any of said building-blocks, external files, Uniform Resource Locators (URLs), database records, or any other structures, in said computer system or in a network accessible by said computer system;
integrating by said program means said individually linked instances of building-blocks into a multidimensional network of pathways wherein:
the modes of said network are alternative said instances of reservoir and process building-blocks, each of said nodes being comprised in one or more of said pathways,
different pathways merge at any of said nodes with multiple input links, and where different pathways branch at any of said nodes with multiple output links,
any instance(s) of said building-blocks representing processes or populations that provide input(s) to a reference process or population represented by a reference instance of said building-blocks or that directly or indirectly may influence said input(s) are said to be upstream of said reference instance and any instance(s) of said building-blocks representing processes or populations that receive output(s) from said reference process or population or that directly or indirectly may be influenced by said output(s) are said to be downstream of said reference instance; and
executing by said program means one or more stored functions associated with to said types of building-blocks for any instances of said types of building-blocks selected by a user or by said program.

54. A method as claimed in claim 53, wherein:
each instance of said reservoir or process building-blocks comprises one or more input(s) and/or output(s) representing the one or more input(s) or output(s) of the population or the process, respectively, represented by said instance; and
the complementary instances of said reservoir and process building-blocks are linked through one-to-one output-input links between one of said output(s) of an instance of said building-blocks and one of said input(s) of an instances of a complementary building-block, representing that the inputs represented by said inputs are the outputs represented by said outputs.

55. A method as claimed in claim 54, further enabling to dynamically simulate the quantitative behavior of said virtual-models or their subsystems, wherein said stored instances of reservoir building-blocks and of said process building-blocks and/or their inputs and outputs further comprise one or more quantitative variables and/or parameters of one or more different types characteristic of the components of said complex-systems they represent, further comprising the steps of:
storing in said computer system means providing simulation functions associated with said different types of variables to compute their values over time, and
executing said simulation means to run simulations by dynamically computing during a run the values of the instances of said variables associated with any of the instances of said reservoir building-blocks and of said process building-blocks and/or their inputs and outputs comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with the same instance and/or their inputs and outputs or with instances of said building-blocks linked to said instance as inputs in said model.

56. A method as claimed in claim 55, wherein:
said quantitative variables associated with said instances of reservoir building-blocks comprise
one or more different types of state variables representing current quantitative measures of the units in the population it represents, including one or more of concentration, density, quantity, scaled-quantity, or any other measure; and
said associated simulation means dynamically compute the values for any instance of said state variables associated with any instance of said reservoir building-blocks by integrating the sum of the rate(s) of input from any number of process building-blocks linked as inputs to said reservoir building-block less the sum of the rate(s) of out to any number of process building-blocks linked as outputs of said reservoir building-block, plus or minus any other optional mathematically modeled inputs or outputs.

57. A method as claimed in claim 55 further comprising the steps of:
storing in said computer system means enabling the fitting of the values of one or more of said different types of quantitative parameters, and
executing said stored means to fit the values of any number of parameters of said types of any number of instances of building-blocks of a virtual-model in order to adapt the behavior of said virtual-model or its subsystems to the experimental observations of said complex systems.

58. A method as claimed in claim 55, wherein:
said quantitative variables of said instances of process building-blocks and/or their inputs and outputs comprise any number of instances of one or more different types of dependent variables representing rates of change of the represented processes and/or their different types of inputs and outputs, and
said associated simulation means dynamically compute the values for any instance of said variables associated with any instance of said process building-blocks and/or its input(s) by directly or indirectly incorporating: the current value(s) of the corresponding variable(s) of one or more instances of reservoir building-blocks linked to input(s) of said instances of process building-blocks, and the values of any number of parameters specific for said instances of process building-blocks and/or their inputs and outputs.

59. A method as claimed in claim 54 wherein:
the one or more input(s) and output(s) of said prototypes of process building-blocks are of one or more different types further representing he one or more different types of roles said inputs play in each type of process represented by said prototype of process building-blocks, and
the one or more different types of outputs from said process, respectively;
said stored means further provide functions associated with said different type(s) of building-blocks or their components to be executed for any number of instances of said building blocks upon selection by a user or by said program means.

60. A method as claimed in claim 59, wherein said stored means provide query-functions further enabling the step of performing queries comprising one or more search criteria based on said different types of inputs and/or based on said downstream or upstream position of said building-blocks in relation to any of said instances selected as reference.

61. A method as claimed in claim 59, wherein said stored means provide pathways-display functions further enabling the steps of
dynamically generating at run time visual displays of multidimensional networks of interconnected pathways representing components of said virtual models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building blocks that are downstream and/or upstream of any number of selected instance(s) of said building blocks.

62. A method as claimed in claim 59, further enabling to dynamically simulate the quantitative behavior of said virtual-models or their subsystems, wherein said stored instances of reservoir building-blocks and of process building-blocks and/or their different types of inputs and outputs further comprise one or more quantitative variables and/or parameters of one or more different types characteristic of the components of said complex-systems they represent, further comprising the steps of:
storing in said computer system means providing simulation functions associated with said different types of variables to compute their values over time, and
executing said simulation means run simulations by dynamically computing during a run the values of the instances of said variables associated with any of the instances of said reservoir building-blocks and of said process building-blocks and/or their inputs and outputs comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with the same instance and/or their inputs and outputs or with instances of said building-blocks linked to said instance as inputs in said model.

63. A method as claimed in claim 62 wherein said stored instances of building-blocks comprise two corresponding sets of said quantitative variables and parameters, one set to hold absolute values and the other set to hold scaled relative values, and said simulation means further comprise scaling and unsealing functions defined for the different types of said variables, further comprising the step of performing dynamic mixed-type simulations of said virtual-models with data of different degrees of precision for different parts of said complex-systems.

64. A method as claimed in claim 54, wherein:
each instance of said reservoir building-blocks comprises one or more input(s) and/or output(s) to individually represent the one or more input(s) and/or output(s) of the population represented by said instance;
the complementary instances of said reservoir and process building-blocks are linked through one-to-one output-input links between one of said output(s) of an instance of said building-blocks and one of said input(s) of an instance of a complementary building-block, representing that the inputs represented by said inputs are the outputs represented by said outputs;
said stored means further provide navigation functions associated with said input(s) and output(s) of said building-blocks enabling the further step of successively displaying visual representations of the instance(s) of complementary building-blocks linked to any selected input or output.

65. A method as claimed in claim 53, further comprising the steps of:
storing in said computer system means providing functions associated with said different type(s) of building-blocks or their components, including selection functions; and
executing said means for any number of instances of said building-blocks upon selection by a user or by said program means.

66. A method as claimed in claim 65, wherein said stored means provide navigation functions further enabling the interactive step of successively displaying visual representations of instance(s) of said building-blocks from any selected instance of said building-blocks to any of the instances of complementary building blocks linked as input(s) or output(s).

67. A method as claimed in claim 65, wherein said stored means provide list functions further enabling the step of listing instances of reservoir and/or process building-blocks that are downstream and/or upstream of any selected instance of building-blocks.

68. A method as claimed in claim 65, wherein said stored means provide query functions further enabling the step of performing queries comprising at least one search criteria based on said downstream or upstream position of reservoir or process building-blocks from any of said instances of building-blocks selected as reference.

69. A method as claimed in claim 65, wherein said stored means provide pathways-display functions further enabling the step of
dynamically generating at run time visual displays of multidimensional networks of interconnected pathways which visual nodes representing components of said virtual models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building blocks that are downstream and/or upstream of any number of selected instance(s) of said building-blocks.

70. A method as claimed in claim 65, further enabling to dynamically simulate the quantitative behavior of said virtual-models or their subsystems, wherein said stored instances of reservoir and process building-blocks further comprise one or more quantitative variables and/or parameters of one or more different types characteristic of the components of said complex-systems they represent, further comprising the steps of;
storing in said computer system means providing simulation functions associated with said different types of variables to compute their values over time, and
executing said simulation means to run simulations by dynamically computing during a run the values of the instances of said variables associated with any of the instances of said building-blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with the same instance or with instances of said building-blocks linked to said instance as inputs in said model.

71. A method as claimed in claim 70 wherein said stored instances of building-blocks comprise two corresponding sets of said quantitative variables and parameters, one set to hold absolute values and the other set to hold scaled relative values, and said simulation means further comprise scaling and unscaling functions defined for the different types of said variables, further comprising the step of performing dynamic mixed-type simulations of said virtual-models with data of different degrees of precision for different parts of said complex-systems.

72. A method for utilizing virtual-models of complex-systems in a computer system comprising processor means, memory means, storage means, program means, and stored persistent data sets comprising instances of building-blocks representing the components of said complex-system(s), comprising the steps of:
loading into said memory means one or more of said stored datasets comprising any number of instances of one or more different types of composite process building-blocks, each representing a conceptual process in which one or more populations of entities participate, the different type(s) of process building-blocks representing one or more different types of processes characteristic of said complex-system, wherein:
each of said represented processes may comprise any number of equivalent and cumulative actual processes where subpopulations of said populations participate;
each instance comprises as components: any number of instances of one or more different type(s)of reactant building-blocks representing one or more different populations of entities that are input(s) to the represented process as well as different types of roles that said inputs play in said process, and any number of instances of one or more different type(s)of product building-blocks representing one or more different populations of entities that are output(s) from the represented process, wherein each of said populations comprise any number of units of entities or entity-complexes of a given type or in a given state or compartment;
individual instances of said product building-blocks have output-input links to one or more instance(s) of said reactant building-blocks of different instances of process building-blocks, representing that an output of a represented process provides input(s) to other processes, wherein an instance of said reactant building-blocks may have output-input links from any number of instance(s) of said product building-blocks; and
said building-blocks comprise any number of attributes which values are either used to describe the characteristics of the types of components of said complex-systems that said types of building-blocks represent, or characteristics of said types or individual instances of building-blocks in said computer system, or values or data structures used by said program at runtime, or more specifically to describe or point to characteristics of individual components of said complex-systems that each instance of said types of building-blocks represents, said attributes having values of any type, including but not limited to: character string, integer or real numbers, logical values, fuzzy values, instances of parameters, variables, lists, arrays, images, or any other data structure, or pointers to other instances of any of said building-blocks, external files, Uniform Resource Locators (URLs), database records, or any other structures, in said computer system or in a network accessible by said computer system;
synthesizing said virtual-model(s) by said program means by integrating said individually linked instances of building-blocks into a multidimensional network of pathways wherein:
the nodes of said network are said instances of process building-blocks or their reactant and product building-blocks, each of said nodes being comprised in one or more of said pathways;
different pathways merge at any of said nodes with multiple linked reactants and different pathways branch at any of said nodes with multiple linked products;
said networks may be of many level of complexity due to the possible one to many, many to one, and many to many links, and from the possible forward and feedback loops; and
any instance(s) of said building-blocks representing components that provide input(s) to a reference component represented by a reference instance of said building-blocks or that directly or indirectly may influence said input(s) in one or more pathways are said to be upstream of said reference instance, and any instance(s) of said building-blocks that representing components that receive output(s) from said reference component or that directly or indirectly may be influenced by said output(s) in one or more pathways are said to be downstream of said reference instance; and
executing by said program means one or more stored means providing functions associated with said types of building-blocks for any instances of said types of building-blocks selected by a user or by said program.

73. A method as claimed in claim 72, wherein said stored means further provide pathways-display functions enabling the further step of:
dynamically generating at run time visual displays of multidimensional networks of interconnected pathways representing components of the virtual-models of said complex-systems or their subsystems, wherein the nodes of said networks are visually ordered and connected representations of series of said linked instances of building blocks that are downstream and/or upstream of any number of selected instance(s) of building blocks.

74. A method as claimed in claim 72, wherein:
said persistent data sets further comprise instances of one or more different types of reservoir building-blocks representing conceptual populations of any number of units of entities or entity-complexes of a given type or in a given state or compartment which may provide inputs to or receive outputs from any number of corresponding processes, wherein the units of each of said represented populations may be disperse among the units of other populations in said complex-systems,
each of said instances comprise any number of input(s) and/or output(s) individually representing the input(s) and/or output(s) of the population represented by said instance;
said output-input links are between any one instance of said product building-blocks and the input of a complementary instance of reservoir building-block(s) that represents the input to the population that receives the represented output, and between any one output of an instance of reservoir building-block(s) and the complementary instance of reactant building-blocks that represents the input to the process that receives the represented output;
any instance of said process building-blocks is linked, through any number of its reactants and/or products building-blocks, to any number of instances of said reservoir building-block(s), and in any instance of said reservoir building-blocks is linked, through any number of its inputs and/or outputs, to any number of instances of said process building-blocks;
the functional nodes of the multidimensional networks of said virtual-models are alternating complementary instances of reservoir building-blocks and process building-blocks; and
said stored means further provide navigation functions associated with said building-blocks further enabling the step of successively displaying visual representations of any of the instances of complementary building blocks linked to input(s) or output(s) of any selected instance of said building-blocks.

75. A method as claimed in claim 74, wherein said stored instances of reservoir, reactant, product, and process building-blocks further comprise any number of instances of quantitative variables and/or parameters of one or more different types characteristic of the components of said complex-systems they represent, further comprising the steps of:
storing in said computer system means to dynamically simulate the quantitative behavior of said virtual-models or their subsystems over time, comprising simulation functions associated with said different types of variables to compute their values over time, and
executing said simulation means to dynamically compute during a simulation run the values of the instances of said different types of variables associated with any of the instances of said building-blocks comprised in the simulation model selected for said run, said values being dependent on the values of any number of other instances of variables and/or parameters associated with the same instance or with instances of said building-blocks linked to said instance as inputs in said model.

76. A method as claimed in claim 75 wherein said stored instances of building-blocks comprise two corresponding sets of said quantitative variables and parameters, one set to hold absolute values and the other set to hold scaled relative values, and said simulation means further comprise scaling and unscaling functions defined for the different types of said variables, further comprising the step of performing dynamic mixed-type simulations of said virtual-models with data of different degrees of precision for different parts of said complex-systems.

Description

NOTES

The body of the present application has sections that may contain some discussion of prior art teachings, intermingled with discussion of innovative and specific discussion of the best mode to use that prior art in this invention as presently contemplated. To describe the preferred embodiments, it is necessary to include in the discussion the capabilities offered by the shell used as development and deployment framework for this invention (hereafter referred to as "the Shell"). The applicant specifically notes that statements made in any of those sections do not necessarily delimit the various inventions claimed in the present application, but rather are included to facilitate the process to explaining how the workings of an existing set of tools is used to illustrate the preferred embodiments of the new tools and applications claimed in the claims section. The currently preferred embodiment of this invention, as described in the present application, is based on the definitions of a particular Shell: Gensym Corp.'s G2 Expert System. There are several other attributes that relate to the Shell's built-in performance and formatting capabilities, which are not shown in those examples. Some information included within the body of this application was extracted from various sources describing the characteristics of G2, including user manuals, and some of this material is subject to copyright protection.

III. BACKGROUND OF THE INVENTION

A. Field of the Invention

The present invention relates to computer-based interface, methods and systems for graphic information storage and retrieval, visual modeling and dynamic simulation of complex systems, that includes in general sets of processes and their participants, and more specifically chemical processes, and which result in complex networks of multidimensional pathways, encapsulating both information and mathematical models within modular components, and integrates inferential control with quantitative and semiquantitative simulation methods, providing a variety of alternatives to deal with complex dynamic systems.

B. Related Applications

This application is related to the patent entitled "Computer-Based System, Methods and Graphical Interface for Information Storage, Modeling and Simulation of Complex Systems Organized in Discrete Compartments in Time and Space" invented by the same inventor and filed with this application in the United States Patent and Trademark Office. This application is incorporated here by this reference.

C. Description of the Prior Art

1. Computer-Aided Physiological and Molecular Modeling and Artificial Intelligence in Molecular Biology

a) Most computer-aided physiological and molecular modeling approaches have resulted in computer models of physiological function are numerical mathematical models that relate the physiological variables using empirically determined parameters. Those models, which can become quite complex, aim at modeling the overall system.

b) Both molecular biology and medicine have been fields of previous activity in the application of artificial intelligence (AI). In molecular biology, although there were some early systems such as Molgen and Dendral, the activity has intensified recently as a consequence of the explosion in new technologies and the derived data, mostly related with the Human Genome project and the handling of large amounts of sequence data generated, relating to both DNA and proteins. There has also been an increased interest in computer methodologies in 3D structural models of molecular interactions. As an example, the topics covered in symposia such as the recent Second International Conference on Intelligent Systems for Molecular Biology, 1994, Stanford University, CA. (see the reference to its Proceedings for a current state of the art, which here included by reference) cover areas as wide as machine learning, automatic generation of representations, inductive and deductive reasoning, case-based reasoning, computational linguistics applied to both text and DNA or protein sequences, constraint propagation, bayesian inference, neural networks, qualitative modeling, expert systems, object-oriented databases, simulation, knowledge acquisition technologies, and knowledge base maintenance. In those and many other published papers, there are as many objectives and as many approaches as there are teams. The projects, however, are in most cases of academic interest, and in few cases it has been attempted to develop finish products for commercial distribution. Here, only two projects will be mentioned that have some common objectives with the system that is the object of this invention. Discussions over other previous approaches are also included in those references.

c) The Molgen group at the Stanford University's Knowledge Systems Laboratory has been studying for several years scientific theory formation in the domain of molecular biology, as reported in by Karp, P. D. and Friedland, P. (included here by reference). This project relates to the system object of this invention in that both "are concerned with biochemical systems containing populations of interacting molecules . . . in which the form of knowledge available . . . varies widely in precision from quantitative to qualitative", as those authors write. However, the domain of Molgen is a small subset of the domain of the system object of this invention. Within the Molgen group, the Ph.D. dissertation of P. D. Karp (included here by reference), focused on applying that research to the design of a computer-assisted reasoning and hypothesis formation system. In the process, the author "developed a qualitative biochemistry for representing theories of molecular biology", as he summarizes in an abstract with the same name the AI Magazine, Winter 1990, pp 9-10. In particular, he developed three representation models to deal with the biochemical pathways related to the tryptophan operon in bacteria, called declarative device models, each having different capabilities and using different qualitative reasoning approaches. Only chapter 3, dealing with those models, have relevance in the context of this invention. The first model uses IntelliCorp's KEE (a commercial product) frames to describe biological objects and KEE rules to describe chemical reactions between the objects, which he recognizes to have serious limitations because is not able to represent much of the knowledge available to biologists. The objective of the second model, which is an extension of the fixed state-variable network of deKleer and Brown, is to predict reaction rates in a given reaction network, incorporating a combination of quantitative and qualitative reasoning about state-variables and their interdependencies. The drawbacks are that this model is not able to incorporate a description of the biological objects that participate in the reactions, and in addition it does not have a temporal reasoning capabilities, representing just an static description of the state variables and their relationships. The third model, called GENSIM and used for both prediction and hypothesis formation, is an extension of model 1, and is composed of three knowledge bases or taxonomical hierarchies of classes of a) biological objects that participate in the trp-operon gene-regulation system, b) descriptions of the biological reactions that can occur between those objects, and c) experiments with instances of those classes of objects. The GENSIM program predicts experimental outcomes by determining which reactions occur between the objects in one experiment, that create new objects that cause new reactions. GENSIM is also further used in conjunction with the HYPGENE hypothesis-formation program that will not be further discussed here. Characteristics of the GENSIM program that may be relevant, although different, for the system of this invention are:

chemical objects are homogeneous populations of molecules, objects can be decomposed into their component parts, and identical objects synthesized during a simulation are merged;

chemical processes are frames arranged in an inheritance class hierarchy, which represent reactions between those populations as probabilistic events with two subpopulations, one that participate in the reaction and one that does not;

restrictions are specified in the form of preconditions for chemical reactions to happen.

those Forbus-style processes can create objects and manipulate their properties, but cannot reason about quantitative state variables such as Quantities. In his words, "processes are described as KEE units . . . specify actions that will be taken if certain conditions hold", and in that sense are like production-rules;

temporal reasoning is not available, resulting again in static representations and simulating only behavior in very short time intervals.

2. Knowledge-Based and Model-Based System Shells

a) Several knowledge-based system shells have been used as tools allowing fast development of domain-specific applications. HERACLES, one of the first shells was developed by generalizing and separating the domain specific knowledge of NEOMYCIN from the underlying expert system methodology (see W. J. Clancey, "From GUIDON to NEOMYCIN and HERACLES in Twenty Short Lessons: ORN Final Report 1979-1985", in AI Magazine, August 1986, p.40-60, August 1986).

b) A knowledge-based system interprets data using knowledge added to the system by a human domain expert. This knowledge-base may contain diverse forms of knowledge, represented at each end by: a) shallow knowledge or heuristics, such as human experience and interpretations or rules-of thumb; and b) deep knowledge about the system behavior and interactions. The systems that mainly based in the first type of knowledge are in general referred to as knowledge-based expert systems, and the logic is represented in the form of production rules. In the more advanced real-time expert systems, inferencing techniques are usually data-driven using forward chaining, but can also employ backward chaining for goal-driven tasks and for gathering data. The inference engine searches for and executes relevant rules, which are separate from the inference engine and therefore, the representation is intrinsically declarative.

c) Model-based systems can be derived from empirical models based on regression of data or from first-principle relationships between the variables. When sufficient information to model a process--or part of it--is available, a more precise and compact system can be built.

d) Object-oriented expert systems allow a powerful knowledge representation of physical entities and conceptual entities. In those systems, data and behavior may be unified in the class hierarchy. Each class has a template that defines the types of attributes characteristic of that class and distinguish it from another types of objects. Manipulation and retrieval of the values of the data structures may be performed through methods attached to a object's class. The structure of the object system, typically hierarchical, maintains associations among facts and relations between objects.

e) There is a number of commercially available shells and toolkits that facilitate the development of domain-specific knowledge-based applications. Of those, real-time expert-system shells offer capabilities for reasoning on the behavior of data over time. Each of the real-time object-oriented shells from various vendors offers its set of advantages, and each follows a different approach, such as compiled versus interpretative, and offers a different level of graphic sophistication. The specific shell currently selected for the implementation of this invention is Gensym Corporation's G2 Version 3.0 system, which is designed for complex and large on-line applications where large number of variables can be monitored concurrently. It is able to reason about time, to execute both time-triggered and event-triggered actions and invocations, to combine heuristic and procedural reasoning, dynamic simulation, user interface, database interface capabilities, and other facilities that allow the knowledge engineer to concentrate on the representation and incorporation of domain-specific knowledge to create domain-specific applications.

f) G2 provides a built-in inference engine, a simulator, pre-built libraries of functions and actions, developer and user-interfaces, and the management of their seamless interrelations. A built-in inspect facility permits users to search for, locate, and edit various types of knowledge. The text editor interactively guides the expert in entering and editing knowledge. Among G2's Inference Engine capabilities are: a) a focus mechanism with meta-knowledge determines which knowledge structures to invoke, and allows concurrent focus and asynchronous events; b) data structures are tagged with time-stamp and validity intervals which are considered in all inferences and calculations, taking care of truth maintenance; and c) intrinsic to G2's tasks are managed by the real-time scheduler. Task prioritization, asynchronous concurrent operations, and real-time task scheduling are therefore automatically provided by this shell. G2 also provides a graphic user interface builder, which may be used to create graphic user interfaces which are language independent and allow to display information using colors, pictures and animation. Dynamic meters, graphics, and charts can be defined for interactive follow-up of the simulation. It also has debugger, inspect and describe facilities. The knowledge bases can be saved as separated modules as ASCII files. The graphic views are also saved in an ASCII format, and can be shared with networked remote CPUs or terminals equipped with X Windows server software.

IV. SUMMARY OF THE PRESENT INVENTION

A. The present invention in its broadest form is directed to a computer-based interface, methods and systems for graphic information storage and retrieval, visual modeling and dynamic simulation of complex systems. It provides a graphical interface and associated methods to develop domain-specific applications that can be used as a shell environment for both development and deployment of domain-specific visual databases, modeling and simulation applications.

B. In the current implementation of this invention the system is directed to a domain-specific, application-independent, knowledge-based development shell and deployment system capable of being used as an environment to construct specific visual databases, and modeling and simulation applications in the chemical and biochemical domains. The system comprises sets of knowledge-based building-blocks, hereinafter called libraries including tools arranged in hierarchies, that includes sets of chemical processes and their participants, and which result in complex networks of multidimensional pathways, encapsulating both information and mathematical models within modular components, and integrates inferential control with quantitative and semi-quantitative simulation methods, providing a variety of alternatives to deal with complex dynamic systems. A plurality of methods is related to and associated with those tools.

C. It is an object of this invention to provide a knowledge-base having a well defined structure for representing knowledge about chemical and biochemical entities, processes, pathways and interacting networks of pathways. It is a further object of the present invention to provide a system, graphical interface and associated methods capable of dealing with incomplete and constantly evolving information and data. The data structures and domain-specific knowledge-base are independent of application-specific use, allowing the application-specific knowledge-bases to expand without affecting the basic operation of the system. The structure of the domain-specific knowledge-base serves also as the infrastructure provided to store additional information about new tools and models.

D. This invention and its various embodiments describe systems, graphical interfaces and associated methods that combine with declarative object structures, with qualitative and quantitative modeling tools, and artificial intelligence, to model complex systems. Further important teachings of this invention comprise: a) the representation and storage of information and data about networks of interacting entities, together with information about the physical description of those entities, and the processes in which they participate, into a usable knowledge form; b) the graphical interface and associated methods to store the available information and data about those complex models into modular, modifiable, expandable and reusable knowledge structures; c) the graphical interface and associated methods for using the stored of information and data about interacting entities and the processes in which interact to dynamically generate and display at run-time organized cross-talking pathways, which may branch, merge, or loop forward or backward, and which provide interactive access to each of their components; d) the representation and storage of information and data about of the complex systems in graphic models that make use of several layers of encapsulation, which allows to hide the details in several layers and allows the user to display only the level of detail desired; e) the graphical interface and associated methods to perform queries that refer to either the structural composition of the entities involved, the position in the pathways downstream or upstream of the pool of entities taken as reference, the role of those pools of entities in the processes in which they participate, or any combination of the previous three; and e) the graphical interface and associated methods to dynamically simulate their continuous interactions and modifications.

E. More specifically, among the major teachings of this invention in its current embodiments are systems, graphical interface and associated methods used to:

1. interpret, represent and describe the attributes, characteristics and composition of chemical and biochemical entities, such as those participating in chemical, biochemical, cellular, physiological, patho-physiological or pharmacological reactions (hereinafter called chemical entities), as well as the parallel and serial sets of processes in which they interact and by which they are regulated;

2. compile such information and data and to store them in a more compact knowledge form, to construct a library of basic and reusable building blocks;

3. interactively integrate sets of building blocks, using the basic paradigm of "Clone, Connect and Configure", into more complex knowledge structures, constructing dynamic models of the behavior of those chemical entities and processes;

4. interactively integrate those simple models into more complex models that result in multidimensional networks of interacting pathways, which in turn can be reused as building blocks for even more complex models;

5. programmatically integrate those models into multidimensional networks of interacting pathways, including branching and merging of pathways, cross-talk between pathways that share elements, and feed-back and forward loops; and

6. dynamically simulate, optionally using the encapsulated absolute-valued or scaled-valued parameters and variables, the kinetic interactions represented in selected pathways, as defined within those more or less complex models.

F. More specifically, such entities, pools of such entities and the processes in which they participate, such as the synthesis, degradation, modifications, interactions and translocation processes, are visually represented by icons that encapsulate object-oriented knowledge-structures, hereinafter referred to as bioObjects. These bioObjects are composite objects that encapsulate a set of attributes, such as other component objects, attributes with set values, and variables and parameters which values can change dynamically at run time. A variety of methods, comprising rules, procedures, functions, relations, equations and qualitative and quantitative models, which are themselves object-oriented and are hereinafter referred to as methods, are either specified in a generic form, which apply to a class or group of classes of bioObjects or their attributes, or in a specific form, which apply to a particular instance of a tool or attribute.

G. Each of the building blocks used in the system of this invention is represented by an icon, and the knowledge stored in those bioObjects is encapsulated in three forms within different types of associated structures:

1. An Attribute Table contains information and data that describe the characteristics of that object in many different ways. It contains a set of slots that vary for different classes of objects. Each slot may have a simple value of the types integer, float, symbol, text, or truth-value, or it may contain parameters, variables or other objects, each with its specific Attribute Table. The values of parameters and variables are computed by generic formulas that apply to all the instances of a class. The values of a particular instance of a variable may also be computed by a formula defined in its Attribute Table. Simulated formulas may contain algebraic, difference and differential equations.

2. A Menu with various options which upon selection perform specific tasks related to that particular object. The options available vary for different classes of objects and, within each class, depend on the operation mode.

3. An optional Subworkspace that contains a set of other objects and/or other bioObjects, with their corresponding sets of associated structures.

4. With this architecture, interactive tasks are defined within the Menu, and biological information and data is encapsulated in two formats, either in the form of a table or visually by icons.

H. The current embodiment of this invention is based on an object-oriented, real-time development environment recently developed and used for very different types of industrial applications, which provides predefined, domain-independent, methods mapped to generic object-structures. Th