diff --git a/config.yaml b/config.yaml index 02df53d..4799c44 100644 --- a/config.yaml +++ b/config.yaml @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/config_dfg_default.yaml b/config_dfg_default.yaml index b13033c..e34291a 100644 --- a/config_dfg_default.yaml +++ b/config_dfg_default.yaml @@ -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 diff --git a/templates/dfg-cp-survey-status.nunjucks.ttl b/templates/dfg-cp-survey-status.nunjucks.ttl new file mode 100644 index 0000000..e9ee47b --- /dev/null +++ b/templates/dfg-cp-survey-status.nunjucks.ttl @@ -0,0 +1,11 @@ +@prefix trr379dfgsurvey: . +@prefix rdf: . +@prefix trr379cps: . +@prefix dlthings: . +@prefix schema: . + +{% set dtNow = _ISO8601datetime() -%} +<{{ pid }}> dlthings:attributes _:n1-0. +_:n1-0 a dlthings:AttributeSpecification; + rdf:predicate schema:lastReviewed; + rdf:value "{{ dtNow }}". \ No newline at end of file