Skip to content

Commit 0b65b4d

Browse files
updated chem_dcat_ap base schema and fixed #28
1 parent e5c1718 commit 0b65b4d

11 files changed

Lines changed: 3064 additions & 1977 deletions

docs/schema/coremeta4cat.yaml

Lines changed: 745 additions & 402 deletions
Large diffs are not rendered by default.

src/coremeta4cat/datamodel/coremeta4cat.py

Lines changed: 608 additions & 335 deletions
Large diffs are not rendered by default.

src/coremeta4cat/datamodel/coremeta4cat_pydantic.py

Lines changed: 1425 additions & 1077 deletions
Large diffs are not rendered by default.
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
---
2+
id: https://w3id.org/nfdi-de/dcat-ap-plus/chemistry/
3+
version: "0.1.0rc2.post36.dev0+e9bd12a9" # Managed by dynamic-versioning. Don't change this line!
4+
name: chem-dcat-ap
5+
title: ChemDCAT-AP
6+
description: |-
7+
This is an extension of the DCAT Application Profile PLUS LinkML schema. It is intended to be used by NFDI4Chem & NFDI4Cat as a core that can further be extended in profiles/schemas to provide chemistry specific specific metadata for a dataset.
8+
license: CC-BY 4.0
9+
see_also:
10+
- https://nfdi-de.github.io/chem-dcat-ap/
11+
- https://github.com/HendrikBorgelt/DCAT-ap_as_LinkML_template/blob/main/src/dcatlinkml/schema/dcatlinkml.yaml
12+
- https://gitlab.com/opensourcelab/scientificdata/scidats/-/blob/feature/linkml-schemata/schemata/metadata_model_scidats_dcat_ap.yaml?ref_type=heads
13+
prefixes:
14+
chemdcatap: https://w3id.org/nfdi-de/dcat-ap-plus/chemistry/
15+
dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
16+
linkml: https://w3id.org/linkml/
17+
biolink: https://w3id.org/biolink/vocab/
18+
schema: http://schema.org/
19+
dcterms: http://purl.org/dc/terms/
20+
dcat: http://www.w3.org/ns/dcat#
21+
adms: http://www.w3.org/ns/adms#
22+
prov: http://www.w3.org/ns/prov#
23+
sosa: http://www.w3.org/ns/sosa/
24+
vcard: http://www.w3.org/2006/vcard/ns#
25+
rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
26+
rdfs: http://www.w3.org/2000/01/rdf-schema#
27+
owl: http://www.w3.org/2002/07/owl#
28+
skos: http://www.w3.org/2004/02/skos/core#
29+
foaf: http://xmlns.com/foaf/0.1/
30+
qudt: http://qudt.org/schema/qudt/
31+
RO: http://purl.obolibrary.org/obo/RO_
32+
PATO: http://purl.obolibrary.org/obo/PATO_
33+
OBI: http://purl.obolibrary.org/obo/OBI_
34+
IAO: http://purl.obolibrary.org/obo/IAO_
35+
CHEBI: http://purl.obolibrary.org/obo/CHEBI_
36+
CHMO: http://purl.obolibrary.org/obo/CHMO_
37+
BFO: http://purl.obolibrary.org/obo/BFO_
38+
T4FS: http://purl.obolibrary.org/obo/T4FS_
39+
FOODON: http://purl.obolibrary.org/obo/FOODON_
40+
CHEMINF: http://semanticscience.org/resource/CHEMINF_
41+
RXNO: http://purl.obolibrary.org/obo/RXNO_
42+
MOP: http://purl.obolibrary.org/obo/MOP_
43+
ex: http://example.org/
44+
NCIT: http://purl.obolibrary.org/obo/NCIT_
45+
SIO: http://semanticscience.org/resource/SIO_
46+
doi: https://doi.org/
47+
NMR: "http://nmrML.org/nmrCV#NMR:"
48+
AFE: http://purl.allotrope.org/ontologies/equipment#AFE_
49+
AFRL: http://purl.allotrope.org/ontologies/role#AFRL_
50+
AFP: http://purl.allotrope.org/ontologies/process#AFP_
51+
AFR: http://purl.allotrope.org/ontologies/result#AFR_
52+
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
53+
PROCO: http://purl.obolibrary.org/obo/PROCO_
54+
time: http://www.w3.org/2006/time#
55+
REX: http://purl.obolibrary.org/obo/REX_
56+
ENVO: http://purl.obolibrary.org/obo/ENVO_
57+
default_prefix: chemdcatap
58+
default_range: string
59+
imports:
60+
- linkml:types
61+
- dcatapplus:latest/schema/dcat_ap_plus
62+
- chemical_entities_ap
63+
- chemical_reaction_ap
64+
65+
classes:
66+
############
67+
# Datasets #
68+
############
69+
# The only difference between these classes and their DCAT-AP+ parents are the made range restrictions
70+
# This process is described in more depth at:
71+
# https://nfdi-de.github.io/dcat-ap-plus/latest/design-patterns/#problems-dcat-ap-addresses
72+
73+
SubstanceSampleCharacterizationDataset:
74+
is_a: Dataset
75+
class_uri: dcat:Dataset
76+
description: >-
77+
A Dataset about a SubstanceSample that was produced by a SubstanceSampleCharacterization activity.
78+
This is a coarse-grained convenience shape that conflates measurement and analysis into a single
79+
data-generating activity. Domain-specific sub-profiles that need to distinguish raw measurement
80+
from post-processing or structure assignment should define their own Dataset subclasses, potentially
81+
using the DCAT-AP+ DataAnalysis/AnalysisDataset chain instead of reusing this class.
82+
slot_usage:
83+
was_generated_by:
84+
range: SubstanceSampleCharacterization
85+
multivalued: true
86+
inlined_as_list: true
87+
description: The slot to specify the SubstanceCharacterization activity that produced this dataset.
88+
is_about_entity:
89+
range: SubstanceSample
90+
multivalued: true
91+
inlined_as_list: true
92+
description: The slot to specify the SubstanceSample this dataset is about.
93+
94+
ReactionMonitoringDataset:
95+
is_a: Dataset
96+
class_uri: dcat:Dataset
97+
description: >-
98+
A Dataset about a ChemicalReaction that was produced by a ReactionMonitoring activity.
99+
This is a coarse-grained convenience shape that conflates experimental documentation and analysis
100+
into a single data-generating activity. Domain-specific sub-profiles that need to distinguish
101+
reaction monitoring from subsequent data evaluation should define their own Dataset subclasses,
102+
potentially using the DCAT-AP+ DataAnalysis/AnalysisDataset chain instead of reusing this class.
103+
slot_usage:
104+
was_generated_by:
105+
range: ReactionMonitoring
106+
multivalued: true
107+
inlined_as_list: true
108+
description: The slot to specify the ReactionMonitoring activity that produced this dataset.
109+
is_about_activity:
110+
range: ChemicalReaction
111+
description: The slot to specify the ChemicalReaction this dataset is about.
112+
113+
############################
114+
# DataGeneratingActivities #
115+
# ##########################
116+
# The only difference between these classes and their DCAT-AP+ parents are the made range restrictions
117+
# This process is described in more depth at:
118+
# https://nfdi-de.github.io/dcat-ap-plus/latest/design-patterns/#problems-dcat-ap-addresses
119+
120+
SubstanceSampleCharacterization:
121+
is_a: DataGeneratingActivity
122+
class_uri: prov:Activity
123+
broad_mappings:
124+
- OBI:0000070
125+
description: >-
126+
A DataGeneratingActivity that produces data about a SubstanceSample, such as a spectroscopic
127+
measurement, a physical property determination, or a combined measurement-and-analysis workflow.
128+
This is a coarse-grained convenience shape that does not distinguish between raw data acquisition
129+
and subsequent data processing or analysis. Domain-specific sub-profiles that need this distinction
130+
should define their own DataGeneratingActivity subclasses and use the DCAT-AP+ DataAnalysis chain
131+
to separate raw measurement from derived results.
132+
slot_usage:
133+
evaluated_entity:
134+
range: SubstanceSample
135+
multivalued: true
136+
inlined_as_list: true
137+
description: The slot to specify the SubstanceSample being characterized.
138+
139+
ReactionMonitoring:
140+
is_a: DataGeneratingActivity
141+
class_uri: prov:Activity
142+
description: >-
143+
A DataGeneratingActivity that produces data about a ChemicalReaction, such as reaction monitoring,
144+
experimental documentation, or a combined recording-and-evaluation workflow. This is a coarse-grained
145+
convenience shape that does not distinguish between raw experimental recording and subsequent data
146+
evaluation. Domain-specific sub-profiles that need this distinction should define their own
147+
DataGeneratingActivity subclasses and use the DCAT-AP+ DataAnalysis chain to separate raw data
148+
from derived results.
149+
slot_usage:
150+
evaluated_activity:
151+
range: ChemicalReaction
152+
multivalued: true
153+
inlined_as_list: true
154+
description: The slot to specify the ChemicalReaction being recorded.
155+
156+
################
157+
# Surroundings #
158+
################
159+
160+
Laboratory:
161+
is_a: Surrounding
162+
class_uri: ENVO:01001405
163+
description: A facility that provides controlled conditions in which scientific or technological research, experiments, and measurement may be performed.

