wip:: config changes accompanying 2026 upgrade of dfg-cp-survey schema #20

Draft
jsheunis wants to merge 3 commits from dfg-cps-2026 into main
3 changed files with 143 additions and 184 deletions

View file

@ -22,8 +22,8 @@ content:
url: https://hub.psychoinformatics.de/datalink/assets/raw/branch/main/shacl-vue/DOI_logo_24.svg
orcid-logo:
url: https://hub.psychoinformatics.de/datalink/assets/raw/branch/main/shacl-vue/orcid_logo_24.svg
# dfg-survey-template:
# url: templates/...
dfg-survey-status-template:
url: templates/dfg-cp-survey-status.nunjucks.ttl
# --------------
# Theme settings
@ -54,6 +54,8 @@ component_config:
NodeShapeViewer:
recordNumberStepSize: 5
textTruncateWidth: '85%'
showBlankNodes:
- trr379cps:Contributor
hideBackLinks: true
specialButtons:
ORCID:
@ -100,29 +102,16 @@ filter_records_by:
- dlthings:short_name
id_resolves_externally:
- trr379root
# show_classes:
# - dlthings:AnnotationTag
# - dlthings:Convention
# must list the next to get all identifiers to show
# - dlthings:Identifier
# - dlthings:DOI
# - dlthings:ISSN
# - dlthings:ORCID
# - dlthings:Rule
# - dlthings:Property
# priority_classes:
# - class: dlthings:Thing
# icon: mdi-view-list
# title: All
# include_subclasses: true
allow_manual_pid_entry: false
# -----------------------
# Service API integration
# -----------------------
service_base_url:
- url: https://dfg-cp-survey.trr379.de/api/2025-protected/
- url: https://dfg-cp-survey.trr379.de/api/2026-protected/
type: write
- url: https://dfg-cp-survey.trr379.de/api/2025-public/
- url: https://dfg-cp-survey.trr379.de/api/2026-public/
type: read
token_info: Survey participants received an access link/token via email. Please see the documentation for more information and contact details for requesting an access token
token_info_url: https://docs.trr379.de/howtos/dfg-survey/index.html
@ -156,90 +145,38 @@ gitannex_p2phttp_config_wizard:
# -------
# Wizards
# -------
# wizard_editors:
# DFGSurveyWizard:
# name: DFG Survey Wizard
# tooltip: Complete the annual DFG CP Survey
# icon: mdi-clipboard-edit-outline
# description: >-
# You are a member of a Coordinated Programme (Collaborative Research Centre/CRC,
# Research Training Group/RTG, Research Impulses) funded by the Deutsche
# Forschungsgemeinschaft (DFG, German Research Foundation). For the purpose of reporting
# on these programmes, the DFG gathers information on the funded projects on an annual basis.
# The data is used to produce statistical reports and provide answers to statistical queries. In addition,
# the data serves as the basis for statistical evaluations, which the DFG uses to comply with its
# reporting obligations to financial backers, the federal government and the state governments.
# Please refer to the information on data protection in relation to DFG research funding (see Research
# Funding point IV, under point 10), which you can access at www.dfg.de/privacy_policy. If
# appropriate, please share this information with individuals whose data is processed by the DFG due
# to the fact that they are involved in your project
# component: dfgcps:DFGSurvey
# inputs:
# - prop: family_name
# name: Family name
# description: The (inherited) family name of the subject. In many Western languages this is the "last name"
# type: text
# required: true
# - prop: given_name
# name: Given name
# description: The given (non-inherited) name of the subject
# type: text
# required: true
# - prop: gender
# name: Gender
# description: Gender as distinguished by the DFG
# type: select
# required: true
# - prop: birth_year
# name: Birth year
# description: Year a person was born
# type: text
# required: true
# - prop: nationality
# name: Nationality
# description: Country in which a person holds citizenship
# type: select
# multi_valued: true
# required: true
# - prop: prior_country
# name: Work place prior start
# description: Country in which a person worked prior to beginning a participation in the consortium
# type: select
# required: true
# - prop: discipline
# name: Area of study/teaching
# description: The area of study and teaching in which you are primarily active
# type: select
# required: true
# - prop: consortium_participation
# name: 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.
# type: object
# required: true
# multi_valued: true
# # inputs:
# - prop: primary_affiliation
# name: 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.
# type: select
# required: true
# - prop: publication_consent
# name: 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).
# type: select
# required: true
# - prop: person_identity_consent
# name: 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.
# type: select
# required: true
# - prop: record_retention_consent
# name: 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.
# type: select
# required: true
# template: content:dfg-survey-template
# wizard_editor_selection:
# trr379cps:Contributor:
# _class:
# - DFGSurveyWizard
wizard_editors:
DFGSurveySameWizard:
name: Confirm unchanged submission?
tooltip: Nothing changed? Confirm here!
icon: mdi-clipboard-check-multiple-outline
description: >-
If you submitted the DFG CP Survey in 2025 and all of your survey data remain unchanged for 2026,
please press ***Confirm*** below, and then submit your `Person` record.
submit_label: Confirm
template: content:dfg-survey-status-template
wizard_editor_selection:
trr379cps:Contributor:
_record_view:
- DFGSurveySameWizard
oidc:
- name: TRR379 hub
base_url: https://hub.trr379.de
auth_endpoint: login/oauth/authorize
token_endpoint: login/oauth/access_token
client_id: 3ade7525-d19c-4b3e-8f2d-f76a77e5c644
redirect_uri: https://dfg-cp-survey.trr379.de/ui/auth/oidc-callback.html
response_type: code
code_challenge_method: S256
grant_type: authorization_code
# -------------
# Update shapes
#--------------
update_shapes_default:
_all_property_shapes:
dlthings:pid:
sh:minCount: 1

