Skip to content

Commit

Permalink
Add ContextURI to allow to define the context for the entity values
Browse files Browse the repository at this point in the history
It is often desired to be able to determine that values used
for entities in the dataset belong to some controlled vocabulary,
or simply defined centrally within some "id" authority. E.g. could be
unique scanning session IDs per scanning center, or similarly subject_ids defined
per study or centrally for the center.

It is of particular interest for large studies where multiple datasets could be
created, one per site or primary data modality, to later possibly be composed
into a single dataset or just to become parts of the one larger multi-site one.
In such cases it becomes quite important to annotate that particular entities
(subject_id, session_id and possibly even _desc- or _acq- values) are defined
in the scope of the specific  larger study and thus correspond to the "same" thing
given the same contextURI and value.
  • Loading branch information
yarikoptic committed Oct 3, 2024
1 parent cc1d6d1 commit 4177595
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
15 changes: 15 additions & 0 deletions src/common-principles.md
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,7 @@ and a guide for using macros can be found at
"Units": "RECOMMENDED",
"Delimiter": "OPTIONAL",
"TermURL": "RECOMMENDED",
"ContextURI": "RECOMMENDED",
"HED": "OPTIONAL",
}
) }}
Expand Down Expand Up @@ -592,6 +593,20 @@ like in the example below.
}
```

The `ContextURL` can be used to provide a URL to a controlled vocabulary or ontology, or simply to provide a URL to a page that provides more context for the values in the column.
It is to be used, so if combined with the value in that value (`<label>` or `<index>`), it would establish a unique identifier for the entity to be used across BIDS datasets.
In the example below it would establish that `participant_id` is shared across datasets of the center, which would allow to differentiate center's subjects apart from subject ids used by other datasets used in the lab.

```JSON
{
"participant_id": {
"Description": "Unique identifier used for study subjects in the lab across studies",
"ContextURI": "https://thelab.example.com/term/subject/"
}
}
```


### Compressed tabular files

Large tabular information, such as physiological recordings, MUST be stored with
Expand Down
5 changes: 4 additions & 1 deletion src/modality-agnostic-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,9 @@ to date of birth.

```JSON
{
"participant_id": {
"ContextURI": "http://thelab.example.com/term/subject/"
},
"age": {
"Description": "age of the participant",
"Units": "year"
Expand Down Expand Up @@ -422,7 +425,7 @@ about the questionnaire and `adhd_b` and `adhd_c_dx` correspond to individual
columns.

In addition to the keys available to describe columns in all tabular files
(`LongName`, `Description`, `Levels`, `Units`, and `TermURL`) the
(`LongName`, `Description`, `Levels`, `Units`, `TermURL`, and `ContextURL`) the
`participants.json` file as well as phenotypic files can also include column
descriptions with a `Derivative` field that, when set to true, indicates that
values in the corresponding column is a transformation of values from other
Expand Down
9 changes: 9 additions & 0 deletions src/schema/objects/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -519,6 +519,15 @@ Columns:
type: array
items:
type: string
ContextURI:
name: ContextURI
display_name: Context URI
description: |
URI establishing the context for the values of this data.
For example, https://thelab.example.com/term/subject/ if used for "participant_id"
could be used to non-ambigously link participant data acquisitions across datasets.
type: string
format: uri
ContinuousHeadLocalization:
name: ContinuousHeadLocalization
display_name: Continuous Head Localization
Expand Down

0 comments on commit 4177595

Please sign in to comment.