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.