src/coremeta4cat/schema/chemical_entities_ap.yaml

Lines changed: 86 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
id: https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml
2+
id: https://w3id.org/nfdi-de/dcat-ap-plus/chemistry/entity/
33
name: chemical-entities-ap
44
title: Chemical Entities Application Profile
55
description: |-
66
This is an application profile for chemical entities to be used for extending the DCAT-AP-PLUS.
77
license: CC-BY 4.0
88
prefixes:
9-
chemical_entities_ap: https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml#
10-
chemdcatap: https://nfdi-de.github.io/chem-dcat-ap/
9+
chemical_entities_ap: https://w3id.org/nfdi-de/dcat-ap-plus/chemistry/entity/
10+
chemdcatap: https://w3id.org/nfdi-de/dcat-ap-plus/chemistry/
1111
linkml: https://w3id.org/linkml/
1212
biolink: https://w3id.org/biolink/vocab/
1313
schema: http://schema.org/
@@ -41,9 +41,35 @@ imports:
4141

4242
classes:
4343

44+
#####################
45+
# EvaluatedEntities #
46+
#####################
47+
SubstanceSample:
48+
class_uri: SIO:001378
49+
is_a: MaterialSample
50+
aliases:
51+
- analyte
52+
description: A MaterialSample derived from a chemical substance that is of interest in an analytical procedure.
53+
mixins:
54+
- ChemicalSubstanceMixin
55+
56+
PolymerSample:
57+
is_a: SubstanceSample
58+
class_uri: SIO:001378
59+
description: A SubstanceSample derived from a Polymer.
60+
mixins:
61+
- PolymerMixin
62+
todos:
63+
- "Find a better mapping, as it is currently mapped to same ontology class as its parent."
64+
65+
############
66+
# Entities #
67+
############
4468
ChemicalEntity:
45-
is_a: MaterialEntity
69+
is_a: Entity
4670
class_uri: CHEBI:23367
71+
aliases:
72+
- molecular entity
4773
description: Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, radical ion, complex, conformer etc., identifiable as a separately distinguishable entity.
4874
slots:
4975
- inchi
@@ -52,60 +78,31 @@ classes:
5278
- molecular_formula
5379
- iupac_name
5480
- has_molar_mass
81+
slot_usage:
82+
has_part:
83+
slot_uri: BFO:0000051
84+
description: The slot to provide the parts of a ChemicalEntity that are themself chemical entities.
85+
range: ChemicalEntity
86+
multivalued: true
87+
inlined_as_list: true
5588
Atom:
5689
class_uri: CHEBI:33250
57-
is_a: ChemicalEntity
58-
description: A MaterialEntity constituting the smallest component of an element having the chemical properties of the element.
90+
is_a: Entity
91+
description: An Entity constituting the smallest component of a chemical element having the chemical properties of the element.
5992
slot_usage:
6093
rdf_type:
6194
description: The slot to provide the Atom as a ChEBI ID from the atom (CHEBI:33250) branch.
6295
required: true
6396

