About the Schema
The BIDS schema is a machine readable representation of the BIDS Standard written in YAML. It is (by and large) the BIDS Specification, but written in a declarative form. For a full accounting of all methods, operators, and options provided to the user by the Schema we encourage you to look at the developer documentation contained within the source code here on GitHub.
The schema is split into three major divisions:
objects- Contains definitions of BIDS concepts and entities
rules- Rules for validation of file path names, file/folder contents (including sidecar and other metadata)
meta- Contains rules and definitions for the schema itself as well as defining a "context" object to which rules can be applied.
The schema is organized in the file structure in the tree seen below:
src/schema ├── BIDS_VERSION ├── meta │ └── context.yaml ├── objects │ ├── columns.yaml │ ├── ... │ └── suffixes.yaml ├── rules │ ├── checks │ │ ├── asl.yaml │ │ ├── ... │ │ └── mri.yaml │ ├── ... │ └── suffixes.yaml └── SCHEMA_VERSION
The schema source code lives within the BIDS Specification; a deferenced JSON'ified verison can be found at the following url -> bids-specification.readthedocs.io/en/stable/schema.json.
If you're just returning to BIDS, creating a new BEP, or simply curious as to the timeline and history of the transition from markdown to a yaml schema to render and use the BIDS Specification you are encouraged to browse the links below:
The schema began as a pull request to convert an entity table into a machine readable format and then began to grow in scope. Additional work towards the schematization of the specification has proceeded steadily (and in sometimes in bursts during Schema Sprints1, 2, 3) since.
- Machine readablity ensures interoperability with other tools and utilities
- Uniform implementation between tools that use BIDS. Previously, other tools relied on their own data structures implemented from an interpretation of the specification.
- Easier maintainance of the specification, tools, and other applications 1,5
- Improve the process of writing BEPs