diff --git a/src/metaschema.json b/src/metaschema.json index 49d0f8cab7..8e8ea2dd37 100644 --- a/src/metaschema.json +++ b/src/metaschema.json @@ -547,6 +547,7 @@ "datetime", "file_relative", "participant_relative", + "person_name", "rrid", "stimuli_relative", "time", diff --git a/src/schema/objects/formats.yaml b/src/schema/objects/formats.yaml index 145b8c3691..3dacf6d38d 100644 --- a/src/schema/objects/formats.yaml +++ b/src/schema/objects/formats.yaml @@ -112,6 +112,12 @@ participant_relative: without starting with "/" (an absolute path) or "sub/" (a relative path starting with the participant directory, rather than relative to that directory). pattern: '(?!/)(?!sub-)[0-9a-zA-Z+/_\-.]+' +person_name: + display_name: Name of a person + description: | + Name for a person in a single string with clear disambiguation of First (Given) and Last (Family) + name(s). Should follow `Last Names, First Names` convention. + pattern: '.+, .+' rrid: display_name: Research resource identifier description: | diff --git a/src/schema/objects/metadata.yaml b/src/schema/objects/metadata.yaml index e6567a57f5..9bc39e9bad 100644 --- a/src/schema/objects/metadata.yaml +++ b/src/schema/objects/metadata.yaml @@ -208,9 +208,12 @@ Authors: display_name: Authors description: | List of individuals who contributed to the creation/curation of the dataset. + It is RECOMMENDED to use `Last, First` form to ensure clear separation of + First (Given) from Last (Family) name(s). type: array items: type: string + format: person_name B0FieldIdentifier: name: B0FieldIdentifier display_name: B0 Field Identifier @@ -1325,6 +1328,7 @@ Format: - stimuli_relative # Miscellaneous - hed_version + - person_name FrameAcquisitionDuration: name: FrameAcquisitionDuration display_name: Frame Acquisition Duration diff --git a/tools/schemacode/src/bidsschematools/tests/test_schema.py b/tools/schemacode/src/bidsschematools/tests/test_schema.py index 0663cec898..9ba42ce048 100644 --- a/tools/schemacode/src/bidsschematools/tests/test_schema.py +++ b/tools/schemacode/src/bidsschematools/tests/test_schema.py @@ -107,6 +107,7 @@ def test_formats(schema_obj): "stimuli_relative": ["any/arbitrary/path/file.txt"], "dataset_relative": ["any/arbitrary/path/file.txt"], "participant_relative": ["any/arbitrary/path/file.txt"], + "person_name": ["Last, First", "Many Last, a Few Firsts"], "rrid": ["RRID:SCR_017398"], "uri": ["foo://example.com:8042/over/there?name=ferret#nose"], "bids_uri": [