97+
#########################
98+
# QuantitativeAttributes #
99+
#########################
64100
MolarMass:
65101
class_uri: AFR:0002409
66102
is_a: Mass
67103
description: A Mass (physical quality) that quantifies the mass of a homogeneous ChemicalSubstance containing 6.02 x 10^23 atoms or molecules.
68104
close_mappings:
69105
- PATO:0001681
70-
InChIKey:
71-
class_uri: CHEMINF:000059
72-
is_a: QualitativeAttribute
73-
InChi:
74-
class_uri: CHEMINF:000113
75-
is_a: QualitativeAttribute
76-
description: A structure descriptor which conforms to the InChI format specification.
77-
MolecularFormula:
78-
class_uri: CHEMINF:000042
79-
is_a: QualitativeAttribute
80-
description: A structure descriptor which identifies each constituent element by its chemical symbol and indicates the number of atoms of each element found in each discrete molecule of that compound.
81-
IUPACName:
82-
class_uri: CHEMINF:000107
83-
is_a: QualitativeAttribute
84-
description: A systematic name which is formulated according to the rules and recommendations for chemical nomenclature set out by the International Union of Pure and Applied Chemistry (IUPAC).
85-
SMILES:
86-
class_uri: CHEMINF:000018
87-
is_a: QualitativeAttribute
88-
description: A structure descriptor that denotes a molecular structure as a graph and conforms to the SMILES format specification.
89-
90-
ChemicalSubstance:
91-
class_uri: CHEBI:59999
92-
is_a: MaterialEntity
93-
mixin: true
94-
description: A MaterialEntity of constant composition, composed of chemical entities of the same type or of different types.
95-
slots:
96-
- has_concentration
97-
- has_ph_value
98-
- composed_of
99-
- has_molar_equivalent
100-
- has_amount
101-
- has_percentage_of_total
102-
Polymer:
103-
class_uri: CHEBI:60027
104-
is_a: ChemicalSubstance
105-
mixin: true
106-
description: A ChemicalSubstance that is composed of macromolecules of different kinds and which may be differentiated by composition, length, degree of branching etc..
107-
# attributes: # Needed attributes will be defined here
108-
109106
Concentration:
110107
is_a: QuantitativeAttribute
111108
class_uri: CHMO:0002820
@@ -147,6 +144,50 @@ classes:
147144
#has_quantity_type:
148145
#ifabsent: http://qudt.org/vocab/quantitykind/Acidity
149146

