NoteThese standards promote interoperability between models. Comments and suggestions are welcomed, and will be carefully considered by the OMF Working Groups and Membership. The standards goals and minimum implementation standards aim to capture concerns and practices among the members of OMF. Individual application domains may extend these standards to capture additional context relevant to their domain.
Overview of Interoperability Standards
Interoperability standards aim to enable models, developed by a diverse scientific community, to be integrated into multi-component modeling environments to represent dynamics and interactions in complex social-natural systems at multiple scales. Standardized APIs and common ontologies, supplementing comprehensive documentation, are essential factors for achieving interoperability. Hence, the goals of interoperability standards include API compatibility and common ontologies so that models can be more readily interconnected as components in an open model ecosystem. There may be multiple implementation technologies to meet these standards.
Questions for Assessing Interoperability
- Can the model connect with another model (spatial and temporal synchronization)?
- Does the model confirm to a standard API (application programming interface)?
- Are the input and output variables described using a common vocabulary?
- Are the data types of input and output variables compatible?
Goals for Interoperability Standards
OMF Interoperability standards should have the effect of increasing productivity by simplifying a variety of modeling tasks. Tasks that standards should facilitate should include (but are not necessarily limited to):
- Building a coupled model from process-oriented software components (models or model elements)
- Building “system of systems” models by assembling sub-models of particular systems (for example, a “lake system” model integrated with a “watershed system”)
- Operating models/components in multiple different frameworks
- Operating models and data inputs/outputs efficiently as part of a sequence of tasks (approach: use/encourage file formats that are both standardized and open)
- Swapping input data sources (for example, comparing behavior of a model with two different satellite-based inputs of land cover, as opposed to having the model hard-wired to one particular source)
- Controlling parameter values and behavior without recompiling
- Operating a model on multiple platforms
- Retrieving information about a model’s current state (including state variables) (implementation question: direct memory exchange vs. file-based exchange vs. web API)
- Pausing and continuing model execution
- Adjusting model variables and/or control parameters during a run (for example, to support data assimilation)
- Computing derivatives where applicable, to facilitate operations such as sensitivity analysis, optimization, and inference (note: different views among participants about whether this should be included in a standard, a “best practice” guideline, or not at all)
- Metadata and documentation related to interoperability
- Clarity and precision in definitions of parameters and variables (ontology)
- Data items to include in metadata: scale (space and time), typical run time, limits (e.g., range of calibration data)
Minimal Interoperability Standards
Ideal Interoperability Standards
Cyberinfrastructure and Tools for Implementation of Interoperability Standards
Cyberinfrastructure and Tools Needed
- Tool(s) to automatically test a program’s adherence to standards