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

Draft
jsheunis wants to merge 5 commits from dfg-cps-2026 into main
5 changed files with 642 additions and 185 deletions

View file

@ -14,7 +14,7 @@ possible to specify namespaces in the prefixes section of a schema that should p
to the exported SHACL for downstream use. to the exported SHACL for downstream use.
--- shaclgen.py --- shaclgen.py
+++ shaclgen.py +++ shaclgen.py
@@ -30,6 +30,10 @@ class ShaclGenerator(Generator): @@ -98,6 +98,10 @@ class ShaclGenerator(Generator):
"""parameterized suffix to be appended. No suffix per default.""" """parameterized suffix to be appended. No suffix per default."""
include_annotations: bool = False include_annotations: bool = False
"""True means include all class / slot / type annotations in generated Node or Property shapes""" """True means include all class / slot / type annotations in generated Node or Property shapes"""
@ -24,30 +24,32 @@ to the exported SHACL for downstream use.
+ """True means include the unused prefixes that are typically stripped during rdflib graph serialization""" + """True means include the unused prefixes that are typically stripped during rdflib graph serialization"""
exclude_imports: bool = False exclude_imports: bool = False
"""If True, elements from imported ontologies won't be included in the generator's output""" """If True, elements from imported ontologies won't be included in the generator's output"""
generatorname = os.path.basename(__file__) use_class_uri_names: bool = True
@@ -53,6 +57,8 @@ class ShaclGenerator(Generator): @@ -196,7 +200,10 @@ class ShaclGenerator(Generator):
def serialize(self, **args) -> str: def serialize(self, **args) -> str:
g = self.as_graph() g = self.as_graph()
data = g.serialize(format="turtle" if self.format in ["owl", "ttl"] else self.format) fmt = "turtle" if self.format in ["owl", "ttl"] else self.format
- return canonicalize_rdf_graph(g, output_format=fmt)
+ data = canonicalize_rdf_graph(g, output_format=fmt)
+ if self.include_stripped_prefixes: + if self.include_stripped_prefixes:
+ data = self._add_stripped_prefixes(data) + data = self._add_stripped_prefixes(data)
return data + return data
def as_graph(self) -> Graph: def as_graph(self) -> Graph:
@@ -114,8 +120,6 @@ class ShaclGenerator(Generator): sv = self.schemaview
g.add((pnode, p, Literal(v))) @@ -270,8 +277,6 @@ class ShaclGenerator(Generator):
g.add((pnode, p, Literal(v, lang=self._resolve_language(s))))
prop_pv(SH.path, slot_uri) prop_pv(SH.path, slot_uri)
- prop_pv_literal(SH.order, order) - prop_pv_literal(SH.order, order)
- order += 1 - order += 1
prop_pv_literal(SH.name, s.title) prop_pv_text(SH.name, s.title)
prop_pv_literal(SH.description, s.description) prop_pv_text(SH.description, s.description)
# minCount
@@ -223,6 +227,18 @@ class ShaclGenerator(Generator): @@ -405,6 +410,17 @@ class ShaclGenerator(Generator):
default_value = ifabsent_processor.process_slot(s, c)
if default_value: if default_value:
prop_pv(SH.defaultValue, default_value) prop_pv(SH.defaultValue, default_value)
+
+ # Add the order automatically unless the --exclude-order flag was supplied + # Add the order automatically unless the --exclude-order flag was supplied
+ if not self.exclude_order: + if not self.exclude_order:
+ # sh:order may already have been added to the graph via annotations + # sh:order may already have been added to the graph via annotations
@ -58,15 +60,14 @@ to the exported SHACL for downstream use.
+ # sh:path may already have been added to the graph via annotations + # sh:path may already have been added to the graph via annotations
+ if not (pnode, SH.path, None) in g: + if not (pnode, SH.path, None) in g:
+ prop_pv(SH.path, slot_uri) + prop_pv(SH.path, slot_uri)
+ +
if self.emit_rules:
self._add_rules(g, class_uri_with_suffix, c)
return g @@ -845,6 +861,17 @@ class ShaclGenerator(Generator):
@@ -337,6 +353,17 @@ class ShaclGenerator(Generator):
Collection(g, list_node, list(ignored_properties))
return list_node return list_node
+
+ def _add_stripped_prefixes(self, data): + def _add_stripped_prefixes(self, data):
+ # First remove all prefix lines from data string + # First remove all prefix lines from data string
+ lines = [ln for ln in data.splitlines() if not ln.strip().startswith("@prefix")] + lines = [ln for ln in data.splitlines() if not ln.strip().startswith("@prefix")]
@ -77,10 +78,11 @@ to the exported SHACL for downstream use.
+ ] + ]
+ # return the new prefix lines joined with prefix-stripped data + # return the new prefix lines joined with prefix-stripped data
+ return "\n".join(prefix_lines + [""] + lines) + return "\n".join(prefix_lines + [""] + lines)
+
def add_simple_data_type(func: Callable, r: ElementName) -> None: def add_simple_data_type(func: Callable, r: ElementName) -> None:
@@ -366,6 +393,19 @@ def add_simple_data_type(func: Callable, r: ElementName) -> None: for datatype in list(ShaclDataType):
@@ -873,6 +900,19 @@ def add_simple_data_type(func: Callable, r: ElementName) -> None:
show_default=True, show_default=True,
help="Use --include-annotations to include annotations of slots, types, and classes in the generated SHACL shapes.", help="Use --include-annotations to include annotations of slots, types, and classes in the generated SHACL shapes.",
) )

