Model definition language

Dear openABM community,
my background is in modeling of biochemical reaction networks using ordinary differential equations, but I have always had an interest into ABM.

Since I switched to ABM completely, I have been bugged by a recurring déjà vu of my early days in ODE modeling, and keep wondering why and whether I can contribute to change that:
Before SBML was established as a standard in ODE modeling in systems biology, people would publish their model as list of equations and parameters in the appendix, if not as equations and values embedded into the text. It was practically impossible to reimplement the models without the authors help.

In ABM it is the same nowadays, at least in many biological fields. I completely understand that it is a greater challenge in ABM than in ODE modeling to establish a somewhat common framework. And the ODD framework together with the sourcecode are almost as good, but they still leave a lot of room and miss one of the - in my opinion - best reasons for a common model definition language, namely that multiple software tools can read and understand the model. One does not have to understand the sourcecode of the author.

A machine readable common model definition language would have the following advantages, in my opinion:

  • interoperability - you could protoype in one tool (e.g. Netlogo) and then export to the common language to run larger simulation tasks in other framworks (e.g. repast HPC)
  • benchmarking - you could simply run benchmarks for all tools that offer support
  • databases - you could establish databases to archive models (cmp biomodels.org for example)
  • annotation - annotations could be inlcuded in the model definition to minimize ambiguity
  • methodological motivation - software developers could reach a far bigger community and

Hence my questions: Does such a language or an initiave to it exist? Are there strong reasons against it? How can I help?

From the same point of view, there are more resources that might be of interest here as well: MIRIAM, sed-ml, etc, see http://co.mbine.org/standards

Also, such a standard doesn’t need to be completely common from the start, the definition and refinement of SBML has taken a long time and yet there are only a few tools that support all features of SBML today. In the case of an xml language, one could start with a minimum schema and then software developers can implement support for that schema or parts of it as they seem fit.

Of course something like this won’t work without a community of more senior researchers than me behind it, and maybe there are really good reasons against it, I would just like to know them.

Thank you,
Clemens

Clemens,

You might be interested in http://www.eclipse.org/amp/ . This was a project designed by Miles Parker (originally called ‘Metascape’); it was possible to create an abstracted ABM in AMP and then export it to Repast or MASON (if I recall correctly). Other languages would also be possible, in theory, but were not implemented as far as I know.

An ongoing effort in CoMSES is to allow individuals to contribute model components for reuse in other models (as opposed to only archiving complete models). A standard definition language would be helpful for this.

There are some who would argue that a standard definition language is not possible, should not be sought, or both. Not possible is a theoretical stance, of course; the idea that it should not be sought is more philosophical, and has to do with reaching many audiences (NetLogo, CORMAS, MASON, Repast, etc., all reach different audiences and serve different needs). I tend to think that such a language is possible and would be useful; in addition to portability there might be improved transparency. There might be tendencies against it within the field, especially the number of people who adopt modeling as part of training in a domain area that is not inherently computational or mathematical. It’s reasonable to ask why AMP is not more widely used.

Hope this helps- I’d be interested in continuing the conversation.

Best,
John

Hi John,
thank you for your answer. AMP looks like an ambitious project, even more than I had in mind with the model definition language. Unfortunately, it also looks rather dead. For me, that would be the reason why it is not more widely used.

I like your argument of increased transparency, which I think, can’t be stressed enough (compare also DOI: 10.1186/s13059-015-0850-7 ).

But I don’t quite understand the philosophical argument against such a language related to each simulator with its own formalism reaching its own audience. I think it is reasonable to argue against complete standardization because especially in science, one needs to be able to explore non-standard ideas. But I think that a language on top of the current approaches which, like AMP, can be translated into executable models could also enable reaching a broader audience and learning from the solutions that others have found.

And of course I wouldn’t dare suggest that I - coming from comp. biology - know a standard that should be imposed on any ABM from ecology to economics to traffic systems to…

I am just curious to the reasons why a common language seems to never have been sought. Comparing the state of AMP and Metascape with the list of ABM software on wikipedia, I tend to think that one practical reason for this absence might also be related to funding (is there/has there been a lack of long lived funding for ABM?).

Greetings,
Clemens

Hi Clemens,

To be clear, I’m not one of the people who would push this ‘philosophical’ argument against a common ABM formalism; it is an argument that I have heard and that I think has some points of truth, but ultimately I don’t think it should outweigh the arguments in favor, particularly if the existing toolkits would also continue to be available and used.

Miles heavily promoted AMP/MetaScape for a period of a couple of years, around 2007 (I think?); the problem was simply that it didn’t catch on. I think it’s not little-used because it’s ‘rather dead’; it is ‘rather dead’ because it wasn’t widely used.

Someone who wanted to create a formalism would have to either create it himself or herself or organize a group to do it; he/she/they would have to do this work knowing that it would only succeed if the community adopted it- which they may not do. Regarding funding, it’s much more difficult to fund something like that than to fund adding to or improving an existing toolkit with an existing user base.

It’s worth considering the ‘ODD’ protocol, which is a standard way to describe ABMs in texts. It’s used, but not everywhere, and mainly when publishers or conference organizers require it; this is true even though many people find it helpful not only in writing about but also thinking about their models.

I’d be enthusiastic about this kind of work- I think, in addition to the other advantages, that it reveals interesting things about the commonalities of ABMs across different domains- but I can also understand being cautious about undertaking it.

Best,
John

Hi John,
I didn’t think you were advocating against such a standard and I agree with you on all points.

Maybe my view on funding is related to my own current rather short-term funding situation, so I’ll try to sort that out before persuading anybody to commit to a common language.

But I’d be happy to discuss it more in detail already, if you (or anybody elase) are interested.

Cheers,
Clemens