The Babelizer: language interoperability for model coupling in the geosciences

  • Hutton E
  • Piper M
  • Tucker G
N/ACitations
Citations of this article
7Readers
Mendeley users who have this article in their library.

Abstract

The babelizer is a Python utility that generates code to import libraries from other languages into Python. Target libraries must expose a Basic Model Interface (BMI) (Hutton et al., 2020; Peckham et al., 2013) and be written in C, C++, or Fortran, although the babelizer is extendable, so other languages can be added in the future. The babelizer provides a streamlined mechanism for bringing scientific models into a common language where they can communicate with one another as components of an integrated model. Statement of need With an integrated multicomponent approach to modeling, scientists-not just software developers connect components to form integrated models, where plug-and-play components can easily be added or removed (Collins et al., 2005; David et al., 2013; Gregersen et al., 2007; Tucker et al., 2022). This is in contrast to older methods, where a single modeling group would construct a monolithic model built on the tight integration of software written within an isolated framework. A single person or group would control model development. Outside contributors would go through a gatekeeper to ensure compatibility. The software elements that made up the model would be tied to the larger model and, generally, not used outside of the framework. Component modeling democratizes model building by empowering the larger scientific community to develop model components. This allows for more innovation and experimentation driven from the bottom up by a community. It reduces redundancy-rather than reinventing software, scientists can find and use models that suit their needs-and it allows scientists to focus on new and unsolved problems. There are disadvantages, however. Without a single group to guide model development, there is a greater risk that community-developed models will become incompatible with one another. With hundreds of scientists developing models in isolation, there is a greater likelihood models will be written with idiosyncratic designs, incompatible grids, incompatible time steps, and in different programming languages. The Earth-surface modeling community has developed tools to help solve some of these problems. For example, the Basic Model Interface standardizes model interactions. The Earth System Modeling Framework (ESMF) (Collins et al., 2005) grid mappers are able to map quantities from one grid to another. The Python Modeling Toolkit pymt (Hutton & Piper, 2020) performs time interpolation, grid mapping, and unit coversion. In this paper, we present a solution to the language incompatibility problem. Hutton et al. (2022). The Babelizer: language interoperability for model coupling in the geosciences. Journal of Open Source Software, 7 (71), 3344. https://doi.org/10.21105/joss.03344.

Cite

CITATION STYLE

APA

Hutton, E. W. H., Piper, M. D., & Tucker, G. E. (2022). The Babelizer: language interoperability for model coupling in the geosciences. Journal of Open Source Software, 7(71), 3344. https://doi.org/10.21105/joss.03344

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free