[Vp-reproduce-subgroup] I'd linke to reemphasize that having a formal and complete conceptual model is critical for any shareable or reusable model

William Waites wwaites at ieee.org
Thu Mar 25 14:45:07 PDT 2021


Apologies, I wasn’t able to make this week’s meeting earlier.

Is it time to do the work to agree on what a model is? I’ll start. Here is what I think a model is:

I think that the core concept for simulation is a propagator. This is the very basic building block for a simulation. A propagator is a function that takes the state of the system now, at time t, and produces the state of the system at some time in the future, at time t+h. 

To use these, we need a projection from the entire “big” state of the system to the local “small” state that a given propagator knows how to modify. We need an injection from the “small” state back to the “big” state.

A propagator bookended by projection and injection is the basic element of simulation. These propagators can be composed in various ways. They can be composed serially, run one after another. They can be composed in parallel so long as their projections have images that do not overlap. We can create string diagrams of propagators as boxes connected with strings to depict how they are composed.

A model gives rise to a family of propagators, one for each time-step h. The procedure for deriving a propagator from a model depends on the kind of model (that’s an implementation detail). For recurrence relation models, this is automatic. The model is the propagator. For models expressed as ODEs there are standard ways of doing this (what I have described above is equivalent to an integrator). For models expressed as chemical reactions or Petri nets or rules, there is a choice of whether to render them as ODEs or as jump processes. And so on.

Most of the work of standards then, is in specifying what the “small” state looks like. This is specifying the type (in the programming languages sense)  of the propagator. What does it expect as input? What does it return? This is the interface to the model, what it does behind that interface is its business, not ours. This needs to be a bit more specific than just type as in “Integer” or “Float”, it needs to carry some meaning. Perhaps it’s the copy number of some protein, or the number of infected people in a population.

Auxiliary standards might specify how to create a propagator out of a model, or the standard might just be that if providing a model, then provide a propagator (or a function that, given an h, produces a propagator). They might also specify how to unify the “small” states of a set of propagators into a “big” state and how projection and injection works in an engineering sense. 

How about that?

Cheers,
-w

> On 25 Mar 2021, at 21:18, Jacob Barhak <jacob.barhak at gmail.com> wrote:
> 
> Thanks James,
> 
> With your permission I added this topic to the mailing list - we may want to continue this discussion and let more people comment on this. So please reply to all to move your responses to the mailing list. 
> 
> I agree that standards may not hold for conceptual models unless you have perfected a specific method to create those and attract more people to use it. 
> 
> However, the sad part is that the modeling community needs standards to allow utility and integration of models and we really lack those now. 
> 
>                  Jacob
> 
> On Thu, Mar 25, 2021 at 2:55 PM James A Glazier <jaglazier at gmail.com> wrote:
> Conceptual model specification is the single most important thing to 
> have for reproducibility. The mathematical models and computer 
> simulations are intrinsically less sharable.
> 
> SBML allows conceptual model specification (for a very limited range of 
> models)
> 
> But standards are not essential for conceptual model specification, 
> doing it even in tabular form is much better than nothing.
> 
> JAG
> 
> _______________________________________________
> Vp-reproduce-subgroup mailing list
> Vp-reproduce-subgroup at lists.simtk.org
> https://lists.simtk.org/mailman/listinfo/vp-reproduce-subgroup



More information about the Vp-reproduce-subgroup mailing list