View file

@ -7,7 +7,7 @@ name = "trr379-concepts"
version = "0.0.1" version = "0.0.1"
description = 'TRR379 metadata models' description = 'TRR379 metadata models'
readme = "README.md" readme = "README.md"
requires-python = ">=3.9" requires-python = ">=3.10"
license = "CC-BY-4.0" license = "CC-BY-4.0"
keywords = [ keywords = [
"schema", "schema",
@ -20,7 +20,7 @@ authors = [
{ name = "Michael Hanke", email = "michael.hanke@gmail.com" }, { name = "Michael Hanke", email = "michael.hanke@gmail.com" },
] ]
dependencies = [ dependencies = [
"linkml >= 1.11", "linkml @ git+https://github.com/linkml/linkml@b4c3261fddcad14f0221ba980f6e84f9d88eb873#subdirectory=packages/linkml",
"dump-things-service", "dump-things-service",
] ]
@ -61,3 +61,6 @@ extra-dependencies = [
[tool.hatch.envs.docs.scripts] [tool.hatch.envs.docs.scripts]
build = "make clean build/mkdocs-site" build = "make clean build/mkdocs-site"
serve = "make clean build/mkdocs-site && mkdocs serve" serve = "make clean build/mkdocs-site && mkdocs serve"
[tool.hatch.metadata]
allow-direct-references = true

575
src/dfg-cp-survey/2026.yaml Normal file
View file

@ -0,0 +1,575 @@
id: https://concepts.trr379.de/s/dfg-cp-survey
name: trr379-dfg-cp-survey
version: UNRELEASED
status: eunal:concept-status/DRAFT
title: Data models for the DFG Survey on Coordinated Programmes
description: |
More information may be available on the schema's [about page](about).
The schema definition is available as
- [JSON-LD context](../unreleased.context.jsonld)
- [LinkML YAML](../unreleased.yaml)
- [OWL TTL](../unreleased.owl.ttl)
- [SHACL TTL](../unreleased.shacl.ttl)
comments:
- ALL CONTENT HERE IS UNRELEASED AND MAY CHANGE ANY TIME
license: CC-BY-4.0
prefixes:
ADMS: http://www.w3.org/ns/adms#
dash: http://datashapes.org/dash#
dcterms: http://purl.org/dc/terms/
dlschemas: https://concepts.datalad.org/s/
dlthings: https://concepts.datalad.org/s/things/v2/
dlvocab: https://concepts.datalad.org/vocab/
# declare a namespace for emails, such that they can be defined as a curie
# e.g.: email:me@example.org
# -> https://concepts.datalad.org/ns/email/me@example.org
email: https://concepts.datalad.org/ns/email/
eunal: http://publications.europa.eu/resource/authority/
geodata: http://sws.geonames.org/
hfs: https://w3id.org/kim/hochschulfaechersystematik/
trr379: https://trr379.de/ns/
trr379cps: https://concepts.trr379.de/s/dfg-cp-survey/unreleased/
trr379dfgsurvey: https://trr379.de/ns/dfg-cp-survey/
trr379root: https://trr379.de/
trr379schemas: https://concepts.trr379.de/s/
linkml: https://w3id.org/linkml/
obo: http://purl.obolibrary.org/obo/
orcid: https://orcid.org/
owl: http://www.w3.org/2002/07/owl#
prov: http://www.w3.org/ns/prov#
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
rdfs: http://www.w3.org/2000/01/rdf-schema#
ror: https://ror.org/
sh: http://www.w3.org/ns/shacl#
sio: http://semanticscience.org/resource/
skos: http://www.w3.org/2004/02/skos/core#
spdx: http://spdx.org/rdf/terms#
vcard: http://www.w3.org/2006/vcard/ns#
w3ctr: https://www.w3.org/TR/
xsd: http://www.w3.org/2001/XMLSchema#
default_prefix: trr379cps
emit_prefixes:
- dlthings
- trr379root
- trr379
- trr379cps
- trr379dfgsurvey
- rdf
- rdfs
- skos
- xsd
imports:
- dlschemas:things/v2
- dlschemas:things-properties/v1
- dlschemas:things-social/v1
enums:
PromotionStatusClassification:
description: >-
Distinguished states of a doctoral project.
permissible_values:
ongoing:
description: >-
Ongoing doctoral work, dissertation not (yet) submitted
"dissertation submitted":
description: >-
Dissertation submitted, oral examination pending
"defense passed":
description: >-
Dissertation submitted and oral examination, defense, disputation (etc) passed
discontinued:
description: >-
Doctoral work discontinued
"unknown/not specified":
description: >-
Unknown or not specified
DegreeTypeClassification:
description: >-
Distinguished types of a doctorate-qualifying degree.
permissible_values:
"fast track (bachelor)":
description: >-
Accepted to the doctoral programme as a graduate of a bachelor programme (Fast Track)
"master":
description: >-
Master or similar degree (e.g., state examination, diploma)
ParticipationFundingClassification:
description: >-
Distinguished funding types.
permissible_values:
"unknown (inquiry pending)":
description: >-
None
"no consortium-funding":
description: >-
None
"less than 50% consortium-funding":
description: >-
Less than 50%
"50% or more consortium-funding":
description: >-
More than 50%
ConsentClassifcation:
description: >-
Distinguished consent responses.
permissible_values:
"yes":
description: >-
Consent given
"no":
description: >-
No consent given
slots:
emails:
title: Email(s)
description: >-
Associated email address.
range: EmailAddress
multivalued: true
orcid:
title: ORCID
description: >-
ORCID identifier of a person (see https://orcid.org).
range: string
pattern: '^\d{4}-\d{4}-\d{4}-\d{3}[0-9X]{1}$'
status_group:
title: Current status group
description: >-
Status group a person is currently a member of. If multiple groups
qualify, the most specific should be selected.
range: StatusGroup
promotion_start_date:
title: Doctoral project start date
description: >-
Estimated date on which doctoral work began.
range: W3CISO8601
degree_date:
title: Date received
description: >-
Date when the qualifying degree was received.
range: W3CISO8601
degree_institution:
title: Degree granting institution
description: >-
Institution that granted the degree that qualifies a person for a doctorate.
dissertation_submission_date:
title: Dissertation submission date
description: >-
Date when the dissertation was submitted.
range: W3CISO8601
oral_exam_date:
title: Date of a passed oral examination
description: >-
Date of a successfully concluded dissertation defense, disputation, rigorosum, or similar.
range: W3CISO8601
promotion_status:
title: "For (previous) doctoral researchers: Doctoral project status"
description: >-
Current status of the doctoral project. Only for current doctoral
researchers or former doctoral researchers who defended their dissertation
after a previous survey.
range: PromotionStatus
degree_type:
title: Type of degree
description: >-
Type of degree that qualifies a person for a doctorate.
range: DegreeTypeClassification
consortium_participation:
title: Consortium participation
description: >-
Information on a person's nature of participation in the consortium.
If a person participated with more than one type of funding, multiple
records should be provided, one for each funding type.
If a person changed the status group (e.g. from doctoral researcher
to postdoctoral researcher), separate records should cover
funding type and period of time for each status group.
Participation without consortium-funding should also be listed. No
funding means that a person is/was involved in the consortium
during the specified period, but is/was NOT funded with DFG project
funds of the consortium.
range: ConsortiumParticipation
multivalued: true
inlined: true
inlined_as_list: true
participation_start_date:
title: Start date
description: >-
Start of this participation in the consortium.
range: W3CISO8601
participation_end_date:
title: End date
description: >-
End of this participation in the consortium.
range: W3CISO8601
participation_funding:
title: Funding
description: >-
The amount of funding provided by the consortium for this participation.
range: ParticipationFundingClassification
participation_project:
title: Project(s)
description: >-
The consortium projects that this participation was associated with.
range: ConsortiumProject
multivalued: true
gender:
title: Gender
description: >-
Gender as distinguished by the DFG
range: Gender
birth_year:
title: Birth year
description: >-
Year a person was born
range: W3CISO8601
nationality:
title: Nationality
description: >-
Country in which a person holds citizenship
range: Country
discipline:
title: Area of study/teaching
description: >-
The area of study and teaching in which you are primarily active.
range: Discipline
prior_country:
title: Work place prior start
description: >-
Country in which a person worked prior to beginning a participation
in the consortium
range: Country
primary_affiliation:
title: Primary affiliation
description: >-
The institution at which a person is working. The institution should
be stated as specifically as possible, but without department-level
detail.
other_affiliations:
title: Additional affiliation(s)
description: >-
Affiliations in addition to the primary affiliation
multivalued: true
promotion_qualifying_degree:
title: "For non-medical doctoral researchers: Promotion qualifying degree"
description: >-
Information on the university degree that qualifies the person for a doctorate.
Only to be provided for non-medical doctoral researchers.
range: PromotionQualifyingDegree
role:
title: Role (required for other scientifically engaged personnel)
description: >-
Function in project. Only for the "other scientifically engaged personnel"
status group.
range: Role
publication_consent:
title: Consent to use data subset for website profile page
description: >-
Consent can be given to use a subset of this information
for creating or updating a profile page on the consortium
website. The subset is family/given/additional names with
prefixes and suffixes, ORCID identifier, affiliations,
and consortium participation records (start, end, and
project association).
range: ConsentClassifcation
person_identity_consent:
title: Consent to use name/ORCID in other consortium services
description: >-
Consent can be given to use a minimal person record
(family/given/additional names with prefixes and suffixes,
plus any ORCID identifier) in other consortium services,
such as a publication reporting, or data annotation tool.
If consent is given, this information can be readily provided,
and need not be entered repeatedly.
range: ConsentClassifcation
record_retention_consent:
title: Consent to store record for next year's survey
description: >-
Consent can be given to store the entire record for next year's
survey, such that no information has to be re-entered.
If no consent it given, the record is deleted once this
year's survey has been completed. Note that the DFG will
retain all information submitted to them.
range: ConsentClassifcation
classes:
Gender:
is_a: Thing
description: >-
Fixed set of gender categories of a person, as defined and
distinguished by the DFG.
slots:
- name
slot_usage:
name:
required: true
slot_uri: dlthings:name
display_label:
recommended: true
exact_mappings:
- obo:NCIT_C17357
Contributor:
is_a: Person
# we want to keep the display title to retain compatibility with
# existing documentation
title: Person
description: >-
A person that contributes to, or is associated with TRR379 in some
form or function.
slots:
- birth_year
- consortium_participation
- discipline
- emails
- gender
- orcid
- nationality
- prior_country
- primary_affiliation
- other_affiliations
- promotion_qualifying_degree
- promotion_status
- publication_consent
- person_identity_consent
- record_retention_consent
slot_usage:
family_name:
required: true
slot_uri: dlthings:family_name
given_name:
required: true
slot_uri: dlthings:given_name
gender:
required: true
birth_year:
required: true
nationality:
required: true
multivalued: true
discipline:
required: true
prior_country:
required: true
emails:
recommended: true
orcid:
recommended: true
primary_affiliation:
required: true
range: DSCOrganization
other_affiliations:
range: DSCOrganization
consortium_participation:
required: true
publication_consent:
required: true
person_identity_consent:
required: true
record_retention_consent:
required: true
DSCOrganization:
is_a: Organization
title: Organization
description: >-
A social or legal institution such as a company, a society,
or a university.
slot_usage:
name:
required: true
slot_uri: dlthings:name
at_location:
required: true
slot_uri: dlthings:at_location
range: City
part_of:
range: DSCOrganization
slot_uri: dlthings:part_of
display_label:
recommended: true
ConsortiumProject:
is_a: Project
title: Project
description: >-
TRR379 projects, as formally defined in the grant application
and by the management board.
See https://www.trr379.de/projects
City:
is_a: Thing
description: >-
Incorporated populated place.
slots:
- name
- at_location
slot_usage:
name:
required: true
slot_uri: dlthings:name
at_location:
required: true
title: Country
range: Country
slot_uri: dlthings:at_location
display_label:
recommended: true
exact_mappings:
- obo:ENVO_00000856
Country:
is_a: Thing
description: >-
A political association with effective dominion over a geographic area.
slots:
- name
slot_usage:
name:
required: true
slot_uri: dlthings:name
display_label:
recommended: true
exact_mappings:
- obo:ENVO_00000009
StatusGroup:
is_a: Thing
description: >-
Fixed set of personnel status groups, as defined and distinguished
by the DFG.
slots:
- name
slot_usage:
name:
required: true
slot_uri: dlthings:name
display_label:
recommended: true
broad_mappings:
- vcard:Group
Discipline:
is_a: Thing
description: >-
Fixed set of teaching and research fields and subject areas, as
defined by the Federal Statistical Office of Germany
(https://www.destatis.de), including "Fächergruppen", "Lehr- und
Forschungsbereiche" and "Fachgebiete".
slots:
- name
- part_of
- parts
# TODO
#- dfg_code, ideally as an IssuedIdentifier
slot_usage:
name:
required: true
slot_uri: dlthings:name
part_of:
range: Discipline
slot_uri: dlthings:part_of
parts:
range: Discipline
slot_uri: dlthings:parts
display_label:
recommended: true
exact_mappings:
- obo:GSSO_002345
PromotionQualifyingDegree:
description: >-
Information items on the degree that qualifies a person for working towards a
doctoral degree.
slots:
- degree_type
- degree_date
- degree_institution
slot_usage:
degree_type:
required: true
degree_date:
required: true
degree_institution:
required: true
range: DSCOrganization
PromotionStatus:
description: >-
Information items on the process to receiving a doctoral degree.
slots:
- promotion_start_date
- dissertation_submission_date
- oral_exam_date
ConsortiumParticipation:
description: >-
Information on the nature of a person's participation in the consortium.
slots:
- status_group
- participation_funding
- participation_start_date
- participation_end_date
- participation_project
- role
slot_usage:
participation_start_date:
required: true
participation_funding:
required: true
status_group:
required: true
Role:
is_a: Thing
description: >-
Function in a project for persons classified as
"other scientifically engaged personnel" regarding their status group.
slots:
- name
slot_usage:
name:
required: true
slot_uri: dlthings:name
display_label:
recommended: true

View file

@ -22,16 +22,9 @@ 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/
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,45 +56,20 @@ prefixes:
default_prefix: trr379cps default_prefix: trr379cps
emit_prefixes: emit_prefixes:
- dlcommonmx
- dlflat
- dlflatsocial
- dlidentifiers
- dlsocialmx
- dlspatialmx
- dlthings - dlthings
- dltypes
- trr379root - trr379root
- trr379 - trr379
- trr379cps - trr379cps
- trr379dfgsurvey
- rdf - rdf
- rdfs - rdfs
- skos - skos
- xsd - xsd
imports: imports:
- dlschemas:flat-social/unreleased - dlschemas:things/v2
- dlschemas:things-properties/v1
- dlschemas:things-social/v1
types:
YYYY:
# gen-shacl doesn't work without this
uri: trr379cps:YYYY
base: str
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:
@ -148,7 +116,7 @@ enums:
"less than 50% consortium-funding": "less than 50% consortium-funding":
description: >- description: >-
Less than 50% Less than 50%
"more than 50% consortium-funding": "50% or more consortium-funding":
description: >- description: >-
More than 50% More than 50%
@ -190,13 +158,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 +175,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 +219,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 +250,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 +291,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 +334,7 @@ slots:
classes: classes:
Gender: Gender:
is_a: FlatThing is_a: Thing
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 +343,7 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
sh:order: 1
display_label: display_label:
recommended: true recommended: true
exact_mappings: exact_mappings:
@ -408,81 +376,38 @@ classes:
slot_usage: slot_usage:
family_name: family_name:
required: true required: true
annotations: slot_uri: dlthings:family_name
sh:order: 1
given_name: given_name:
required: true required: true
annotations: slot_uri: dlthings:given_name
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
@ -493,24 +418,16 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
sh:order: 1
short_name:
annotations:
sh:order: 2
at_location: at_location:
required: true required: true
slot_uri: dlthings:at_location
range: City range: City
annotations:
sh:order: 3
part_of: part_of:
range: DSCOrganization range: DSCOrganization
annotations: slot_uri: dlthings:part_of
sh:order: 4
display_label: display_label:
recommended: true recommended: true
annotations:
sh:order: 5
ConsortiumProject: ConsortiumProject:
is_a: Project is_a: Project
@ -521,7 +438,7 @@ classes:
See https://www.trr379.de/projects See https://www.trr379.de/projects
City: City:
is_a: FlatThing is_a: Thing
description: >- description: >-
Incorporated populated place. Incorporated populated place.
slots: slots:
@ -530,21 +447,19 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
sh:order: 1
at_location: at_location:
required: true required: true
title: Country title: Country
range: Country range: Country
annotations: slot_uri: dlthings:at_location
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
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 +467,14 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
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
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,19 +483,19 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
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
description: >- description: >-
Fixed set of knowledge and study branches, as defined by the Federal Fixed set of teaching and research fields and subject areas, as
Statistical Office of Germany (https://www.destatis.de), defined by the Federal Statistical Office of Germany
including "Fächergruppen", "Studienbereiche", and "Studienfächer". (https://www.destatis.de), including "Fächergruppen", "Lehr- und
Forschungsbereiche" and "Fachgebiete".
slots: slots:
- name - name
- part_of - part_of
@ -591,20 +505,15 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
sh:order: 1
part_of: part_of:
range: Discipline range: Discipline
annotations: slot_uri: dlthings:part_of
sh:order: 2
parts: parts:
range: Discipline range: Discipline
annotations: slot_uri: dlthings:parts
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 +528,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 +541,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 +555,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 +570,6 @@ classes:
slot_usage: slot_usage:
name: name:
required: true required: true
annotations: slot_uri: dlthings:name
sh:order: 1
display_label: display_label:
recommended: true recommended: true