bids-standard / bids-2-devel

Discussions and suggestions of backwards incompatible changes to BIDS
https://bids.neuroimaging.io/
Creative Commons Attribution 4.0 International
10 stars 1 forks source link

Formalize concept/specification of the "BIDS Extensions" #74

Open yarikoptic opened 2 months ago

yarikoptic commented 2 months ago

I always mixed up currently used "Extension" with "Enhancement" in BEP. But quite often "Extension" means an additional part which is not per se par the integral part of the whole, so it is more of a "plug-in".

Other standards

Similar concepts are present in

BIDS

In BIDS we already have some

BEPs

And some ongoing BEPs are likely to be well represented to be "Extensions", e.g.

Projects building atop

And some ongoing projects which could have benefited from formalization:

Proposal elements

Should formalize within BIDS schema on how to

  "BIDSExtensions": {
      "HED": {
          "version": "..."
      }
  }

I even wonder if we should list existing BEP elements there, i.e. to provide a quick way to identify components of the dataset without navigating it fully. I.e. to annotate what data types etc that dataset has...

Pros / Cons

Some might argue that such extensions might "dilute" BIDS and make it less formalized, such extension mechanism could allow for formalization of BIDS datasets to become "valid" beyond BIDS specification and avoid people simply hiding such components within their .bidsignore files.

Similarly to how works in NWB world (attn @oruebel @rly @bendichter), some BEPs could potentially be developed as "BIDSExtensions" (patches to the schema) and thus datasets with them could potentially be prepared/validated, even mixing different active BEPs (now would require some custom BIDSVersion and some custom schema as merged between BEPs... not really formalized.), until BEP is accepted and "patches" to schema become part of the BIDSVersion itself.

Related Existing Issues

BIDS 2.0 (what is feasible)

I think that for BIDS 2.0 we would not be able to solve it fully but I think it is feasible to at least partially address it, e.g. through formalization of BIDSExtensions within dataset_description.json to prepare BIDS 2.x namespace to annotate/accept aforementioned extension in a formalized way.