openmodelingfoundation / meillionen

tools for coupling simulation models
https://openmodelingfoundation.github.io/meillionen
Other
3 stars 2 forks source link

Workplan and Project Goals #1

Open cpritcha opened 4 years ago

cpritcha commented 4 years ago

Goal

The goal of the OMF interoperability project is to be able to combine models written in different languages and environments with a low barrier to entry for model consumers.

Possible User Stories

Bob wants to couple two different models together. One is in Python (a rain routing model) and the other is in Fortran (a crop model). Bob wants to use the crop model as it was created as a command line program. This means Bob first has to figure out the format of any files consumed and produced by the crop model. Then he has to create a wrapper library to make the model easy to call.

Adison wants to couple two different models together. One is in Python (a rain routing model) and the other is in Fortran (a crop model). Adison is more comfortable with Fortran (and with the model itself) so she wants to build the portions of the application she is using as a library. This means Adison has to adapt portions of the application to make it possible to call directly from C, Python etc.

Acme Inc wants to make use of Adison's wrapped crop model in their project. They install the model and can now use it with their project. First they need to understand how the model works so experiment with the model in the REPL using a built in dataset and get documentation about the model's features. Then they integrate the model into their project.

Model Implementations

Model implementations are often implemented in compiled languages as libraries for executables (for C, C++, Fortran) and interpreted/JITed languages (R, Python, Julia, NetLogo). The challenges in creating model wrappers for these types of model implementations are outlined in this section.

Compiled Libraries

Compiled Executables

Interpreted

Model Metadata

In order to be able find models or know how to connect a model we need to have metadata about a particular model. Ideally this could be dynamic so that when a model instance is created the instance can be queried to determine it's interface.

Work Plan / Roadmap

SimpleCrop / LandLab Example

What has already been done:

What needs to be done (basics):

Short Term:

Medium Term:

Long Term:

cmbarton commented 4 years ago

I would add to the goals section: 'with minimal or no coding changes needed in the original model(s)'

willu47 commented 3 years ago

Similar (maintained and ongoing) project for coupling of simulation models: https://openresearchsoftware.metajnl.com/articles/10.5334/jors.265/

Source code: https://github.com/nismod/smif

Main application: https://github.com/nismod/nismod2

Recommend looking at https://www.dafni.ac.uk/ as well

cpritcha commented 3 years ago

Thanks @willu47! smif has a lot of overlap. I'll take a look at the docs and paper in more depth and see what questions I have.

alee commented 3 years ago

https://frictionlessdata.io/

https://snakemake.readthedocs.io/en/stable/

https://docs.secure.dafni.rl.ac.uk/docs/how-to/models/how-to-create-a-dafni-ready-model/

cmbarton commented 3 years ago

I would add to the goals section: 'with minimal or no coding changes needed in the original model(s)'

Nothing in the work plan about the hydrology models. That is the other half of the project

alee commented 3 years ago

I think @cpritcha called this the rain routing model in the user story section (which may need some additional refinement :sweat_smile:)

I would add to the goals section: 'with minimal or no coding changes needed in the original model(s)'

Nothing in the work plan about the hydrology models. That is the other half of the project

cmbarton commented 3 years ago

I think @cpritcha called this the rain routing model in the user story section (which may need some additional refinement 😅)

I would add to the goals section: 'with minimal or no coding changes needed in the original model(s)'

Nothing in the work plan about the hydrology models. That is the other half of the project

Nothing in the section entitled "Work Plan / Roadmap" about the hydrology model part