Describe interoperability with a few generic goals #220
Replies: 3 comments
-
I really like this generalization. I would combine the Machine interoperability items into one
Machine interoperability: provide sufficient metadata to ensure seamless data transfer between models and to communicate the control flow between models. Then, we might look at a third point, which is really portability, i.e. the deployment of a model on different machines. |
Beta Was this translation helpful? Give feedback.
-
I like the idea of merging the "machine interoperability" items! I'm not sure about "provide sufficient metadata...", though, as IMO machine interoperability depends on more than that (at least for communicating control flows), e.g., on how models are designed and implemented.
I was also thinking about it, but it still not clear to me where this should go. For example, one could imagine two models deployed on their specific platforms or machines, thus not portable, but still able to communicate to each other, e.g., over the network via REST APIs. What matters the most in this case is for the two models to have a standardized interface. That said, it seems rather obvious to me that portable applications and portable I/O storage formats greatly facilitate interoperability between models, from both the human and machine points of view. I'm just wondering whether portability should be a goal here or rather one requirement that helps to achieve the goals. |
Beta Was this translation helpful? Give feedback.
-
Yes, it depends on communicating metadata on data and control facilities, and on accepting data and control information. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I've been thinking a bit more about this, trying to gather all the relevant suggestions (currently on the website in the "Goals" section and also in various issues #169, #183, etc.) into fewer, more abstract concepts and goals. Here is an attempt (this could certainly be improved in many ways):
"Human" interoperability: help users making sense of the model's data and metadata so that they can easily relate it to other models or observations. Reduce cognitive load and the mental overhead of context switching.
Machine (data/metadata) interoperability: enable seamless data/metadata transfer between a model software and other (model) software.
Machine (program) interoperability: allow model execution being controlled by another software (either coarse-grained or fine-grained control).
How would each of those goals relate / translate into standards or good practices ? Some examples:
Documentation, compliance with standardized data models or conventions (e.g., CDM, CF-conventions), standard names...
Standard (or at least common and portable) storage formats that can be easily read/written by machines, e.g., NetCDF4, HDF5, CSV, Parquet, JSON, etc.
Standardized APIs and protocols, compliance / integration with modelling frameworks and/or scientific computing ecosystems...
Note that a particular standard may be useful for more than one goal. Some examples:
Beta Was this translation helpful? Give feedback.
All reactions