HDMF Specification Language

Description

The HDMF Specification Language defines formal structures for describing the organization of complex data using basic concepts, e.g., Groups, Datasets, Attributes, and Links. It provides a standardized way to define data structures and relationships.

The HDMF specification language is defined by the Hierarchical Data Modeling Framework (HDMF). The NWB Specification Language is a derivative of the HDMF Specification Language with minor modifications for NWB (e.g., to use the term neurodata_type).

Installation

The HDMF Specification Language is a documentation resource, not a software package to install. The documentation can be accessed at:

https://hdmf-schema-language.readthedocs.io/

Usage

When creating NWB extensions, you’ll use the NWB Specification Language (which builds on HDMF) to define new data types. Here’s an example of a simple extension definition in YAML format:

groups:
- neurodata_type_def: ElectricalSeries
  neurodata_type_inc: TimeSeries
  doc: A time series of electrical measurements.
  datasets:
  - name: data
    dtype: numeric
    shape:
    - null
    - null
    doc: The recorded voltage data.
  - name: electrodes
    neurodata_type_inc: DynamicTableRegion
    doc: The electrodes that this electrical series was recorded from.

Additional Information

Understanding the HDMF Specification Language is essential for developers who want to create extensions to the NWB format. It provides the foundation for defining structured, self-describing data models that can be used across different programming languages and storage backends.