147+
########################
148+
# QualitativeAttribute #
149+
########################
150+
InChIKey:
151+
class_uri: CHEMINF:000059
152+
is_a: QualitativeAttribute
153+
InChi:
154+
class_uri: CHEMINF:000113
155+
is_a: QualitativeAttribute
156+
description: A structure descriptor which conforms to the InChI format specification.
157+
MolecularFormula:
158+
class_uri: CHEMINF:000042
159+
is_a: QualitativeAttribute
160+
description: A structure descriptor which identifies each constituent element by its chemical symbol and indicates the number of atoms of each element found in each discrete molecule of that compound.
161+
IUPACName:
162+
class_uri: CHEMINF:000107
163+
is_a: QualitativeAttribute
164+
description: A systematic name which is formulated according to the rules and recommendations for chemical nomenclature set out by the International Union of Pure and Applied Chemistry (IUPAC).
165+
SMILES:
166+
class_uri: CHEMINF:000018
167+
is_a: QualitativeAttribute
168+
description: A structure descriptor that denotes a molecular structure as a graph and conforms to the SMILES format specification.
169+
170+
171+
##########
172+
# Mixins #
173+
##########
174+
ChemicalSubstanceMixin:
175+
abstract: true
176+
mixin: true
177+
is_a: MaterialisticMixin
178+
description: A LinkML mixin used to pass down properties common to all material entities that are described in a chemical context via being composed of chemical entities (e.g. atom, molecule, ion, ion pair, radical, complex, conformer etc., ) of the same type or of different types.
179+
slots:
180+
- has_concentration
181+
- has_ph_value
182+
- composed_of
183+
- has_amount
184+
PolymerMixin:
185+
abstract: true
186+
is_a: ChemicalSubstanceMixin
187+
mixin: true
188+
description: A LinkML mixin used to pass down properties common to all chemical substances that are composed of macromolecules of different kinds and which may be differentiated by composition, length, degree of branching etc..
189+
# attributes: # Needed attributes will be defined here
190+
150191
slots:
151192

152193
composed_of:

0 commit comments

Comments
 (0)