SC-IPM Concepts

Note: This page assumes a general understanding of Inductive Process Modeling. Please see the Introduction page for a summary of IPM's motivation and approach.

Inductive Process Modeling (as used in SC-IPM) employs dozens of concepts, drawn from a variety of disciplines (eg, computer science, mathematics, specific subject domains). It's unlikely that a prospective modeler will be familiar with all of these concepts. Also, our use of concepts and terminology may be a bit unusual at times.

So, an overview and a bit of explanation may be useful to both experts and neophytes. These pages attempt to present "just enough" information on SC-IPM's concepts to help modelers get started. The explanations do not attempt to be authoritative, let alone comprehensive, but they should convey the essentials.

Evaluation Data Flow

After the user creates a model specification (with SC-IPM's assistance), s/he typically asks SC-IPM to evaluate it. To do so, the program must perform a number of tasks. The data flow through these tasks goes (roughly) as follows:

Concept Trees

Each of the following "concept trees" provides a rough overview of the composition of a particular concept. For example, a Model Specification contains one or more Generic Processes, each of which contains one or more Aggregators or Equations.

Model Specification

A Model Specification tells SC-IPM what Model Structures to create, how to generate, validate, and estimate parameters for them, etc. It has two components, a Generic Library and an Instance Library.

Model Structure


Concept Index

The sections in this index are arranged alphabetically. In addition, each section contains links to related sections, pages, etc.


SC-IPM uses aggregators (eg, prod, sum) to combine the results of subsidiary Variables (eg, assim_eff, conc, grazing_rate).


SC-IPM uses sets of constraints (eg, always-together, atmost-one, exactly-one, necessary) to control the inclusion of Generic Processes in a Model Structure.


SC-IPM uses algebraic and differential equations to specify mathematical relationships among Generic Entities and Generic Processes. See the Equation page for details.

Entity Instance

Each entity instance (in the current Instance Library) provides SC-IPM with:

  • the instance name (eg, aurelia, nasutum)
  • the instance type (eg, grazer, producer)
  • parameter types (eg, assim_eff, attack_rate)
  • variable bindings (eg, conc, grazing_rate)

Entity Role

Each Generic Process may be used in one or more entity roles (eg, G, P), each of which has one or more Entity Types (eg, grazer, producer).

Entity Type

Each Generic Entity and Entity Instance has an entity type (eg, grazer, producer).

Fitness Score

Parameter Estimation generates a fitness score for each Model. This is used to sort and filter the list of models that SC-IPM displays.

Generic Entity

SC-IPM uses generic entities (eg, Grazer, Producer) to describe and define the general nature of entities in the resulting models. Each generic entity has an Entity Types (eg, grazer, producer).

Generic Library

The generic library (eg, pplib) tells SC-IPM what kinds of Generic Entities and Generic Processes are available and what Constraints limit their inclusion in a Model Structure.

Generic Process

SC-IPM uses generic processes (eg, Grazing Predation, Logistic Growth) to describe and define the general nature of processes in the resulting models.


IPM uses induction to assist in the creation and evaluation of Models and Model Specifications.

Inductive reasoning, also known as induction or informally "bottom-up" logic, is a kind of reasoning that constructs or evaluates general propositions that are derived from specific examples.

-- Inductive reasoning (WP)

Inductive Process Modeling

Inductive Process Modeling (IPM) assists in the creation of Models that are both descriptive and explanatory. Using assorted techniques (eg, Induction, Parameter_Estimation), it helps the modeler to generate, evaluate, and modify models.

SC-IPM, in particular, creates candidate Model Structures, based on Model Specifications (Constraints, Entity Instances, Generic Entities, and Generic Processes). See the Introduction page for a summary of IPM's motivation and approach.

Instance Library

The instance library tells SC-IPM which Generic Library, Parameters, and Variables to use, what Entity Instances (eg, aurelia, nasutum) to create, etc.


SC-IPM generates and evaluates mathematical models, based on Model Specifications and a set of Training Data.

Model Specification

SC-IPM's model specifications consist of Constraints, Generic Entities, Generic Processes, Parameters, and Variables.

Model Structure

SC-IPM generates sets of candidate Model Structures, based on a Model Specification.


Generic Entities and Generic Processes may have associated Parameters (ie, parametric constants). Each Parameter (eg, attack_rate, assim_eff, gmax) is specified with lower-bound and upper-bound values. This limits the range of numeric values considered during Parameter Estimation.

Parameter Estimation

SC-IPM performs Parameter Estimation on validated Model Structures, fitting their Parameters to the training data.


Each candidate Model Structure must pass a Boolean satisfiability test to ensure that it has a valid structure and meets all specified Constraints.

Training Data

Each Instance_Library (eg, pp-instances) specifies a list of input data files (eg, pp-sim). This data is used to "train" (and sometimes test) the Parameter Estimation.


Generic Entities and Generic Processes may have associated Variables. Each Variable is specified by an Aggregator (eg, prod, sum) or an Equation.

This wiki page is maintained by Rich Morin, an independent consultant specializing in software design, development, and documentation. Please feel free to email comments, inquiries, suggestions, etc!

Topic revision: r30 - 25 Jul 2013, RichMorin
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding CFCL Wiki? Send feedback