The NWB file format is formally described by the NWB Format Specification Schema. The data organization of NWB files and the core NWB format is described by these nwb-schema format specification documents.
AqNWB is linked to a specific version of the nwb-schema, and the schema version is written to the nwb_version field of the NWB File during acquisition. The full specification documentation for that schema version is also cached in the specifications group of the NWB File to facilitate compatibility with other NWB-related software.
The contents of the specifications group are defined using the header files in the spec subfolder, which are in turn generated from the nwb-schema and hdmf-common-schema files. To regenerate these header files, it is recommended to use the script:
This script will:
Optional environment variables:
Example:
For use with extensions and other advanced or custom use cases, developers may still run resources/utils/generate_spec_files.py directly.
Currently, the version of the schema being used for development is fixed and stored in the /resources/schema folder. Updating to a newer version of the schema requires: