wip: First attempt at dfg-cp-survey schema update to use things/v2, prov mixins #9

Draft
jsheunis wants to merge 1 commit from dfg-cps-2026 into main

View file

@ -22,16 +22,10 @@ prefixes:
ADMS: http://www.w3.org/ns/adms# ADMS: http://www.w3.org/ns/adms#
dash: http://datashapes.org/dash# dash: http://datashapes.org/dash#
dcterms: http://purl.org/dc/terms/ dcterms: http://purl.org/dc/terms/
dlcommonmx: https://concepts.datalad.org/s/common-mixin/unreleased/ dldi: https://pid.datalad.org/distributions/
dlflat: https://concepts.datalad.org/s/flat/unreleased/
dlflatsocial: https://concepts.datalad.org/s/flat-social/unreleased/
dlidentifiers: https://concepts.datalad.org/s/identifiers/unreleased/
dlrelationsmx: https://concepts.datalad.org/s/relations-mixin/unreleased/
dlschemas: https://concepts.datalad.org/s/ dlschemas: https://concepts.datalad.org/s/
dlsocialmx: https://concepts.datalad.org/s/social-mixin/unreleased/ dlthings: https://concepts.datalad.org/s/things/v2/
dlspatialmx: https://concepts.datalad.org/s/spatial-mixin/unreleased/ dlvocab: https://concepts.datalad.org/vocab/
dlthings: https://concepts.datalad.org/s/things/v1/
dltypes: https://concepts.datalad.org/s/types/v1/
# declare a namespace for emails, such that they can be defined as a curie # declare a namespace for emails, such that they can be defined as a curie
# e.g.: email:me@example.org # e.g.: email:me@example.org
# -> https://concepts.datalad.org/ns/email/me@example.org # -> https://concepts.datalad.org/ns/email/me@example.org
@ -63,14 +57,8 @@ prefixes:
default_prefix: trr379cps default_prefix: trr379cps
emit_prefixes: emit_prefixes:
- dlcommonmx - dldi
- dlflat
- dlflatsocial
- dlidentifiers
- dlsocialmx
- dlspatialmx
- dlthings - dlthings
- dltypes
- trr379root - trr379root
- trr379 - trr379
- trr379cps - trr379cps
@ -80,28 +68,14 @@ emit_prefixes:
- xsd - xsd
imports: imports:
- dlschemas:flat-social/unreleased - dlschemas:things-data/v1
- dlschemas:things-files/v1
- dlschemas:things-publications/v1
types: - dlschemas:things-resources/v1
YYYY: - dlschemas:things-prov/v1
# gen-shacl doesn't work without this - dlschemas:things-social/v1
uri: trr379cps:YYYY - dlschemas:things-study/v1
base: str - dlschemas:things-rules/v1
typeof: string
description:
W3C variant/subset of IS08601 for specifying a year using a four-digit string
pattern: '^\d{4}$'
YYYYMM:
# gen-shacl doesn't work without this
uri: trr379cps:YYYYMM
base: str
typeof: string
description:
W3C variant/subset of IS08601 for specifying a month in a particular year
as a YYYY-MM string (eg 1997-07)
pattern: '^(\d{4}-[01]\d)$'
enums: enums:
PromotionStatusClassification: PromotionStatusClassification:
@ -190,13 +164,13 @@ slots:
title: Doctoral project start date title: Doctoral project start date
description: >- description: >-
Estimated date on which doctoral work began. Estimated date on which doctoral work began.
range: YYYYMM range: W3CISO8601
degree_date: degree_date:
title: Date received title: Date received
description: >- description: >-
Date when the qualifying degree was received. Date when the qualifying degree was received.
range: YYYYMM range: W3CISO8601
degree_institution: degree_institution:
title: Degree granting institution title: Degree granting institution
@ -207,13 +181,13 @@ slots:
title: Dissertation submission date title: Dissertation submission date
description: >- description: >-
Date when the dissertation was submitted. Date when the dissertation was submitted.
range: YYYYMM range: W3CISO8601
oral_exam_date: oral_exam_date:
title: Date of a passed oral examination title: Date of a passed oral examination
description: >- description: >-
Date of a successfully concluded dissertation defense, disputation, rigorosum, or similar. Date of a successfully concluded dissertation defense, disputation, rigorosum, or similar.
range: YYYYMM range: W3CISO8601
promotion_status: promotion_status:
title: "For (previous) doctoral researchers: Doctoral project status" title: "For (previous) doctoral researchers: Doctoral project status"
@ -251,13 +225,13 @@ slots:
title: Start date title: Start date
description: >- description: >-
Start of this participation in the consortium. Start of this participation in the consortium.
range: YYYYMM range: W3CISO8601
participation_end_date: participation_end_date:
title: End date title: End date
description: >- description: >-
End of this participation in the consortium. End of this participation in the consortium.
range: YYYYMM range: W3CISO8601
participation_funding: participation_funding:
title: Funding title: Funding
@ -282,7 +256,7 @@ slots:
title: Birth year title: Birth year
description: >- description: >-
Year a person was born Year a person was born
range: YYYY range: W3CISO8601
nationality: nationality:
title: Nationality title: Nationality
@ -323,6 +297,7 @@ slots:
Only to be provided for non-medical doctoral researchers. Only to be provided for non-medical doctoral researchers.
range: PromotionQualifyingDegree range: PromotionQualifyingDegree
role: role:
title: Role (required for other scientifically engaged personnel) title: Role (required for other scientifically engaged personnel)
description: >- description: >-
@ -365,7 +340,9 @@ slots:
classes: classes:
Gender: Gender:
is_a: FlatThing is_a: Thing
mixins:
- EntityMixin
description: >- description: >-
Fixed set of gender categories of a person, as defined and Fixed set of gender categories of a person, as defined and
distinguished by the DFG. distinguished by the DFG.
@ -374,8 +351,6 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
display_label: display_label:
recommended: true recommended: true
exact_mappings: exact_mappings:
@ -383,6 +358,8 @@ classes:
Contributor: Contributor:
is_a: Person is_a: Person
mixins:
- AgentMixin
# we want to keep the display title to retain compatibility with # we want to keep the display title to retain compatibility with
# existing documentation # existing documentation
title: Person title: Person
@ -408,84 +385,41 @@ classes:
slot_usage: slot_usage:
family_name: family_name:
required: true required: true
annotations:
sh:order: 1
given_name: given_name:
required: true required: true
annotations:
sh:order: 2
additional_names:
annotations:
sh:order: 3
honorific_name_prefix:
annotations:
sh:order: 4
honorific_name_suffix:
annotations:
sh:order: 5
gender: gender:
required: true required: true
annotations:
sh:order: 6
birth_year: birth_year:
required: true required: true
annotations:
sh:order: 7
nationality: nationality:
required: true required: true
multivalued: true multivalued: true
annotations:
sh:order: 8
discipline: discipline:
required: true required: true
annotations:
sh:order: 8
prior_country: prior_country:
required: true required: true
annotations:
sh:order: 9
emails: emails:
recommended: true recommended: true
annotations:
sh:order: 10
orcid: orcid:
recommended: true recommended: true
annotations:
sh:order: 11
primary_affiliation: primary_affiliation:
required: true required: true
range: DSCOrganization range: DSCOrganization
annotations:
sh:order: 12
other_affiliations: other_affiliations:
range: DSCOrganization range: DSCOrganization
annotations:
sh:order: 13
consortium_participation: consortium_participation:
required: true required: true
annotations:
sh:order: 14
promotion_qualifying_degree:
annotations:
sh:order: 15
promotion_status:
annotations:
sh:order: 16
publication_consent: publication_consent:
required: true required: true
annotations:
sh:order: 17
person_identity_consent: person_identity_consent:
required: true required: true
annotations:
sh:order: 18
record_retention_consent: record_retention_consent:
required: true required: true
annotations:
sh:order: 19
DSCOrganization: DSCOrganization:
is_a: Organization is_a: Organization
mixins:
- AgentMixin
title: Organization title: Organization
description: >- description: >-
A social or legal institution such as a company, a society, A social or legal institution such as a company, a society,
@ -493,27 +427,18 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
short_name:
annotations:
sh:order: 2
at_location: at_location:
required: true required: true
range: City range: City
annotations:
sh:order: 3
part_of: part_of:
range: DSCOrganization range: DSCOrganization
annotations:
sh:order: 4
display_label: display_label:
recommended: true recommended: true
annotations:
sh:order: 5
ConsortiumProject: ConsortiumProject:
is_a: Project is_a: Project
mixins:
- ActivityMixin
title: Project title: Project
description: >- description: >-
TRR379 projects, as formally defined in the grant application TRR379 projects, as formally defined in the grant application
@ -521,7 +446,9 @@ classes:
See https://www.trr379.de/projects See https://www.trr379.de/projects
City: City:
is_a: FlatThing is_a: Thing
mixins:
- EntityMixin
description: >- description: >-
Incorporated populated place. Incorporated populated place.
slots: slots:
@ -530,21 +457,19 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
at_location: at_location:
required: true required: true
title: Country title: Country
range: Country range: Country
annotations:
sh:order: 2
display_label: display_label:
recommended: true recommended: true
exact_mappings: exact_mappings:
- obo:ENVO_00000856 - obo:ENVO_00000856
Country: Country:
is_a: FlatThing is_a: Thing
mixins:
- EntityMixin
description: >- description: >-
A political association with effective dominion over a geographic area. A political association with effective dominion over a geographic area.
slots: slots:
@ -552,15 +477,15 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
display_label: display_label:
recommended: true recommended: true
exact_mappings: exact_mappings:
- obo:ENVO_00000009 - obo:ENVO_00000009
StatusGroup: StatusGroup:
is_a: FlatThing is_a: Thing
mixins:
- EntityMixin
description: >- description: >-
Fixed set of personnel status groups, as defined and distinguished Fixed set of personnel status groups, as defined and distinguished
by the DFG. by the DFG.
@ -569,15 +494,15 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
display_label: display_label:
recommended: true recommended: true
broad_mappings: broad_mappings:
- vcard:Group - vcard:Group
Discipline: Discipline:
is_a: FlatThing is_a: Thing
mixins:
- EntityMixin
description: >- description: >-
Fixed set of knowledge and study branches, as defined by the Federal Fixed set of knowledge and study branches, as defined by the Federal
Statistical Office of Germany (https://www.destatis.de), Statistical Office of Germany (https://www.destatis.de),
@ -591,20 +516,12 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
part_of: part_of:
range: Discipline range: Discipline
annotations:
sh:order: 2
parts: parts:
range: Discipline range: Discipline
annotations:
sh:order: 3
display_label: display_label:
recommended: true recommended: true
annotations:
sh:order: 4
exact_mappings: exact_mappings:
- obo:GSSO_002345 - obo:GSSO_002345
@ -619,17 +536,11 @@ classes:
slot_usage: slot_usage:
degree_type: degree_type:
required: true required: true
annotations:
sh:order: 1
degree_date: degree_date:
required: true required: true
annotations:
sh:order: 2
degree_institution: degree_institution:
required: true required: true
range: DSCOrganization range: DSCOrganization
annotations:
sh:order: 3
PromotionStatus: PromotionStatus:
description: >- description: >-
@ -638,16 +549,6 @@ classes:
- promotion_start_date - promotion_start_date
- dissertation_submission_date - dissertation_submission_date
- oral_exam_date - oral_exam_date
slot_usage:
promotion_start_date:
annotations:
sh:order: 1
dissertation_submission_date:
annotations:
sh:order: 2
oral_exam_date:
annotations:
sh:order: 3
ConsortiumParticipation: ConsortiumParticipation:
description: >- description: >-
@ -662,28 +563,13 @@ classes:
slot_usage: slot_usage:
participation_start_date: participation_start_date:
required: true required: true
annotations:
sh:order: 1
participation_funding: participation_funding:
required: true required: true
annotations:
sh:order: 2
status_group: status_group:
required: true required: true
annotations:
sh:order: 3
participation_project:
annotations:
sh:order: 4
role:
annotations:
sh:order: 5
participation_end_date:
annotations:
sh:order: 6
Role: Role:
is_a: FlatThing is_a: Thing
description: >- description: >-
Function in a project for persons classified as Function in a project for persons classified as
"other scientifically engaged personnel" regarding their status group. "other scientifically engaged personnel" regarding their status group.
@ -692,7 +578,5 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations:
sh:order: 1
display_label: display_label:
recommended: true recommended: true