-
Notifications
You must be signed in to change notification settings - Fork 35
Description
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:
- Using a standard data model or convention is often helpful for goal 2 too (a generic storage format is not enough for a machine or software to fully "make sense" of the transferred data)
- Using common storage formats like YAML or TOML for model configuration files may be helpful for goal 1 too, as those formats could be easily read by both humans and machines
- Using well-designed, standardized interfaces (UI or API) across model implementations might greatly reduce cognitive load (goal 1)
Metadata
Metadata
Assignees
Labels
Type
Projects
Status