Container

Leadership: Michael Hansen, Microsoft Research, USA

The “Container” subgroup is responsible for developing a meta-language called Yardl for defining data structure and protocols for accessing, transferring, and storing data. The meta-language approach and associated tooling are also applicable to other modalities and are, for example, under consideration for a revision of the ISMRM Raw Data standard. A prototype of the meta-language standard definition and software for processing it into C++ subroutines are available in open source on GitHub. Yardl is conceptually similar to, and inspired by, Avro, Protocol Buffers, Bond, and others, but it was designed primarily with raw medical instrument signal data in mind. Some of its features are:

  • Persistence to HDF5 files as well as a compact binary format suitable for streaming over a network.
  • Built-in support for multidimensional arrays and complex numbers.
  • The schema is always embedded in the serialized data.
  • Generated code with types that are easy to program against.
  • Generics.
  • Computed fields.

The approach of separating the data element definition and tooling has several advantages, including support for different programming languages but also “container” types. In addition, the Yardl-generated code defines an API for accessing/providing the software. Vendors have therefore the flexibility to choose between providing a (proprietary or open source) converter, or a software library implementing the API, or directly providing the option to export data in the standardized format. We anticipate however that the first option will be taken initially by most vendors.

Leave a comment