View file

@ -22,9 +22,9 @@
# --------------------------
# Application inputs sources
# --------------------------
class_url: https://concepts.trr379.de/s/dfg-cp-survey/2025.owl.ttl
class_url: https://concepts.trr379.de/s/dfg-cp-survey/2026.owl.ttl
data_url: ''
shapes_url: https://concepts.trr379.de/s/dfg-cp-survey/2025.shacl.ttl
shapes_url: https://concepts.trr379.de/s/dfg-cp-survey/2026.shacl.ttl
use_default_classes: false
use_default_data: false
use_default_shapes: false
@ -41,7 +41,7 @@ id_autogenerate:
trr379cps:Contributor: 'trr379dfgsurvey:contributor/{_randomUUID}'
trr379cps:DSCOrganization: 'trr379dfgsurvey:organization/{_randomUUID}'
id_autogenerate_override: true
id_iri: https://concepts.datalad.org/s/things/v1/pid
id_iri: https://concepts.datalad.org/s/things/v2/pid
id_resolves_externally:
- bibo
- doi
@ -58,7 +58,8 @@ id_resolves_externally:
- sio
- spdxlic
- trr379root
# prefixes:
prefixes:
trr379dfgsurvey: https://trr379.de/ns/dfg-cp-survey/
# ------------
# UI behaviour
@ -73,6 +74,7 @@ allow_edit_instances:
class_name_display: name
class_icons:
dlthings:Annotation: mdi-tag
dlthings:AnnotationTag: mdi-tag
trr379cps:City: mdi-city
trr379cps:ConsortiumParticipation: mdi-account-details
trr379cps:ConsortiumProject: mdi-briefcase
@ -123,11 +125,11 @@ display_name_autogenerate:
dlthings:Quotation: '{rdf:object}'
dlthings:Rule: '{dlthings:short_name}'
dlthings:Usage: '{rdf:object} ({dlthings:roles})'
trr379cps:City: '{dlcommonmx:name}'
trr379cps:Country: '{dlcommonmx:name}'
trr379cps:City: '{trr379cps:name}'
trr379cps:Country: '{trr379cps:name}'
trr379cps:ConsortiumParticipation: '{trr379cps:participation_start_date}-{trr379cps:participation_end_date} ({trr379cps:status_group})'
trr379cps:DSCOrganization: '{dlcommonmx:name}'
trr379cps:Contributor: '{dlsocialmx:given_name} {dlsocialmx:family_name}'
trr379cps:DSCOrganization: '{trr379cps:name}'
trr379cps:Contributor: '{trr379cps:given_name} {trr379cps:family_name}'
trr379cps:PromotionStatus: '{trr379cps:promotion_start_date}/{trr379cps:dissertation_submission_date}/{trr379cps:oral_exam_date}'
trr379cps:PromotionQualifyingDegree: '{trr379cps:degree_type}'
display_name_autogenerate_placeholder:
@ -155,7 +157,7 @@ no_edit_classes:
- trr379cps:Gender
- trr379cps:ConsortiumProject
- trr379cps:Role
- trr379cps:StatusGrou
- trr379cps:StatusGroup
show_all_fields: false
show_classes_with_prefix:
- trr379cps
@ -197,7 +199,9 @@ property_groups:
title: Identity
order: 1
# description: Add group heading tooltip information here
data:
title: Data
order: 3
personal_data:
title: Personal Data
order: 3
@ -254,11 +258,18 @@ update_shapes_default:
sh:order: 1
sh:group: identity
dlthings:identifier:
dcterms:identifier:
sh:order: 1.1
sh:group: identity
# data properties 10+
trr379cps:name:
sh:order: 10
sh:group: data
trr379cps:at_location:
sh:order: 11
sh:group: data
dlthings:title:
sh:order: 10
sh:group: data
@ -323,150 +334,146 @@ update_shapes_default:
# 100k+
## study
dlthings:factors:
sh:order: 100101
sh:order: 1100101
sh:group: study
dlthings:dimensions:
sh:order: 100102
sh:order: 1100102
sh:group: study
dlthings:study:
sh:order: 100103
sh:order: 1100103
sh:group: study
# distribution/file props
dlthings:byte_size:
sh:order: 100201
sh:order: 1100201
sh:group: distribution
dlthings:checksums:
sh:order: 100202
sh:order: 1100202
sh:group: distribution
dlthings:format:
sh:order: 100203
sh:order: 1100203
sh:group: distribution
dlthings:media_type:
sh:order: 100204
sh:order: 1100204
sh:group: distribution
# temporal
dlthings:at_time:
sh:order: 200101
sh:order: 1200101
sh:group: temporal
dlthings:started:
sh:order: 200102
sh:order: 1200102
sh:group: temporal
dlthings:ended:
sh:order: 200103
sh:order: 1200103
sh:group: temporal
# spatial
dlthings:at_location:
sh:order: 200204
sh:order: 1200204
sh:group: spatial
rdfs:isDefinedBy:
sh:order: 400101
sh:order: 1400101
sh:group: relations
dcterms:type:
sh:order: 400102
sh:order: 1400102
sh:group: relations
dcterms:subject:
sh:order: 400103
sh:order: 1400103
sh:group: relations
dlthings:depiction:
sh:order: 400104
sh:order: 1400104
sh:group: relations
obo:UO_0000000:
sh:order: 500101
sh:order: 1500101
sh:group: relations
rdfs:range:
sh:order: 500101
sh:order: 1500101
sh:group: relations
dlthings:part_of:
sh:order: 501101
sh:order: 1501101
sh:group: relations
dlthings:parts:
sh:order: 501102
sh:order: 1501102
sh:group: relations
dlthings:distribution_of:
sh:order: 501103
sh:order: 1501103
sh:group: relations
dlthings:distributions:
sh:order: 501104
sh:order: 1501104
sh:group: relations
dlthings:same_as:
sh:order: 600101
sh:order: 1600101
sh:group: relations
dlthings:alternate_of:
sh:order: 600102
sh:order: 1600102
sh:group: relations
dlthings:specialization_of:
sh:order: 600103
sh:order: 1600103
sh:group: relations
dlthings:conforms_to:
sh:order: 600104
sh:order: 1600104
sh:group: relations
dlthings:depends_on:
sh:order: 600105
sh:order: 1600105
sh:group: relations
dlthings:version_of:
sh:order: 600106
sh:order: 1600106
sh:group: relations
# PROV
dcterms:creator:
sh:order: 700101
sh:order: 1700101
sh:group: provenance
dlthings:associated_with:
sh:order: 701101
sh:order: 1701101
sh:group: provenance
dlthings:attributed_to:
sh:order: 701102
sh:order: 1701102
sh:group: provenance
dlthings:delegated_by:
sh:order: 701103
sh:order: 1701103
sh:group: provenance
dlthings:derived_from:
sh:order: 701104
sh:order: 1701104
sh:group: provenance
dlthings:generated_by:
sh:order: 701105
sh:order: 1701105
sh:group: provenance
dlthings:influenced_by:
sh:order: 701106
sh:order: 1701106
sh:group: provenance
dlthings:informed_by:
sh:order: 701107
sh:order: 1701107
sh:group: provenance
dlthings:invalidated_by:
sh:order: 701108
sh:order: 1701108
sh:group: provenance
dlthings:quoted_from:
sh:order: 701109
sh:order: 1701109
sh:group: provenance
dlthings:revision_of:
sh:order: 701110
sh:order: 1701110
sh:group: provenance
dlthings:used:
sh:order: 701111
sh:order: 1701111
sh:group: provenance
dcterms:identifier:
sh:order: 800101
sh:group: identity
# RDF/PROV foundamentals
dlthings:attributes:
sh:order: 900101
sh:order: 1900101
sh:group: fundamentals
dlthings:characterized_by:
sh:order: 900102
sh:order: 1900102
sh:group: fundamentals
rdf:predicate:
sh:order: 901101
sh:order: 1901101
sh:group: fundamentals
rdf:object:
sh:order: 901102
sh:order: 1901102
sh:group: fundamentals
# trr379ri:entity:
# sh:order: 901103
@ -474,48 +481,48 @@ update_shapes_default:
# roles (best listed after `object`)
dlthings:roles:
sh:order: 901201
sh:order: 1901201
sh:group: roles
# rules
dlthings:rules:
sh:order: 901301
sh:order: 1901301
sh:group: rules
# 1M+
skos:broadMatch:
sh:order: 1001001
sh:order: 11001001
sh:group: mappings
skos:exactMatch:
sh:order: 1001002
sh:order: 11001002
sh:group: mappings
skos:narrowMatch:
sh:order: 1001003
sh:order: 11001003
sh:group: mappings
skos:closeMatch:
sh:order: 1001004
sh:order: 11001004
sh:group: mappings
skos:relatedMatch:
sh:order: 1001005
sh:order: 11001005
sh:group: mappings
rdf:type:
sh:order: 1002001
sh:order: 11002001
skos:prefLabel:
sh:order: 1002002
sh:order: 11002002
skos:note:
sh:order: 1002003
sh:order: 11002003
dash:singleLine: false
skos:editorialNote:
sh:order: 1002004
sh:order: 11002004
dash:singleLine: false
dlthings:annotations:
sh:order: 1002001
sh:order: 11002001
dlthings:annotation_tag:
sh:order: 1002002
sh:order: 11002002
dlthings:annotation_value:
sh:order: 1002003
sh:order: 11002003
dash:singleLine: false
shaclvue:markdown: true
@ -528,19 +535,22 @@ update_shapes:
trr379cps:Contributor:
sh:property:
dlsocialmx:family_name:
trr379cps:family_name:
sh:order: 10
sh:group: personal_data
dlsocialmx:given_name:
trr379cps:given_name:
sh:order: 11
sh:group: personal_data
dlsocialmx:additional_names:
dlthings:additional_names:
sh:order: 12
sh:group: personal_data
dlsocialmx:honorific_name_prefix:
dlthings:formatted_name:
sh:order: 12.5
sh:group: personal_data
dlthings:honorific_name_prefix:
sh:order: 13
sh:group: personal_data
dlsocialmx:honorific_name_suffix:
dlthings:honorific_name_suffix:
sh:order: 14
sh:group: personal_data
trr379cps:emails:
@ -588,10 +598,11 @@ update_shapes:
trr379cps:record_retention_consent:
sh:order: 52
sh:group: consent
dlthings:description:
dcterms:description:
sh:order: 1000101.1
dash:singleLine: false
shaclvue:markdown: true
sh:group: fundamentals
dlthings:attributes:
sh:order: 1000101.2
sh:group: fundamentals

View file

@ -0,0 +1,11 @@
@prefix trr379dfgsurvey: <https://trr379.de/ns/dfg-cp-survey/>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix trr379cps: <https://concepts.trr379.de/s/dfg-cp-survey/2025/>.
@prefix dlthings: <https://concepts.datalad.org/s/things/v2/>.
@prefix schema: <https://schema.org/>.
{% set dtNow = _ISO8601datetime() -%}
<{{ pid }}> dlthings:attributes _:n1-0.
_:n1-0 a dlthings:AttributeSpecification;
rdf:predicate schema:lastReviewed;
rdf:value "{{ dtNow }}".