id: https://w3id.org/linkml/examples/personinfo
name: doi_schema
prefixes:
linkml: https://w3id.org/linkml/
crossref: https://data.crossref.org/reports/help/schema_doc/5.3.1/crossref5_3_1_xsd.html#
imports:
- linkml:types
default_range: string
version: 5.3.1
classes:
Conference:
attributes:
papers:
multivalued: true
range: Paper
contributors:
multivalued: true
range: Contributor
proceeding:
required: true
any_of:
- range: Proceeding
- range: ProceedingInSeries
event:
required: true
range: Event
Event:
attributes:
name:
range: string
required: true
theme:
range: string
examples:
- value: "Knowledge: Creation, Organization and Use"
acronym:
range: string
sponsor:
range: string
number:
range: string
location:
range: string
date:
range: date
Proceeding:
attributes:
title:
required: true
range: string
subject:
range: string
publisher:
multivalued: true
required: true
range: Publisher
publication_date:
required: true
range: date
isbn:
range: string
archive_locations:
multivalued: true
range: string
doi:
language:
range: string
ProceedingInSeries:
is_a: Proceeding
attributes:
volume:
range: string
required: true
series:
range: Series
Publisher:
attributes:
name:
required: true
range: string
id:
identifier: true
place:
range: string
Series:
attributes:
contributors:
multivalued: true
range: Contributor
title:
required: true
range: string
abstract:
range: string
issn:
required: true
range:
coden:
range: string
number:
range: string
publisher:
range: Publisher
archive_locations:
multivalued: true
range: string
doi:
crossmark:
range: Crossmark
fund_ref_program:
accommodates_deposit_license_program:
Paper:
attributes:
contributors:
multivalued: true
range: Contributor
title:
publication_date:
range: date
pages:
range: string
doi:
required: true
range: string
abstract:
range: string
publisher:
range: Publisher
crossmark:
range: Crossmark
fund_ref_program:
accommodates_deposit_license_program:
accommodates_deposit_clincal_trials_program:
relationships:
scn_policy_refs:
multivalued: true
archive_locations:
multivalued: true
range: string
citations:
multivalued: true
range: Citation
Citation:
attributes:
issn:
journal_title:
author:
range: string
volume:
issue:
first_page:
elocation_id:
cYear:
doi:
isbn:
series_title:
volume_title:
edition_number:
component_number:
article_title:
std_designator:
standards_body:
unstructured_citation:
key:
required: true
Contributor:
attributes:
sequence:
required: true
range: SequenceTypes
role:
required: true
range: RoleTypes
name-style:
role: NameStyleTypes
language:
range: string
Person:
is_a: Contributor
attributes:
given_name:
range: string
pattern: "[^\\d\\?]*[^\\?\\s]+[^\\d]*"
surname:
required: true
range: string
suffix:
range: string
ORCID:
pattern: "https?://orcid.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[X0-9]{1}"
affiliations:
range: Institution
multivalued: true
alt_name:
Organization:
is_a: Contributor
attributes:
name:
range: string
Anonymous:
is_a: Contributor
attributes:
affiliations:
range: Institution
Institution:
attributes:
acronym:
range: string
examples:
- value: RWTH Aachen
name:
range: string
examples:
- value: Rheinisch-Westfälische Technische Hochschule Aachen
id:
identifier: true
examples:
- value: wd:Q273263
place:
range: string
examples:
- value: Aachen, NRW, Germany
department:
range: string
examples:
- value: i5
Crossmark:
attributes:
version:
policy:
domains:
enums:
SequenceTypes:
permissible_values:
first:
additional:
RoleTypes:
permissible_values:
author:
editor:
chair:
reviewer:
review-assistant:
stats-reviewer:
reviewer-external:
reader:
translator:
NameStyleTypes:
permissible_values:
western:
eastern:
islensk:
given-only:
id: https://w3id.org/linkml/examples/personinfo
name: doi_schema
prefixes:
linkml: https://w3id.org/linkml/
crossref: https://data.crossref.org/reports/help/schema_doc/5.3.1/crossref5_3_1_xsd.html#
imports:
- linkml:types
default_range: string
version: 5.3.1
classes:
Conference:
attributes:
papers:
multivalued: true
range: Paper
contributors:
multivalued: true
range: Contributor
proceeding:
required: true
any_of:
- range: Proceeding
- range: ProceedingInSeries
event:
required: true
range: Event
Event:
attributes:
name:
range: string
required: true
theme:
range: string
examples:
- value: "Knowledge: Creation, Organization and Use"
acronym:
range: string
sponsor:
range: string
number:
range: string
location:
range: string
date:
range: date
Proceeding:
attributes:
title:
required: true
range: string
subject:
range: string
publisher:
multivalued: true
required: true
range: Publisher
publication_date:
required: true
range: date
isbn:
range: string
archive_locations:
multivalued: true
range: string
doi:
language:
range: string
ProceedingInSeries:
is_a: Proceeding
attributes:
volume:
range: string
required: true
series:
range: Series
Publisher:
attributes:
name:
required: true
range: string
id:
identifier: true
place:
range: string
Series:
attributes:
contributors:
multivalued: true
range: Contributor
title:
required: true
range: string
abstract:
range: string
issn:
required: true
range:
coden:
range: string
number:
range: string
publisher:
range: Publisher
archive_locations:
multivalued: true
range: string
doi:
crossmark:
range: Crossmark
fund_ref_program:
accommodates_deposit_license_program:
Paper:
attributes:
contributors:
multivalued: true
range: Contributor
title:
publication_date:
range: date
pages:
range: string
doi:
required: true
range: string
abstract:
range: string
publisher:
range: Publisher
crossmark:
range: Crossmark
fund_ref_program:
accommodates_deposit_license_program:
accommodates_deposit_clincal_trials_program:
relationships:
scn_policy_refs:
multivalued: true
archive_locations:
multivalued: true
range: string
citations:
multivalued: true
range: Citation
Citation:
attributes:
issn:
journal_title:
author:
range: string
volume:
issue:
first_page:
elocation_id:
cYear:
doi:
isbn:
series_title:
volume_title:
edition_number:
component_number:
article_title:
std_designator:
standards_body:
unstructured_citation:
key:
required: true
Contributor:
attributes:
sequence:
required: true
range: SequenceTypes
role:
required: true
range: RoleTypes
name-style:
role: NameStyleTypes
language:
range: string
Person:
is_a: Contributor
attributes:
given_name:
range: string
pattern: "[^\\d\\?]*[^\\?\\s]+[^\\d]*"
surname:
required: true
range: string
suffix:
range: string
ORCID:
pattern: "https?://orcid.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[X0-9]{1}"
affiliations:
range: Institution
multivalued: true
alt_name:
Organization:
is_a: Contributor
attributes:
name:
range: string
Anonymous:
is_a: Contributor
attributes:
affiliations:
range: Institution
Institution:
attributes:
acronym:
range: string
examples:
- value: RWTH Aachen
name:
range: string
examples:
- value: Rheinisch-Westfälische Technische Hochschule Aachen
id:
identifier: true
examples:
- value: wd:Q273263
place:
range: string
examples:
- value: Aachen, NRW, Germany
department:
range: string
examples:
- value: i5
Crossmark:
attributes:
version:
policy:
domains:
enums:
SequenceTypes:
permissible_values:
first:
additional:
RoleTypes:
permissible_values:
author:
editor:
chair:
reviewer:
review-assistant:
stats-reviewer:
reviewer-external:
reader:
translator:
NameStyleTypes:
permissible_values:
western:
eastern:
islensk:
given-only:
Script, mit dem man DOIs für Confident Events (nicht für Serien) automatisch über DataCite's API machen kann:
Benötigten Metadaten aller Events mit dieser Abfrage als JSON geladen.
Das Script macht dann folgendes:
Sollten "falsche" d.h. nicht DataCite Schema konforme Daten an deren API geschickt werden, würde diese meckern und gar nicht erst DOIs updaten oder minten. Ich fange solche Fehlermeldungen von der API nicht im Script ein, weil es quick und dirty sein sollte und weil durch die zuvor generierten Pydantic Datenklassen schon eine Validierung bzgl. des DataCite Schemas automatisch drin ist.
Script, mit dem man DOIs für Confident Events (nicht für Serien) automatisch über DataCite's API machen kann:
Benötigten Metadaten aller Events mit dieser Abfrage als JSON geladen.
Das Script macht dann folgendes:
Sollten "falsche" d.h. nicht DataCite Schema konforme Daten an deren API geschickt werden, würde diese meckern und gar nicht erst DOIs updaten oder minten. Ich fange solche Fehlermeldungen von der API nicht im Script ein, weil es quick und dirty sein sollte und weil durch die zuvor generierten Pydantic Datenklassen schon eine Validierung bzgl. des DataCite Schemas automatisch drin ist.