-
Notifications
You must be signed in to change notification settings - Fork 188
Description
Greetings all,
During and subsequent to the recent 2025 OHBM Hackathon, I have invested considerable time in interrogating the BIDS Inheritance Principle. This has been a source of contention and confusion since its inclusion in the inception of BIDS. For the specification to be robust, and for the community to be able to make relevant decisions for BIDS Derivatives and BIDS 2.0, its interpretation and the implementation of relevant tooling need to be correpsondingly robust.
I intend for this Issue listing to serve as a "meta-issue". I will be over time posting Issues / Pull Requests in multiple distinct repositories, progressively replacing the placeholders below with links to such. Any esoteric discussion specific to those individual software tools / databases should occur there once created so as to not twist different discussion threads here; this Issue should be reserved for any higher-level discussion that requires tying all of these topics together.
I'll create a secondary post here describing my new tool; I'll reserve this original post to listing the ramifications for other components of the BIDS ecosystem.
bids-examples
I have generated a large number of new example datasets that are tailored for the exploration of the Inheritance Principle (current count is 28).
For each of these datasets, I have manually classified, under each individual IP ruleset (see below), whether that dataset satisfies that version of the Inheritance Principle, whether a warning should be issued, or whether the IP is violated, and ensured that my own software implementation matches these outcomes.
This can then serve as validation for any other BIDS software that needs to be IP-aware.
Edit: bids-standard/bids-examples#504
BIDS 1.0
There are some discrepancies between the behaviour of the validators and my pre-conceived notions of what they would yield for different example datasets that may hint at things having been overlooked in the specification:
-
Dataset attributes that are resulting in errors despite the fact that there's not anything explicit in the specification that precludes it.
-
The change to the Inheritance Principle in 1.7.0 as committed in #946 was not a straight transition from lay description to codification, but rather involved a subtle change to the rules. This warrants explicit discussion, both in assessing different software behaviours and also what the specification should vs. should not permit.
Edit: #2156
Legacy bids-validator
The Legacy BIDS Validator has a range of scenarios where the outcome of validation does not conform with what I believe the outcome should be based on the Inheritance Principle as written.
I will post more details on the legacy-validator
repository on the patterns observable from what fails, and link back here.
I appreciate that the legacy Validator is considered deprecated and so it is possible that these issues may not be fixed, but I'll document exhaustively nevertheless.
Edit: bids-standard/legacy-validator#2224
Schema bids-validator
Version 2.0 of the BIDS Validator fixes one errors with the legacy validator with respect to the IP, but fails to address others.
I will post more details on the bids-validator
repository on what inadequacies remain outstanding, and link back here.
Edit: bids-standard/bids-validator#217
pybids
I have not yet had the opportunity to familiarise myself with pybids
to test which of these datasets expose improper implementation.
I will post over there once I've done that experiment, and link back here.
Lestropie/IP-freely#24
Edit: bids-standard/pybids#1148
BIDS 2.0
Going through this exercise has hopefully provided some insight on the merits of different choices for how to proceed (or not) with the Inheritance Principle for BIDS 2.0.
When I get to posting Issues on the BIDS 2.0 repository, I'll link to them here.
Edit: bids-standard/bids-2-devel#90
Edit: bids-standard/bids-2-devel#91