.. _concepts-metadata-and-bids: Metadata and BIDS entities ========================== EEG-BIDS is the contract that lets EEGDash advertise 700+ datasets as a single queryable catalogue. Every recording the library knows about has been described using the same vocabulary — *subject*, *session*, *task*, *run*, acquisition system, electrode montage, units, sampling frequency — so that filters work the same way regardless of the originating lab or repository. This page explains what those entities mean, how they map to EEGDash query keywords, and where participant-level metadata enters the picture. The EEG-BIDS specification was published as Pernet et al. (2019) [1]_; if you have not skimmed the paper, the short version is that BIDS standardises file names, directory layout, and accompanying JSON/TSV sidecars so that any tool can walk a dataset without bespoke loaders. EEGDash reuses those entity names verbatim in its query API. BIDS entities at a glance ------------------------- A BIDS-compliant EEG file path encodes the following entities (with the most common ones in **bold**): - **subject** (``sub-XYZ``): one participant. - **session** (``ses-N``): one acquisition appointment for that participant. A subject can have multiple sessions when data are collected across days. - **task** (``task-ABC``): the experimental paradigm (resting state, oddball, steady-state visual stimulation, etc.). - **run** (``run-K``): a repetition of the same task within one session. - *acquisition* (``acq-XYZ``): an acquisition variant, such as a different amplifier or montage. - *processing* (``proc-XYZ``): a derivative pipeline tag. The entities are hierarchical: a recording is uniquely identified by the combination of dataset and the entities present in its filename. EEGDash's catalogue stores these as separate fields in MongoDB, which is what makes queries like "all resting-state runs from subject sub-002 of ds002718" trivial to express. Mapping BIDS entities to EEGDash query keywords ----------------------------------------------- EEGDash's filter keywords are intentionally identical to the BIDS entity names. The table below shows the mapping. A keyword accepts a single string or a list of strings; lists are interpreted as MongoDB ``$in`` queries. .. list-table:: :header-rows: 1 :widths: 18 18 64 * - BIDS entity - EEGDash query keyword - Notes * - ``sub-