+
+
+
+## Excel Template
+
+The quickest way to get started. Download the pre-structured Excel template, fill in your metadata fields, and submit or archive your dataset — no technical setup required.
+
+**Best for:** Lab researchers, one-off submissions, teams new to structured metadata.
+
+[→ head over to getting started ](getting-started.md#level-1-the-vocabulary-reference-workbook)
+
+
+
+
+## LinkML Schema
+
+Semantically enrich your data using the CoreMeta4Cat LinkML schema. Ideal for programmatic workflows, repository integration, and FAIR-compliant data pipelines.
+
+
+
+- **[

Reaction](#reaction)**
+
+- **[

Synthesis](#synthesis)**
+
+- **[

Characterization](#characterization)**
+
+- **[

Simulation](#simulation)**
+
+
-
+
+
+
+
+## Model Structure
+
+CoreMeta4Cat is organized in two concentric layers. The **Inner CoreMeta4Cat** captures the essential metadata every catalysis dataset must provide. The **Expanded CoreMeta4Cat** adds four domain-specific groups covering the full research lifecycle.
+
+### Inner CoreMeta4Cat
+
+The inner layer defines mandatory baseline metadata, enabling consistent categorization and discoverability of research data across repositories.
+
+| Field | Priority | Description |
+|---|---|---|
+| **Catalysis Research Field** | Mandatory | Type of catalysis: homogeneous, heterogeneous, electrocatalysis, hybrid, or other |
+| **Reaction Type** | Mandatory | The catalytic reaction under investigation (e.g. hydrogenation, oxidation, hydroformylation) |
+| **Active Site** | Recommended | Primary species responsible for catalytic activity — molecule, element, or other species |
+| **Identifier** | Recommended | User-defined label(s) for identifying the catalyst |
+
## [Reaction](reaction.md)
@@ -71,6 +115,6 @@ The Simulation metadata group specifies the essential information for reporting
## Schema
-The [Schema documentation](./elements/overview.md) for the metadata model written in LinkML Format can be found [here](elements/index.md)
+The [Schema documentation](./elements/overview.md) for the metadata model written in LinkML Format can be found [here](elements/overview.md)
diff --git a/docs/overview.md b/docs/overview.md
index 44d346fdf..26e642ddb 100644
--- a/docs/overview.md
+++ b/docs/overview.md
@@ -156,6 +156,6 @@ The **Simulation** pillar covers four major computational method classes, each a
## Source code
-The LinkML schema, build scripts, and documentation source are on GitHub: [HendrikBorgelt/CoreMeta4Cat](https://github.com/HendrikBorgelt/CoreMeta4Cat)
+The LinkML schema, build scripts, and documentation source are on GitHub: [HendrikBorgelt/CoreMeta4Cat](https://github.com/nfdi4cat/CoreMeta4Cat)
The schema is built as a domain-specific application profile on top of DCAT-AP-PLUS. The base layer is maintained by [NFDI4Cat](https://nfdi4cat.org).
diff --git a/docs/reaction.md b/docs/reaction.md
index 06563419c..df2dd9b08 100644
--- a/docs/reaction.md
+++ b/docs/reaction.md
@@ -33,42 +33,42 @@ Core fields include reactor design type, operational parameters, and product ide
## Slots
-catalyst quantity (Required, Multivalued)
+catalyst quantity (Mandatory, Multivalued)
**Description:** Mass of catalyst loaded into the reactor.
**Data Type:** float
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**CURIE:** [`catcore:catalyst_quantity`](https://w3id.org/nfdi4cat/catcore/catalyst_quantity)
+**CURIE:** [`coremeta4cat:catalyst_quantity`](https://w3id.org/nfdi4cat/coremeta4cat/catalyst_quantity)
-**Schema Reference:** [catalyst_quantity](./elements/catalyst_quantity.md)
+**Schema Reference:** [catalyst_quantity](./elements/slots/catalyst_quantity.md)
**Unit:** g
-
+
💡 Submit Term Feedback
-reactant (Required, Multivalued)
+reactant (Mandatory, Multivalued)
**Description:** Reactant(s) used in the reaction. Provide compound name, CAS number,
or SMILES. For feeds, include composition and flow rate where known.
**Data Type:** string
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**CURIE:** [`voc4cat:0000101`](https://w3id.org/nfdi4cat/voc4cat_0000101)
+**CURIE:** [`VOC4CAT:0000101`](https://w3id.org/nfdi4cat/voc4cat_0000101)
-**Schema Reference:** [reactant](./elements/reactant.md)
+**Schema Reference:** [reactant](./elements/slots/reactant.md)
-
+
💡 Submit Term Feedback
@@ -83,12 +83,12 @@ For heterogeneous catalysts, use voc4cat terms where available.
**Cardinality:** Recommended, Multivalued
-**CURIE:** [`voc4cat:0007014`](https://w3id.org/nfdi4cat/voc4cat_0007014)
+**CURIE:** [`VOC4CAT:0007014`](https://w3id.org/nfdi4cat/voc4cat_0007014)
-**Schema Reference:** [catalyst_type](./elements/catalyst_type.md)
+**Schema Reference:** [catalyst_type](./elements/slots/catalyst_type.md)
-
+
💡 Submit Term Feedback
@@ -103,12 +103,12 @@ as a string range (e.g. "200–400 °C") or a single set-point.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0007032`](https://w3id.org/nfdi4cat/voc4cat_0007032)
+**CURIE:** [`VOC4CAT:0007032`](https://w3id.org/nfdi4cat/voc4cat_0007032)
-**Schema Reference:** [reactor_temperature_range](./elements/reactor_temperature_range.md)
+**Schema Reference:** [reactor_temperature_range](./elements/slots/reactor_temperature_range.md)
-
+
💡 Submit Term Feedback
@@ -122,12 +122,12 @@ as a string range (e.g. "200–400 °C") or a single set-point.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
@@ -141,14 +141,14 @@ as a string range (e.g. "200–400 °C") or a single set-point.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000118`](https://w3id.org/nfdi4cat/voc4cat_0000118)
+**CURIE:** [`VOC4CAT:0000118`](https://w3id.org/nfdi4cat/voc4cat_0000118)
-**Schema Reference:** [experiment_pressure](./elements/experiment_pressure.md)
+**Schema Reference:** [experiment_pressure](./elements/slots/experiment_pressure.md)
**Unit:** bar
-
+
💡 Submit Term Feedback
@@ -163,12 +163,12 @@ Record as a string; for individual component concentrations use reactant.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:feed_composition_range`](https://w3id.org/nfdi4cat/catcore/feed_composition_range)
+**CURIE:** [`coremeta4cat:feed_composition_range`](https://w3id.org/nfdi4cat/coremeta4cat/feed_composition_range)
-**Schema Reference:** [feed_composition_range](./elements/feed_composition_range.md)
+**Schema Reference:** [feed_composition_range](./elements/slots/feed_composition_range.md)
-
+
💡 Submit Term Feedback
@@ -184,27 +184,27 @@ Record as a string; for individual component concentrations use reactant.
**CURIE:** [`AFR:0002455`](http://purl.allotrope.org/ontologies/result#AFR_0002455)
-**Schema Reference:** [experiment_duration](./elements/experiment_duration.md)
+**Schema Reference:** [experiment_duration](./elements/slots/experiment_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
-carried out by (Required, Multivalued)
+carried out by (Mandatory, Multivalued)
**Description:** The reactor in which the Reaction takes place, provided as a
ReactorDesignType (Device) instance.
**Data Type:** ReactorDesignType
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**Schema Reference:** [carried_out_by](./elements/carried_out_by.md)
+**Schema Reference:** [carried_out_by](./elements/slots/carried_out_by.md)
**Data Type Class Details:**
@@ -217,12 +217,12 @@ ReactorDesignType (Device) instance.
Concrete subclasses specify the reactor geometry and operating mode.
Linked from Reaction via carried_out_by.
-**CURIE:** [`voc4cat:0007018`](https://w3id.org/nfdi4cat/voc4cat_0007018)
+**CURIE:** [`VOC4CAT:0007018`](https://w3id.org/nfdi4cat/voc4cat_0007018)
-**Schema Reference:** [ReactorDesignType](./elements/ReactorDesignType.md)
+**Schema Reference:** [ReactorDesignType](./elements/classes/ReactorDesignType.md)
-
+
💡 Submit Term Feedback
@@ -235,12 +235,12 @@ Linked from Reaction via carried_out_by.
**Description:** Electrochemical reactor used in electrocatalytic experiments, including
H-cells, flow cells, and membrane electrode assemblies.
-**CURIE:** [`voc4cat:0000193`](https://w3id.org/nfdi4cat/voc4cat_0000193)
+**CURIE:** [`VOC4CAT:0000193`](https://w3id.org/nfdi4cat/voc4cat_0000193)
-**Schema Reference:** [ElectrochemicalReactor](./elements/ElectrochemicalReactor.md)
+**Schema Reference:** [ElectrochemicalReactor](./elements/classes/ElectrochemicalReactor.md)
-
+
💡 Submit Term Feedback
@@ -251,12 +251,12 @@ H-cells, flow cells, and membrane electrode assemblies.
**Description:** Continuous stirred tank reactor (CSTR) — a well-mixed, continuous-flow
reactor operating at steady state.
-**CURIE:** [`voc4cat:0007019`](https://w3id.org/nfdi4cat/voc4cat_0007019)
+**CURIE:** [`VOC4CAT:0007019`](https://w3id.org/nfdi4cat/voc4cat_0007019)
-**Schema Reference:** [CSTR](./elements/CSTR.md)
+**Schema Reference:** [CSTR](./elements/classes/CSTR.md)
-
+
💡 Submit Term Feedback
@@ -267,12 +267,12 @@ reactor operating at steady state.
**Description:** Plug flow reactor (PFR) — a tubular reactor in which reactant composition
varies along the axis with no axial mixing.
-**CURIE:** [`voc4cat:0007102`](https://w3id.org/nfdi4cat/voc4cat_0007102)
+**CURIE:** [`VOC4CAT:0007102`](https://w3id.org/nfdi4cat/voc4cat_0007102)
-**Schema Reference:** [PlugFlowReactor](./elements/PlugFlowReactor.md)
+**Schema Reference:** [PlugFlowReactor](./elements/classes/PlugFlowReactor.md)
-
+
💡 Submit Term Feedback
@@ -285,10 +285,10 @@ elevated temperature and/or pressure.
**CURIE:** [`NCIT:C93052`](http://purl.obolibrary.org/obo/NCIT_C93052)
-**Schema Reference:** [Autoclave](./elements/Autoclave.md)
+**Schema Reference:** [Autoclave](./elements/classes/Autoclave.md)
-
+
💡 Submit Term Feedback
@@ -299,12 +299,12 @@ elevated temperature and/or pressure.
**Description:** Slurry reactor — a three-phase reactor in which catalyst particles are
suspended in a liquid phase through which gas is bubbled.
-**CURIE:** [`catcore:SlurryReactor`](https://w3id.org/nfdi4cat/catcore/SlurryReactor)
+**CURIE:** [`coremeta4cat:SlurryReactor`](https://w3id.org/nfdi4cat/coremeta4cat/SlurryReactor)
-**Schema Reference:** [SlurryReactor](./elements/SlurryReactor.md)
+**Schema Reference:** [SlurryReactor](./elements/classes/SlurryReactor.md)
-
+
💡 Submit Term Feedback
@@ -316,12 +316,12 @@ suspended in a liquid phase through which gas is bubbled.
in the sub-millimetre range, enabling precise thermal control and rapid
screening.
-**CURIE:** [`voc4cat:0000234`](https://w3id.org/nfdi4cat/voc4cat_0000234)
+**CURIE:** [`VOC4CAT:0000234`](https://w3id.org/nfdi4cat/voc4cat_0000234)
-**Schema Reference:** [Microreactor](./elements/Microreactor.md)
+**Schema Reference:** [Microreactor](./elements/classes/Microreactor.md)
-
+
💡 Submit Term Feedback
@@ -332,12 +332,12 @@ screening.
**Description:** Fixed bed reactor — a tubular reactor packed with a stationary catalyst bed.
The most common reactor type in heterogeneous catalysis testing.
-**CURIE:** [`catcore:FixedBedReactor`](https://w3id.org/nfdi4cat/catcore/FixedBedReactor)
+**CURIE:** [`coremeta4cat:FixedBedReactor`](https://w3id.org/nfdi4cat/coremeta4cat/FixedBedReactor)
-**Schema Reference:** [FixedBedReactor](./elements/FixedBedReactor.md)
+**Schema Reference:** [FixedBedReactor](./elements/classes/FixedBedReactor.md)
-
+
💡 Submit Term Feedback
@@ -348,9 +348,9 @@ The most common reactor type in heterogeneous catalysis testing.
**Description:** Fluidized bed reactor — a reactor in which the catalyst particles are
suspended in an upward-flowing gas or liquid stream.
-**CURIE:** [`catcore:FluidizedBedReactor`](https://w3id.org/nfdi4cat/catcore/FluidizedBedReactor)
+**CURIE:** [`coremeta4cat:FluidizedBedReactor`](https://w3id.org/nfdi4cat/coremeta4cat/FluidizedBedReactor)
-**Schema Reference:** [FluidizedBedReactor](./elements/FluidizedBedReactor.md)
+**Schema Reference:** [FluidizedBedReactor](./elements/classes/FluidizedBedReactor.md)
**Slots**
@@ -363,12 +363,12 @@ suspended in an upward-flowing gas or liquid stream.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:gas_distributor_type`](https://w3id.org/nfdi4cat/catcore/gas_distributor_type)
+**CURIE:** [`coremeta4cat:gas_distributor_type`](https://w3id.org/nfdi4cat/coremeta4cat/gas_distributor_type)
-**Schema Reference:** [gas_distributor_type](./elements/gas_distributor_type.md)
+**Schema Reference:** [gas_distributor_type](./elements/slots/gas_distributor_type.md)
-
+
💡 Submit Term Feedback
@@ -382,14 +382,14 @@ suspended in an upward-flowing gas or liquid stream.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:bed_expansion_height`](https://w3id.org/nfdi4cat/catcore/bed_expansion_height)
+**CURIE:** [`coremeta4cat:bed_expansion_height`](https://w3id.org/nfdi4cat/coremeta4cat/bed_expansion_height)
-**Schema Reference:** [bed_expansion_height](./elements/bed_expansion_height.md)
+**Schema Reference:** [bed_expansion_height](./elements/slots/bed_expansion_height.md)
**Unit:** cm
-
+
💡 Submit Term Feedback
@@ -403,41 +403,41 @@ suspended in an upward-flowing gas or liquid stream.
**Cardinality:** Optional
-**CURIE:** [`catcore:bubble_size_distribution`](https://w3id.org/nfdi4cat/catcore/bubble_size_distribution)
+**CURIE:** [`coremeta4cat:bubble_size_distribution`](https://w3id.org/nfdi4cat/coremeta4cat/bubble_size_distribution)
-**Schema Reference:** [bubble_size_distribution](./elements/bubble_size_distribution.md)
+**Schema Reference:** [bubble_size_distribution](./elements/slots/bubble_size_distribution.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
-product identification method (Required, Multivalued)
+product identification method (Mandatory, Multivalued)
**Description:** The analytical method used to identify and/or quantify reaction products.
Should reference a CharacterizationTechnique instance (e.g. a GCMS or
-HPLC_MS object from catcore_characterization_ap). The abstract stub
+HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub
ProductIdentificationMethod is retained for backward compatibility.
**Data Type:** ProductIdentificationMethod
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**Schema Reference:** [product_identification_method](./elements/product_identification_method.md)
+**Schema Reference:** [product_identification_method](./elements/slots/product_identification_method.md)
**Data Type Class Details:**
@@ -448,24 +448,24 @@ ProductIdentificationMethod is retained for backward compatibility.
**Description:** Abstract Plan representing the method used to identify and quantify reaction
products. In practice, users should reference a concrete CharacterizationTechnique
-subclass from catcore_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
+subclass from coremeta4cat_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
This abstract class is retained for backward compatibility with the original
-CatCore monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
+CoreMeta4Cat monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
it can participate in the realized_plan slot if needed.
**CURIE:** [`OBI:0000272`](http://purl.obolibrary.org/obo/OBI_0000272)
-**Schema Reference:** [ProductIdentificationMethod](./elements/ProductIdentificationMethod.md)
+**Schema Reference:** [ProductIdentificationMethod](./elements/classes/ProductIdentificationMethod.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
diff --git a/docs/schema/catcore.yaml b/docs/schema/coremeta4cat.yaml
similarity index 83%
rename from docs/schema/catcore.yaml
rename to docs/schema/coremeta4cat.yaml
index a0d59392c..3f6072e5c 100644
--- a/docs/schema/catcore.yaml
+++ b/docs/schema/coremeta4cat.yaml
@@ -1,54 +1,55 @@
-name: catcore-metadata
-description: "The CatCore describes the minimum information which must be reported\
+name: coremeta4cat-metadata
+description: "The CoreMeta4Cat describes the minimum information which must be reported\
\ with research\ndata concerning the field of catalysis. This guideline helps to\
\ handle and\nstandardize data based on the FAIR principle (Findable, Accessible,\
- \ Interoperable,\nReusable).\n\nArchitecture\n------------\nCatCore follows the\
- \ DCAT-AP-PLUS design patterns (see design-patterns.md):\n\n- The entry point is\
- \ the dcat:Dataset, extended here as CatalysisDataset.\n The catalysis research\
+ \ Interoperable,\nReusable).\n\nArchitecture\n------------\nCoreMeta4Cat follows\
+ \ the DCAT-AP-PLUS design patterns (see design-patterns.md):\n\n- The entry point\
+ \ is the dcat:Dataset, extended here as CatalysisDataset.\n The catalysis research\
\ field is expressed via rdf_type (ClassifierMixin,\n Pattern 3) using voc4cat\
\ terms \u2014 analogous to how NMRSpectroscopy uses\n rdf_type: CHMO:0000613 to\
- \ classify the measurement type.\n\n- The four CatCore pillars are modelled as DCAT-AP-PLUS\
- \ Activity subclasses,\n following the same pattern as NMRSpectroscopy (is_a: DataGeneratingActivity):\n\
- \n Synthesis --> is_a: DataGeneratingActivity\n Produces\
- \ a catalyst (MaterialSample) as had_output_entity.\n The PreparationMethod\
- \ (protocol) is linked via realized_plan.\n\n Characterization --> is_a: DataGeneratingActivity\n\
- \ Produces measurement data about a catalyst or reaction.\n\
- \ The catalyst/sample is the evaluated_entity.\n \
- \ The CharacterizationTechnique is linked via realized_plan.\n\n \
- \ Reaction --> is_a: EvaluatedActivity\n The catalytic\
- \ process being studied, NOT a data-generating\n activity itself.\
- \ Characterization datasets are about this.\n Analogous to the\
- \ reaction being observed in a reaction\n monitoring dataset.\n\
- \n Simulation --> is_a: DataGeneratingActivity\n Generates\
- \ computational data about a catalyst or reaction.\n The SimulationMethod\
- \ (protocol) is linked via realized_plan.\n The simulation software\
- \ is carried_out_by: Software.\n\n- Catalyst samples and precursor materials are\
- \ modelled as MaterialSample\n (from material_entities_ap), which is an EvaluatedEntity.\n\
- \n- Reactors and instruments are modelled as Device (from dcat_ap_plus), which\n\
- \ is an AgenticEntity carried_out_by the relevant Activity.\n\n- PreparationMethod,\
- \ CharacterizationTechnique, and SimulationMethod are\n modelled as Plan (from\
- \ dcat_ap_plus), the protocol realized by the Activity.\n\nThis file is the top-level\
- \ aggregator. It imports catcore_common (shared\nslots and enums) and the four subprofile\
- \ modules.\n\nFull import hierarchy:\n catcore.yaml (this file \u2014 aggregator\
- \ + CatalysisDataset entry point)\n +-- catcore_common.yaml (shared slots,\
- \ enums)\n +-- chem_dcat_ap (SubstanceSample, ChemicalSubstance,\
- \ \u2026)\n +-- chemical_reaction_ap\n +-- chemical_entities_ap\n\
- \ +-- material_entities_ap\n \
- \ +-- dcat_ap_plus (DCAT-AP-PLUS base)\n +-- catcore_synthesis_ap \
- \ (Step 3 \u2014 Synthesis, PreparationMethod, mixins)\n +-- catcore_characterization_ap\
- \ (Step 4 \u2014 Characterization, 24 techniques, mixins)\n +-- catcore_reaction_ap\
- \ (Step 5 \u2014 Reaction, 8 ReactorDesignTypes)\n +-- catcore_simulation_ap\
- \ (Step 6 \u2014 Simulation, 4 methods, 12 properties, mixins)"
-title: CatCore Metadata Reference Model
-id: https://w3id.org/nfdi4cat/catcore
+ \ classify the measurement type.\n\n- The four CoreMeta4Cat pillars are modelled\
+ \ as DCAT-AP-PLUS Activity subclasses,\n following the same pattern as NMRSpectroscopy\
+ \ (is_a: DataGeneratingActivity):\n\n Synthesis --> is_a: DataGeneratingActivity\n\
+ \ Produces a catalyst (MaterialSample) as had_output_entity.\n\
+ \ The PreparationMethod (protocol) is linked via realized_plan.\n\
+ \n Characterization --> is_a: DataGeneratingActivity\n \
+ \ Produces measurement data about a catalyst or reaction.\n \
+ \ The catalyst/sample is the evaluated_entity.\n The CharacterizationTechnique\
+ \ is linked via realized_plan.\n\n Reaction --> is_a: EvaluatedActivity\n\
+ \ The catalytic process being studied, NOT a data-generating\n\
+ \ activity itself. Characterization datasets are about this.\n\
+ \ Analogous to the reaction being observed in a reaction\n \
+ \ monitoring dataset.\n\n Simulation --> is_a: DataGeneratingActivity\n\
+ \ Generates computational data about a catalyst or reaction.\n\
+ \ The SimulationMethod (protocol) is linked via realized_plan.\n\
+ \ The simulation software is carried_out_by: Software.\n\n-\
+ \ Catalyst samples and precursor materials are modelled as MaterialSample\n (from\
+ \ material_entities_ap), which is an EvaluatedEntity.\n\n- Reactors and instruments\
+ \ are modelled as Device (from dcat_ap_plus), which\n is an AgenticEntity carried_out_by\
+ \ the relevant Activity.\n\n- PreparationMethod, CharacterizationTechnique, and\
+ \ SimulationMethod are\n modelled as Plan (from dcat_ap_plus), the protocol realized\
+ \ by the Activity.\n\nThis file is the top-level aggregator. It imports coremeta4cat_common\
+ \ (shared\nslots and enums) and the four subprofile modules.\n\nFull import hierarchy:\n\
+ \ coremeta4cat.yaml (this file \u2014 aggregator + CatalysisDataset entry point)\n\
+ \ +-- coremeta4cat_common.yaml (shared slots, enums)\n +-- chem_dcat_ap\
+ \ (SubstanceSample, ChemicalSubstance, \u2026)\n +-- chemical_reaction_ap\n\
+ \ +-- chemical_entities_ap\n +--\
+ \ material_entities_ap\n +-- dcat_ap_plus (DCAT-AP-PLUS\
+ \ base)\n +-- coremeta4cat_synthesis_ap (Step 3 \u2014 Synthesis, PreparationMethod,\
+ \ mixins)\n +-- coremeta4cat_characterization_ap (Step 4 \u2014 Characterization,\
+ \ 24 techniques, mixins)\n +-- coremeta4cat_reaction_ap (Step 5 \u2014\
+ \ Reaction, 8 ReactorDesignTypes)\n +-- coremeta4cat_simulation_ap (Step\
+ \ 6 \u2014 Simulation, 4 methods, 12 properties, mixins)"
+title: CoreMeta4cat Metadata Reference Model
+id: https://w3id.org/nfdi4cat/coremeta4cat
version: 1.0.0
imports:
- linkml:types
-- catcore_common
-- catcore_synthesis_ap
-- catcore_characterization_ap
-- catcore_reaction_ap
-- catcore_simulation_ap
+- coremeta4cat_common
+- coremeta4cat_synthesis_ap
+- coremeta4cat_characterization_ap
+- coremeta4cat_reaction_ap
+- coremeta4cat_simulation_ap
- dcat_4c_ap
- dcatapplus:latest/schema/dcat_ap_plus
- chemical_entities_ap
@@ -56,9 +57,9 @@ imports:
- material_entities_ap
license: CC-BY-4.0
prefixes:
- catcore:
- prefix_prefix: catcore
- prefix_reference: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat:
+ prefix_prefix: coremeta4cat
+ prefix_reference: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT:
prefix_prefix: VOC4CAT
prefix_reference: https://w3id.org/nfdi4cat/voc4cat_
@@ -67,7 +68,7 @@ prefixes:
prefix_reference: https://nfdi-de.github.io/chem-dcat-ap/
dcatapplus:
prefix_prefix: dcatapplus
- prefix_reference: https://nfdi-de.github.io/dcat-ap-plus/
+ prefix_reference: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml:
prefix_prefix: linkml
prefix_reference: https://w3id.org/linkml/
@@ -95,7 +96,7 @@ prefixes:
NCIT:
prefix_prefix: NCIT
prefix_reference: http://purl.obolibrary.org/obo/NCIT_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
subsets:
domain_agnostic_core:
@@ -403,7 +404,7 @@ types:
enums:
CatalysisResearchFieldEnum:
name: CatalysisResearchFieldEnum
- definition_uri: https://w3id.org/nfdi4cat/catcore/CatalysisResearchFieldEnum
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CatalysisResearchFieldEnum
description: 'Enumeration of catalysis research fields.
Intended for use via rdf_type on a dcat:Dataset (via ClassifierMixin)
@@ -411,7 +412,7 @@ enums:
to classify which field of catalysis the dataset belongs to,
following DCAT-AP-PLUS Pattern 3 (Flexible classification).'
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
permissible_values:
heterogeneous_catalysis:
text: heterogeneous_catalysis
@@ -440,9 +441,9 @@ enums:
description: Other catalysis research field not covered by the above terms.
ImpregnationTypeEnum:
name: ImpregnationTypeEnum
- definition_uri: https://w3id.org/nfdi4cat/catcore/ImpregnationTypeEnum
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ImpregnationTypeEnum
description: Enumeration of impregnation types used in catalyst synthesis.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
permissible_values:
wet_impregnation:
text: wet_impregnation
@@ -460,10 +461,10 @@ enums:
description: Other impregnation type.
SampleStateEnum:
name: SampleStateEnum
- definition_uri: https://w3id.org/nfdi4cat/catcore/SampleStateEnum
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SampleStateEnum
description: Enumeration of physical states in which a catalyst sample may be
present.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
permissible_values:
solid:
text: solid
@@ -655,12 +656,12 @@ enums:
slots:
atmosphere:
name: atmosphere
- definition_uri: https://w3id.org/nfdi4cat/catcore/atmosphere
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/atmosphere
description: Gaseous environment or atmospheric conditions during a process.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:atmosphere
- slot_uri: catcore:atmosphere
+ - coremeta4cat:atmosphere
+ slot_uri: coremeta4cat:atmosphere
owner: Reaction
domain_of:
- ThermalSynthesisMixin
@@ -678,9 +679,9 @@ slots:
multivalued: true
temperature:
name: temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/temperature
description: Temperature during a process or measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- AFR:0001584
slot_uri: AFR:0001584
@@ -698,7 +699,7 @@ slots:
- NMRSpectroscopy
- DynamicLightScattering
- SizeExclusionChromatography
- - HPLC_MS
+ - HighPerformanceLiquidChromatographyMassSpectrometry
- Microkinetics
- MonteCarlo
- AqueousStability
@@ -708,9 +709,9 @@ slots:
ucum_code: Cel
equipment:
name: equipment
- definition_uri: https://w3id.org/nfdi4cat/catcore/equipment
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/equipment
description: Equipment or instrument used in a process.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000187
slot_uri: VOC4CAT:0000187
@@ -721,30 +722,30 @@ slots:
multivalued: true
flow_rate:
name: flow_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/flow_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/flow_rate
description: Flow rate of a fluid or gas.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:flow_rate
- slot_uri: catcore:flow_rate
- owner: ESI_MS
+ - coremeta4cat:flow_rate
+ slot_uri: coremeta4cat:flow_rate
+ owner: ElectroSprayIonizationMassSpectrometry
domain_of:
- FlameSprayPyrolysis
- ChromatographyMixin
- DRIFTS
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
range: float
multivalued: true
unit:
ucum_code: mL/min
heating_rate:
name: heating_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/heating_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/heating_rate
description: Rate at which temperature is increased during a process.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:heating_rate
- slot_uri: catcore:heating_rate
+ - coremeta4cat:heating_rate
+ slot_uri: coremeta4cat:heating_rate
owner: TemperatureProgramMixin
domain_of:
- TemperatureProgramMixin
@@ -754,12 +755,12 @@ slots:
ucum_code: Cel/min
heating_procedure:
name: heating_procedure
- definition_uri: https://w3id.org/nfdi4cat/catcore/heating_procedure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/heating_procedure
description: Description of the heating procedure applied.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:heating_procedure
- slot_uri: catcore:heating_procedure
+ - coremeta4cat:heating_procedure
+ slot_uri: coremeta4cat:heating_procedure
owner: GCMS
domain_of:
- TemperatureProgramMixin
@@ -768,13 +769,13 @@ slots:
multivalued: true
number_of_cycles:
name: number_of_cycles
- definition_uri: https://w3id.org/nfdi4cat/catcore/number_of_cycles
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles
description: Number of repeated cycles in a process (e.g. ALD cycles, impregnation
cycles).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:number_of_cycles
- slot_uri: catcore:number_of_cycles
+ - coremeta4cat:number_of_cycles
+ slot_uri: coremeta4cat:number_of_cycles
owner: CyclicVoltammetry
domain_of:
- CalcinationMixin
@@ -786,12 +787,12 @@ slots:
multivalued: true
sample_mass:
name: sample_mass
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_mass
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_mass
description: Mass of the sample used in a process or measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:sample_mass
- slot_uri: catcore:sample_mass
+ - coremeta4cat:sample_mass
+ slot_uri: coremeta4cat:sample_mass
owner: BET
domain_of:
- Thermogravimetry
@@ -802,9 +803,9 @@ slots:
ucum_code: mg
sample_pretreatment:
name: sample_pretreatment
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_pretreatment
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_pretreatment
description: Pre-treatment applied to the sample before a process or measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000122
slot_uri: VOC4CAT:0000122
@@ -816,12 +817,12 @@ slots:
multivalued: true
stirring_speed:
name: stirring_speed
- definition_uri: https://w3id.org/nfdi4cat/catcore/stirring_speed
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/stirring_speed
description: Rotational speed of stirring or agitation.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:stirring_speed
- slot_uri: catcore:stirring_speed
+ - coremeta4cat:stirring_speed
+ slot_uri: coremeta4cat:stirring_speed
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -831,12 +832,12 @@ slots:
ucum_code: rpm
stirring_duration:
name: stirring_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/stirring_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/stirring_duration
description: Duration of stirring or agitation.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:stirring_duration
- slot_uri: catcore:stirring_duration
+ - coremeta4cat:stirring_duration
+ slot_uri: coremeta4cat:stirring_duration
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -846,12 +847,12 @@ slots:
ucum_code: h
vessel_type:
name: vessel_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/vessel_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/vessel_type
description: Type of reaction or synthesis vessel used.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:vessel_type
- slot_uri: catcore:vessel_type
+ - coremeta4cat:vessel_type
+ slot_uri: coremeta4cat:vessel_type
owner: ThermalSynthesisMixin
domain_of:
- ThermalSynthesisMixin
@@ -859,28 +860,28 @@ slots:
multivalued: true
carrier_gas:
name: carrier_gas
- definition_uri: https://w3id.org/nfdi4cat/catcore/carrier_gas
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/carrier_gas
description: Carrier gas used in a process (e.g. in GC analysis or ALD deposition).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:carrier_gas
- slot_uri: catcore:carrier_gas
+ - coremeta4cat:carrier_gas
+ slot_uri: coremeta4cat:carrier_gas
owner: GCMS
domain_of:
- AtomicLayerDeposition
- ElementalAnalysis
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
- GCMS
range: string
multivalued: true
dispersant:
name: dispersant
- definition_uri: https://w3id.org/nfdi4cat/catcore/dispersant
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/dispersant
description: Dispersant used (e.g. in DLS measurement or flame spray pyrolysis).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:dispersant
- slot_uri: catcore:dispersant
+ - coremeta4cat:dispersant
+ slot_uri: coremeta4cat:dispersant
owner: DynamicLightScattering
domain_of:
- FlameSprayPyrolysis
@@ -889,12 +890,12 @@ slots:
multivalued: true
drying_device:
name: drying_device
- definition_uri: https://w3id.org/nfdi4cat/catcore/drying_device
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/drying_device
description: Device used for drying (e.g. oven, rotary evaporator).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:drying_device
- slot_uri: catcore:drying_device
+ - coremeta4cat:drying_device
+ slot_uri: coremeta4cat:drying_device
owner: DryingMixin
domain_of:
- DryingMixin
@@ -902,12 +903,12 @@ slots:
multivalued: true
drying_temperature:
name: drying_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/drying_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature
description: Temperature applied during drying.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:drying_temperature
- slot_uri: catcore:drying_temperature
+ - coremeta4cat:drying_temperature
+ slot_uri: coremeta4cat:drying_temperature
owner: DryingMixin
domain_of:
- DryingMixin
@@ -917,12 +918,12 @@ slots:
ucum_code: Cel
drying_time:
name: drying_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/drying_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/drying_time
description: Duration of the drying step.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:drying_time
- slot_uri: catcore:drying_time
+ - coremeta4cat:drying_time
+ slot_uri: coremeta4cat:drying_time
owner: DryingMixin
domain_of:
- DryingMixin
@@ -932,12 +933,12 @@ slots:
ucum_code: h
drying_atmosphere:
name: drying_atmosphere
- definition_uri: https://w3id.org/nfdi4cat/catcore/drying_atmosphere
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere
description: Atmosphere maintained during drying (e.g. air, N2).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:drying_atmosphere
- slot_uri: catcore:drying_atmosphere
+ - coremeta4cat:drying_atmosphere
+ slot_uri: coremeta4cat:drying_atmosphere
owner: DryingMixin
domain_of:
- DryingMixin
@@ -945,9 +946,9 @@ slots:
multivalued: true
calcination_initial_temperature:
name: calcination_initial_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/calcination_initial_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calcination_initial_temperature
description: Initial temperature for calcination.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000057
slot_uri: VOC4CAT:0000057
@@ -960,9 +961,9 @@ slots:
ucum_code: Cel
calcination_final_temperature:
name: calcination_final_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/calcination_final_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calcination_final_temperature
description: Final (target) temperature for calcination.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000058
slot_uri: VOC4CAT:0000058
@@ -975,9 +976,9 @@ slots:
ucum_code: Cel
calcination_dwelling_time:
name: calcination_dwelling_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/calcination_dwelling_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calcination_dwelling_time
description: Time held at the final calcination temperature.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000060
slot_uri: VOC4CAT:0000060
@@ -990,9 +991,9 @@ slots:
ucum_code: h
calcination_gaseous_environment:
name: calcination_gaseous_environment
- definition_uri: https://w3id.org/nfdi4cat/catcore/calcination_gaseous_environment
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calcination_gaseous_environment
description: Gaseous environment maintained during calcination (e.g. air, H2/N2).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000055
slot_uri: VOC4CAT:0000055
@@ -1003,9 +1004,9 @@ slots:
multivalued: true
calcination_heating_rate:
name: calcination_heating_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/calcination_heating_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calcination_heating_rate
description: Heating rate during calcination.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000059
slot_uri: VOC4CAT:0000059
@@ -1018,9 +1019,9 @@ slots:
ucum_code: Cel/min
calcination_gas_flow_rate:
name: calcination_gas_flow_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/calcination_gas_flow_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calcination_gas_flow_rate
description: Gas flow rate maintained during calcination.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000056
slot_uri: VOC4CAT:0000056
@@ -1033,9 +1034,9 @@ slots:
ucum_code: mL/min
step_size:
name: step_size
- definition_uri: https://w3id.org/nfdi4cat/catcore/step_size
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/step_size
description: Step size for a scan (angle, wavelength, energy, or potential).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- AFR:0000950
slot_uri: AFR:0000950
@@ -1050,12 +1051,12 @@ slots:
multivalued: true
resolution:
name: resolution
- definition_uri: https://w3id.org/nfdi4cat/catcore/resolution
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/resolution
description: Resolution of a measurement or detector.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:resolution
- slot_uri: catcore:resolution
+ - coremeta4cat:resolution
+ slot_uri: coremeta4cat:resolution
owner: DRIFTS
domain_of:
- EDX
@@ -1064,12 +1065,12 @@ slots:
multivalued: true
integration_time:
name: integration_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/integration_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/integration_time
description: Integration or acquisition time per measurement step.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:integration_time
- slot_uri: catcore:integration_time
+ - coremeta4cat:integration_time
+ slot_uri: coremeta4cat:integration_time
owner: PhotoluminescenceSpectroscopy
domain_of:
- RamanSpectroscopy
@@ -1080,12 +1081,12 @@ slots:
ucum_code: s
number_of_scans:
name: number_of_scans
- definition_uri: https://w3id.org/nfdi4cat/catcore/number_of_scans
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/number_of_scans
description: Number of scans or accumulations recorded.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:number_of_scans
- slot_uri: catcore:number_of_scans
+ - coremeta4cat:number_of_scans
+ slot_uri: coremeta4cat:number_of_scans
owner: NMRSpectroscopy
domain_of:
- XPS
@@ -1097,45 +1098,45 @@ slots:
multivalued: true
operation_mode:
name: operation_mode
- definition_uri: https://w3id.org/nfdi4cat/catcore/operation_mode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/operation_mode
description: Operation mode of an instrument (e.g. transmission, reflection, AC,
DC).
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000108
slot_uri: VOC4CAT:0000108
- owner: ESI_MS
+ owner: ElectroSprayIonizationMassSpectrometry
domain_of:
- PowderXRD
- XRayAbsorptionSpectroscopy
- InfraredSpectroscopy
- TransmissionElectronMicroscopy
- Thermogravimetry
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
range: string
multivalued: true
concentration:
name: concentration
- definition_uri: https://w3id.org/nfdi4cat/catcore/concentration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/concentration
description: Concentration of a substance in a sample or solution.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:concentration
- slot_uri: catcore:concentration
- owner: ESI_MS
+ - coremeta4cat:concentration
+ slot_uri: coremeta4cat:concentration
+ owner: ElectroSprayIonizationMassSpectrometry
domain_of:
- UVVisSpectroscopy
- DynamicLightScattering
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
range: float
multivalued: true
unit:
ucum_code: mol/L
solvent:
name: solvent
- definition_uri: https://w3id.org/nfdi4cat/catcore/solvent
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/solvent
description: Solvent used in a process or sample preparation.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0007246
slot_uri: VOC4CAT:0007246
@@ -1149,12 +1150,12 @@ slots:
multivalued: true
injection_volume:
name: injection_volume
- definition_uri: https://w3id.org/nfdi4cat/catcore/injection_volume
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/injection_volume
description: Volume injected in a chromatographic or mass spectrometric experiment.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:injection_volume
- slot_uri: catcore:injection_volume
+ - coremeta4cat:injection_volume
+ slot_uri: coremeta4cat:injection_volume
owner: ChromatographyMixin
domain_of:
- ChromatographyMixin
@@ -1164,12 +1165,12 @@ slots:
ucum_code: uL
external_standard:
name: external_standard
- definition_uri: https://w3id.org/nfdi4cat/catcore/external_standard
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/external_standard
description: External standard used for quantification or calibration.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:external_standard
- slot_uri: catcore:external_standard
+ - coremeta4cat:external_standard
+ slot_uri: coremeta4cat:external_standard
owner: ChromatographyMixin
domain_of:
- ChromatographyMixin
@@ -1177,12 +1178,12 @@ slots:
multivalued: true
internal_standard:
name: internal_standard
- definition_uri: https://w3id.org/nfdi4cat/catcore/internal_standard
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/internal_standard
description: Internal standard used for quantification or calibration.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:internal_standard
- slot_uri: catcore:internal_standard
+ - coremeta4cat:internal_standard
+ slot_uri: coremeta4cat:internal_standard
owner: ChromatographyMixin
domain_of:
- ChromatographyMixin
@@ -1190,12 +1191,12 @@ slots:
multivalued: true
calibration_method:
name: calibration_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/calibration_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calibration_method
description: Calibration method applied during a measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:calibration_method
- slot_uri: catcore:calibration_method
+ - coremeta4cat:calibration_method
+ slot_uri: coremeta4cat:calibration_method
owner: ICPAES
domain_of:
- EDX
@@ -1204,12 +1205,12 @@ slots:
multivalued: true
column_type:
name: column_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/column_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/column_type
description: Type of chromatographic column used.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:column_type
- slot_uri: catcore:column_type
+ - coremeta4cat:column_type
+ slot_uri: coremeta4cat:column_type
owner: ChromatographyMixin
domain_of:
- ChromatographyMixin
@@ -1217,9 +1218,9 @@ slots:
multivalued: true
experiment_duration:
name: experiment_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/experiment_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/experiment_duration
description: Total duration of the experiment or measurement run.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- AFR:0002455
slot_uri: AFR:0002455
@@ -1233,12 +1234,12 @@ slots:
ucum_code: h
filtration_device:
name: filtration_device
- definition_uri: https://w3id.org/nfdi4cat/catcore/filtration_device
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/filtration_device
description: Device used for filtration.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:filtration_device
- slot_uri: catcore:filtration_device
+ - coremeta4cat:filtration_device
+ slot_uri: coremeta4cat:filtration_device
owner: MolecularSynthesis
domain_of:
- FlameSprayPyrolysis
@@ -1247,12 +1248,12 @@ slots:
multivalued: true
filter_type:
name: filter_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/filter_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/filter_type
description: Type of filter membrane or medium used.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- - catcore:filter_type
- slot_uri: catcore:filter_type
+ - coremeta4cat:filter_type
+ slot_uri: coremeta4cat:filter_type
owner: MolecularSynthesis
domain_of:
- FlameSprayPyrolysis
@@ -1261,13 +1262,13 @@ slots:
multivalued: true
nominal_composition:
name: nominal_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/nominal_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/nominal_composition
description: Nominal elemental or chemical composition of the catalyst (e.g. 5wt%
Pt/Al2O3).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:nominal_composition
- slot_uri: catcore:nominal_composition
+ - coremeta4cat:nominal_composition
+ slot_uri: coremeta4cat:nominal_composition
owner: Synthesis
domain_of:
- Synthesis
@@ -1275,14 +1276,14 @@ slots:
multivalued: true
catalyst_measured_properties:
name: catalyst_measured_properties
- definition_uri: https://w3id.org/nfdi4cat/catcore/catalyst_measured_properties
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/catalyst_measured_properties
description: 'Key measured properties of the resulting catalyst
(e.g. BET surface area, sieve fraction, molar ratio).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:catalyst_measured_properties
- slot_uri: catcore:catalyst_measured_properties
+ - coremeta4cat:catalyst_measured_properties
+ slot_uri: coremeta4cat:catalyst_measured_properties
owner: Synthesis
domain_of:
- Synthesis
@@ -1290,13 +1291,13 @@ slots:
multivalued: true
storage_conditions:
name: storage_conditions
- definition_uri: https://w3id.org/nfdi4cat/catcore/storage_conditions
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/storage_conditions
description: "Conditions under which the catalyst is stored (e.g. inert atmosphere,\
\ 4\xB0C)."
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:storage_conditions
- slot_uri: catcore:storage_conditions
+ - coremeta4cat:storage_conditions
+ slot_uri: coremeta4cat:storage_conditions
owner: Synthesis
domain_of:
- Synthesis
@@ -1304,13 +1305,13 @@ slots:
multivalued: true
support:
name: support
- definition_uri: https://w3id.org/nfdi4cat/catcore/support
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/support
description: Support material on which the active phase is deposited (e.g. Al2O3,
SiO2).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:support
- slot_uri: catcore:support
+ - coremeta4cat:support
+ slot_uri: coremeta4cat:support
owner: Synthesis
domain_of:
- Synthesis
@@ -1318,12 +1319,12 @@ slots:
multivalued: true
precursor_quantity:
name: precursor_quantity
- definition_uri: https://w3id.org/nfdi4cat/catcore/precursor_quantity
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/precursor_quantity
description: Quantity of precursor used in synthesis.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:precursor_quantity
- slot_uri: catcore:precursor_quantity
+ - coremeta4cat:precursor_quantity
+ slot_uri: coremeta4cat:precursor_quantity
owner: Precursor
domain_of:
- Precursor
@@ -1333,12 +1334,12 @@ slots:
ucum_code: g
impregnation_type:
name: impregnation_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/impregnation_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/impregnation_type
description: Type of impregnation used (wet, dry, incipient wetness).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:impregnation_type
- slot_uri: catcore:impregnation_type
+ - coremeta4cat:impregnation_type
+ slot_uri: coremeta4cat:impregnation_type
owner: Impregnation
domain_of:
- Impregnation
@@ -1346,12 +1347,12 @@ slots:
multivalued: true
impregnation_duration:
name: impregnation_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/impregnation_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/impregnation_duration
description: Duration of the impregnation step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:impregnation_duration
- slot_uri: catcore:impregnation_duration
+ - coremeta4cat:impregnation_duration
+ slot_uri: coremeta4cat:impregnation_duration
owner: Impregnation
domain_of:
- Impregnation
@@ -1361,12 +1362,12 @@ slots:
ucum_code: h
impregnation_temperature:
name: impregnation_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/impregnation_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/impregnation_temperature
description: Temperature during the impregnation step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:impregnation_temperature
- slot_uri: catcore:impregnation_temperature
+ - coremeta4cat:impregnation_temperature
+ slot_uri: coremeta4cat:impregnation_temperature
owner: Impregnation
domain_of:
- Impregnation
@@ -1376,12 +1377,12 @@ slots:
ucum_code: Cel
precipitating_agent:
name: precipitating_agent
- definition_uri: https://w3id.org/nfdi4cat/catcore/precipitating_agent
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/precipitating_agent
description: Chemical agent used to induce precipitation (e.g. NaOH, NH3).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:precipitating_agent
- slot_uri: catcore:precipitating_agent
+ - coremeta4cat:precipitating_agent
+ slot_uri: coremeta4cat:precipitating_agent
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1389,12 +1390,12 @@ slots:
multivalued: true
precipitating_concentration:
name: precipitating_concentration
- definition_uri: https://w3id.org/nfdi4cat/catcore/precipitating_concentration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/precipitating_concentration
description: Concentration of the precipitating agent.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:precipitating_concentration
- slot_uri: catcore:precipitating_concentration
+ - coremeta4cat:precipitating_concentration
+ slot_uri: coremeta4cat:precipitating_concentration
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1404,9 +1405,9 @@ slots:
ucum_code: mol/L
synthesis_ph:
name: synthesis_ph
- definition_uri: https://w3id.org/nfdi4cat/catcore/synthesis_ph
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/synthesis_ph
description: pH value maintained or targeted during synthesis.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0000052
slot_uri: VOC4CAT:0000052
@@ -1417,12 +1418,12 @@ slots:
multivalued: true
mixing_rate:
name: mixing_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/mixing_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/mixing_rate
description: Stirring rate during mixing of synthesis components.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:mixing_rate
- slot_uri: catcore:mixing_rate
+ - coremeta4cat:mixing_rate
+ slot_uri: coremeta4cat:mixing_rate
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1432,12 +1433,12 @@ slots:
ucum_code: rpm
mixing_time:
name: mixing_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/mixing_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/mixing_time
description: Duration of the mixing step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:mixing_time
- slot_uri: catcore:mixing_time
+ - coremeta4cat:mixing_time
+ slot_uri: coremeta4cat:mixing_time
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1447,12 +1448,12 @@ slots:
ucum_code: h
mixing_temperature:
name: mixing_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/mixing_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/mixing_temperature
description: Temperature during mixing.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:mixing_temperature
- slot_uri: catcore:mixing_temperature
+ - coremeta4cat:mixing_temperature
+ slot_uri: coremeta4cat:mixing_temperature
owner: MolecularSynthesis
domain_of:
- PrecipitationMixin
@@ -1463,12 +1464,12 @@ slots:
ucum_code: Cel
order_of_addition:
name: order_of_addition
- definition_uri: https://w3id.org/nfdi4cat/catcore/order_of_addition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/order_of_addition
description: Order in which reagents or components are combined.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:order_of_addition
- slot_uri: catcore:order_of_addition
+ - coremeta4cat:order_of_addition
+ slot_uri: coremeta4cat:order_of_addition
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1476,12 +1477,12 @@ slots:
multivalued: true
filtration:
name: filtration
- definition_uri: https://w3id.org/nfdi4cat/catcore/filtration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/filtration
description: Filtration method used to separate the precipitate (e.g. vacuum filtration).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:filtration
- slot_uri: catcore:filtration
+ - coremeta4cat:filtration
+ slot_uri: coremeta4cat:filtration
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1489,12 +1490,12 @@ slots:
multivalued: true
purification:
name: purification
- definition_uri: https://w3id.org/nfdi4cat/catcore/purification
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/purification
description: Purification method applied after synthesis (e.g. washing, dialysis).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:purification
- slot_uri: catcore:purification
+ - coremeta4cat:purification
+ slot_uri: coremeta4cat:purification
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1502,12 +1503,12 @@ slots:
multivalued: true
aging_temperature:
name: aging_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/aging_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/aging_temperature
description: Temperature during aging of the precipitate or gel.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:aging_temperature
- slot_uri: catcore:aging_temperature
+ - coremeta4cat:aging_temperature
+ slot_uri: coremeta4cat:aging_temperature
owner: PrecipitationMixin
domain_of:
- PrecipitationMixin
@@ -1517,12 +1518,12 @@ slots:
ucum_code: Cel
aging_time:
name: aging_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/aging_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/aging_time
description: Duration of the aging step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:aging_time
- slot_uri: catcore:aging_time
+ - coremeta4cat:aging_time
+ slot_uri: coremeta4cat:aging_time
owner: SolGel
domain_of:
- PrecipitationMixin
@@ -1533,12 +1534,12 @@ slots:
ucum_code: h
deposition_temperature:
name: deposition_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/deposition_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/deposition_temperature
description: Temperature during the deposition step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:deposition_temperature
- slot_uri: catcore:deposition_temperature
+ - coremeta4cat:deposition_temperature
+ slot_uri: coremeta4cat:deposition_temperature
owner: DepositionPrecipitation
domain_of:
- AtomicLayerDeposition
@@ -1549,12 +1550,12 @@ slots:
ucum_code: Cel
deposition_time:
name: deposition_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/deposition_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/deposition_time
description: Duration of the deposition step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:deposition_time
- slot_uri: catcore:deposition_time
+ - coremeta4cat:deposition_time
+ slot_uri: coremeta4cat:deposition_time
owner: DepositionPrecipitation
domain_of:
- DepositionPrecipitation
@@ -1564,9 +1565,9 @@ slots:
ucum_code: h
synthesis_temperature:
name: synthesis_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/synthesis_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/synthesis_temperature
description: Temperature applied during the synthesis step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0000051
slot_uri: VOC4CAT:0000051
@@ -1579,9 +1580,9 @@ slots:
ucum_code: Cel
synthesis_duration:
name: synthesis_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/synthesis_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/synthesis_duration
description: Total duration of the synthesis step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0000050
slot_uri: VOC4CAT:0000050
@@ -1594,9 +1595,9 @@ slots:
ucum_code: h
synthesis_pressure:
name: synthesis_pressure
- definition_uri: https://w3id.org/nfdi4cat/catcore/synthesis_pressure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/synthesis_pressure
description: Pressure applied during synthesis (e.g. in autoclave or plasma reactor).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0000053
slot_uri: VOC4CAT:0000053
@@ -1610,12 +1611,12 @@ slots:
ucum_code: bar
hydrolysis_ratio:
name: hydrolysis_ratio
- definition_uri: https://w3id.org/nfdi4cat/catcore/hydrolysis_ratio
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/hydrolysis_ratio
description: Molar ratio of water to alkoxide precursor used in hydrolysis.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:hydrolysis_ratio
- slot_uri: catcore:hydrolysis_ratio
+ - coremeta4cat:hydrolysis_ratio
+ slot_uri: coremeta4cat:hydrolysis_ratio
owner: SolGel
domain_of:
- SolGel
@@ -1623,13 +1624,13 @@ slots:
multivalued: true
drying:
name: drying
- definition_uri: https://w3id.org/nfdi4cat/catcore/drying
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/drying
description: Drying method used for the gel (e.g. supercritical drying, freeze
drying).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:drying
- slot_uri: catcore:drying
+ - coremeta4cat:drying
+ slot_uri: coremeta4cat:drying
owner: SolGel
domain_of:
- SolGel
@@ -1637,12 +1638,12 @@ slots:
multivalued: true
surfactant_template:
name: surfactant_template
- definition_uri: https://w3id.org/nfdi4cat/catcore/surfactant_template
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/surfactant_template
description: Surfactant or structure-directing agent used as a template.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:surfactant_template
- slot_uri: catcore:surfactant_template
+ - coremeta4cat:surfactant_template
+ slot_uri: coremeta4cat:surfactant_template
owner: SolGel
domain_of:
- SolGel
@@ -1650,12 +1651,12 @@ slots:
multivalued: true
filling_volume:
name: filling_volume
- definition_uri: https://w3id.org/nfdi4cat/catcore/filling_volume
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/filling_volume
description: Volume of solution relative to autoclave volume (filling degree).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:filling_volume
- slot_uri: catcore:filling_volume
+ - coremeta4cat:filling_volume
+ slot_uri: coremeta4cat:filling_volume
owner: Solvothermal
domain_of:
- Solvothermal
@@ -1665,12 +1666,12 @@ slots:
ucum_code: mL
stirrer_type:
name: stirrer_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/stirrer_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/stirrer_type
description: Type of stirrer used (e.g. magnetic, mechanical, none).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:stirrer_type
- slot_uri: catcore:stirrer_type
+ - coremeta4cat:stirrer_type
+ slot_uri: coremeta4cat:stirrer_type
owner: Solvothermal
domain_of:
- Solvothermal
@@ -1678,12 +1679,12 @@ slots:
multivalued: true
cooling_rate:
name: cooling_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/cooling_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/cooling_rate
description: Rate at which the reactor is cooled after synthesis.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:cooling_rate
- slot_uri: catcore:cooling_rate
+ - coremeta4cat:cooling_rate
+ slot_uri: coremeta4cat:cooling_rate
owner: Solvothermal
domain_of:
- Solvothermal
@@ -1693,12 +1694,12 @@ slots:
ucum_code: Cel/min
plasma_type:
name: plasma_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/plasma_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/plasma_type
description: Type of plasma used (e.g. DBD, microwave, RF plasma).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:plasma_type
- slot_uri: catcore:plasma_type
+ - coremeta4cat:plasma_type
+ slot_uri: coremeta4cat:plasma_type
owner: PlasmaAssisted
domain_of:
- PlasmaAssisted
@@ -1706,12 +1707,12 @@ slots:
multivalued: true
power_input:
name: power_input
- definition_uri: https://w3id.org/nfdi4cat/catcore/power_input
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/power_input
description: Power input to the plasma reactor or other energy source.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:power_input
- slot_uri: catcore:power_input
+ - coremeta4cat:power_input
+ slot_uri: coremeta4cat:power_input
owner: PlasmaAssisted
domain_of:
- PlasmaAssisted
@@ -1721,12 +1722,12 @@ slots:
ucum_code: W
exposure_time:
name: exposure_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/exposure_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/exposure_time
description: Duration of plasma or other energy exposure.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:exposure_time
- slot_uri: catcore:exposure_time
+ - coremeta4cat:exposure_time
+ slot_uri: coremeta4cat:exposure_time
owner: PlasmaAssisted
domain_of:
- PlasmaAssisted
@@ -1736,12 +1737,12 @@ slots:
ucum_code: min
fuel:
name: fuel
- definition_uri: https://w3id.org/nfdi4cat/catcore/fuel
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/fuel
description: Organic fuel used in combustion synthesis (e.g. urea, glycine).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:fuel
- slot_uri: catcore:fuel
+ - coremeta4cat:fuel
+ slot_uri: coremeta4cat:fuel
owner: CombustionSynthesis
domain_of:
- CombustionSynthesis
@@ -1749,12 +1750,12 @@ slots:
multivalued: true
oxidizer:
name: oxidizer
- definition_uri: https://w3id.org/nfdi4cat/catcore/oxidizer
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/oxidizer
description: Oxidizer used in combustion synthesis (e.g. metal nitrates).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:oxidizer
- slot_uri: catcore:oxidizer
+ - coremeta4cat:oxidizer
+ slot_uri: coremeta4cat:oxidizer
owner: CombustionSynthesis
domain_of:
- CombustionSynthesis
@@ -1762,12 +1763,12 @@ slots:
multivalued: true
fuel_to_oxidizer_ratio:
name: fuel_to_oxidizer_ratio
- definition_uri: https://w3id.org/nfdi4cat/catcore/fuel_to_oxidizer_ratio
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/fuel_to_oxidizer_ratio
description: Molar ratio of fuel to oxidizer.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:fuel_to_oxidizer_ratio
- slot_uri: catcore:fuel_to_oxidizer_ratio
+ - coremeta4cat:fuel_to_oxidizer_ratio
+ slot_uri: coremeta4cat:fuel_to_oxidizer_ratio
owner: CombustionSynthesis
domain_of:
- CombustionSynthesis
@@ -1775,12 +1776,12 @@ slots:
multivalued: true
set_temperature:
name: set_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/set_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/set_temperature
description: Target temperature set for the combustion reaction.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:set_temperature
- slot_uri: catcore:set_temperature
+ - coremeta4cat:set_temperature
+ slot_uri: coremeta4cat:set_temperature
owner: CombustionSynthesis
domain_of:
- CombustionSynthesis
@@ -1790,12 +1791,12 @@ slots:
ucum_code: Cel
post_treatment:
name: post_treatment
- definition_uri: https://w3id.org/nfdi4cat/catcore/post_treatment
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/post_treatment
description: Post-synthesis treatment applied to the combustion product.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:post_treatment
- slot_uri: catcore:post_treatment
+ - coremeta4cat:post_treatment
+ slot_uri: coremeta4cat:post_treatment
owner: CombustionSynthesis
domain_of:
- CombustionSynthesis
@@ -1803,9 +1804,9 @@ slots:
multivalued: true
substrate:
name: substrate
- definition_uri: https://w3id.org/nfdi4cat/catcore/substrate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/substrate
description: Substrate material on which the ALD film is deposited.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0000024
slot_uri: VOC4CAT:0000024
@@ -1816,12 +1817,12 @@ slots:
multivalued: true
pulse_time:
name: pulse_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/pulse_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/pulse_time
description: Duration of the precursor pulse in each ALD cycle.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:pulse_time
- slot_uri: catcore:pulse_time
+ - coremeta4cat:pulse_time
+ slot_uri: coremeta4cat:pulse_time
owner: AtomicLayerDeposition
domain_of:
- AtomicLayerDeposition
@@ -1831,9 +1832,9 @@ slots:
ucum_code: s
purging_duration:
name: purging_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/purging_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/purging_duration
description: Duration of the purge step between ALD pulses.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0000112
slot_uri: VOC4CAT:0000112
@@ -1846,12 +1847,12 @@ slots:
ucum_code: s
power:
name: power
- definition_uri: https://w3id.org/nfdi4cat/catcore/power
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/power
description: Microwave power applied.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:power
- slot_uri: catcore:power
+ - coremeta4cat:power
+ slot_uri: coremeta4cat:power
owner: MicrowaveAssisted
domain_of:
- MicrowaveAssisted
@@ -1861,12 +1862,12 @@ slots:
ucum_code: W
microwave_frequency:
name: microwave_frequency
- definition_uri: https://w3id.org/nfdi4cat/catcore/microwave_frequency
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/microwave_frequency
description: Frequency of microwave irradiation.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:microwave_frequency
- slot_uri: catcore:microwave_frequency
+ - coremeta4cat:microwave_frequency
+ slot_uri: coremeta4cat:microwave_frequency
owner: MicrowaveAssisted
domain_of:
- MicrowaveAssisted
@@ -1876,12 +1877,12 @@ slots:
ucum_code: GHz
sonication_power:
name: sonication_power
- definition_uri: https://w3id.org/nfdi4cat/catcore/sonication_power
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sonication_power
description: Acoustic power applied during sonication.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:sonication_power
- slot_uri: catcore:sonication_power
+ - coremeta4cat:sonication_power
+ slot_uri: coremeta4cat:sonication_power
owner: SonochemicalSynthesis
domain_of:
- SonochemicalSynthesis
@@ -1891,12 +1892,12 @@ slots:
ucum_code: W
sonication_duration:
name: sonication_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/sonication_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sonication_duration
description: Duration of ultrasonic irradiation.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:sonication_duration
- slot_uri: catcore:sonication_duration
+ - coremeta4cat:sonication_duration
+ slot_uri: coremeta4cat:sonication_duration
owner: SonochemicalSynthesis
domain_of:
- SonochemicalSynthesis
@@ -1906,12 +1907,12 @@ slots:
ucum_code: min
flame_type:
name: flame_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/flame_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/flame_type
description: Type of flame used in FSP (e.g. methane/oxygen, H2/O2).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:flame_type
- slot_uri: catcore:flame_type
+ - coremeta4cat:flame_type
+ slot_uri: coremeta4cat:flame_type
owner: FlameSprayPyrolysis
domain_of:
- FlameSprayPyrolysis
@@ -1919,12 +1920,12 @@ slots:
multivalued: true
inlet_system:
name: inlet_system
- definition_uri: https://w3id.org/nfdi4cat/catcore/inlet_system
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/inlet_system
description: Configuration of the precursor inlet system.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:inlet_system
- slot_uri: catcore:inlet_system
+ - coremeta4cat:inlet_system
+ slot_uri: coremeta4cat:inlet_system
owner: FlameSprayPyrolysis
domain_of:
- FlameSprayPyrolysis
@@ -1932,12 +1933,12 @@ slots:
multivalued: true
flame_ring:
name: flame_ring
- definition_uri: https://w3id.org/nfdi4cat/catcore/flame_ring
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/flame_ring
description: Configuration of the supporting flame ring.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:flame_ring
- slot_uri: catcore:flame_ring
+ - coremeta4cat:flame_ring
+ slot_uri: coremeta4cat:flame_ring
owner: FlameSprayPyrolysis
domain_of:
- FlameSprayPyrolysis
@@ -1945,12 +1946,12 @@ slots:
multivalued: true
capillary_pressure:
name: capillary_pressure
- definition_uri: https://w3id.org/nfdi4cat/catcore/capillary_pressure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/capillary_pressure
description: Pressure applied at the capillary nozzle during FSP.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:capillary_pressure
- slot_uri: catcore:capillary_pressure
+ - coremeta4cat:capillary_pressure
+ slot_uri: coremeta4cat:capillary_pressure
owner: FlameSprayPyrolysis
domain_of:
- FlameSprayPyrolysis
@@ -1960,12 +1961,12 @@ slots:
ucum_code: bar
fuel_dispersant_ratio:
name: fuel_dispersant_ratio
- definition_uri: https://w3id.org/nfdi4cat/catcore/fuel_dispersant_ratio
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/fuel_dispersant_ratio
description: Volume ratio of fuel to dispersant used in FSP.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:fuel_dispersant_ratio
- slot_uri: catcore:fuel_dispersant_ratio
+ - coremeta4cat:fuel_dispersant_ratio
+ slot_uri: coremeta4cat:fuel_dispersant_ratio
owner: FlameSprayPyrolysis
domain_of:
- FlameSprayPyrolysis
@@ -1973,12 +1974,12 @@ slots:
multivalued: true
vessel_volume:
name: vessel_volume
- definition_uri: https://w3id.org/nfdi4cat/catcore/vessel_volume
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/vessel_volume
description: Volume of the milling vessel.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:vessel_volume
- slot_uri: catcore:vessel_volume
+ - coremeta4cat:vessel_volume
+ slot_uri: coremeta4cat:vessel_volume
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -1988,12 +1989,12 @@ slots:
ucum_code: mL
size_and_material:
name: size_and_material
- definition_uri: https://w3id.org/nfdi4cat/catcore/size_and_material
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/size_and_material
description: Size and material of the milling vessel and components.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:size_and_material
- slot_uri: catcore:size_and_material
+ - coremeta4cat:size_and_material
+ slot_uri: coremeta4cat:size_and_material
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -2001,12 +2002,12 @@ slots:
multivalued: true
milling_speed:
name: milling_speed
- definition_uri: https://w3id.org/nfdi4cat/catcore/milling_speed
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/milling_speed
description: Rotational speed during milling.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:milling_speed
- slot_uri: catcore:milling_speed
+ - coremeta4cat:milling_speed
+ slot_uri: coremeta4cat:milling_speed
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -2016,12 +2017,12 @@ slots:
ucum_code: rpm
milling_duration:
name: milling_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/milling_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/milling_duration
description: Total duration of the milling process.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:milling_duration
- slot_uri: catcore:milling_duration
+ - coremeta4cat:milling_duration
+ slot_uri: coremeta4cat:milling_duration
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -2031,12 +2032,12 @@ slots:
ucum_code: h
ball_material:
name: ball_material
- definition_uri: https://w3id.org/nfdi4cat/catcore/ball_material
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ball_material
description: Material of the milling balls (e.g. zirconia, stainless steel).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:ball_material
- slot_uri: catcore:ball_material
+ - coremeta4cat:ball_material
+ slot_uri: coremeta4cat:ball_material
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -2044,12 +2045,12 @@ slots:
multivalued: true
ball_size:
name: ball_size
- definition_uri: https://w3id.org/nfdi4cat/catcore/ball_size
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ball_size
description: Diameter of the milling balls.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:ball_size
- slot_uri: catcore:ball_size
+ - coremeta4cat:ball_size
+ slot_uri: coremeta4cat:ball_size
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -2059,12 +2060,12 @@ slots:
ucum_code: mm
ball_to_powder_ratio:
name: ball_to_powder_ratio
- definition_uri: https://w3id.org/nfdi4cat/catcore/ball_to_powder_ratio
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ball_to_powder_ratio
description: Mass ratio of milling balls to powder charge.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:ball_to_powder_ratio
- slot_uri: catcore:ball_to_powder_ratio
+ - coremeta4cat:ball_to_powder_ratio
+ slot_uri: coremeta4cat:ball_to_powder_ratio
owner: MechanochemicalSynthesis
domain_of:
- MechanochemicalSynthesis
@@ -2072,12 +2073,12 @@ slots:
multivalued: true
reaction_vessel:
name: reaction_vessel
- definition_uri: https://w3id.org/nfdi4cat/catcore/reaction_vessel
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reaction_vessel
description: Type of reaction vessel used (e.g. Schlenk flask, round-bottom flask).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:reaction_vessel
- slot_uri: catcore:reaction_vessel
+ - coremeta4cat:reaction_vessel
+ slot_uri: coremeta4cat:reaction_vessel
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2085,12 +2086,12 @@ slots:
multivalued: true
mixing_device:
name: mixing_device
- definition_uri: https://w3id.org/nfdi4cat/catcore/mixing_device
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/mixing_device
description: Device used for mixing (e.g. magnetic stirrer, vortex mixer).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:mixing_device
- slot_uri: catcore:mixing_device
+ - coremeta4cat:mixing_device
+ slot_uri: coremeta4cat:mixing_device
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2098,12 +2099,12 @@ slots:
multivalued: true
crystallisation_solvents:
name: crystallisation_solvents
- definition_uri: https://w3id.org/nfdi4cat/catcore/crystallisation_solvents
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/crystallisation_solvents
description: Solvent(s) used for crystallisation.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:crystallisation_solvents
- slot_uri: catcore:crystallisation_solvents
+ - coremeta4cat:crystallisation_solvents
+ slot_uri: coremeta4cat:crystallisation_solvents
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2111,12 +2112,12 @@ slots:
multivalued: true
precipitation_agent:
name: precipitation_agent
- definition_uri: https://w3id.org/nfdi4cat/catcore/precipitation_agent
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/precipitation_agent
description: Agent used to induce precipitation in molecular synthesis.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:precipitation_agent
- slot_uri: catcore:precipitation_agent
+ - coremeta4cat:precipitation_agent
+ slot_uri: coremeta4cat:precipitation_agent
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2124,12 +2125,12 @@ slots:
multivalued: true
crystallisation_duration:
name: crystallisation_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/crystallisation_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/crystallisation_duration
description: Duration of the crystallisation step.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:crystallisation_duration
- slot_uri: catcore:crystallisation_duration
+ - coremeta4cat:crystallisation_duration
+ slot_uri: coremeta4cat:crystallisation_duration
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2139,12 +2140,12 @@ slots:
ucum_code: h
purification_solvent:
name: purification_solvent
- definition_uri: https://w3id.org/nfdi4cat/catcore/purification_solvent
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/purification_solvent
description: Solvent used for washing or recrystallisation during purification.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:purification_solvent
- slot_uri: catcore:purification_solvent
+ - coremeta4cat:purification_solvent
+ slot_uri: coremeta4cat:purification_solvent
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2152,12 +2153,12 @@ slots:
multivalued: true
temperature_ramp:
name: temperature_ramp
- definition_uri: https://w3id.org/nfdi4cat/catcore/temperature_ramp
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/temperature_ramp
description: Temperature ramp rate applied during drying or activation.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:temperature_ramp
- slot_uri: catcore:temperature_ramp
+ - coremeta4cat:temperature_ramp
+ slot_uri: coremeta4cat:temperature_ramp
owner: MolecularSynthesis
domain_of:
- MolecularSynthesis
@@ -2167,12 +2168,12 @@ slots:
ucum_code: Cel/min
sample_state:
name: sample_state
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_state
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_state
description: Physical state of the sample during characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:sample_state
- slot_uri: catcore:sample_state
+ - coremeta4cat:sample_state
+ slot_uri: coremeta4cat:sample_state
owner: Characterization
domain_of:
- Characterization
@@ -2180,12 +2181,12 @@ slots:
multivalued: true
sample_description:
name: sample_description
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_description
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_description
description: Free-text description of the sample used in this characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:sample_description
- slot_uri: catcore:sample_description
+ - coremeta4cat:sample_description
+ slot_uri: coremeta4cat:sample_description
owner: Characterization
domain_of:
- Characterization
@@ -2193,9 +2194,9 @@ slots:
multivalued: true
sample_preparation:
name: sample_preparation
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_preparation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_preparation
description: Sample preparation steps applied immediately before measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFP:0001159
slot_uri: AFP:0001159
@@ -2206,9 +2207,9 @@ slots:
multivalued: true
detector_type:
name: detector_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/detector_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/detector_type
description: Type of detector used in the measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0000317
slot_uri: AFR:0000317
@@ -2219,9 +2220,9 @@ slots:
multivalued: true
xray_source:
name: xray_source
- definition_uri: https://w3id.org/nfdi4cat/catcore/xray_source
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/xray_source
description: X-ray source used (e.g. Cu K-alpha, Mo K-alpha, synchrotron).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- OBI:0001138
slot_uri: OBI:0001138
@@ -2232,9 +2233,9 @@ slots:
multivalued: true
monochromator:
name: monochromator
- definition_uri: https://w3id.org/nfdi4cat/catcore/monochromator
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/monochromator
description: Monochromator type or configuration used.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0002120
slot_uri: CHMO:0002120
@@ -2245,12 +2246,12 @@ slots:
multivalued: true
minimum_energy:
name: minimum_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_energy
description: Minimum energy of the scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_energy
- slot_uri: catcore:minimum_energy
+ - coremeta4cat:minimum_energy
+ slot_uri: coremeta4cat:minimum_energy
owner: EnergyRangeMixin
domain_of:
- EnergyRangeMixin
@@ -2260,12 +2261,12 @@ slots:
ucum_code: eV
maximum_energy:
name: maximum_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_energy
description: Maximum energy of the scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_energy
- slot_uri: catcore:maximum_energy
+ - coremeta4cat:maximum_energy
+ slot_uri: coremeta4cat:maximum_energy
owner: EnergyRangeMixin
domain_of:
- EnergyRangeMixin
@@ -2275,12 +2276,12 @@ slots:
ucum_code: eV
gun_type:
name: gun_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/gun_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/gun_type
description: Type of electron gun (e.g. FEG, thermionic LaB6).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:gun_type
- slot_uri: catcore:gun_type
+ - coremeta4cat:gun_type
+ slot_uri: coremeta4cat:gun_type
owner: ElectronMicroscopyMixin
domain_of:
- ElectronMicroscopyMixin
@@ -2288,12 +2289,12 @@ slots:
multivalued: true
acceleration_voltage:
name: acceleration_voltage
- definition_uri: https://w3id.org/nfdi4cat/catcore/acceleration_voltage
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/acceleration_voltage
description: Acceleration voltage applied to the electron beam.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:acceleration_voltage
- slot_uri: catcore:acceleration_voltage
+ - coremeta4cat:acceleration_voltage
+ slot_uri: coremeta4cat:acceleration_voltage
owner: ElectronMicroscopyMixin
domain_of:
- ElectronMicroscopyMixin
@@ -2303,9 +2304,9 @@ slots:
ucum_code: kV
magnification_setting:
name: magnification_setting
- definition_uri: https://w3id.org/nfdi4cat/catcore/magnification_setting
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/magnification_setting
description: Magnification setting used for imaging.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0002226
slot_uri: AFR:0002226
@@ -2317,12 +2318,12 @@ slots:
multivalued: true
minimum_temperature:
name: minimum_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_temperature
description: Minimum (start) temperature in a temperature programme.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_temperature
- slot_uri: catcore:minimum_temperature
+ - coremeta4cat:minimum_temperature
+ slot_uri: coremeta4cat:minimum_temperature
owner: TemperatureProgramMixin
domain_of:
- TemperatureProgramMixin
@@ -2332,12 +2333,12 @@ slots:
ucum_code: Cel
maximum_temperature:
name: maximum_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_temperature
description: Maximum (final) temperature in a temperature programme.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_temperature
- slot_uri: catcore:maximum_temperature
+ - coremeta4cat:maximum_temperature
+ slot_uri: coremeta4cat:maximum_temperature
owner: TemperatureProgramMixin
domain_of:
- TemperatureProgramMixin
@@ -2347,9 +2348,9 @@ slots:
ucum_code: Cel
initial_temperature:
name: initial_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/initial_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/initial_temperature
description: Initial temperature at the start of a thermal analysis run.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- NCIT:C164644
slot_uri: NCIT:C164644
@@ -2362,9 +2363,9 @@ slots:
ucum_code: Cel
final_temperature:
name: final_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/final_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/final_temperature
description: Final temperature at the end of a thermal analysis run.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- NCIT:C164644
slot_uri: NCIT:C164644
@@ -2377,9 +2378,9 @@ slots:
ucum_code: Cel
mz_minimum:
name: mz_minimum
- definition_uri: https://w3id.org/nfdi4cat/catcore/mz_minimum
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/mz_minimum
description: Minimum m/z value in the mass scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0002652
slot_uri: AFR:0002652
@@ -2390,9 +2391,9 @@ slots:
multivalued: true
mz_maximum:
name: mz_maximum
- definition_uri: https://w3id.org/nfdi4cat/catcore/mz_maximum
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/mz_maximum
description: Maximum m/z value in the mass scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0002653
slot_uri: AFR:0002653
@@ -2403,9 +2404,9 @@ slots:
multivalued: true
excitation_wavelength:
name: excitation_wavelength
- definition_uri: https://w3id.org/nfdi4cat/catcore/excitation_wavelength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/excitation_wavelength
description: Excitation wavelength used in photoluminescence measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0002479
slot_uri: AFR:0002479
@@ -2418,9 +2419,9 @@ slots:
ucum_code: nm
emission_wavelength:
name: emission_wavelength
- definition_uri: https://w3id.org/nfdi4cat/catcore/emission_wavelength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/emission_wavelength
description: Emission wavelength detected in photoluminescence measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- NCIT:C204101
slot_uri: NCIT:C204101
@@ -2433,12 +2434,12 @@ slots:
ucum_code: nm
optical_filter:
name: optical_filter
- definition_uri: https://w3id.org/nfdi4cat/catcore/optical_filter
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/optical_filter
description: Optical filter used in the emission or excitation path.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:optical_filter
- slot_uri: catcore:optical_filter
+ - coremeta4cat:optical_filter
+ slot_uri: coremeta4cat:optical_filter
owner: PhotoluminescenceMixin
domain_of:
- PhotoluminescenceMixin
@@ -2446,9 +2447,9 @@ slots:
multivalued: true
reference_electrode:
name: reference_electrode
- definition_uri: https://w3id.org/nfdi4cat/catcore/reference_electrode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reference_electrode
description: Reference electrode used in electrochemical cell (e.g. Ag/AgCl, RHE).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007204
slot_uri: VOC4CAT:0007204
@@ -2459,9 +2460,9 @@ slots:
multivalued: true
working_electrode:
name: working_electrode
- definition_uri: https://w3id.org/nfdi4cat/catcore/working_electrode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/working_electrode
description: Working electrode used in electrochemical cell.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007202
slot_uri: VOC4CAT:0007202
@@ -2472,9 +2473,9 @@ slots:
multivalued: true
counter_electrode:
name: counter_electrode
- definition_uri: https://w3id.org/nfdi4cat/catcore/counter_electrode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/counter_electrode
description: Counter electrode used in electrochemical cell.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007203
slot_uri: VOC4CAT:0007203
@@ -2485,12 +2486,12 @@ slots:
multivalued: true
electrolyte_composition:
name: electrolyte_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/electrolyte_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/electrolyte_composition
description: Chemical composition of the electrolyte solution.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:electrolyte_composition
- slot_uri: catcore:electrolyte_composition
+ - coremeta4cat:electrolyte_composition
+ slot_uri: coremeta4cat:electrolyte_composition
owner: ElectrochemistryMixin
domain_of:
- ElectrochemistryMixin
@@ -2498,12 +2499,12 @@ slots:
multivalued: true
electrolyte_concentration:
name: electrolyte_concentration
- definition_uri: https://w3id.org/nfdi4cat/catcore/electrolyte_concentration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/electrolyte_concentration
description: Concentration of the electrolyte.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:electrolyte_concentration
- slot_uri: catcore:electrolyte_concentration
+ - coremeta4cat:electrolyte_concentration
+ slot_uri: coremeta4cat:electrolyte_concentration
owner: ElectrochemistryMixin
domain_of:
- ElectrochemistryMixin
@@ -2513,12 +2514,12 @@ slots:
ucum_code: mol/L
minimum_2theta:
name: minimum_2theta
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_2theta
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_2theta
description: Minimum 2theta angle in the diffraction scan.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_2theta
- slot_uri: catcore:minimum_2theta
+ - coremeta4cat:minimum_2theta
+ slot_uri: coremeta4cat:minimum_2theta
owner: PowderXRD
domain_of:
- PowderXRD
@@ -2528,12 +2529,12 @@ slots:
ucum_code: deg
maximum_2theta:
name: maximum_2theta
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_2theta
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_2theta
description: Maximum 2theta angle in the diffraction scan.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_2theta
- slot_uri: catcore:maximum_2theta
+ - coremeta4cat:maximum_2theta
+ slot_uri: coremeta4cat:maximum_2theta
owner: PowderXRD
domain_of:
- PowderXRD
@@ -2543,12 +2544,12 @@ slots:
ucum_code: deg
sample_spinning_speed:
name: sample_spinning_speed
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_spinning_speed
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_spinning_speed
description: Sample spinning speed during XRD measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:sample_spinning_speed
- slot_uri: catcore:sample_spinning_speed
+ - coremeta4cat:sample_spinning_speed
+ slot_uri: coremeta4cat:sample_spinning_speed
owner: PowderXRD
domain_of:
- PowderXRD
@@ -2558,12 +2559,12 @@ slots:
ucum_code: rpm
absorption_edge:
name: absorption_edge
- definition_uri: https://w3id.org/nfdi4cat/catcore/absorption_edge
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/absorption_edge
description: X-ray absorption edge measured (e.g. K-edge, L3-edge).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:absorption_edge
- slot_uri: catcore:absorption_edge
+ - coremeta4cat:absorption_edge
+ slot_uri: coremeta4cat:absorption_edge
owner: XRayAbsorptionSpectroscopy
domain_of:
- XRayAbsorptionSpectroscopy
@@ -2571,12 +2572,12 @@ slots:
multivalued: true
element_analyzed:
name: element_analyzed
- definition_uri: https://w3id.org/nfdi4cat/catcore/element_analyzed
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/element_analyzed
description: Chemical element analysed (e.g. Fe, Cu, Pt).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:element_analyzed
- slot_uri: catcore:element_analyzed
+ - coremeta4cat:element_analyzed
+ slot_uri: coremeta4cat:element_analyzed
owner: ICPAES
domain_of:
- XRayAbsorptionSpectroscopy
@@ -2585,12 +2586,12 @@ slots:
multivalued: true
beamline_source:
name: beamline_source
- definition_uri: https://w3id.org/nfdi4cat/catcore/beamline_source
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/beamline_source
description: Synchrotron beamline or X-ray source identifier.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:beamline_source
- slot_uri: catcore:beamline_source
+ - coremeta4cat:beamline_source
+ slot_uri: coremeta4cat:beamline_source
owner: XRayAbsorptionSpectroscopy
domain_of:
- XRayAbsorptionSpectroscopy
@@ -2598,12 +2599,12 @@ slots:
multivalued: true
noise_of_measurement:
name: noise_of_measurement
- definition_uri: https://w3id.org/nfdi4cat/catcore/noise_of_measurement
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/noise_of_measurement
description: Noise level of the XAS measurement (signal-to-noise ratio).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:noise_of_measurement
- slot_uri: catcore:noise_of_measurement
+ - coremeta4cat:noise_of_measurement
+ slot_uri: coremeta4cat:noise_of_measurement
owner: XRayAbsorptionSpectroscopy
domain_of:
- XRayAbsorptionSpectroscopy
@@ -2611,9 +2612,9 @@ slots:
multivalued: true
energy_resolution:
name: energy_resolution
- definition_uri: https://w3id.org/nfdi4cat/catcore/energy_resolution
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/energy_resolution
description: Energy resolution of the spectrometer or monochromator.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0000950
slot_uri: AFR:0000950
@@ -2626,12 +2627,12 @@ slots:
ucum_code: eV
total_acquisition_time:
name: total_acquisition_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/total_acquisition_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/total_acquisition_time
description: Total time for XPS spectrum acquisition.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:total_acquisition_time
- slot_uri: catcore:total_acquisition_time
+ - coremeta4cat:total_acquisition_time
+ slot_uri: coremeta4cat:total_acquisition_time
owner: XPS
domain_of:
- XPS
@@ -2641,12 +2642,12 @@ slots:
ucum_code: s
pass_energy:
name: pass_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/pass_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/pass_energy
description: Analyser pass energy setting in XPS.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:pass_energy
- slot_uri: catcore:pass_energy
+ - coremeta4cat:pass_energy
+ slot_uri: coremeta4cat:pass_energy
owner: XPS
domain_of:
- XPS
@@ -2656,12 +2657,12 @@ slots:
ucum_code: eV
spot_size:
name: spot_size
- definition_uri: https://w3id.org/nfdi4cat/catcore/spot_size
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/spot_size
description: X-ray spot size on the sample surface.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:spot_size
- slot_uri: catcore:spot_size
+ - coremeta4cat:spot_size
+ slot_uri: coremeta4cat:spot_size
owner: XPS
domain_of:
- XPS
@@ -2671,9 +2672,9 @@ slots:
ucum_code: mm
lense_mode:
name: lense_mode
- definition_uri: https://w3id.org/nfdi4cat/catcore/lense_mode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/lense_mode
description: Electron lens mode setting in XPS analyser.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000108
slot_uri: VOC4CAT:0000108
@@ -2684,12 +2685,12 @@ slots:
multivalued: true
charge_compensation:
name: charge_compensation
- definition_uri: https://w3id.org/nfdi4cat/catcore/charge_compensation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/charge_compensation
description: Charge compensation method applied during XPS measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:charge_compensation
- slot_uri: catcore:charge_compensation
+ - coremeta4cat:charge_compensation
+ slot_uri: coremeta4cat:charge_compensation
owner: XPS
domain_of:
- XPS
@@ -2697,12 +2698,12 @@ slots:
multivalued: true
primary_energy:
name: primary_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/primary_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/primary_energy
description: Primary electron beam energy for EDX excitation.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:primary_energy
- slot_uri: catcore:primary_energy
+ - coremeta4cat:primary_energy
+ slot_uri: coremeta4cat:primary_energy
owner: EDX
domain_of:
- EDX
@@ -2712,12 +2713,12 @@ slots:
ucum_code: keV
counting_time:
name: counting_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/counting_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/counting_time
description: X-ray counting time per point or spectrum.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:counting_time
- slot_uri: catcore:counting_time
+ - coremeta4cat:counting_time
+ slot_uri: coremeta4cat:counting_time
owner: EDX
domain_of:
- EDX
@@ -2727,12 +2728,12 @@ slots:
ucum_code: s
minimum_wavenumber:
name: minimum_wavenumber
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_wavenumber
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_wavenumber
description: Minimum wavenumber of the IR scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_wavenumber
- slot_uri: catcore:minimum_wavenumber
+ - coremeta4cat:minimum_wavenumber
+ slot_uri: coremeta4cat:minimum_wavenumber
owner: InfraredSpectroscopy
domain_of:
- InfraredSpectroscopy
@@ -2742,12 +2743,12 @@ slots:
ucum_code: cm-1
maximum_wavenumber:
name: maximum_wavenumber
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_wavenumber
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_wavenumber
description: Maximum wavenumber of the IR scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_wavenumber
- slot_uri: catcore:maximum_wavenumber
+ - coremeta4cat:maximum_wavenumber
+ slot_uri: coremeta4cat:maximum_wavenumber
owner: InfraredSpectroscopy
domain_of:
- InfraredSpectroscopy
@@ -2757,9 +2758,9 @@ slots:
ucum_code: cm-1
background_correction:
name: background_correction
- definition_uri: https://w3id.org/nfdi4cat/catcore/background_correction
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/background_correction
description: Background correction method applied to IR spectra.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFP:0003721
slot_uri: AFP:0003721
@@ -2770,12 +2771,12 @@ slots:
multivalued: true
adsorption_gas:
name: adsorption_gas
- definition_uri: https://w3id.org/nfdi4cat/catcore/adsorption_gas
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/adsorption_gas
description: Probe gas adsorbed during in-situ DRIFTS measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:adsorption_gas
- slot_uri: catcore:adsorption_gas
+ - coremeta4cat:adsorption_gas
+ slot_uri: coremeta4cat:adsorption_gas
owner: DRIFTS
domain_of:
- DRIFTS
@@ -2783,12 +2784,12 @@ slots:
multivalued: true
diluting_reference:
name: diluting_reference
- definition_uri: https://w3id.org/nfdi4cat/catcore/diluting_reference
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/diluting_reference
description: Reference material used to dilute the DRIFTS sample (e.g. KBr).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:diluting_reference
- slot_uri: catcore:diluting_reference
+ - coremeta4cat:diluting_reference
+ slot_uri: coremeta4cat:diluting_reference
owner: DRIFTS
domain_of:
- DRIFTS
@@ -2796,12 +2797,12 @@ slots:
multivalued: true
ratio_reference_sample:
name: ratio_reference_sample
- definition_uri: https://w3id.org/nfdi4cat/catcore/ratio_reference_sample
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ratio_reference_sample
description: Mass ratio of reference material to catalyst sample in DRIFTS cup.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:ratio_reference_sample
- slot_uri: catcore:ratio_reference_sample
+ - coremeta4cat:ratio_reference_sample
+ slot_uri: coremeta4cat:ratio_reference_sample
owner: DRIFTS
domain_of:
- DRIFTS
@@ -2809,12 +2810,12 @@ slots:
multivalued: true
background_correction_method:
name: background_correction_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/background_correction_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/background_correction_method
description: Specific background correction method used in DRIFTS.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:background_correction_method
- slot_uri: catcore:background_correction_method
+ - coremeta4cat:background_correction_method
+ slot_uri: coremeta4cat:background_correction_method
owner: DRIFTS
domain_of:
- DRIFTS
@@ -2822,9 +2823,9 @@ slots:
multivalued: true
excitation_laser_wavelength:
name: excitation_laser_wavelength
- definition_uri: https://w3id.org/nfdi4cat/catcore/excitation_laser_wavelength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/excitation_laser_wavelength
description: Wavelength of excitation laser used in Raman spectroscopy.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0001594
slot_uri: AFR:0001594
@@ -2837,9 +2838,9 @@ slots:
ucum_code: nm
excitation_laser_power:
name: excitation_laser_power
- definition_uri: https://w3id.org/nfdi4cat/catcore/excitation_laser_power
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/excitation_laser_power
description: Power of the excitation laser at the sample.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFR:0001595
slot_uri: AFR:0001595
@@ -2852,12 +2853,12 @@ slots:
ucum_code: mW
filter_or_grating:
name: filter_or_grating
- definition_uri: https://w3id.org/nfdi4cat/catcore/filter_or_grating
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/filter_or_grating
description: Optical filter or grating used in Raman spectrometer.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:filter_or_grating
- slot_uri: catcore:filter_or_grating
+ - coremeta4cat:filter_or_grating
+ slot_uri: coremeta4cat:filter_or_grating
owner: RamanSpectroscopy
domain_of:
- RamanSpectroscopy
@@ -2865,12 +2866,12 @@ slots:
multivalued: true
nucleus:
name: nucleus
- definition_uri: https://w3id.org/nfdi4cat/catcore/nucleus
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/nucleus
description: NMR-active nucleus observed (e.g. 1H, 13C, 31P).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:nucleus
- slot_uri: catcore:nucleus
+ - coremeta4cat:nucleus
+ slot_uri: coremeta4cat:nucleus
owner: NMRSpectroscopy
domain_of:
- NMRSpectroscopy
@@ -2878,12 +2879,12 @@ slots:
multivalued: true
irradiation_frequency:
name: irradiation_frequency
- definition_uri: https://w3id.org/nfdi4cat/catcore/irradiation_frequency
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/irradiation_frequency
description: Irradiation frequency of the NMR spectrometer.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:irradiation_frequency
- slot_uri: catcore:irradiation_frequency
+ - coremeta4cat:irradiation_frequency
+ slot_uri: coremeta4cat:irradiation_frequency
owner: NMRSpectroscopy
domain_of:
- NMRSpectroscopy
@@ -2893,12 +2894,12 @@ slots:
ucum_code: MHz
nmr_pulse_sequence:
name: nmr_pulse_sequence
- definition_uri: https://w3id.org/nfdi4cat/catcore/nmr_pulse_sequence
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/nmr_pulse_sequence
description: NMR pulse sequence used (e.g. zgpg30, dept).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:nmr_pulse_sequence
- slot_uri: catcore:nmr_pulse_sequence
+ - coremeta4cat:nmr_pulse_sequence
+ slot_uri: coremeta4cat:nmr_pulse_sequence
owner: NMRSpectroscopy
domain_of:
- NMRSpectroscopy
@@ -2906,12 +2907,12 @@ slots:
multivalued: true
nmr_sample_tube:
name: nmr_sample_tube
- definition_uri: https://w3id.org/nfdi4cat/catcore/nmr_sample_tube
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/nmr_sample_tube
description: NMR sample tube type (e.g. 5mm standard, Shigemi tube).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:nmr_sample_tube
- slot_uri: catcore:nmr_sample_tube
+ - coremeta4cat:nmr_sample_tube
+ slot_uri: coremeta4cat:nmr_sample_tube
owner: NMRSpectroscopy
domain_of:
- NMRSpectroscopy
@@ -2919,12 +2920,12 @@ slots:
multivalued: true
image_resolution:
name: image_resolution
- definition_uri: https://w3id.org/nfdi4cat/catcore/image_resolution
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/image_resolution
description: Spatial resolution of SEM images.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:image_resolution
- slot_uri: catcore:image_resolution
+ - coremeta4cat:image_resolution
+ slot_uri: coremeta4cat:image_resolution
owner: ScanningElectronMicroscopy
domain_of:
- ScanningElectronMicroscopy
@@ -2934,12 +2935,12 @@ slots:
ucum_code: nm
field_emitter:
name: field_emitter
- definition_uri: https://w3id.org/nfdi4cat/catcore/field_emitter
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/field_emitter
description: Type of field emitter used in FE-SEM instrument.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:field_emitter
- slot_uri: catcore:field_emitter
+ - coremeta4cat:field_emitter
+ slot_uri: coremeta4cat:field_emitter
owner: ScanningElectronMicroscopy
domain_of:
- ScanningElectronMicroscopy
@@ -2947,12 +2948,12 @@ slots:
multivalued: true
reducing_gas_composition:
name: reducing_gas_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/reducing_gas_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reducing_gas_composition
description: Composition of reducing gas used in TPR (e.g. 5% H2/Ar).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:reducing_gas_composition
- slot_uri: catcore:reducing_gas_composition
+ - coremeta4cat:reducing_gas_composition
+ slot_uri: coremeta4cat:reducing_gas_composition
owner: TPR
domain_of:
- TPR
@@ -2960,12 +2961,12 @@ slots:
multivalued: true
oxidizing_gas_composition:
name: oxidizing_gas_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/oxidizing_gas_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/oxidizing_gas_composition
description: Composition of oxidising gas used in TPO (e.g. 5% O2/Ar).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:oxidizing_gas_composition
- slot_uri: catcore:oxidizing_gas_composition
+ - coremeta4cat:oxidizing_gas_composition
+ slot_uri: coremeta4cat:oxidizing_gas_composition
owner: TPO
domain_of:
- TPO
@@ -2973,12 +2974,12 @@ slots:
multivalued: true
adsorbate_gas:
name: adsorbate_gas
- definition_uri: https://w3id.org/nfdi4cat/catcore/adsorbate_gas
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/adsorbate_gas
description: Adsorbate gas used in BET surface area measurement (e.g. N2, Ar).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:adsorbate_gas
- slot_uri: catcore:adsorbate_gas
+ - coremeta4cat:adsorbate_gas
+ slot_uri: coremeta4cat:adsorbate_gas
owner: BET
domain_of:
- BET
@@ -2986,12 +2987,12 @@ slots:
multivalued: true
degassing_temperature:
name: degassing_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/degassing_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/degassing_temperature
description: Temperature at which sample is degassed before BET measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:degassing_temperature
- slot_uri: catcore:degassing_temperature
+ - coremeta4cat:degassing_temperature
+ slot_uri: coremeta4cat:degassing_temperature
owner: BET
domain_of:
- BET
@@ -3001,13 +3002,13 @@ slots:
ucum_code: Cel
measurement_temperature:
name: measurement_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/measurement_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/measurement_temperature
description: Temperature at which BET adsorption isotherm is measured (e.g. 77
K for N2).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:measurement_temperature
- slot_uri: catcore:measurement_temperature
+ - coremeta4cat:measurement_temperature
+ slot_uri: coremeta4cat:measurement_temperature
owner: BET
domain_of:
- BET
@@ -3017,13 +3018,13 @@ slots:
ucum_code: K
pore_size_distribution_method:
name: pore_size_distribution_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/pore_size_distribution_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/pore_size_distribution_method
description: Method used for pore size distribution calculation (e.g. BJH, DFT,
HK).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:pore_size_distribution_method
- slot_uri: catcore:pore_size_distribution_method
+ - coremeta4cat:pore_size_distribution_method
+ slot_uri: coremeta4cat:pore_size_distribution_method
owner: BET
domain_of:
- BET
@@ -3031,13 +3032,13 @@ slots:
multivalued: true
elements_analyzed:
name: elements_analyzed
- definition_uri: https://w3id.org/nfdi4cat/catcore/elements_analyzed
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/elements_analyzed
description: List of elements analysed by combustion elemental analysis (e.g.
C, H, N, S).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:elements_analyzed
- slot_uri: catcore:elements_analyzed
+ - coremeta4cat:elements_analyzed
+ slot_uri: coremeta4cat:elements_analyzed
owner: ElementalAnalysis
domain_of:
- ElementalAnalysis
@@ -3045,12 +3046,12 @@ slots:
multivalued: true
combustion_temperature:
name: combustion_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/combustion_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/combustion_temperature
description: Combustion furnace temperature for elemental analysis.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:combustion_temperature
- slot_uri: catcore:combustion_temperature
+ - coremeta4cat:combustion_temperature
+ slot_uri: coremeta4cat:combustion_temperature
owner: ElementalAnalysis
domain_of:
- ElementalAnalysis
@@ -3060,9 +3061,9 @@ slots:
ucum_code: Cel
detection_limit:
name: detection_limit
- definition_uri: https://w3id.org/nfdi4cat/catcore/detection_limit
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/detection_limit
description: Detection limit of the analytical method.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- NCIT:C105701
slot_uri: NCIT:C105701
@@ -3073,12 +3074,12 @@ slots:
multivalued: true
matrix_effect_correction:
name: matrix_effect_correction
- definition_uri: https://w3id.org/nfdi4cat/catcore/matrix_effect_correction
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/matrix_effect_correction
description: Method used to correct for matrix effects in ICP-AES.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:matrix_effect_correction
- slot_uri: catcore:matrix_effect_correction
+ - coremeta4cat:matrix_effect_correction
+ slot_uri: coremeta4cat:matrix_effect_correction
owner: ICPAES
domain_of:
- ICPAES
@@ -3086,12 +3087,12 @@ slots:
multivalued: true
minimum_wavelength:
name: minimum_wavelength
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_wavelength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_wavelength
description: Minimum wavelength of the UV-Vis scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_wavelength
- slot_uri: catcore:minimum_wavelength
+ - coremeta4cat:minimum_wavelength
+ slot_uri: coremeta4cat:minimum_wavelength
owner: UVVisSpectroscopy
domain_of:
- UVVisSpectroscopy
@@ -3101,12 +3102,12 @@ slots:
ucum_code: nm
maximum_wavelength:
name: maximum_wavelength
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_wavelength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_wavelength
description: Maximum wavelength of the UV-Vis scan range.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_wavelength
- slot_uri: catcore:maximum_wavelength
+ - coremeta4cat:maximum_wavelength
+ slot_uri: coremeta4cat:maximum_wavelength
owner: UVVisSpectroscopy
domain_of:
- UVVisSpectroscopy
@@ -3116,9 +3117,9 @@ slots:
ucum_code: nm
path_length:
name: path_length
- definition_uri: https://w3id.org/nfdi4cat/catcore/path_length
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/path_length
description: Optical path length of the measurement cell.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFQ:0000268
slot_uri: AFQ:0000268
@@ -3131,12 +3132,12 @@ slots:
ucum_code: cm
emission_range:
name: emission_range
- definition_uri: https://w3id.org/nfdi4cat/catcore/emission_range
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/emission_range
description: Wavelength range over which emission is detected.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:emission_range
- slot_uri: catcore:emission_range
+ - coremeta4cat:emission_range
+ slot_uri: coremeta4cat:emission_range
owner: PhotoluminescenceSpectroscopy
domain_of:
- PhotoluminescenceSpectroscopy
@@ -3144,12 +3145,12 @@ slots:
multivalued: true
slit_width:
name: slit_width
- definition_uri: https://w3id.org/nfdi4cat/catcore/slit_width
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/slit_width
description: Spectrometer entrance or exit slit width.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:slit_width
- slot_uri: catcore:slit_width
+ - coremeta4cat:slit_width
+ slot_uri: coremeta4cat:slit_width
owner: PhotoluminescenceSpectroscopy
domain_of:
- PhotoluminescenceSpectroscopy
@@ -3159,13 +3160,13 @@ slots:
ucum_code: nm
lifetime_fitting_model:
name: lifetime_fitting_model
- definition_uri: https://w3id.org/nfdi4cat/catcore/lifetime_fitting_model
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/lifetime_fitting_model
description: Mathematical model used for fluorescence lifetime fitting (e.g. mono-exponential,
bi-exponential).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:lifetime_fitting_model
- slot_uri: catcore:lifetime_fitting_model
+ - coremeta4cat:lifetime_fitting_model
+ slot_uri: coremeta4cat:lifetime_fitting_model
owner: PhotoluminescenceLifetime
domain_of:
- PhotoluminescenceLifetime
@@ -3173,12 +3174,12 @@ slots:
multivalued: true
number_of_shots:
name: number_of_shots
- definition_uri: https://w3id.org/nfdi4cat/catcore/number_of_shots
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/number_of_shots
description: Number of laser shots accumulated per measurement point.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:number_of_shots
- slot_uri: catcore:number_of_shots
+ - coremeta4cat:number_of_shots
+ slot_uri: coremeta4cat:number_of_shots
owner: PhotoluminescenceLifetime
domain_of:
- PhotoluminescenceLifetime
@@ -3186,9 +3187,9 @@ slots:
multivalued: true
scan_rate:
name: scan_rate
- definition_uri: https://w3id.org/nfdi4cat/catcore/scan_rate
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/scan_rate
description: Potential scan rate in cyclic voltammetry.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007213
slot_uri: VOC4CAT:0007213
@@ -3201,12 +3202,12 @@ slots:
ucum_code: mV/s
minimum_potential:
name: minimum_potential
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_potential
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_potential
description: Lower potential limit in cyclic voltammetry.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_potential
- slot_uri: catcore:minimum_potential
+ - coremeta4cat:minimum_potential
+ slot_uri: coremeta4cat:minimum_potential
owner: CyclicVoltammetry
domain_of:
- CyclicVoltammetry
@@ -3216,12 +3217,12 @@ slots:
ucum_code: V
maximum_potential:
name: maximum_potential
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_potential
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_potential
description: Upper potential limit in cyclic voltammetry.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_potential
- slot_uri: catcore:maximum_potential
+ - coremeta4cat:maximum_potential
+ slot_uri: coremeta4cat:maximum_potential
owner: CyclicVoltammetry
domain_of:
- CyclicVoltammetry
@@ -3231,9 +3232,9 @@ slots:
ucum_code: V
step_size_potential:
name: step_size_potential
- definition_uri: https://w3id.org/nfdi4cat/catcore/step_size_potential
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/step_size_potential
description: Potential step size in cyclic voltammetry.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007218
slot_uri: VOC4CAT:0007218
@@ -3246,13 +3247,13 @@ slots:
ucum_code: mV
electrode_configuration:
name: electrode_configuration
- definition_uri: https://w3id.org/nfdi4cat/catcore/electrode_configuration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/electrode_configuration
description: Configuration of electrodes used in conductivity measurement (e.g.
2-probe, 4-probe).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:electrode_configuration
- slot_uri: catcore:electrode_configuration
+ - coremeta4cat:electrode_configuration
+ slot_uri: coremeta4cat:electrode_configuration
owner: ConductivityMeasurement
domain_of:
- ConductivityMeasurement
@@ -3260,9 +3261,9 @@ slots:
multivalued: true
ac_frequency:
name: ac_frequency
- definition_uri: https://w3id.org/nfdi4cat/catcore/ac_frequency
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ac_frequency
description: Frequency of AC signal applied in impedance or conductivity measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007239
slot_uri: VOC4CAT:0007239
@@ -3275,12 +3276,12 @@ slots:
ucum_code: Hz
ac_dc_mode:
name: ac_dc_mode
- definition_uri: https://w3id.org/nfdi4cat/catcore/ac_dc_mode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ac_dc_mode
description: AC or DC measurement mode used in conductivity measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:ac_dc_mode
- slot_uri: catcore:ac_dc_mode
+ - coremeta4cat:ac_dc_mode
+ slot_uri: coremeta4cat:ac_dc_mode
owner: ConductivityMeasurement
domain_of:
- ConductivityMeasurement
@@ -3288,13 +3289,13 @@ slots:
multivalued: true
sample_geometry:
name: sample_geometry
- definition_uri: https://w3id.org/nfdi4cat/catcore/sample_geometry
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sample_geometry
description: Geometry of the sample used in conductivity measurement (e.g. pellet,
thin film).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:sample_geometry
- slot_uri: catcore:sample_geometry
+ - coremeta4cat:sample_geometry
+ slot_uri: coremeta4cat:sample_geometry
owner: ConductivityMeasurement
domain_of:
- ConductivityMeasurement
@@ -3302,9 +3303,9 @@ slots:
multivalued: true
light_wavelength:
name: light_wavelength
- definition_uri: https://w3id.org/nfdi4cat/catcore/light_wavelength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/light_wavelength
description: Wavelength of the laser used in DLS measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000176
slot_uri: VOC4CAT:0000176
@@ -3317,12 +3318,12 @@ slots:
ucum_code: nm
scattering_angle:
name: scattering_angle
- definition_uri: https://w3id.org/nfdi4cat/catcore/scattering_angle
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/scattering_angle
description: Scattering angle at which intensity is detected in DLS.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:scattering_angle
- slot_uri: catcore:scattering_angle
+ - coremeta4cat:scattering_angle
+ slot_uri: coremeta4cat:scattering_angle
owner: DynamicLightScattering
domain_of:
- DynamicLightScattering
@@ -3332,12 +3333,12 @@ slots:
ucum_code: deg
refractive_index:
name: refractive_index
- definition_uri: https://w3id.org/nfdi4cat/catcore/refractive_index
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/refractive_index
description: Refractive index of the solvent used in DLS measurement.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:refractive_index
- slot_uri: catcore:refractive_index
+ - coremeta4cat:refractive_index
+ slot_uri: coremeta4cat:refractive_index
owner: DynamicLightScattering
domain_of:
- DynamicLightScattering
@@ -3345,12 +3346,12 @@ slots:
multivalued: true
measurement_duration:
name: measurement_duration
- definition_uri: https://w3id.org/nfdi4cat/catcore/measurement_duration
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/measurement_duration
description: Duration of a single DLS acquisition.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:measurement_duration
- slot_uri: catcore:measurement_duration
+ - coremeta4cat:measurement_duration
+ slot_uri: coremeta4cat:measurement_duration
owner: DynamicLightScattering
domain_of:
- DynamicLightScattering
@@ -3360,55 +3361,55 @@ slots:
ucum_code: s
spray_voltage:
name: spray_voltage
- definition_uri: https://w3id.org/nfdi4cat/catcore/spray_voltage
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/spray_voltage
description: Spray voltage applied in electrospray ionisation.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0002792
slot_uri: CHMO:0002792
- owner: ESI_MS
+ owner: ElectroSprayIonizationMassSpectrometry
domain_of:
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
range: float
multivalued: true
unit:
ucum_code: kV
capillary_temperature:
name: capillary_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/capillary_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/capillary_temperature
description: Capillary or desolvation temperature in ESI source.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:capillary_temperature
- slot_uri: catcore:capillary_temperature
- owner: ESI_MS
+ - coremeta4cat:capillary_temperature
+ slot_uri: coremeta4cat:capillary_temperature
+ owner: ElectroSprayIonizationMassSpectrometry
domain_of:
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
range: float
multivalued: true
unit:
ucum_code: Cel
solvent_composition:
name: solvent_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/solvent_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/solvent_composition
description: Solvent composition used for ESI spray solution.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0007246
slot_uri: VOC4CAT:0007246
- owner: ESI_MS
+ owner: ElectroSprayIonizationMassSpectrometry
domain_of:
- - ESI_MS
+ - ElectroSprayIonizationMassSpectrometry
range: string
multivalued: true
carrier_gas_purity:
name: carrier_gas_purity
- definition_uri: https://w3id.org/nfdi4cat/catcore/carrier_gas_purity
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/carrier_gas_purity
description: Purity grade of the carrier gas used in GC.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:carrier_gas_purity
- slot_uri: catcore:carrier_gas_purity
+ - coremeta4cat:carrier_gas_purity
+ slot_uri: coremeta4cat:carrier_gas_purity
owner: GCMS
domain_of:
- GCMS
@@ -3416,12 +3417,12 @@ slots:
multivalued: true
inlet_temperature:
name: inlet_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/inlet_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/inlet_temperature
description: GC inlet temperature.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:inlet_temperature
- slot_uri: catcore:inlet_temperature
+ - coremeta4cat:inlet_temperature
+ slot_uri: coremeta4cat:inlet_temperature
owner: GCMS
domain_of:
- GCMS
@@ -3431,12 +3432,12 @@ slots:
ucum_code: Cel
minimum_oven_temperature:
name: minimum_oven_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/minimum_oven_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/minimum_oven_temperature
description: Minimum oven temperature in GC temperature programme.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:minimum_oven_temperature
- slot_uri: catcore:minimum_oven_temperature
+ - coremeta4cat:minimum_oven_temperature
+ slot_uri: coremeta4cat:minimum_oven_temperature
owner: GCMS
domain_of:
- GCMS
@@ -3446,12 +3447,12 @@ slots:
ucum_code: Cel
maximum_oven_temperature:
name: maximum_oven_temperature
- definition_uri: https://w3id.org/nfdi4cat/catcore/maximum_oven_temperature
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/maximum_oven_temperature
description: Maximum oven temperature in GC temperature programme.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:maximum_oven_temperature
- slot_uri: catcore:maximum_oven_temperature
+ - coremeta4cat:maximum_oven_temperature
+ slot_uri: coremeta4cat:maximum_oven_temperature
owner: GCMS
domain_of:
- GCMS
@@ -3461,12 +3462,12 @@ slots:
ucum_code: Cel
heating_ramp:
name: heating_ramp
- definition_uri: https://w3id.org/nfdi4cat/catcore/heating_ramp
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/heating_ramp
description: Temperature ramp rate in GC oven programme.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:heating_ramp
- slot_uri: catcore:heating_ramp
+ - coremeta4cat:heating_ramp
+ slot_uri: coremeta4cat:heating_ramp
owner: GCMS
domain_of:
- GCMS
@@ -3476,12 +3477,12 @@ slots:
ucum_code: Cel/min
acquisition_mode:
name: acquisition_mode
- definition_uri: https://w3id.org/nfdi4cat/catcore/acquisition_mode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/acquisition_mode
description: Mass spectrometer acquisition mode (e.g. full scan, SIM, SRM).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:acquisition_mode
- slot_uri: catcore:acquisition_mode
+ - coremeta4cat:acquisition_mode
+ slot_uri: coremeta4cat:acquisition_mode
owner: GCMS
domain_of:
- GCMS
@@ -3489,12 +3490,12 @@ slots:
multivalued: true
solvent_delay:
name: solvent_delay
- definition_uri: https://w3id.org/nfdi4cat/catcore/solvent_delay
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/solvent_delay
description: Solvent delay time before MS acquisition begins.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:solvent_delay
- slot_uri: catcore:solvent_delay
+ - coremeta4cat:solvent_delay
+ slot_uri: coremeta4cat:solvent_delay
owner: GCMS
domain_of:
- GCMS
@@ -3504,12 +3505,12 @@ slots:
ucum_code: min
trace_ion_detection:
name: trace_ion_detection
- definition_uri: https://w3id.org/nfdi4cat/catcore/trace_ion_detection
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/trace_ion_detection
description: Trace ion detection setting or threshold.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:trace_ion_detection
- slot_uri: catcore:trace_ion_detection
+ - coremeta4cat:trace_ion_detection
+ slot_uri: coremeta4cat:trace_ion_detection
owner: GCMS
domain_of:
- GCMS
@@ -3517,12 +3518,12 @@ slots:
multivalued: true
split_ratio:
name: split_ratio
- definition_uri: https://w3id.org/nfdi4cat/catcore/split_ratio
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/split_ratio
description: Split ratio at the GC injector.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:split_ratio
- slot_uri: catcore:split_ratio
+ - coremeta4cat:split_ratio
+ slot_uri: coremeta4cat:split_ratio
owner: GCMS
domain_of:
- GCMS
@@ -3530,9 +3531,9 @@ slots:
multivalued: true
eluent:
name: eluent
- definition_uri: https://w3id.org/nfdi4cat/catcore/eluent
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/eluent
description: Eluent or mobile phase used in chromatography.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFRL:0000011
slot_uri: AFRL:0000011
@@ -3543,13 +3544,13 @@ slots:
multivalued: true
calibration_standard:
name: calibration_standard
- definition_uri: https://w3id.org/nfdi4cat/catcore/calibration_standard
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calibration_standard
description: Calibration standard used for molecular weight or retention time
calibration.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:calibration_standard
- slot_uri: catcore:calibration_standard
+ - coremeta4cat:calibration_standard
+ slot_uri: coremeta4cat:calibration_standard
owner: SizeExclusionChromatography
domain_of:
- SizeExclusionChromatography
@@ -3557,38 +3558,38 @@ slots:
multivalued: true
gradient_program:
name: gradient_program
- definition_uri: https://w3id.org/nfdi4cat/catcore/gradient_program
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/gradient_program
description: Gradient elution programme used in HPLC-MS.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:gradient_program
- slot_uri: catcore:gradient_program
- owner: HPLC_MS
+ - coremeta4cat:gradient_program
+ slot_uri: coremeta4cat:gradient_program
+ owner: HighPerformanceLiquidChromatographyMassSpectrometry
domain_of:
- - HPLC_MS
+ - HighPerformanceLiquidChromatographyMassSpectrometry
range: string
multivalued: true
ionization_mode:
name: ionization_mode
- definition_uri: https://w3id.org/nfdi4cat/catcore/ionization_mode
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ionization_mode
description: Ionisation mode used in HPLC-MS (e.g. positive, negative, APCI, ESI).
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:ionization_mode
- slot_uri: catcore:ionization_mode
- owner: HPLC_MS
+ - coremeta4cat:ionization_mode
+ slot_uri: coremeta4cat:ionization_mode
+ owner: HighPerformanceLiquidChromatographyMassSpectrometry
domain_of:
- - HPLC_MS
+ - HighPerformanceLiquidChromatographyMassSpectrometry
range: string
multivalued: true
catalyst_quantity:
name: catalyst_quantity
- definition_uri: https://w3id.org/nfdi4cat/catcore/catalyst_quantity
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/catalyst_quantity
description: Mass of catalyst loaded into the reactor.
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:catalyst_quantity
- slot_uri: catcore:catalyst_quantity
+ - coremeta4cat:catalyst_quantity
+ slot_uri: coremeta4cat:catalyst_quantity
owner: Reaction
domain_of:
- Reaction
@@ -3599,11 +3600,11 @@ slots:
ucum_code: g
reactant:
name: reactant
- definition_uri: https://w3id.org/nfdi4cat/catcore/reactant
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reactant
description: 'Reactant(s) used in the reaction. Provide compound name, CAS number,
or SMILES. For feeds, include composition and flow rate where known.'
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0000101
slot_uri: VOC4CAT:0000101
@@ -3615,11 +3616,11 @@ slots:
multivalued: true
catalyst_type:
name: catalyst_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/catalyst_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/catalyst_type
description: 'Type of catalyst used (e.g. heterogeneous, homogeneous, biocatalyst).
For heterogeneous catalysts, use voc4cat terms where available.'
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0007014
slot_uri: VOC4CAT:0007014
@@ -3631,10 +3632,10 @@ slots:
multivalued: true
reactor_temperature_range:
name: reactor_temperature_range
- definition_uri: https://w3id.org/nfdi4cat/catcore/reactor_temperature_range
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reactor_temperature_range
description: "Temperature range used in the reactor during the reaction, expressed\n\
as a string range (e.g. \"200\u2013400 \xB0C\") or a single set-point."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0007032
slot_uri: VOC4CAT:0007032
@@ -3645,9 +3646,9 @@ slots:
multivalued: true
experiment_pressure:
name: experiment_pressure
- definition_uri: https://w3id.org/nfdi4cat/catcore/experiment_pressure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/experiment_pressure
description: Total pressure in the reactor during the experiment.
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0000118
slot_uri: VOC4CAT:0000118
@@ -3660,14 +3661,14 @@ slots:
ucum_code: bar
feed_composition_range:
name: feed_composition_range
- definition_uri: https://w3id.org/nfdi4cat/catcore/feed_composition_range
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/feed_composition_range
description: "Feed gas or liquid composition range studied (e.g. \"1\u201310 vol%\
\ CO in N2\").\nRecord as a string; for individual component concentrations\
\ use reactant."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:feed_composition_range
- slot_uri: catcore:feed_composition_range
+ - coremeta4cat:feed_composition_range
+ slot_uri: coremeta4cat:feed_composition_range
owner: Reaction
domain_of:
- Reaction
@@ -3675,12 +3676,12 @@ slots:
multivalued: true
gas_distributor_type:
name: gas_distributor_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/gas_distributor_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/gas_distributor_type
description: Type or design of the gas distributor plate in a fluidized bed reactor.
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:gas_distributor_type
- slot_uri: catcore:gas_distributor_type
+ - coremeta4cat:gas_distributor_type
+ slot_uri: coremeta4cat:gas_distributor_type
owner: FluidizedBedReactor
domain_of:
- FluidizedBedReactor
@@ -3688,13 +3689,13 @@ slots:
multivalued: true
bed_expansion_height:
name: bed_expansion_height
- definition_uri: https://w3id.org/nfdi4cat/catcore/bed_expansion_height
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/bed_expansion_height
description: Height of bed expansion above the settled bed height under operating
conditions.
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:bed_expansion_height
- slot_uri: catcore:bed_expansion_height
+ - coremeta4cat:bed_expansion_height
+ slot_uri: coremeta4cat:bed_expansion_height
owner: FluidizedBedReactor
domain_of:
- FluidizedBedReactor
@@ -3704,28 +3705,28 @@ slots:
ucum_code: cm
bubble_size_distribution:
name: bubble_size_distribution
- definition_uri: https://w3id.org/nfdi4cat/catcore/bubble_size_distribution
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/bubble_size_distribution
description: Description or characterization of bubble size distribution in the
fluidized bed.
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:bubble_size_distribution
- slot_uri: catcore:bubble_size_distribution
+ - coremeta4cat:bubble_size_distribution
+ slot_uri: coremeta4cat:bubble_size_distribution
owner: FluidizedBedReactor
domain_of:
- FluidizedBedReactor
range: string
software_package:
name: software_package
- definition_uri: https://w3id.org/nfdi4cat/catcore/software_package
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/software_package
description: 'Software package or code used for the simulation (e.g. VASP, Quantum
ESPRESSO,
LAMMPS, CP2K, ORCA, Zacros). Include version number where possible.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:software_package
- slot_uri: catcore:software_package
+ - coremeta4cat:software_package
+ slot_uri: coremeta4cat:software_package
owner: Simulation
domain_of:
- Simulation
@@ -3734,14 +3735,14 @@ slots:
multivalued: true
calculated_property:
name: calculated_property
- definition_uri: https://w3id.org/nfdi4cat/catcore/calculated_property
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/calculated_property
description: 'A property computed by this Simulation, provided as a CalculatedProperty
instance. Multiple properties may be computed in a single simulation run.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:calculated_property
- slot_uri: catcore:calculated_property
+ - coremeta4cat:calculated_property
+ slot_uri: coremeta4cat:calculated_property
owner: Simulation
domain_of:
- Simulation
@@ -3752,14 +3753,14 @@ slots:
inlined_as_list: true
exchange_correlation_functional:
name: exchange_correlation_functional
- definition_uri: https://w3id.org/nfdi4cat/catcore/exchange_correlation_functional
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/exchange_correlation_functional
description: 'Exchange-correlation functional used (e.g. PBE, PBEsol, RPBE, B3LYP,
HSE06). The choice of functional directly affects accuracy.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:exchange_correlation_functional
- slot_uri: catcore:exchange_correlation_functional
+ - coremeta4cat:exchange_correlation_functional
+ slot_uri: coremeta4cat:exchange_correlation_functional
owner: DFT
domain_of:
- DFT
@@ -3767,12 +3768,12 @@ slots:
multivalued: true
energy_cutoff:
name: energy_cutoff
- definition_uri: https://w3id.org/nfdi4cat/catcore/energy_cutoff
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/energy_cutoff
description: Plane-wave kinetic energy cutoff for the basis set expansion.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:energy_cutoff
- slot_uri: catcore:energy_cutoff
+ - coremeta4cat:energy_cutoff
+ slot_uri: coremeta4cat:energy_cutoff
owner: DFT
domain_of:
- DFTSettingsMixin
@@ -3783,14 +3784,14 @@ slots:
ucum_code: eV
convergence_criteria:
name: convergence_criteria
- definition_uri: https://w3id.org/nfdi4cat/catcore/convergence_criteria
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/convergence_criteria
description: "Convergence thresholds applied during self-consistent field (SCF)\
\ and/or\ngeometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/\xC5\
)."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:convergence_criteria
- slot_uri: catcore:convergence_criteria
+ - coremeta4cat:convergence_criteria
+ slot_uri: coremeta4cat:convergence_criteria
owner: DFT
domain_of:
- DFTSettingsMixin
@@ -3799,15 +3800,15 @@ slots:
multivalued: true
dft_u_parameters:
name: dft_u_parameters
- definition_uri: https://w3id.org/nfdi4cat/catcore/dft_u_parameters
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/dft_u_parameters
description: 'Hubbard U correction parameters (DFT+U). Specify element, orbital,
and
U value (e.g. "Fe d: U=4.0 eV, J=0.0 eV").'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:dft_u_parameters
- slot_uri: catcore:dft_u_parameters
+ - coremeta4cat:dft_u_parameters
+ slot_uri: coremeta4cat:dft_u_parameters
owner: DFT
domain_of:
- DFT
@@ -3815,15 +3816,15 @@ slots:
multivalued: true
spin_polarization:
name: spin_polarization
- definition_uri: https://w3id.org/nfdi4cat/catcore/spin_polarization
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/spin_polarization
description: 'Whether spin polarization (collinear magnetism) is included in the
DFT
calculation. Set to true for systems containing magnetic elements.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:spin_polarization
- slot_uri: catcore:spin_polarization
+ - coremeta4cat:spin_polarization
+ slot_uri: coremeta4cat:spin_polarization
owner: DFT
domain_of:
- DFT
@@ -3831,13 +3832,13 @@ slots:
multivalued: true
total_energy_per_atom:
name: total_energy_per_atom
- definition_uri: https://w3id.org/nfdi4cat/catcore/total_energy_per_atom
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/total_energy_per_atom
description: Total DFT ground-state energy divided by number of atoms in the unit
cell.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:total_energy_per_atom
- slot_uri: catcore:total_energy_per_atom
+ - coremeta4cat:total_energy_per_atom
+ slot_uri: coremeta4cat:total_energy_per_atom
owner: DFT
domain_of:
- DFT
@@ -3847,15 +3848,15 @@ slots:
ucum_code: eV
force_field:
name: force_field
- definition_uri: https://w3id.org/nfdi4cat/catcore/force_field
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/force_field
description: 'Force field or interatomic potential used (e.g. ReaxFF, CHARMM,
Tersoff,
EAM). Include parametrisation source or reference.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:force_field
- slot_uri: catcore:force_field
+ - coremeta4cat:force_field
+ slot_uri: coremeta4cat:force_field
owner: MolecularDynamics
domain_of:
- MolecularDynamics
@@ -3863,9 +3864,9 @@ slots:
multivalued: true
simulation_timestep:
name: simulation_timestep
- definition_uri: https://w3id.org/nfdi4cat/catcore/simulation_timestep
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/simulation_timestep
description: Integration timestep used in molecular dynamics.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- APOLLO_SV:00000012
slot_uri: APOLLO_SV:00000012
@@ -3878,12 +3879,12 @@ slots:
ucum_code: fs
simulation_time:
name: simulation_time
- definition_uri: https://w3id.org/nfdi4cat/catcore/simulation_time
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/simulation_time
description: Total simulated physical time of the MD trajectory.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:simulation_time
- slot_uri: catcore:simulation_time
+ - coremeta4cat:simulation_time
+ slot_uri: coremeta4cat:simulation_time
owner: MolecularDynamics
domain_of:
- MolecularDynamics
@@ -3893,15 +3894,15 @@ slots:
ucum_code: ps
ensemble_type:
name: ensemble_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/ensemble_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ensemble_type
description: 'Statistical ensemble used in MD (e.g. NVE, NVT, NPT). Determines
which
thermodynamic quantities are conserved.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ensemble_type
- slot_uri: catcore:ensemble_type
+ - coremeta4cat:ensemble_type
+ slot_uri: coremeta4cat:ensemble_type
owner: MolecularDynamics
domain_of:
- MolecularDynamics
@@ -3909,12 +3910,12 @@ slots:
multivalued: true
number_of_atoms:
name: number_of_atoms
- definition_uri: https://w3id.org/nfdi4cat/catcore/number_of_atoms
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/number_of_atoms
description: Number of atoms in the simulation cell or supercell.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:number_of_atoms
- slot_uri: catcore:number_of_atoms
+ - coremeta4cat:number_of_atoms
+ slot_uri: coremeta4cat:number_of_atoms
owner: MolecularDynamics
domain_of:
- MolecularDynamics
@@ -3922,11 +3923,11 @@ slots:
multivalued: true
rate_constants:
name: rate_constants
- definition_uri: https://w3id.org/nfdi4cat/catcore/rate_constants
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/rate_constants
description: 'Rate constants or Arrhenius parameters (pre-exponential factor and
activation energy) for each elementary step in the reaction network.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- NCIT:C94967
slot_uri: NCIT:C94967
@@ -3937,15 +3938,15 @@ slots:
multivalued: true
solver_type:
name: solver_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/solver_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/solver_type
description: 'Numerical solver used for the microkinetic rate equations (e.g.
LSODA,
stiff ODE solver, steady-state Newton method).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:solver_type
- slot_uri: catcore:solver_type
+ - coremeta4cat:solver_type
+ slot_uri: coremeta4cat:solver_type
owner: Microkinetics
domain_of:
- Microkinetics
@@ -3953,12 +3954,12 @@ slots:
multivalued: true
pressure:
name: pressure
- definition_uri: https://w3id.org/nfdi4cat/catcore/pressure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/pressure
description: Total pressure used in microkinetic or Monte Carlo simulation.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:pressure
- slot_uri: catcore:pressure
+ - coremeta4cat:pressure
+ slot_uri: coremeta4cat:pressure
owner: Microkinetics
domain_of:
- Microkinetics
@@ -3968,12 +3969,12 @@ slots:
ucum_code: bar
surface_coverage:
name: surface_coverage
- definition_uri: https://w3id.org/nfdi4cat/catcore/surface_coverage
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/surface_coverage
description: Surface coverage of adsorbed species (fraction of surface sites occupied).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:surface_coverage
- slot_uri: catcore:surface_coverage
+ - coremeta4cat:surface_coverage
+ slot_uri: coremeta4cat:surface_coverage
owner: Microkinetics
domain_of:
- Microkinetics
@@ -3981,12 +3982,12 @@ slots:
multivalued: true
activation_energy:
name: activation_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/activation_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/activation_energy
description: Activation energy for each elementary step in the reaction mechanism.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:activation_energy
- slot_uri: catcore:activation_energy
+ - coremeta4cat:activation_energy
+ slot_uri: coremeta4cat:activation_energy
owner: Microkinetics
domain_of:
- Microkinetics
@@ -3996,13 +3997,13 @@ slots:
ucum_code: eV
interaction_potential:
name: interaction_potential
- definition_uri: https://w3id.org/nfdi4cat/catcore/interaction_potential
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/interaction_potential
description: Interaction potential or Hamiltonian used to compute energies in
MC moves.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:interaction_potential
- slot_uri: catcore:interaction_potential
+ - coremeta4cat:interaction_potential
+ slot_uri: coremeta4cat:interaction_potential
owner: MonteCarlo
domain_of:
- MonteCarlo
@@ -4010,12 +4011,12 @@ slots:
multivalued: true
number_of_steps:
name: number_of_steps
- definition_uri: https://w3id.org/nfdi4cat/catcore/number_of_steps
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/number_of_steps
description: Total number of Monte Carlo moves or trial configurations generated.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:number_of_steps
- slot_uri: catcore:number_of_steps
+ - coremeta4cat:number_of_steps
+ slot_uri: coremeta4cat:number_of_steps
owner: MonteCarlo
domain_of:
- MonteCarlo
@@ -4023,13 +4024,13 @@ slots:
multivalued: true
lattice_size_type:
name: lattice_size_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/lattice_size_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/lattice_size_type
description: "Lattice geometry and dimensions used in lattice-based MC (e.g.\n\
\"100\xD7100 square lattice\", \"hexagonal 50\xD750\")."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:lattice_size_type
- slot_uri: catcore:lattice_size_type
+ - coremeta4cat:lattice_size_type
+ slot_uri: coremeta4cat:lattice_size_type
owner: MonteCarlo
domain_of:
- MonteCarlo
@@ -4037,14 +4038,14 @@ slots:
multivalued: true
acceptance_criteria:
name: acceptance_criteria
- definition_uri: https://w3id.org/nfdi4cat/catcore/acceptance_criteria
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/acceptance_criteria
description: 'Criterion for accepting or rejecting MC moves (e.g. Metropolis,
Kawasaki, heat-bath algorithm).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:acceptance_criteria
- slot_uri: catcore:acceptance_criteria
+ - coremeta4cat:acceptance_criteria
+ slot_uri: coremeta4cat:acceptance_criteria
owner: MonteCarlo
domain_of:
- MonteCarlo
@@ -4052,13 +4053,13 @@ slots:
multivalued: true
equilibration_steps:
name: equilibration_steps
- definition_uri: https://w3id.org/nfdi4cat/catcore/equilibration_steps
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/equilibration_steps
description: Number of MC steps used for equilibration before data collection
begins.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:equilibration_steps
- slot_uri: catcore:equilibration_steps
+ - coremeta4cat:equilibration_steps
+ slot_uri: coremeta4cat:equilibration_steps
owner: MonteCarlo
domain_of:
- MonteCarlo
@@ -4066,12 +4067,12 @@ slots:
multivalued: true
sampling_interval:
name: sampling_interval
- definition_uri: https://w3id.org/nfdi4cat/catcore/sampling_interval
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/sampling_interval
description: Interval between successive MC snapshots used for property averaging.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:sampling_interval
- slot_uri: catcore:sampling_interval
+ - coremeta4cat:sampling_interval
+ slot_uri: coremeta4cat:sampling_interval
owner: MonteCarlo
domain_of:
- MonteCarlo
@@ -4079,14 +4080,14 @@ slots:
multivalued: true
material_composition:
name: material_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/material_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/material_composition
description: 'Chemical composition of the simulated material (e.g. "Fe2O3", "Pt/CeO2").
Use empirical formula or SMILES for molecular systems.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:material_composition
- slot_uri: catcore:material_composition
+ - coremeta4cat:material_composition
+ slot_uri: coremeta4cat:material_composition
owner: MaterialDescriptorMixin
domain_of:
- MaterialDescriptorMixin
@@ -4094,10 +4095,10 @@ slots:
multivalued: true
crystal_structure:
name: crystal_structure
- definition_uri: https://w3id.org/nfdi4cat/catcore/crystal_structure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/crystal_structure
description: "Crystal structure of the simulated material, including space group\
\ and\nlattice parameters (e.g. \"Fm-3m, a=3.92 \xC5 for Pt\")."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- SIO:001100
slot_uri: SIO:001100
@@ -4108,13 +4109,13 @@ slots:
multivalued: true
k_point_mesh:
name: k_point_mesh
- definition_uri: https://w3id.org/nfdi4cat/catcore/k_point_mesh
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/k_point_mesh
description: "Monkhorst-Pack k-point mesh used for Brillouin zone sampling\n(e.g.\
\ \"4\xD74\xD71\" for a surface slab, \"8\xD78\xD78\" for a bulk cell)."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:k_point_mesh
- slot_uri: catcore:k_point_mesh
+ - coremeta4cat:k_point_mesh
+ slot_uri: coremeta4cat:k_point_mesh
owner: DFTSettingsMixin
domain_of:
- DFTSettingsMixin
@@ -4122,12 +4123,12 @@ slots:
multivalued: true
formation_energy:
name: formation_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/formation_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/formation_energy
description: Formation energy per atom relative to elemental reference states.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:formation_energy
- slot_uri: catcore:formation_energy
+ - coremeta4cat:formation_energy
+ slot_uri: coremeta4cat:formation_energy
owner: ThermodynamicStability
domain_of:
- ThermodynamicStability
@@ -4137,14 +4138,14 @@ slots:
ucum_code: eV
reference_energies:
name: reference_energies
- definition_uri: https://w3id.org/nfdi4cat/catcore/reference_energies
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reference_energies
description: 'Elemental reference energies used to compute formation energies
(e.g. DFT total energies of elemental ground-state structures).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:reference_energies
- slot_uri: catcore:reference_energies
+ - coremeta4cat:reference_energies
+ slot_uri: coremeta4cat:reference_energies
owner: ThermodynamicStability
domain_of:
- ThermodynamicStability
@@ -4152,14 +4153,14 @@ slots:
multivalued: true
energy_above_hull:
name: energy_above_hull
- definition_uri: https://w3id.org/nfdi4cat/catcore/energy_above_hull
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/energy_above_hull
description: 'Distance above the convex hull of stable phases (thermodynamic stability
metric). Zero for phases on the hull; positive values indicate metastability.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:energy_above_hull
- slot_uri: catcore:energy_above_hull
+ - coremeta4cat:energy_above_hull
+ slot_uri: coremeta4cat:energy_above_hull
owner: ThermodynamicStability
domain_of:
- ThermodynamicStability
@@ -4169,12 +4170,12 @@ slots:
ucum_code: eV
phase_diagram_type:
name: phase_diagram_type
- definition_uri: https://w3id.org/nfdi4cat/catcore/phase_diagram_type
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/phase_diagram_type
description: Type of phase diagram constructed (e.g. binary, ternary, quaternary).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:phase_diagram_type
- slot_uri: catcore:phase_diagram_type
+ - coremeta4cat:phase_diagram_type
+ slot_uri: coremeta4cat:phase_diagram_type
owner: ThermodynamicStability
domain_of:
- ThermodynamicStability
@@ -4182,14 +4183,14 @@ slots:
multivalued: true
competing_phases:
name: competing_phases
- definition_uri: https://w3id.org/nfdi4cat/catcore/competing_phases
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/competing_phases
description: 'List of stable competing phases used in convex hull construction
(e.g. "Fe2O3, Fe3O4, FeO, Fe").'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:competing_phases
- slot_uri: catcore:competing_phases
+ - coremeta4cat:competing_phases
+ slot_uri: coremeta4cat:competing_phases
owner: ThermodynamicStability
domain_of:
- ThermodynamicStability
@@ -4197,13 +4198,13 @@ slots:
multivalued: true
piezoelectric_tensor:
name: piezoelectric_tensor
- definition_uri: https://w3id.org/nfdi4cat/catcore/piezoelectric_tensor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/piezoelectric_tensor
description: "Components of the piezoelectric tensor e_ij (C/m\xB2) or d_ij (pC/N),\n\
describing the coupling between stress and electric polarization."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:piezoelectric_tensor
- slot_uri: catcore:piezoelectric_tensor
+ - coremeta4cat:piezoelectric_tensor
+ slot_uri: coremeta4cat:piezoelectric_tensor
owner: Piezoelectricity
domain_of:
- Piezoelectricity
@@ -4211,12 +4212,12 @@ slots:
multivalued: true
crystal_symmetry:
name: crystal_symmetry
- definition_uri: https://w3id.org/nfdi4cat/catcore/crystal_symmetry
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/crystal_symmetry
description: Point group or space group symmetry of the crystal structure.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:crystal_symmetry
- slot_uri: catcore:crystal_symmetry
+ - coremeta4cat:crystal_symmetry
+ slot_uri: coremeta4cat:crystal_symmetry
owner: Piezoelectricity
domain_of:
- Piezoelectricity
@@ -4224,12 +4225,12 @@ slots:
multivalued: true
strain_applied:
name: strain_applied
- definition_uri: https://w3id.org/nfdi4cat/catcore/strain_applied
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/strain_applied
description: Magnitude of applied strain in the piezoelectric calculation.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:strain_applied
- slot_uri: catcore:strain_applied
+ - coremeta4cat:strain_applied
+ slot_uri: coremeta4cat:strain_applied
owner: Piezoelectricity
domain_of:
- Piezoelectricity
@@ -4237,14 +4238,14 @@ slots:
multivalued: true
ionic_electronic_contributions:
name: ionic_electronic_contributions
- definition_uri: https://w3id.org/nfdi4cat/catcore/ionic_electronic_contributions
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ionic_electronic_contributions
description: 'Decomposition of the piezoelectric or dielectric response into ionic
(nuclear) and electronic contributions.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ionic_electronic_contributions
- slot_uri: catcore:ionic_electronic_contributions
+ - coremeta4cat:ionic_electronic_contributions
+ slot_uri: coremeta4cat:ionic_electronic_contributions
owner: Piezoelectricity
domain_of:
- Piezoelectricity
@@ -4252,14 +4253,14 @@ slots:
multivalued: true
elastic_tensor:
name: elastic_tensor
- definition_uri: https://w3id.org/nfdi4cat/catcore/elastic_tensor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/elastic_tensor
description: 'Full Voigt-notation elastic tensor C_ij (GPa) describing the linear
elastic response of the material.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:elastic_tensor
- slot_uri: catcore:elastic_tensor
+ - coremeta4cat:elastic_tensor
+ slot_uri: coremeta4cat:elastic_tensor
owner: ElasticConstants
domain_of:
- ElasticConstants
@@ -4267,12 +4268,12 @@ slots:
multivalued: true
bulk_modulus:
name: bulk_modulus
- definition_uri: https://w3id.org/nfdi4cat/catcore/bulk_modulus
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/bulk_modulus
description: Bulk modulus (resistance to uniform compression).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:bulk_modulus
- slot_uri: catcore:bulk_modulus
+ - coremeta4cat:bulk_modulus
+ slot_uri: coremeta4cat:bulk_modulus
owner: EquationsOfState
domain_of:
- ElasticConstants
@@ -4283,12 +4284,12 @@ slots:
ucum_code: GPa
shear_modulus:
name: shear_modulus
- definition_uri: https://w3id.org/nfdi4cat/catcore/shear_modulus
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/shear_modulus
description: Shear modulus (resistance to shear deformation).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:shear_modulus
- slot_uri: catcore:shear_modulus
+ - coremeta4cat:shear_modulus
+ slot_uri: coremeta4cat:shear_modulus
owner: ElasticConstants
domain_of:
- ElasticConstants
@@ -4298,13 +4299,13 @@ slots:
ucum_code: GPa
poisson_ratio:
name: poisson_ratio
- definition_uri: https://w3id.org/nfdi4cat/catcore/poisson_ratio
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/poisson_ratio
description: Poisson's ratio (ratio of transverse to axial strain under uniaxial
load).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:poisson_ratio
- slot_uri: catcore:poisson_ratio
+ - coremeta4cat:poisson_ratio
+ slot_uri: coremeta4cat:poisson_ratio
owner: ElasticConstants
domain_of:
- ElasticConstants
@@ -4312,12 +4313,12 @@ slots:
multivalued: true
young_modulus:
name: young_modulus
- definition_uri: https://w3id.org/nfdi4cat/catcore/young_modulus
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/young_modulus
description: Young's modulus (stiffness under uniaxial tension or compression).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:young_modulus
- slot_uri: catcore:young_modulus
+ - coremeta4cat:young_modulus
+ slot_uri: coremeta4cat:young_modulus
owner: ElasticConstants
domain_of:
- ElasticConstants
@@ -4327,15 +4328,15 @@ slots:
ucum_code: GPa
surface_energy:
name: surface_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/surface_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/surface_energy
description: 'Cleavage energy per unit area required to create the surface from
the bulk.
A lower value indicates a more stable surface facet.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:surface_energy
- slot_uri: catcore:surface_energy
+ - coremeta4cat:surface_energy
+ slot_uri: coremeta4cat:surface_energy
owner: Surfaces
domain_of:
- Surfaces
@@ -4345,13 +4346,13 @@ slots:
ucum_code: J/m2
miller_indices:
name: miller_indices
- definition_uri: https://w3id.org/nfdi4cat/catcore/miller_indices
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/miller_indices
description: Miller indices of the modelled surface facet (e.g. "(111)", "(110)",
"(100)").
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:miller_indices
- slot_uri: catcore:miller_indices
+ - coremeta4cat:miller_indices
+ slot_uri: coremeta4cat:miller_indices
owner: Surfaces
domain_of:
- Surfaces
@@ -4359,12 +4360,12 @@ slots:
multivalued: true
slab_thickness:
name: slab_thickness
- definition_uri: https://w3id.org/nfdi4cat/catcore/slab_thickness
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/slab_thickness
description: Thickness of the periodic slab model used to represent the surface.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:slab_thickness
- slot_uri: catcore:slab_thickness
+ - coremeta4cat:slab_thickness
+ slot_uri: coremeta4cat:slab_thickness
owner: Surfaces
domain_of:
- Surfaces
@@ -4374,14 +4375,14 @@ slots:
ucum_code: Ao
vacuum_spacing:
name: vacuum_spacing
- definition_uri: https://w3id.org/nfdi4cat/catcore/vacuum_spacing
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/vacuum_spacing
description: 'Vacuum layer thickness added above the slab to prevent spurious
periodic interactions between slab images.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:vacuum_spacing
- slot_uri: catcore:vacuum_spacing
+ - coremeta4cat:vacuum_spacing
+ slot_uri: coremeta4cat:vacuum_spacing
owner: Surfaces
domain_of:
- Surfaces
@@ -4391,14 +4392,14 @@ slots:
ucum_code: Ao
surface_termination_method:
name: surface_termination_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/surface_termination_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/surface_termination_method
description: 'Method used to terminate the slab and handle dangling bonds
(e.g. H-passivation, OH-termination, dipole correction).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:surface_termination_method
- slot_uri: catcore:surface_termination_method
+ - coremeta4cat:surface_termination_method
+ slot_uri: coremeta4cat:surface_termination_method
owner: Surfaces
domain_of:
- Surfaces
@@ -4406,15 +4407,15 @@ slots:
multivalued: true
dielectric_tensor:
name: dielectric_tensor
- definition_uri: https://w3id.org/nfdi4cat/catcore/dielectric_tensor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/dielectric_tensor
description: 'Components of the static and/or high-frequency dielectric tensor
epsilon_ij,
computed from DFPT.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:dielectric_tensor
- slot_uri: catcore:dielectric_tensor
+ - coremeta4cat:dielectric_tensor
+ slot_uri: coremeta4cat:dielectric_tensor
owner: DielectricTensors
domain_of:
- DielectricTensors
@@ -4422,14 +4423,14 @@ slots:
multivalued: true
born_effective_charges:
name: born_effective_charges
- definition_uri: https://w3id.org/nfdi4cat/catcore/born_effective_charges
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/born_effective_charges
description: 'Born effective charge tensors Z*_ij for each atom, describing how
the polarization changes with atomic displacements.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:born_effective_charges
- slot_uri: catcore:born_effective_charges
+ - coremeta4cat:born_effective_charges
+ slot_uri: coremeta4cat:born_effective_charges
owner: DielectricTensors
domain_of:
- DielectricTensors
@@ -4437,14 +4438,14 @@ slots:
multivalued: true
force_constant_method:
name: force_constant_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/force_constant_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/force_constant_method
description: 'Method used to compute the interatomic force constants (e.g. finite
differences / supercell method, DFPT/linear response).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:force_constant_method
- slot_uri: catcore:force_constant_method
+ - coremeta4cat:force_constant_method
+ slot_uri: coremeta4cat:force_constant_method
owner: PhononDispersion
domain_of:
- PhononDispersion
@@ -4452,13 +4453,13 @@ slots:
multivalued: true
kq_point_mesh:
name: kq_point_mesh
- definition_uri: https://w3id.org/nfdi4cat/catcore/kq_point_mesh
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/kq_point_mesh
description: "k/q-point mesh for phonon Brillouin zone sampling (e.g. \"8\xD7\
8\xD78\").\nDistinct from the electronic k-point mesh."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:kq_point_mesh
- slot_uri: catcore:kq_point_mesh
+ - coremeta4cat:kq_point_mesh
+ slot_uri: coremeta4cat:kq_point_mesh
owner: PhononDispersion
domain_of:
- PhononDispersion
@@ -4466,13 +4467,13 @@ slots:
multivalued: true
smearing_parameter:
name: smearing_parameter
- definition_uri: https://w3id.org/nfdi4cat/catcore/smearing_parameter
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/smearing_parameter
description: Smearing or broadening parameter applied to the phonon density of
states.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:smearing_parameter
- slot_uri: catcore:smearing_parameter
+ - coremeta4cat:smearing_parameter
+ slot_uri: coremeta4cat:smearing_parameter
owner: PhononDispersion
domain_of:
- PhononDispersion
@@ -4482,14 +4483,14 @@ slots:
ucum_code: eV
imaginary_modes:
name: imaginary_modes
- definition_uri: https://w3id.org/nfdi4cat/catcore/imaginary_modes
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/imaginary_modes
description: 'Whether imaginary (soft) phonon modes are present in the dispersion.
Imaginary modes indicate dynamical instability of the structure.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:imaginary_modes
- slot_uri: catcore:imaginary_modes
+ - coremeta4cat:imaginary_modes
+ slot_uri: coremeta4cat:imaginary_modes
owner: PhononDispersion
domain_of:
- PhononDispersion
@@ -4497,14 +4498,14 @@ slots:
multivalued: true
fit_method:
name: fit_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/fit_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/fit_method
description: 'Parametric model used to fit the energy-volume curve
(e.g. Birch-Murnaghan 3rd order, Vinet, Murnaghan).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:fit_method
- slot_uri: catcore:fit_method
+ - coremeta4cat:fit_method
+ slot_uri: coremeta4cat:fit_method
owner: EquationsOfState
domain_of:
- EquationsOfState
@@ -4512,12 +4513,12 @@ slots:
multivalued: true
pressure_derivative:
name: pressure_derivative
- definition_uri: https://w3id.org/nfdi4cat/catcore/pressure_derivative
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/pressure_derivative
description: Pressure derivative of the bulk modulus B' (dimensionless).
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:pressure_derivative
- slot_uri: catcore:pressure_derivative
+ - coremeta4cat:pressure_derivative
+ slot_uri: coremeta4cat:pressure_derivative
owner: EquationsOfState
domain_of:
- EquationsOfState
@@ -4525,12 +4526,12 @@ slots:
multivalued: true
fit_residuals:
name: fit_residuals
- definition_uri: https://w3id.org/nfdi4cat/catcore/fit_residuals
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/fit_residuals
description: Root-mean-square residuals of the energy-volume fit.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:fit_residuals
- slot_uri: catcore:fit_residuals
+ - coremeta4cat:fit_residuals
+ slot_uri: coremeta4cat:fit_residuals
owner: EquationsOfState
domain_of:
- EquationsOfState
@@ -4538,13 +4539,13 @@ slots:
multivalued: true
ph_range:
name: ph_range
- definition_uri: https://w3id.org/nfdi4cat/catcore/ph_range
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ph_range
description: "pH range covered in the Pourbaix stability diagram (e.g. \"0\u2013\
14\")."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ph_range
- slot_uri: catcore:ph_range
+ - coremeta4cat:ph_range
+ slot_uri: coremeta4cat:ph_range
owner: AqueousStability
domain_of:
- AqueousStability
@@ -4552,14 +4553,14 @@ slots:
multivalued: true
potential_range:
name: potential_range
- definition_uri: https://w3id.org/nfdi4cat/catcore/potential_range
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/potential_range
description: 'Electrode potential range covered in the Pourbaix diagram
(e.g. "-2 to +2 V vs SHE").'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:potential_range
- slot_uri: catcore:potential_range
+ - coremeta4cat:potential_range
+ slot_uri: coremeta4cat:potential_range
owner: AqueousStability
domain_of:
- AqueousStability
@@ -4567,14 +4568,14 @@ slots:
multivalued: true
solvation_model:
name: solvation_model
- definition_uri: https://w3id.org/nfdi4cat/catcore/solvation_model
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/solvation_model
description: 'Implicit solvation model used to account for aqueous environment
(e.g. VASPsol, SCCS/Environ, COSMO).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:solvation_model
- slot_uri: catcore:solvation_model
+ - coremeta4cat:solvation_model
+ slot_uri: coremeta4cat:solvation_model
owner: AqueousStability
domain_of:
- AqueousStability
@@ -4582,12 +4583,12 @@ slots:
multivalued: true
ionic_strength:
name: ionic_strength
- definition_uri: https://w3id.org/nfdi4cat/catcore/ionic_strength
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ionic_strength
description: Ionic strength of the electrolyte solution modelled.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ionic_strength
- slot_uri: catcore:ionic_strength
+ - coremeta4cat:ionic_strength
+ slot_uri: coremeta4cat:ionic_strength
owner: AqueousStability
domain_of:
- AqueousStability
@@ -4597,14 +4598,14 @@ slots:
ucum_code: mol/L
grain_boundary_plane:
name: grain_boundary_plane
- definition_uri: https://w3id.org/nfdi4cat/catcore/grain_boundary_plane
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/grain_boundary_plane
description: 'Crystallographic plane of the grain boundary, expressed using
Miller indices (e.g. "Sigma5 (310)[001]").'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:grain_boundary_plane
- slot_uri: catcore:grain_boundary_plane
+ - coremeta4cat:grain_boundary_plane
+ slot_uri: coremeta4cat:grain_boundary_plane
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4612,12 +4613,12 @@ slots:
multivalued: true
misorientation_angle:
name: misorientation_angle
- definition_uri: https://w3id.org/nfdi4cat/catcore/misorientation_angle
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/misorientation_angle
description: Misorientation angle between adjacent grains at the boundary.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:misorientation_angle
- slot_uri: catcore:misorientation_angle
+ - coremeta4cat:misorientation_angle
+ slot_uri: coremeta4cat:misorientation_angle
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4627,12 +4628,12 @@ slots:
ucum_code: deg
grain_boundary_energy:
name: grain_boundary_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/grain_boundary_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/grain_boundary_energy
description: Excess energy per unit area of the grain boundary.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:grain_boundary_energy
- slot_uri: catcore:grain_boundary_energy
+ - coremeta4cat:grain_boundary_energy
+ slot_uri: coremeta4cat:grain_boundary_energy
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4642,13 +4643,13 @@ slots:
ucum_code: J/m2
simulation_cell_size:
name: simulation_cell_size
- definition_uri: https://w3id.org/nfdi4cat/catcore/simulation_cell_size
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/simulation_cell_size
description: "Dimensions of the simulation cell used to model the grain boundary\n\
(e.g. \"10\xD710\xD730 nm\")."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:simulation_cell_size
- slot_uri: catcore:simulation_cell_size
+ - coremeta4cat:simulation_cell_size
+ slot_uri: coremeta4cat:simulation_cell_size
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4656,12 +4657,12 @@ slots:
multivalued: true
gb_excess_volume:
name: gb_excess_volume
- definition_uri: https://w3id.org/nfdi4cat/catcore/gb_excess_volume
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/gb_excess_volume
description: Excess volume per unit area associated with the grain boundary.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:gb_excess_volume
- slot_uri: catcore:gb_excess_volume
+ - coremeta4cat:gb_excess_volume
+ slot_uri: coremeta4cat:gb_excess_volume
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4669,14 +4670,14 @@ slots:
multivalued: true
gb_structural_units:
name: gb_structural_units
- definition_uri: https://w3id.org/nfdi4cat/catcore/gb_structural_units
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/gb_structural_units
description: 'Description of the structural units (repeating atomic motifs) that
constitute the grain boundary structure.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:gb_structural_units
- slot_uri: catcore:gb_structural_units
+ - coremeta4cat:gb_structural_units
+ slot_uri: coremeta4cat:gb_structural_units
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4684,14 +4685,14 @@ slots:
multivalued: true
charge_defect_segregation:
name: charge_defect_segregation
- definition_uri: https://w3id.org/nfdi4cat/catcore/charge_defect_segregation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/charge_defect_segregation
description: 'Data describing charge carrier or point defect segregation behaviour
at the grain boundary (e.g. segregation energy per defect type).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:charge_defect_segregation
- slot_uri: catcore:charge_defect_segregation
+ - coremeta4cat:charge_defect_segregation
+ slot_uri: coremeta4cat:charge_defect_segregation
owner: GrainBoundaries
domain_of:
- GrainBoundaries
@@ -4699,15 +4700,15 @@ slots:
multivalued: true
smearing_method:
name: smearing_method
- definition_uri: https://w3id.org/nfdi4cat/catcore/smearing_method
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/smearing_method
description: 'Electronic smearing scheme and width used in the SCF calculation
(e.g. Methfessel-Paxton order 1 with sigma=0.2 eV, Gaussian with sigma=0.05
eV).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:smearing_method
- slot_uri: catcore:smearing_method
+ - coremeta4cat:smearing_method
+ slot_uri: coremeta4cat:smearing_method
owner: ElectronicStructure
domain_of:
- ElectronicStructure
@@ -4715,14 +4716,14 @@ slots:
multivalued: true
spin_polarized:
name: spin_polarized
- definition_uri: https://w3id.org/nfdi4cat/catcore/spin_polarized
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/spin_polarized
description: 'Whether the electronic structure calculation is spin-polarized
(accounts for spin-up and spin-down electrons separately).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:spin_polarized
- slot_uri: catcore:spin_polarized
+ - coremeta4cat:spin_polarized
+ slot_uri: coremeta4cat:spin_polarized
owner: ElectronicStructure
domain_of:
- ElectronicStructure
@@ -4730,14 +4731,14 @@ slots:
multivalued: true
band_path:
name: band_path
- definition_uri: https://w3id.org/nfdi4cat/catcore/band_path
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/band_path
description: 'High-symmetry k-path through the Brillouin zone used to plot the
band structure (e.g. "Gamma-X-M-Gamma-R" for cubic, following SeeK-path convention).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:band_path
- slot_uri: catcore:band_path
+ - coremeta4cat:band_path
+ slot_uri: coremeta4cat:band_path
owner: ElectronicStructure
domain_of:
- ElectronicStructure
@@ -4745,13 +4746,13 @@ slots:
multivalued: true
fermi_energy:
name: fermi_energy
- definition_uri: https://w3id.org/nfdi4cat/catcore/fermi_energy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/fermi_energy
description: Fermi energy (chemical potential of electrons) in the calculated
system.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:fermi_energy
- slot_uri: catcore:fermi_energy
+ - coremeta4cat:fermi_energy
+ slot_uri: coremeta4cat:fermi_energy
owner: ElectronicStructure
domain_of:
- ElectronicStructure
@@ -4761,14 +4762,14 @@ slots:
ucum_code: eV
polarization_direction:
name: polarization_direction
- definition_uri: https://w3id.org/nfdi4cat/catcore/polarization_direction
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/polarization_direction
description: 'Crystallographic direction of the spontaneous electric polarization
(e.g. "[001]" for tetragonal BaTiO_3).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:polarization_direction
- slot_uri: catcore:polarization_direction
+ - coremeta4cat:polarization_direction
+ slot_uri: coremeta4cat:polarization_direction
owner: Ferroelectrics
domain_of:
- Ferroelectrics
@@ -4776,12 +4777,12 @@ slots:
multivalued: true
spontaneous_polarization:
name: spontaneous_polarization
- definition_uri: https://w3id.org/nfdi4cat/catcore/spontaneous_polarization
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/spontaneous_polarization
description: Magnitude of the spontaneous electric polarization.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:spontaneous_polarization
- slot_uri: catcore:spontaneous_polarization
+ - coremeta4cat:spontaneous_polarization
+ slot_uri: coremeta4cat:spontaneous_polarization
owner: Ferroelectrics
domain_of:
- Ferroelectrics
@@ -4791,14 +4792,14 @@ slots:
ucum_code: uC/cm2
reference_structure:
name: reference_structure
- definition_uri: https://w3id.org/nfdi4cat/catcore/reference_structure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/reference_structure
description: 'Reference (paraelectric/centrosymmetric) structure used as the zero-
polarization endpoint in the Berry-phase polarization calculation.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:reference_structure
- slot_uri: catcore:reference_structure
+ - coremeta4cat:reference_structure
+ slot_uri: coremeta4cat:reference_structure
owner: Ferroelectrics
domain_of:
- Ferroelectrics
@@ -4806,12 +4807,12 @@ slots:
multivalued: true
switching_barrier:
name: switching_barrier
- definition_uri: https://w3id.org/nfdi4cat/catcore/switching_barrier
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/switching_barrier
description: Energy barrier for polarization switching between equivalent states.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:switching_barrier
- slot_uri: catcore:switching_barrier
+ - coremeta4cat:switching_barrier
+ slot_uri: coremeta4cat:switching_barrier
owner: Ferroelectrics
domain_of:
- Ferroelectrics
@@ -4821,12 +4822,12 @@ slots:
ucum_code: eV
coercive_field:
name: coercive_field
- definition_uri: https://w3id.org/nfdi4cat/catcore/coercive_field
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/coercive_field
description: Electric field required to reverse the polarization direction.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:coercive_field
- slot_uri: catcore:coercive_field
+ - coremeta4cat:coercive_field
+ slot_uri: coremeta4cat:coercive_field
owner: Ferroelectrics
domain_of:
- Ferroelectrics
@@ -4836,12 +4837,12 @@ slots:
ucum_code: kV/cm
temperature_dependence:
name: temperature_dependence
- definition_uri: https://w3id.org/nfdi4cat/catcore/temperature_dependence
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/temperature_dependence
description: Description of how the ferroelectric properties vary with temperature.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:temperature_dependence
- slot_uri: catcore:temperature_dependence
+ - coremeta4cat:temperature_dependence
+ slot_uri: coremeta4cat:temperature_dependence
owner: Ferroelectrics
domain_of:
- Ferroelectrics
@@ -4849,12 +4850,12 @@ slots:
multivalued: true
material_sample:
name: material_sample
- definition_uri: https://w3id.org/nfdi4cat/catcore/material_sample
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/material_sample
description: 'Reference to the material or MaterialSample being characterised
by this
calculated band gap.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- VOC4CAT:0005056
slot_uri: VOC4CAT:0005056
@@ -4865,15 +4866,15 @@ slots:
multivalued: true
structure_model:
name: structure_model
- definition_uri: https://w3id.org/nfdi4cat/catcore/structure_model
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/structure_model
description: 'Model structure used in the band gap calculation (e.g. bulk unit
cell,
surface slab, defect supercell).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:structure_model
- slot_uri: catcore:structure_model
+ - coremeta4cat:structure_model
+ slot_uri: coremeta4cat:structure_model
owner: BandGap
domain_of:
- BandGap
@@ -4881,12 +4882,12 @@ slots:
multivalued: true
smearing_broadening:
name: smearing_broadening
- definition_uri: https://w3id.org/nfdi4cat/catcore/smearing_broadening
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/smearing_broadening
description: Gaussian or Lorentzian broadening applied to the simulated spectrum.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:smearing_broadening
- slot_uri: catcore:smearing_broadening
+ - coremeta4cat:smearing_broadening
+ slot_uri: coremeta4cat:smearing_broadening
owner: BandGap
domain_of:
- BandGap
@@ -4896,14 +4897,14 @@ slots:
ucum_code: eV
direct_indirect:
name: direct_indirect
- definition_uri: https://w3id.org/nfdi4cat/catcore/direct_indirect
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/direct_indirect
description: 'Band gap character: "direct" (VBM and CBM at same k-point) or
"indirect" (VBM and CBM at different k-points).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:direct_indirect
- slot_uri: catcore:direct_indirect
+ - coremeta4cat:direct_indirect
+ slot_uri: coremeta4cat:direct_indirect
owner: BandGap
domain_of:
- BandGap
@@ -4911,12 +4912,12 @@ slots:
multivalued: true
experimental_reference:
name: experimental_reference
- definition_uri: https://w3id.org/nfdi4cat/catcore/experimental_reference
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/experimental_reference
description: Experimental band gap value used for benchmarking the calculation.
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:experimental_reference
- slot_uri: catcore:experimental_reference
+ - coremeta4cat:experimental_reference
+ slot_uri: coremeta4cat:experimental_reference
owner: BandGap
domain_of:
- BandGap
@@ -4926,14 +4927,14 @@ slots:
ucum_code: eV
gw_hybrid_correction:
name: gw_hybrid_correction
- definition_uri: https://w3id.org/nfdi4cat/catcore/gw_hybrid_correction
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/gw_hybrid_correction
description: 'Whether a many-body GW correction or hybrid functional (e.g. HSE06)
was applied to correct the DFT band gap underestimation.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:gw_hybrid_correction
- slot_uri: catcore:gw_hybrid_correction
+ - coremeta4cat:gw_hybrid_correction
+ slot_uri: coremeta4cat:gw_hybrid_correction
owner: BandGap
domain_of:
- BandGap
@@ -4941,14 +4942,14 @@ slots:
multivalued: true
excitonic_correction:
name: excitonic_correction
- definition_uri: https://w3id.org/nfdi4cat/catcore/excitonic_correction
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/excitonic_correction
description: 'Excitonic correction (from Bethe-Salpeter equation) applied to the
optical band gap.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:excitonic_correction
- slot_uri: catcore:excitonic_correction
+ - coremeta4cat:excitonic_correction
+ slot_uri: coremeta4cat:excitonic_correction
owner: BandGap
domain_of:
- BandGap
@@ -5657,7 +5658,7 @@ slots:
in_subset:
- domain_agnostic_core
from_schema: https://w3id.org/nfdi-de/dcat-ap-plus/
- slot_uri: dcatap_plus:id
+ slot_uri: dcatapplus:id
identifier: true
owner: Resource
domain_of:
@@ -6981,11 +6982,11 @@ slots:
Should reference a CharacterizationTechnique instance (e.g. a GCMS or
- HPLC_MS object from catcore_characterization_ap). The abstract stub
+ HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub
ProductIdentificationMethod is retained for backward compatibility.'
- from_schema: https://w3id.org/nfdi4cat/catcore
- slot_uri: catcore:product_identification_method
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat
+ slot_uri: coremeta4cat:product_identification_method
range: ProductIdentificationMethod
required: true
multivalued: true
@@ -7103,15 +7104,15 @@ slots:
inlined_as_list: true
Synthesis_nominal_composition:
name: Synthesis_nominal_composition
- definition_uri: https://w3id.org/nfdi4cat/catcore/nominal_composition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/nominal_composition
description: Nominal elemental or chemical composition of the catalyst (e.g. 5wt%
Pt/Al2O3).
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:nominal_composition
+ - coremeta4cat:nominal_composition
is_a: nominal_composition
domain: Synthesis
- slot_uri: catcore:nominal_composition
+ slot_uri: coremeta4cat:nominal_composition
alias: nominal_composition
owner: Synthesis
domain_of:
@@ -7123,16 +7124,16 @@ slots:
multivalued: true
Synthesis_catalyst_measured_properties:
name: Synthesis_catalyst_measured_properties
- definition_uri: https://w3id.org/nfdi4cat/catcore/catalyst_measured_properties
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/catalyst_measured_properties
description: 'Key measured properties of the resulting catalyst
(e.g. BET surface area, sieve fraction, molar ratio).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:catalyst_measured_properties
+ - coremeta4cat:catalyst_measured_properties
is_a: catalyst_measured_properties
domain: Synthesis
- slot_uri: catcore:catalyst_measured_properties
+ slot_uri: coremeta4cat:catalyst_measured_properties
alias: catalyst_measured_properties
owner: Synthesis
domain_of:
@@ -7213,15 +7214,15 @@ slots:
inlined_as_list: true
Synthesis_storage_conditions:
name: Synthesis_storage_conditions
- definition_uri: https://w3id.org/nfdi4cat/catcore/storage_conditions
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/storage_conditions
description: "Conditions under which the catalyst is stored (e.g. inert atmosphere,\
\ 4\xB0C)."
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:storage_conditions
+ - coremeta4cat:storage_conditions
is_a: storage_conditions
domain: Synthesis
- slot_uri: catcore:storage_conditions
+ slot_uri: coremeta4cat:storage_conditions
alias: storage_conditions
owner: Synthesis
domain_of:
@@ -7233,14 +7234,14 @@ slots:
multivalued: true
Precursor_precursor_quantity:
name: Precursor_precursor_quantity
- definition_uri: https://w3id.org/nfdi4cat/catcore/precursor_quantity
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/precursor_quantity
description: Quantity of precursor used in synthesis.
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:precursor_quantity
+ - coremeta4cat:precursor_quantity
is_a: precursor_quantity
domain: Precursor
- slot_uri: catcore:precursor_quantity
+ slot_uri: coremeta4cat:precursor_quantity
alias: precursor_quantity
owner: Precursor
domain_of:
@@ -7280,9 +7281,9 @@ slots:
inlined_as_list: false
Characterization_equipment:
name: Characterization_equipment
- definition_uri: https://w3id.org/nfdi4cat/catcore/equipment
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/equipment
description: Instrument or equipment used for characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/common/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/common/
mappings:
- VOC4CAT:0000187
is_a: equipment
@@ -7446,13 +7447,13 @@ slots:
Should reference a CharacterizationTechnique instance (e.g. a GCMS or
- HPLC_MS object from catcore_characterization_ap). The abstract stub
+ HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub
ProductIdentificationMethod is retained for backward compatibility.'
- from_schema: https://w3id.org/nfdi4cat/catcore
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat
is_a: product_identification_method
domain: Reaction
- slot_uri: catcore:product_identification_method
+ slot_uri: coremeta4cat:product_identification_method
alias: product_identification_method
owner: Reaction
domain_of:
@@ -7467,9 +7468,9 @@ slots:
Simulation_rdf_type:
name: Simulation_rdf_type
definition_uri: https://w3id.org/nfdi-de/dcat-ap-plus/rdf_type
- description: 'The type of simulation method as an ontology term (e.g. catcore:DFT,
+ description: 'The type of simulation method as an ontology term (e.g. coremeta4cat:DFT,
- NCIT:C18097 for MD, catcore:Microkinetics). This is the primary
+ NCIT:C18097 for MD, coremeta4cat:Microkinetics). This is the primary
machine-actionable classification of the simulation type.'
in_subset:
@@ -11231,16 +11232,16 @@ slots:
classes:
CatalysisDataset:
name: CatalysisDataset
- definition_uri: https://w3id.org/nfdi4cat/catcore/CatalysisDataset
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CatalysisDataset
description: "A dcat:Dataset that contains research data in the field of catalysis.\n\
\nThe catalysis research field is expressed via rdf_type using a voc4cat\nterm\
\ from CatalysisResearchFieldEnum (following DCAT-AP-PLUS Pattern 3).\nFor example,\
\ a dataset from heterogeneous catalysis research would carry:\n rdf_type:\n\
\ id: VOC4CAT:0007001\n title: \"heterogeneous catalysis\"\n\nThe four\
- \ CatCore minimum information pillars are linked via the slots\nbelow, each\
- \ pointing to the corresponding DataGeneratingActivity or\nEvaluatedActivity\
- \ subclass defined in the CatCore subprofile modules."
- from_schema: https://w3id.org/nfdi4cat/catcore
+ \ CoreMeta4Cat minimum information pillars are linked via the slots\nbelow,\
+ \ each pointing to the corresponding DataGeneratingActivity or\nEvaluatedActivity\
+ \ subclass defined in the CoreMeta4Cat subprofile modules."
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat
mappings:
- dcat:Dataset
is_a: Dataset
@@ -11333,7 +11334,7 @@ classes:
class_uri: dcat:Dataset
DryingMixin:
name: DryingMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/DryingMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DryingMixin
description: 'Mixin providing drying step parameters. Used by preparation methods
that
@@ -11342,17 +11343,17 @@ classes:
(Impregnation, CoPrecipitation, DepositionPrecipitation,
SonochemicalSynthesis, MolecularSynthesis).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mixin: true
slots:
- drying_device
- drying_temperature
- drying_time
- drying_atmosphere
- class_uri: catcore:DryingMixin
+ class_uri: coremeta4cat:DryingMixin
CalcinationMixin:
name: CalcinationMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/CalcinationMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CalcinationMixin
description: 'Mixin providing calcination step parameters. Used by preparation
methods
@@ -11361,7 +11362,7 @@ classes:
(Impregnation, CoPrecipitation, DepositionPrecipitation,
SonochemicalSynthesis, ExsolutionSynthesis).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mixin: true
slots:
- calcination_initial_temperature
@@ -11371,17 +11372,17 @@ classes:
- calcination_gaseous_environment
- calcination_heating_rate
- calcination_gas_flow_rate
- class_uri: catcore:CalcinationMixin
+ class_uri: coremeta4cat:CalcinationMixin
PrecipitationMixin:
name: PrecipitationMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/PrecipitationMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PrecipitationMixin
description: 'Mixin providing precipitation and wet-chemistry step parameters.
Used by
preparation methods based on precipitation from solution
(CoPrecipitation, DepositionPrecipitation).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mixin: true
slots:
- precipitating_agent
@@ -11395,10 +11396,10 @@ classes:
- purification
- aging_temperature
- aging_time
- class_uri: catcore:PrecipitationMixin
+ class_uri: coremeta4cat:PrecipitationMixin
ThermalSynthesisMixin:
name: ThermalSynthesisMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/ThermalSynthesisMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ThermalSynthesisMixin
description: 'Mixin providing thermal process parameters common to synthesis methods
carried out at elevated temperature in a closed vessel or reactor
@@ -11406,7 +11407,7 @@ classes:
(Solvothermal, PlasmaAssisted, CombustionSynthesis,
MicrowaveAssisted, MechanochemicalSynthesis, Sublimation).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mixin: true
slots:
- synthesis_temperature
@@ -11414,10 +11415,10 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:ThermalSynthesisMixin
+ class_uri: coremeta4cat:ThermalSynthesisMixin
Synthesis:
name: Synthesis
- definition_uri: https://w3id.org/nfdi4cat/catcore/Synthesis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Synthesis
description: 'A DataGeneratingActivity in which a catalyst is prepared.
@@ -11435,7 +11436,7 @@ classes:
term (e.g. a voc4cat preparation method term), following DCAT-AP-PLUS
Pattern 3.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- OBI:0000070
is_a: DataGeneratingActivity
@@ -11496,11 +11497,11 @@ classes:
class_uri: OBI:0000070
Precursor:
name: Precursor
- definition_uri: https://w3id.org/nfdi4cat/catcore/Precursor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Precursor
description: 'A MaterialSample that serves as input material in a catalyst Synthesis.
Precursors are consumed or transformed during the preparation process.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- CHEBI:52717
is_a: MaterialSample
@@ -11532,13 +11533,13 @@ classes:
class_uri: CHEBI:52717
CatalystSample:
name: CatalystSample
- definition_uri: https://w3id.org/nfdi4cat/catcore/CatalystSample
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CatalystSample
description: 'A MaterialSample that is the product of a catalyst Synthesis.
The specific type of catalyst (e.g. heterogeneous, supported metal)
is expressed via rdf_type using a voc4cat term.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- OBI:0000747
is_a: MaterialSample
@@ -11572,13 +11573,13 @@ classes:
class_uri: OBI:0000747
PreparationMethod:
name: PreparationMethod
- definition_uri: https://w3id.org/nfdi4cat/catcore/PreparationMethod
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PreparationMethod
description: "An abstract Plan describing the protocol used to prepare a catalyst.\n\
Concrete subclasses (Impregnation, CoPrecipitation, \u2026) specify the\nmethod-specific\
\ parameters. Linked from Synthesis via realized_plan.\n\nThe specific preparation\
\ method type should additionally be expressed\nvia rdf_type on the Synthesis\
\ activity using a voc4cat term\n(e.g. VOC4CAT:0007016 for preparation method)."
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- OBI:0000272
is_a: Plan
@@ -11591,13 +11592,13 @@ classes:
class_uri: OBI:0000272
Impregnation:
name: Impregnation
- definition_uri: https://w3id.org/nfdi4cat/catcore/Impregnation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Impregnation
description: 'Catalyst preparation by impregnation: a solution of the active phase
precursor is brought into contact with the support material.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:Impregnation
+ - coremeta4cat:Impregnation
is_a: PreparationMethod
mixins:
- DryingMixin
@@ -11621,16 +11622,16 @@ classes:
- calcination_gaseous_environment
- calcination_heating_rate
- calcination_gas_flow_rate
- class_uri: catcore:Impregnation
+ class_uri: coremeta4cat:Impregnation
CoPrecipitation:
name: CoPrecipitation
- definition_uri: https://w3id.org/nfdi4cat/catcore/CoPrecipitation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CoPrecipitation
description: 'Catalyst preparation by co-precipitation: precursor salts are
simultaneously precipitated from solution by a precipitating agent.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:CoPrecipitation
+ - coremeta4cat:CoPrecipitation
is_a: PreparationMethod
mixins:
- PrecipitationMixin
@@ -11663,16 +11664,16 @@ classes:
- calcination_gaseous_environment
- calcination_heating_rate
- calcination_gas_flow_rate
- class_uri: catcore:CoPrecipitation
+ class_uri: coremeta4cat:CoPrecipitation
SolGel:
name: SolGel
- definition_uri: https://w3id.org/nfdi4cat/catcore/SolGel
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SolGel
description: 'Catalyst preparation by the sol-gel process: hydrolysis and condensation
of precursor molecules to form a colloidal network (gel).'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:SolGel
+ - coremeta4cat:SolGel
is_a: PreparationMethod
mixins:
- DryingMixin
@@ -11689,17 +11690,17 @@ classes:
- drying_temperature
- drying_time
- drying_atmosphere
- class_uri: catcore:SolGel
+ class_uri: coremeta4cat:SolGel
Solvothermal:
name: Solvothermal
- definition_uri: https://w3id.org/nfdi4cat/catcore/Solvothermal
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Solvothermal
description: 'Catalyst preparation under elevated temperature and pressure in
a
sealed vessel using a non-aqueous solvent.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:Solvothermal
+ - coremeta4cat:Solvothermal
is_a: PreparationMethod
mixins:
- ThermalSynthesisMixin
@@ -11716,16 +11717,16 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:Solvothermal
+ class_uri: coremeta4cat:Solvothermal
PlasmaAssisted:
name: PlasmaAssisted
- definition_uri: https://w3id.org/nfdi4cat/catcore/PlasmaAssisted
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PlasmaAssisted
description: 'Catalyst preparation using plasma treatment to modify surface
properties or deposit active components.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:PlasmaAssisted
+ - coremeta4cat:PlasmaAssisted
is_a: PreparationMethod
mixins:
- ThermalSynthesisMixin
@@ -11743,16 +11744,16 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:PlasmaAssisted
+ class_uri: coremeta4cat:PlasmaAssisted
CombustionSynthesis:
name: CombustionSynthesis
- definition_uri: https://w3id.org/nfdi4cat/catcore/CombustionSynthesis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CombustionSynthesis
description: 'Catalyst preparation by combustion of a fuel/oxidizer mixture,
producing metal oxide catalysts in a single rapid step.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:CombustionSynthesis
+ - coremeta4cat:CombustionSynthesis
is_a: PreparationMethod
mixins:
- ThermalSynthesisMixin
@@ -11771,18 +11772,18 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:CombustionSynthesis
+ class_uri: coremeta4cat:CombustionSynthesis
AtomicLayerDeposition:
name: AtomicLayerDeposition
- definition_uri: https://w3id.org/nfdi4cat/catcore/AtomicLayerDeposition
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/AtomicLayerDeposition
description: 'Catalyst preparation by atomic layer deposition (ALD): sequential
self-limiting surface reactions deposit a conformal thin film
of active phase onto a substrate.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:AtomicLayerDeposition
+ - coremeta4cat:AtomicLayerDeposition
is_a: PreparationMethod
slots:
- title
@@ -11795,16 +11796,16 @@ classes:
- number_of_cycles
- deposition_temperature
- carrier_gas
- class_uri: catcore:AtomicLayerDeposition
+ class_uri: coremeta4cat:AtomicLayerDeposition
DepositionPrecipitation:
name: DepositionPrecipitation
- definition_uri: https://w3id.org/nfdi4cat/catcore/DepositionPrecipitation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DepositionPrecipitation
description: 'Catalyst preparation by deposition-precipitation: the active phase
is precipitated directly onto the support surface.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:DepositionPrecipitation
+ - coremeta4cat:DepositionPrecipitation
is_a: PreparationMethod
mixins:
- PrecipitationMixin
@@ -11839,16 +11840,16 @@ classes:
- calcination_gaseous_environment
- calcination_heating_rate
- calcination_gas_flow_rate
- class_uri: catcore:DepositionPrecipitation
+ class_uri: coremeta4cat:DepositionPrecipitation
MicrowaveAssisted:
name: MicrowaveAssisted
- definition_uri: https://w3id.org/nfdi4cat/catcore/MicrowaveAssisted
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MicrowaveAssisted
description: 'Catalyst preparation using microwave irradiation to rapidly and
uniformly heat the reaction mixture.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:MicrowaveAssisted
+ - coremeta4cat:MicrowaveAssisted
is_a: PreparationMethod
mixins:
- ThermalSynthesisMixin
@@ -11864,16 +11865,16 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:MicrowaveAssisted
+ class_uri: coremeta4cat:MicrowaveAssisted
SonochemicalSynthesis:
name: SonochemicalSynthesis
- definition_uri: https://w3id.org/nfdi4cat/catcore/SonochemicalSynthesis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SonochemicalSynthesis
description: 'Catalyst preparation using ultrasonic irradiation to drive chemical
reactions via acoustic cavitation.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:SonochemicalSynthesis
+ - coremeta4cat:SonochemicalSynthesis
is_a: PreparationMethod
mixins:
- DryingMixin
@@ -11897,14 +11898,14 @@ classes:
- calcination_gaseous_environment
- calcination_heating_rate
- calcination_gas_flow_rate
- class_uri: catcore:SonochemicalSynthesis
+ class_uri: coremeta4cat:SonochemicalSynthesis
FlameSprayPyrolysis:
name: FlameSprayPyrolysis
- definition_uri: https://w3id.org/nfdi4cat/catcore/FlameSprayPyrolysis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/FlameSprayPyrolysis
description: 'Catalyst preparation by flame spray pyrolysis (FSP): a liquid precursor
solution is atomised and combusted in a flame to produce nanoparticles.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- VOC4CAT:0007031
is_a: PreparationMethod
@@ -11925,13 +11926,13 @@ classes:
class_uri: VOC4CAT:0007031
MechanochemicalSynthesis:
name: MechanochemicalSynthesis
- definition_uri: https://w3id.org/nfdi4cat/catcore/MechanochemicalSynthesis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MechanochemicalSynthesis
description: 'Catalyst preparation by mechanical milling or grinding, optionally
combined with thermal treatment.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:MechanochemicalSynthesis
+ - coremeta4cat:MechanochemicalSynthesis
is_a: PreparationMethod
mixins:
- ThermalSynthesisMixin
@@ -11952,16 +11953,16 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:MechanochemicalSynthesis
+ class_uri: coremeta4cat:MechanochemicalSynthesis
Sublimation:
name: Sublimation
- definition_uri: https://w3id.org/nfdi4cat/catcore/Sublimation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Sublimation
description: 'Catalyst preparation by sublimation: a solid precursor is vaporised
and deposited onto a substrate without passing through a liquid phase.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:Sublimation
+ - coremeta4cat:Sublimation
is_a: PreparationMethod
mixins:
- ThermalSynthesisMixin
@@ -11976,16 +11977,16 @@ classes:
- equipment
- vessel_type
- atmosphere
- class_uri: catcore:Sublimation
+ class_uri: coremeta4cat:Sublimation
MolecularSynthesis:
name: MolecularSynthesis
- definition_uri: https://w3id.org/nfdi4cat/catcore/MolecularSynthesis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MolecularSynthesis
description: 'Catalyst preparation by molecular (organometallic or coordination)
chemistry routes, including crystallisation and purification steps.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:MolecularSynthesis
+ - coremeta4cat:MolecularSynthesis
is_a: PreparationMethod
mixins:
- DryingMixin
@@ -12012,17 +12013,17 @@ classes:
- drying_temperature
- drying_time
- drying_atmosphere
- class_uri: catcore:MolecularSynthesis
+ class_uri: coremeta4cat:MolecularSynthesis
ExsolutionSynthesis:
name: ExsolutionSynthesis
- definition_uri: https://w3id.org/nfdi4cat/catcore/ExsolutionSynthesis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ExsolutionSynthesis
description: 'Catalyst preparation by exsolution: metal nanoparticles are grown
on
a perovskite oxide surface by reduction/oxidation cycling.'
- from_schema: https://w3id.org/nfdi4cat/catcore/synthesis/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
mappings:
- - catcore:ExsolutionSynthesis
+ - coremeta4cat:ExsolutionSynthesis
is_a: PreparationMethod
mixins:
- CalcinationMixin
@@ -12038,72 +12039,72 @@ classes:
- calcination_gaseous_environment
- calcination_heating_rate
- calcination_gas_flow_rate
- class_uri: catcore:ExsolutionSynthesis
+ class_uri: coremeta4cat:ExsolutionSynthesis
XRaySourceMixin:
name: XRaySourceMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/XRaySourceMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/XRaySourceMixin
description: 'Mixin providing X-ray source and monochromator slots, shared by
all
X-ray based techniques (PowderXRD, XRayAbsorptionSpectroscopy, XPS,
SingleCrystalXRD).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- xray_source
- monochromator
- class_uri: catcore:XRaySourceMixin
+ class_uri: coremeta4cat:XRaySourceMixin
EnergyRangeMixin:
name: EnergyRangeMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/EnergyRangeMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/EnergyRangeMixin
description: 'Mixin providing energy scan range slots, shared by X-ray spectroscopy
techniques that scan over an energy range (XRayAbsorptionSpectroscopy, XPS).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- minimum_energy
- maximum_energy
- class_uri: catcore:EnergyRangeMixin
+ class_uri: coremeta4cat:EnergyRangeMixin
ElectronMicroscopyMixin:
name: ElectronMicroscopyMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/ElectronMicroscopyMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElectronMicroscopyMixin
description: 'Mixin providing electron gun and image parameters shared by electron
microscopy techniques (TransmissionElectronMicroscopy,
ScanningElectronMicroscopy).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- gun_type
- acceleration_voltage
- magnification_setting
- class_uri: catcore:ElectronMicroscopyMixin
+ class_uri: coremeta4cat:ElectronMicroscopyMixin
TemperatureProgramMixin:
name: TemperatureProgramMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/TemperatureProgramMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/TemperatureProgramMixin
description: 'Mixin providing temperature-programme parameters shared by thermal
analysis and temperature-programmed reaction techniques
(Thermogravimetry, TPO, TPR).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- minimum_temperature
- maximum_temperature
- heating_rate
- heating_procedure
- class_uri: catcore:TemperatureProgramMixin
+ class_uri: coremeta4cat:TemperatureProgramMixin
ChromatographyMixin:
name: ChromatographyMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/ChromatographyMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ChromatographyMixin
description: 'Mixin providing chromatographic separation parameters shared by
separation techniques (GCMS, SizeExclusionChromatography, HPLC_MS).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- column_type
@@ -12112,44 +12113,44 @@ classes:
- injection_volume
- external_standard
- internal_standard
- class_uri: catcore:ChromatographyMixin
+ class_uri: coremeta4cat:ChromatographyMixin
MassRangeMixin:
name: MassRangeMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/MassRangeMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MassRangeMixin
description: 'Mixin providing mass-to-charge scan range slots shared by mass
spectrometry techniques (GCMS, ESI_MS).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- mz_minimum
- mz_maximum
- class_uri: catcore:MassRangeMixin
+ class_uri: coremeta4cat:MassRangeMixin
PhotoluminescenceMixin:
name: PhotoluminescenceMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/PhotoluminescenceMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PhotoluminescenceMixin
description: 'Mixin providing optical excitation/emission parameters shared by
photoluminescence techniques (PhotoluminescenceSpectroscopy,
PhotoluminescenceLifetime).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- excitation_wavelength
- emission_wavelength
- optical_filter
- temperature
- class_uri: catcore:PhotoluminescenceMixin
+ class_uri: coremeta4cat:PhotoluminescenceMixin
ElectrochemistryMixin:
name: ElectrochemistryMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/ElectrochemistryMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElectrochemistryMixin
description: 'Mixin providing electrochemical cell parameters shared by
electrochemical characterization techniques (CyclicVoltammetry,
ConductivityMeasurement).'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mixin: true
slots:
- reference_electrode
@@ -12159,10 +12160,10 @@ classes:
- electrolyte_concentration
- atmosphere
- temperature
- class_uri: catcore:ElectrochemistryMixin
+ class_uri: coremeta4cat:ElectrochemistryMixin
Characterization:
name: Characterization
- definition_uri: https://w3id.org/nfdi4cat/catcore/Characterization
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Characterization
description: "A DataGeneratingActivity in which a catalyst sample or catalytic\
\ material\nis characterized using an analytical technique.\n\nThe catalyst\
\ sample being characterized is linked via evaluated_entity.\nThe analytical\
@@ -12171,7 +12172,7 @@ classes:
\ technique type is expressed via rdf_type using an ontology\nterm (e.g. CHMO:0000158\
\ for powder XRD, CHMO:0000404 for XPS),\nfollowing DCAT-AP-PLUS Pattern 3 \u2014\
\ exactly as NMRSpectroscopy uses\nrdf_type: CHMO:0000613."
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- OBI:0000070
is_a: DataGeneratingActivity
@@ -12227,13 +12228,13 @@ classes:
class_uri: OBI:0000070
CharacterizationTechnique:
name: CharacterizationTechnique
- definition_uri: https://w3id.org/nfdi4cat/catcore/CharacterizationTechnique
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CharacterizationTechnique
description: 'An abstract Plan describing the analytical protocol used to characterize
a catalyst. Concrete subclasses specify technique-specific parameters.
Linked from Characterization via realized_plan.'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- OBI:0000272
is_a: Plan
@@ -12246,10 +12247,10 @@ classes:
class_uri: OBI:0000272
PowderXRD:
name: PowderXRD
- definition_uri: https://w3id.org/nfdi4cat/catcore/PowderXRD
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PowderXRD
description: Powder X-ray diffraction for phase identification and structural
analysis.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000158
is_a: CharacterizationTechnique
@@ -12273,9 +12274,9 @@ classes:
class_uri: CHMO:0000158
SingleCrystalXRD:
name: SingleCrystalXRD
- definition_uri: https://w3id.org/nfdi4cat/catcore/SingleCrystalXRD
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SingleCrystalXRD
description: Single crystal X-ray diffraction for structure determination.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000852
is_a: CharacterizationTechnique
@@ -12292,10 +12293,10 @@ classes:
class_uri: CHMO:0000852
XRayAbsorptionSpectroscopy:
name: XRayAbsorptionSpectroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/XRayAbsorptionSpectroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/XRayAbsorptionSpectroscopy
description: X-ray absorption spectroscopy (XAS/XANES/EXAFS) for electronic and
local structure analysis.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000286
is_a: CharacterizationTechnique
@@ -12322,10 +12323,10 @@ classes:
class_uri: VOC4CAT:0000286
XPS:
name: XPS
- definition_uri: https://w3id.org/nfdi4cat/catcore/XPS
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/XPS
description: X-ray photoelectron spectroscopy for surface elemental and chemical
state analysis.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000404
is_a: CharacterizationTechnique
@@ -12352,9 +12353,9 @@ classes:
class_uri: CHMO:0000404
EDX:
name: EDX
- definition_uri: https://w3id.org/nfdi4cat/catcore/EDX
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/EDX
description: Energy-dispersive X-ray spectroscopy for elemental mapping and quantification.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000309
is_a: CharacterizationTechnique
@@ -12370,12 +12371,12 @@ classes:
class_uri: CHMO:0000309
InfraredSpectroscopy:
name: InfraredSpectroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/InfraredSpectroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/InfraredSpectroscopy
description: Infrared spectroscopy (FTIR/ATR) for functional group and surface
species identification.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:InfraredSpectroscopy
+ - coremeta4cat:InfraredSpectroscopy
is_a: CharacterizationTechnique
slots:
- title
@@ -12390,15 +12391,15 @@ classes:
- background_correction
- number_of_scans
- atmosphere
- class_uri: catcore:InfraredSpectroscopy
+ class_uri: coremeta4cat:InfraredSpectroscopy
DRIFTS:
name: DRIFTS
- definition_uri: https://w3id.org/nfdi4cat/catcore/DRIFTS
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DRIFTS
description: 'Diffuse reflectance infrared Fourier transform spectroscopy for
in-situ
surface species identification under reactive gas conditions.'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000645
is_a: CharacterizationTechnique
@@ -12420,9 +12421,9 @@ classes:
class_uri: CHMO:0000645
RamanSpectroscopy:
name: RamanSpectroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/RamanSpectroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/RamanSpectroscopy
description: Raman spectroscopy for vibrational and structural characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000069
is_a: CharacterizationTechnique
@@ -12442,7 +12443,7 @@ classes:
class_uri: VOC4CAT:0000069
NMRSpectroscopy:
name: NMRSpectroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/NMRSpectroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/NMRSpectroscopy
description: 'Nuclear magnetic resonance spectroscopy for structure elucidation.
Note: for detailed liquid-state NMR minimum information, the dedicated
@@ -12450,7 +12451,7 @@ classes:
nmr_dcat_ap profile (MARGARITAS) should be used in combination with
this subprofile.'
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000073
is_a: CharacterizationTechnique
@@ -12470,9 +12471,9 @@ classes:
class_uri: VOC4CAT:0000073
TransmissionElectronMicroscopy:
name: TransmissionElectronMicroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/TransmissionElectronMicroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/TransmissionElectronMicroscopy
description: TEM for atomic-resolution imaging and diffraction of catalyst particles.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000078
is_a: CharacterizationTechnique
@@ -12490,9 +12491,9 @@ classes:
class_uri: VOC4CAT:0000078
ScanningElectronMicroscopy:
name: ScanningElectronMicroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/ScanningElectronMicroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ScanningElectronMicroscopy
description: SEM for surface morphology and particle size/shape imaging.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000075
is_a: CharacterizationTechnique
@@ -12511,10 +12512,10 @@ classes:
class_uri: VOC4CAT:0000075
Thermogravimetry:
name: Thermogravimetry
- definition_uri: https://w3id.org/nfdi4cat/catcore/Thermogravimetry
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Thermogravimetry
description: Thermogravimetric analysis (TGA/DTG) for mass loss, decomposition,
and oxidation state characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000690
is_a: CharacterizationTechnique
@@ -12537,10 +12538,10 @@ classes:
class_uri: CHMO:0000690
TPR:
name: TPR
- definition_uri: https://w3id.org/nfdi4cat/catcore/TPR
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/TPR
description: Temperature-programmed reduction for reducibility and metal-support
interaction characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0002908
is_a: CharacterizationTechnique
@@ -12559,10 +12560,10 @@ classes:
class_uri: CHMO:0002908
TPO:
name: TPO
- definition_uri: https://w3id.org/nfdi4cat/catcore/TPO
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/TPO
description: Temperature-programmed oxidation for coke quantification and reoxidation
characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0002907
is_a: CharacterizationTechnique
@@ -12581,12 +12582,12 @@ classes:
class_uri: CHMO:0002907
BET:
name: BET
- definition_uri: https://w3id.org/nfdi4cat/catcore/BET
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/BET
description: Brunauer-Emmett-Teller analysis for specific surface area and pore
size distribution.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:BET
+ - coremeta4cat:BET
is_a: CharacterizationTechnique
slots:
- title
@@ -12598,13 +12599,13 @@ classes:
- measurement_temperature
- pore_size_distribution_method
- sample_mass
- class_uri: catcore:BET
+ class_uri: coremeta4cat:BET
ICPAES:
name: ICPAES
- definition_uri: https://w3id.org/nfdi4cat/catcore/ICPAES
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ICPAES
description: Inductively coupled plasma atomic emission spectroscopy for bulk
elemental composition.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000267
is_a: CharacterizationTechnique
@@ -12620,10 +12621,10 @@ classes:
class_uri: CHMO:0000267
ElementalAnalysis:
name: ElementalAnalysis
- definition_uri: https://w3id.org/nfdi4cat/catcore/ElementalAnalysis
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElementalAnalysis
description: Combustion elemental analysis (CHNS/O) for carbon, hydrogen, nitrogen,
sulfur content.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0001075
is_a: CharacterizationTechnique
@@ -12638,10 +12639,10 @@ classes:
class_uri: CHMO:0001075
UVVisSpectroscopy:
name: UVVisSpectroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/UVVisSpectroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/UVVisSpectroscopy
description: UV-Vis spectroscopy for electronic transitions, band gap, and concentration
determination.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- VOC4CAT:0000079
is_a: CharacterizationTechnique
@@ -12658,11 +12659,11 @@ classes:
class_uri: VOC4CAT:0000079
PhotoluminescenceSpectroscopy:
name: PhotoluminescenceSpectroscopy
- definition_uri: https://w3id.org/nfdi4cat/catcore/PhotoluminescenceSpectroscopy
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PhotoluminescenceSpectroscopy
description: Photoluminescence spectroscopy for defect and charge carrier characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:PhotoluminescenceSpectroscopy
+ - coremeta4cat:PhotoluminescenceSpectroscopy
is_a: CharacterizationTechnique
mixins:
- PhotoluminescenceMixin
@@ -12679,15 +12680,15 @@ classes:
- emission_wavelength
- optical_filter
- temperature
- class_uri: catcore:PhotoluminescenceSpectroscopy
+ class_uri: coremeta4cat:PhotoluminescenceSpectroscopy
PhotoluminescenceLifetime:
name: PhotoluminescenceLifetime
- definition_uri: https://w3id.org/nfdi4cat/catcore/PhotoluminescenceLifetime
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PhotoluminescenceLifetime
description: Time-resolved photoluminescence for charge carrier lifetime and recombination
dynamics.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:PhotoluminescenceLifetime
+ - coremeta4cat:PhotoluminescenceLifetime
is_a: CharacterizationTechnique
mixins:
- PhotoluminescenceMixin
@@ -12702,13 +12703,13 @@ classes:
- emission_wavelength
- optical_filter
- temperature
- class_uri: catcore:PhotoluminescenceLifetime
+ class_uri: coremeta4cat:PhotoluminescenceLifetime
CyclicVoltammetry:
name: CyclicVoltammetry
- definition_uri: https://w3id.org/nfdi4cat/catcore/CyclicVoltammetry
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CyclicVoltammetry
description: Cyclic voltammetry for electrochemical activity, redox potential,
and capacitance characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000025
is_a: CharacterizationTechnique
@@ -12734,12 +12735,12 @@ classes:
class_uri: CHMO:0000025
ConductivityMeasurement:
name: ConductivityMeasurement
- definition_uri: https://w3id.org/nfdi4cat/catcore/ConductivityMeasurement
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ConductivityMeasurement
description: Electrical conductivity measurement for ionic and electronic transport
characterization.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- - catcore:ConductivityMeasurement
+ - coremeta4cat:ConductivityMeasurement
is_a: CharacterizationTechnique
mixins:
- ElectrochemistryMixin
@@ -12759,13 +12760,13 @@ classes:
- electrolyte_concentration
- atmosphere
- temperature
- class_uri: catcore:ConductivityMeasurement
+ class_uri: coremeta4cat:ConductivityMeasurement
DynamicLightScattering:
name: DynamicLightScattering
- definition_uri: https://w3id.org/nfdi4cat/catcore/DynamicLightScattering
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DynamicLightScattering
description: Dynamic light scattering for hydrodynamic particle size distribution
in suspension.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000167
is_a: CharacterizationTechnique
@@ -12783,12 +12784,12 @@ classes:
- dispersant
- measurement_duration
class_uri: CHMO:0000167
- ESI_MS:
- name: ESI_MS
- definition_uri: https://w3id.org/nfdi4cat/catcore/ESIMS
+ ElectroSprayIonizationMassSpectrometry:
+ name: ElectroSprayIonizationMassSpectrometry
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElectroSprayIonizationMassSpectrometry
description: Electrospray ionisation mass spectrometry for molecular mass and
identity determination.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000482
is_a: CharacterizationTechnique
@@ -12811,10 +12812,10 @@ classes:
class_uri: CHMO:0000482
GCMS:
name: GCMS
- definition_uri: https://w3id.org/nfdi4cat/catcore/GCMS
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/GCMS
description: Gas chromatography-mass spectrometry for volatile compound identification
and quantification.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000497
is_a: CharacterizationTechnique
@@ -12848,9 +12849,9 @@ classes:
class_uri: CHMO:0000497
SizeExclusionChromatography:
name: SizeExclusionChromatography
- definition_uri: https://w3id.org/nfdi4cat/catcore/SizeExclusionChromatography
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SizeExclusionChromatography
description: Size exclusion chromatography for molecular weight distribution determination.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- AFP:0000843
is_a: CharacterizationTechnique
@@ -12870,12 +12871,12 @@ classes:
- external_standard
- internal_standard
class_uri: AFP:0000843
- HPLC_MS:
- name: HPLC_MS
- definition_uri: https://w3id.org/nfdi4cat/catcore/HPLCMS
+ HighPerformanceLiquidChromatographyMassSpectrometry:
+ name: HighPerformanceLiquidChromatographyMassSpectrometry
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/HighPerformanceLiquidChromatographyMassSpectrometry
description: High-performance liquid chromatography-mass spectrometry for compound
identification and quantification.
- from_schema: https://w3id.org/nfdi4cat/catcore/characterization/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
mappings:
- CHMO:0000796
is_a: CharacterizationTechnique
@@ -12898,7 +12899,7 @@ classes:
class_uri: CHMO:0000796
Reaction:
name: Reaction
- definition_uri: https://w3id.org/nfdi4cat/catcore/Reaction
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Reaction
description: "An EvaluatedActivity representing the catalytic reaction being studied.\n\
\nReaction is NOT a DataGeneratingActivity \u2014 it is the catalytic process\n\
being observed, not the process that generates the dataset. A CatalysisDataset\n\
@@ -12910,7 +12911,7 @@ classes:
\ linked via had_input_entity. The type of catalytic reaction\n(e.g. ammonia\
\ synthesis, CO oxidation) is expressed via rdf_type using a\nvoc4cat or ChemO\
\ term."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- SIO:010345
is_a: EvaluatedActivity
@@ -12968,11 +12969,11 @@ classes:
Should reference a CharacterizationTechnique instance (e.g. a GCMS or
- HPLC_MS object from catcore_characterization_ap). The abstract stub
+ HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub
ProductIdentificationMethod is retained for backward compatibility.'
- from_schema: https://w3id.org/nfdi4cat/catcore
- slot_uri: catcore:product_identification_method
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat
+ slot_uri: coremeta4cat:product_identification_method
range: ProductIdentificationMethod
required: true
multivalued: true
@@ -12981,21 +12982,22 @@ classes:
class_uri: SIO:010345
ProductIdentificationMethod:
name: ProductIdentificationMethod
- definition_uri: https://w3id.org/nfdi4cat/catcore/ProductIdentificationMethod
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ProductIdentificationMethod
description: 'Abstract Plan representing the method used to identify and quantify
reaction
products. In practice, users should reference a concrete CharacterizationTechnique
- subclass from catcore_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
+ subclass from coremeta4cat_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
This abstract class is retained for backward compatibility with the original
- CatCore monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
+ CoreMeta4Cat monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so
+ that
it can participate in the realized_plan slot if needed.'
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- OBI:0000272
is_a: Plan
@@ -13008,14 +13010,14 @@ classes:
class_uri: OBI:0000272
ReactorDesignType:
name: ReactorDesignType
- definition_uri: https://w3id.org/nfdi4cat/catcore/ReactorDesignType
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ReactorDesignType
description: 'Abstract Device representing the type of reactor used in a catalytic
experiment.
Concrete subclasses specify the reactor geometry and operating mode.
Linked from Reaction via carried_out_by.'
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0007018
is_a: Device
@@ -13034,11 +13036,11 @@ classes:
class_uri: VOC4CAT:0007018
ElectrochemicalReactor:
name: ElectrochemicalReactor
- definition_uri: https://w3id.org/nfdi4cat/catcore/ElectrochemicalReactor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElectrochemicalReactor
description: 'Electrochemical reactor used in electrocatalytic experiments, including
H-cells, flow cells, and membrane electrode assemblies.'
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0000193
is_a: ReactorDesignType
@@ -13056,10 +13058,10 @@ classes:
class_uri: VOC4CAT:0000193
CSTR:
name: CSTR
- definition_uri: https://w3id.org/nfdi4cat/catcore/CSTR
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CSTR
description: "Continuous stirred tank reactor (CSTR) \u2014 a well-mixed, continuous-flow\n\
reactor operating at steady state."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0007019
is_a: ReactorDesignType
@@ -13077,10 +13079,10 @@ classes:
class_uri: VOC4CAT:0007019
PlugFlowReactor:
name: PlugFlowReactor
- definition_uri: https://w3id.org/nfdi4cat/catcore/PlugFlowReactor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PlugFlowReactor
description: "Plug flow reactor (PFR) \u2014 a tubular reactor in which reactant\
\ composition\nvaries along the axis with no axial mixing."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0007102
is_a: ReactorDesignType
@@ -13098,10 +13100,10 @@ classes:
class_uri: VOC4CAT:0007102
Autoclave:
name: Autoclave
- definition_uri: https://w3id.org/nfdi4cat/catcore/Autoclave
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Autoclave
description: "Autoclave reactor \u2014 a sealed pressure vessel for batch reactions\
\ at\nelevated temperature and/or pressure."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- NCIT:C93052
is_a: ReactorDesignType
@@ -13119,12 +13121,12 @@ classes:
class_uri: NCIT:C93052
SlurryReactor:
name: SlurryReactor
- definition_uri: https://w3id.org/nfdi4cat/catcore/SlurryReactor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SlurryReactor
description: "Slurry reactor \u2014 a three-phase reactor in which catalyst particles\
\ are\nsuspended in a liquid phase through which gas is bubbled."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:SlurryReactor
+ - coremeta4cat:SlurryReactor
is_a: ReactorDesignType
slots:
- id
@@ -13137,14 +13139,14 @@ classes:
- rdf_type
- Device_has_part
- Device_other_identifier
- class_uri: catcore:SlurryReactor
+ class_uri: coremeta4cat:SlurryReactor
Microreactor:
name: Microreactor
- definition_uri: https://w3id.org/nfdi4cat/catcore/Microreactor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Microreactor
description: "Microreactor \u2014 a miniaturised flow reactor with characteristic\
\ dimensions\nin the sub-millimetre range, enabling precise thermal control\
\ and rapid\nscreening."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- VOC4CAT:0000234
is_a: ReactorDesignType
@@ -13162,12 +13164,12 @@ classes:
class_uri: VOC4CAT:0000234
FixedBedReactor:
name: FixedBedReactor
- definition_uri: https://w3id.org/nfdi4cat/catcore/FixedBedReactor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/FixedBedReactor
description: "Fixed bed reactor \u2014 a tubular reactor packed with a stationary\
\ catalyst bed.\nThe most common reactor type in heterogeneous catalysis testing."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:FixedBedReactor
+ - coremeta4cat:FixedBedReactor
is_a: ReactorDesignType
slots:
- id
@@ -13180,15 +13182,15 @@ classes:
- rdf_type
- Device_has_part
- Device_other_identifier
- class_uri: catcore:FixedBedReactor
+ class_uri: coremeta4cat:FixedBedReactor
FluidizedBedReactor:
name: FluidizedBedReactor
- definition_uri: https://w3id.org/nfdi4cat/catcore/FluidizedBedReactor
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/FluidizedBedReactor
description: "Fluidized bed reactor \u2014 a reactor in which the catalyst particles\
\ are\nsuspended in an upward-flowing gas or liquid stream."
- from_schema: https://w3id.org/nfdi4cat/catcore/reaction/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- - catcore:FluidizedBedReactor
+ - coremeta4cat:FluidizedBedReactor
is_a: ReactorDesignType
slots:
- id
@@ -13204,10 +13206,10 @@ classes:
- gas_distributor_type
- bed_expansion_height
- bubble_size_distribution
- class_uri: catcore:FluidizedBedReactor
+ class_uri: coremeta4cat:FluidizedBedReactor
MaterialDescriptorMixin:
name: MaterialDescriptorMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/MaterialDescriptorMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MaterialDescriptorMixin
description: 'Mixin providing material identity slots shared by CalculatedProperty
subclasses that target a specific material composition and crystal
@@ -13217,30 +13219,30 @@ classes:
AqueousStability, GrainBoundaries, ElectronicStructure, Ferroelectrics,
BandGap).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mixin: true
slots:
- material_composition
- crystal_structure
- class_uri: catcore:MaterialDescriptorMixin
+ class_uri: coremeta4cat:MaterialDescriptorMixin
DFTSettingsMixin:
name: DFTSettingsMixin
- definition_uri: https://w3id.org/nfdi4cat/catcore/DFTSettingsMixin
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DFTSettingsMixin
description: 'Mixin providing plane-wave DFT numerical settings shared by CalculatedProperty
subclasses that are computed with periodic DFT (DielectricTensors,
EquationsOfState, ElectronicStructure, BandGap).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mixin: true
slots:
- energy_cutoff
- convergence_criteria
- k_point_mesh
- class_uri: catcore:DFTSettingsMixin
+ class_uri: coremeta4cat:DFTSettingsMixin
Simulation:
name: Simulation
- definition_uri: https://w3id.org/nfdi4cat/catcore/Simulation
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Simulation
description: 'A DataGeneratingActivity in which a catalyst, catalytic material,
or
@@ -13256,10 +13258,10 @@ classes:
is linked via evaluated_entity or evaluated_activity.
- The specific simulation type is expressed via rdf_type (e.g. catcore:DFT,
+ The specific simulation type is expressed via rdf_type (e.g. coremeta4cat:DFT,
NCIT:C18097 for molecular dynamics), following DCAT-AP-PLUS Pattern 3.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- NCIT:C48936
is_a: DataGeneratingActivity
@@ -13287,9 +13289,9 @@ classes:
slot_usage:
rdf_type:
name: rdf_type
- description: 'The type of simulation method as an ontology term (e.g. catcore:DFT,
+ description: 'The type of simulation method as an ontology term (e.g. coremeta4cat:DFT,
- NCIT:C18097 for MD, catcore:Microkinetics). This is the primary
+ NCIT:C18097 for MD, coremeta4cat:Microkinetics). This is the primary
machine-actionable classification of the simulation type.'
recommended: true
@@ -13317,14 +13319,14 @@ classes:
class_uri: NCIT:C48936
SimulationMethod:
name: SimulationMethod
- definition_uri: https://w3id.org/nfdi4cat/catcore/SimulationMethod
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/SimulationMethod
description: 'Abstract Plan describing the computational method (protocol) used
in a
Simulation. Concrete subclasses carry method-specific parameter slots.
Linked from Simulation via realized_plan.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- OBI:0000272
is_a: Plan
@@ -13337,13 +13339,13 @@ classes:
class_uri: OBI:0000272
DFT:
name: DFT
- definition_uri: https://w3id.org/nfdi4cat/catcore/DFT
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DFT
description: "Density functional theory \u2014 a quantum mechanical method for\
\ calculating\nthe electronic structure of atoms, molecules, and periodic solids.\n\
The most widely used ab initio method in computational catalysis."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:DFT
+ - coremeta4cat:DFT
is_a: SimulationMethod
slots:
- title
@@ -13356,14 +13358,14 @@ classes:
- dft_u_parameters
- spin_polarization
- total_energy_per_atom
- class_uri: catcore:DFT
+ class_uri: coremeta4cat:DFT
MolecularDynamics:
name: MolecularDynamics
- definition_uri: https://w3id.org/nfdi4cat/catcore/MolecularDynamics
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MolecularDynamics
description: "Molecular dynamics simulation \u2014 a method for computing the\
\ time evolution\nof a system of interacting particles by integrating the equations\
\ of motion.\nUsed to study diffusion, reaction kinetics, and thermal properties."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- NCIT:C18097
is_a: SimulationMethod
@@ -13380,13 +13382,13 @@ classes:
class_uri: NCIT:C18097
Microkinetics:
name: Microkinetics
- definition_uri: https://w3id.org/nfdi4cat/catcore/Microkinetics
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Microkinetics
description: "Microkinetic modelling \u2014 a mean-field kinetic approach that\
\ integrates\nelementary reaction steps and their rate constants to predict\
\ catalytic\nactivity and selectivity under reaction conditions."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:Microkinetics
+ - coremeta4cat:Microkinetics
is_a: SimulationMethod
slots:
- title
@@ -13399,17 +13401,17 @@ classes:
- pressure
- surface_coverage
- activation_energy
- class_uri: catcore:Microkinetics
+ class_uri: coremeta4cat:Microkinetics
MonteCarlo:
name: MonteCarlo
- definition_uri: https://w3id.org/nfdi4cat/catcore/MonteCarlo
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/MonteCarlo
description: "Monte Carlo simulation \u2014 a stochastic method that samples configuration\n\
space using random moves accepted or rejected according to a statistical\ncriterion\
\ (e.g. Metropolis). Used for adsorption isotherms, phase diagrams,\nand lattice-based\
\ kinetics."
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:MonteCarlo
+ - coremeta4cat:MonteCarlo
is_a: SimulationMethod
slots:
- title
@@ -13423,10 +13425,10 @@ classes:
- acceptance_criteria
- equilibration_steps
- sampling_interval
- class_uri: catcore:MonteCarlo
+ class_uri: coremeta4cat:MonteCarlo
CalculatedProperty:
name: CalculatedProperty
- definition_uri: https://w3id.org/nfdi4cat/catcore/CalculatedProperty
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/CalculatedProperty
description: 'Abstract QualitativeAttribute representing a property computed by
a
@@ -13435,9 +13437,9 @@ classes:
values and the computational settings used to produce them.
Linked from Simulation via the calculated_property slot.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:CalculatedProperty
+ - coremeta4cat:CalculatedProperty
is_a: QualitativeAttribute
abstract: true
slots:
@@ -13446,19 +13448,19 @@ classes:
- QualitativeAttribute_value
- ClassifierMixin_type
- rdf_type
- class_uri: catcore:CalculatedProperty
+ class_uri: coremeta4cat:CalculatedProperty
ThermodynamicStability:
name: ThermodynamicStability
- definition_uri: https://w3id.org/nfdi4cat/catcore/ThermodynamicStability
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ThermodynamicStability
description: 'Thermodynamic stability of a material or phase, characterised by
formation
energy, convex hull distance, and competing phases. Used to screen catalyst
stability and predict synthesis feasibility.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ThermodynamicStability
+ - coremeta4cat:ThermodynamicStability
is_a: CalculatedProperty
slots:
- title
@@ -13471,17 +13473,17 @@ classes:
- energy_above_hull
- phase_diagram_type
- competing_phases
- class_uri: catcore:ThermodynamicStability
+ class_uri: coremeta4cat:ThermodynamicStability
Piezoelectricity:
name: Piezoelectricity
- definition_uri: https://w3id.org/nfdi4cat/catcore/Piezoelectricity
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Piezoelectricity
description: 'Piezoelectric response of a non-centrosymmetric material, described
by the
piezoelectric tensor. Relevant for piezocatalysis applications.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:Piezoelectricity
+ - coremeta4cat:Piezoelectricity
is_a: CalculatedProperty
slots:
- title
@@ -13493,17 +13495,17 @@ classes:
- crystal_symmetry
- strain_applied
- ionic_electronic_contributions
- class_uri: catcore:Piezoelectricity
+ class_uri: coremeta4cat:Piezoelectricity
ElasticConstants:
name: ElasticConstants
- definition_uri: https://w3id.org/nfdi4cat/catcore/ElasticConstants
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElasticConstants
description: 'Elastic mechanical properties of a material derived from the elastic
tensor,
including bulk modulus, shear modulus, and Young''s modulus.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ElasticConstants
+ - coremeta4cat:ElasticConstants
is_a: CalculatedProperty
slots:
- title
@@ -13516,18 +13518,18 @@ classes:
- shear_modulus
- poisson_ratio
- young_modulus
- class_uri: catcore:ElasticConstants
+ class_uri: coremeta4cat:ElasticConstants
Surfaces:
name: Surfaces
- definition_uri: https://w3id.org/nfdi4cat/catcore/Surfaces
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Surfaces
description: 'Surface properties of a catalyst computed from a periodic slab model,
including surface energy, Miller index, slab thickness, and vacuum spacing.
Central to heterogeneous catalysis modelling.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:Surfaces
+ - coremeta4cat:Surfaces
is_a: CalculatedProperty
slots:
- title
@@ -13540,17 +13542,17 @@ classes:
- slab_thickness
- vacuum_spacing
- surface_termination_method
- class_uri: catcore:Surfaces
+ class_uri: coremeta4cat:Surfaces
DielectricTensors:
name: DielectricTensors
- definition_uri: https://w3id.org/nfdi4cat/catcore/DielectricTensors
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/DielectricTensors
description: 'Dielectric tensor computed from density functional perturbation
theory (DFPT).
Characterises the optical and static dielectric response of a material.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:DielectricTensors
+ - coremeta4cat:DielectricTensors
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13568,18 +13570,18 @@ classes:
- energy_cutoff
- convergence_criteria
- k_point_mesh
- class_uri: catcore:DielectricTensors
+ class_uri: coremeta4cat:DielectricTensors
PhononDispersion:
name: PhononDispersion
- definition_uri: https://w3id.org/nfdi4cat/catcore/PhononDispersion
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/PhononDispersion
description: 'Phonon dispersion relations computed from interatomic force constants,
providing access to vibrational frequencies, thermodynamic quantities,
and dynamical stability (imaginary modes).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:PhononDispersion
+ - coremeta4cat:PhononDispersion
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13595,19 +13597,19 @@ classes:
- imaginary_modes
- material_composition
- crystal_structure
- class_uri: catcore:PhononDispersion
+ class_uri: coremeta4cat:PhononDispersion
EquationsOfState:
name: EquationsOfState
- definition_uri: https://w3id.org/nfdi4cat/catcore/EquationsOfState
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/EquationsOfState
description: 'Equation of state relating energy (or enthalpy) to volume, fitted
to a
parametric model (e.g. Birch-Murnaghan). Used to extract equilibrium
volume, bulk modulus, and its pressure derivative.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:EquationsOfState
+ - coremeta4cat:EquationsOfState
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13627,19 +13629,19 @@ classes:
- energy_cutoff
- convergence_criteria
- k_point_mesh
- class_uri: catcore:EquationsOfState
+ class_uri: coremeta4cat:EquationsOfState
AqueousStability:
name: AqueousStability
- definition_uri: https://w3id.org/nfdi4cat/catcore/AqueousStability
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/AqueousStability
description: 'Electrochemical (Pourbaix) stability of a catalyst in aqueous solution
as
a function of pH and electrode potential. Critical for electrocatalyst
stability screening.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:AqueousStability
+ - coremeta4cat:AqueousStability
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13656,18 +13658,18 @@ classes:
- temperature
- material_composition
- crystal_structure
- class_uri: catcore:AqueousStability
+ class_uri: coremeta4cat:AqueousStability
GrainBoundaries:
name: GrainBoundaries
- definition_uri: https://w3id.org/nfdi4cat/catcore/GrainBoundaries
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/GrainBoundaries
description: 'Grain boundary structure and energetics from atomistic simulation.
Relevant for understanding polycrystalline catalyst behaviour,
sintering, and charge/defect segregation.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:GrainBoundaries
+ - coremeta4cat:GrainBoundaries
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13686,19 +13688,19 @@ classes:
- charge_defect_segregation
- material_composition
- crystal_structure
- class_uri: catcore:GrainBoundaries
+ class_uri: coremeta4cat:GrainBoundaries
ElectronicStructure:
name: ElectronicStructure
- definition_uri: https://w3id.org/nfdi4cat/catcore/ElectronicStructure
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/ElectronicStructure
description: 'Electronic band structure and density of states, characterising
the
electronic properties of a catalyst relevant to activity descriptors
(d-band centre, band gap, Fermi energy).'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:ElectronicStructure
+ - coremeta4cat:ElectronicStructure
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13718,18 +13720,18 @@ classes:
- energy_cutoff
- convergence_criteria
- k_point_mesh
- class_uri: catcore:ElectronicStructure
+ class_uri: coremeta4cat:ElectronicStructure
Ferroelectrics:
name: Ferroelectrics
- definition_uri: https://w3id.org/nfdi4cat/catcore/Ferroelectrics
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/Ferroelectrics
description: 'Ferroelectric properties computed from DFT, including spontaneous
polarization, switching barrier, and coercive field. Relevant for
ferroelectric-photocatalyst design.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:Ferroelectrics
+ - coremeta4cat:Ferroelectrics
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13747,18 +13749,18 @@ classes:
- temperature_dependence
- material_composition
- crystal_structure
- class_uri: catcore:Ferroelectrics
+ class_uri: coremeta4cat:Ferroelectrics
BandGap:
name: BandGap
- definition_uri: https://w3id.org/nfdi4cat/catcore/BandGap
+ definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/BandGap
description: 'Electronic band gap and its character (direct/indirect), with optional
many-body (GW) or excitonic corrections. Critical for photocatalyst
and semiconductor catalyst screening.'
- from_schema: https://w3id.org/nfdi4cat/catcore/simulation/
+ from_schema: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
mappings:
- - catcore:BandGap
+ - coremeta4cat:BandGap
is_a: CalculatedProperty
mixins:
- MaterialDescriptorMixin
@@ -13781,7 +13783,7 @@ classes:
- energy_cutoff
- convergence_criteria
- k_point_mesh
- class_uri: catcore:BandGap
+ class_uri: coremeta4cat:BandGap
SubstanceSample:
name: SubstanceSample
definition_uri: https://nfdi-de.github.io/chem-dcat-ap/dcat_4c_ap.yaml#SubstanceSample
@@ -14518,7 +14520,7 @@ classes:
name: type
range: DefinedTerm
inlined: true
- class_uri: dcatap_plus:ClassifierMixin
+ class_uri: dcatapplus:ClassifierMixin
Concept:
name: Concept
definition_uri: https://w3id.org/nfdi-de/dcat-ap-plus/Concept
@@ -16193,7 +16195,7 @@ classes:
slots:
- title
- description
- class_uri: dcatap_plus:SupportiveEntity
+ class_uri: dcatapplus:SupportiveEntity
Surrounding:
name: Surrounding
definition_uri: https://w3id.org/nfdi-de/dcat-ap-plus/Surrounding
@@ -17073,8 +17075,8 @@ classes:
- rdf_type
class_uri: qudt:Quantity
metamodel_version: 1.7.0
-source_file: catcore.yaml
-source_file_date: '2026-03-04T09:02:39'
-source_file_size: 6616
-generation_date: '2026-03-04T09:46:48'
+source_file: coremeta4cat.yaml
+source_file_date: '2026-03-09T16:14:14'
+source_file_size: 6730
+generation_date: '2026-03-09T17:32:19'
diff --git a/docs/simulation.md b/docs/simulation.md
index 52e85d107..7758327e0 100644
--- a/docs/simulation.md
+++ b/docs/simulation.md
@@ -33,38 +33,38 @@ Computational approaches are organized under the parent field simulation method,
## Slots
-software package (Required, Multivalued)
+software package (Mandatory, Multivalued)
**Description:** Software package or code used for the simulation (e.g. VASP, Quantum ESPRESSO,
LAMMPS, CP2K, ORCA, Zacros). Include version number where possible.
**Data Type:** string
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**CURIE:** [`catcore:software_package`](https://w3id.org/nfdi4cat/catcore/software_package)
+**CURIE:** [`coremeta4cat:software_package`](https://w3id.org/nfdi4cat/coremeta4cat/software_package)
-**Schema Reference:** [software_package](./elements/software_package.md)
+**Schema Reference:** [software_package](./elements/slots/software_package.md)
-
+
💡 Submit Term Feedback
-calculated property (Required, Multivalued)
+calculated property (Mandatory, Multivalued)
**Description:** A property computed by this Simulation, provided as a CalculatedProperty
instance. Multiple properties may be computed in a single simulation run.
**Data Type:** CalculatedProperty
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**CURIE:** [`catcore:calculated_property`](https://w3id.org/nfdi4cat/catcore/calculated_property)
+**CURIE:** [`coremeta4cat:calculated_property`](https://w3id.org/nfdi4cat/coremeta4cat/calculated_property)
-**Schema Reference:** [calculated_property](./elements/calculated_property.md)
+**Schema Reference:** [calculated_property](./elements/slots/calculated_property.md)
**Data Type Class Details:**
@@ -78,12 +78,12 @@ Simulation. Concrete subclasses carry the property-specific output
values and the computational settings used to produce them.
Linked from Simulation via the calculated_property slot.
-**CURIE:** [`catcore:CalculatedProperty`](https://w3id.org/nfdi4cat/catcore/CalculatedProperty)
+**CURIE:** [`coremeta4cat:CalculatedProperty`](https://w3id.org/nfdi4cat/coremeta4cat/CalculatedProperty)
-**Schema Reference:** [CalculatedProperty](./elements/CalculatedProperty.md)
+**Schema Reference:** [CalculatedProperty](./elements/classes/CalculatedProperty.md)
-
+
💡 Submit Term Feedback
@@ -97,9 +97,9 @@ Linked from Simulation via the calculated_property slot.
energy, convex hull distance, and competing phases. Used to screen catalyst
stability and predict synthesis feasibility.
-**CURIE:** [`catcore:ThermodynamicStability`](https://w3id.org/nfdi4cat/catcore/ThermodynamicStability)
+**CURIE:** [`coremeta4cat:ThermodynamicStability`](https://w3id.org/nfdi4cat/coremeta4cat/ThermodynamicStability)
-**Schema Reference:** [ThermodynamicStability](./elements/ThermodynamicStability.md)
+**Schema Reference:** [ThermodynamicStability](./elements/classes/ThermodynamicStability.md)
**Slots**
@@ -112,14 +112,14 @@ stability and predict synthesis feasibility.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:formation_energy`](https://w3id.org/nfdi4cat/catcore/formation_energy)
+**CURIE:** [`coremeta4cat:formation_energy`](https://w3id.org/nfdi4cat/coremeta4cat/formation_energy)
-**Schema Reference:** [formation_energy](./elements/formation_energy.md)
+**Schema Reference:** [formation_energy](./elements/slots/formation_energy.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -134,12 +134,12 @@ stability and predict synthesis feasibility.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:reference_energies`](https://w3id.org/nfdi4cat/catcore/reference_energies)
+**CURIE:** [`coremeta4cat:reference_energies`](https://w3id.org/nfdi4cat/coremeta4cat/reference_energies)
-**Schema Reference:** [reference_energies](./elements/reference_energies.md)
+**Schema Reference:** [reference_energies](./elements/slots/reference_energies.md)
-
+
💡 Submit Term Feedback
@@ -154,14 +154,14 @@ metric). Zero for phases on the hull; positive values indicate metastability.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:energy_above_hull`](https://w3id.org/nfdi4cat/catcore/energy_above_hull)
+**CURIE:** [`coremeta4cat:energy_above_hull`](https://w3id.org/nfdi4cat/coremeta4cat/energy_above_hull)
-**Schema Reference:** [energy_above_hull](./elements/energy_above_hull.md)
+**Schema Reference:** [energy_above_hull](./elements/slots/energy_above_hull.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -175,12 +175,12 @@ metric). Zero for phases on the hull; positive values indicate metastability.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:phase_diagram_type`](https://w3id.org/nfdi4cat/catcore/phase_diagram_type)
+**CURIE:** [`coremeta4cat:phase_diagram_type`](https://w3id.org/nfdi4cat/coremeta4cat/phase_diagram_type)
-**Schema Reference:** [phase_diagram_type](./elements/phase_diagram_type.md)
+**Schema Reference:** [phase_diagram_type](./elements/slots/phase_diagram_type.md)
-
+
💡 Submit Term Feedback
@@ -195,18 +195,18 @@ metric). Zero for phases on the hull; positive values indicate metastability.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:competing_phases`](https://w3id.org/nfdi4cat/catcore/competing_phases)
+**CURIE:** [`coremeta4cat:competing_phases`](https://w3id.org/nfdi4cat/coremeta4cat/competing_phases)
-**Schema Reference:** [competing_phases](./elements/competing_phases.md)
+**Schema Reference:** [competing_phases](./elements/slots/competing_phases.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -217,9 +217,9 @@ metric). Zero for phases on the hull; positive values indicate metastability.
**Description:** Piezoelectric response of a non-centrosymmetric material, described by the
piezoelectric tensor. Relevant for piezocatalysis applications.
-**CURIE:** [`catcore:Piezoelectricity`](https://w3id.org/nfdi4cat/catcore/Piezoelectricity)
+**CURIE:** [`coremeta4cat:Piezoelectricity`](https://w3id.org/nfdi4cat/coremeta4cat/Piezoelectricity)
-**Schema Reference:** [Piezoelectricity](./elements/Piezoelectricity.md)
+**Schema Reference:** [Piezoelectricity](./elements/classes/Piezoelectricity.md)
**Slots**
@@ -233,12 +233,12 @@ describing the coupling between stress and electric polarization.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:piezoelectric_tensor`](https://w3id.org/nfdi4cat/catcore/piezoelectric_tensor)
+**CURIE:** [`coremeta4cat:piezoelectric_tensor`](https://w3id.org/nfdi4cat/coremeta4cat/piezoelectric_tensor)
-**Schema Reference:** [piezoelectric_tensor](./elements/piezoelectric_tensor.md)
+**Schema Reference:** [piezoelectric_tensor](./elements/slots/piezoelectric_tensor.md)
-
+
💡 Submit Term Feedback
@@ -252,12 +252,12 @@ describing the coupling between stress and electric polarization.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:crystal_symmetry`](https://w3id.org/nfdi4cat/catcore/crystal_symmetry)
+**CURIE:** [`coremeta4cat:crystal_symmetry`](https://w3id.org/nfdi4cat/coremeta4cat/crystal_symmetry)
-**Schema Reference:** [crystal_symmetry](./elements/crystal_symmetry.md)
+**Schema Reference:** [crystal_symmetry](./elements/slots/crystal_symmetry.md)
-
+
💡 Submit Term Feedback
@@ -271,12 +271,12 @@ describing the coupling between stress and electric polarization.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:strain_applied`](https://w3id.org/nfdi4cat/catcore/strain_applied)
+**CURIE:** [`coremeta4cat:strain_applied`](https://w3id.org/nfdi4cat/coremeta4cat/strain_applied)
-**Schema Reference:** [strain_applied](./elements/strain_applied.md)
+**Schema Reference:** [strain_applied](./elements/slots/strain_applied.md)
-
+
💡 Submit Term Feedback
@@ -291,18 +291,18 @@ describing the coupling between stress and electric polarization.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ionic_electronic_contributions`](https://w3id.org/nfdi4cat/catcore/ionic_electronic_contributions)
+**CURIE:** [`coremeta4cat:ionic_electronic_contributions`](https://w3id.org/nfdi4cat/coremeta4cat/ionic_electronic_contributions)
-**Schema Reference:** [ionic_electronic_contributions](./elements/ionic_electronic_contributions.md)
+**Schema Reference:** [ionic_electronic_contributions](./elements/slots/ionic_electronic_contributions.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -313,9 +313,9 @@ describing the coupling between stress and electric polarization.
**Description:** Elastic mechanical properties of a material derived from the elastic tensor,
including bulk modulus, shear modulus, and Young's modulus.
-**CURIE:** [`catcore:ElasticConstants`](https://w3id.org/nfdi4cat/catcore/ElasticConstants)
+**CURIE:** [`coremeta4cat:ElasticConstants`](https://w3id.org/nfdi4cat/coremeta4cat/ElasticConstants)
-**Schema Reference:** [ElasticConstants](./elements/ElasticConstants.md)
+**Schema Reference:** [ElasticConstants](./elements/classes/ElasticConstants.md)
**Slots**
@@ -329,12 +329,12 @@ elastic response of the material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:elastic_tensor`](https://w3id.org/nfdi4cat/catcore/elastic_tensor)
+**CURIE:** [`coremeta4cat:elastic_tensor`](https://w3id.org/nfdi4cat/coremeta4cat/elastic_tensor)
-**Schema Reference:** [elastic_tensor](./elements/elastic_tensor.md)
+**Schema Reference:** [elastic_tensor](./elements/slots/elastic_tensor.md)
-
+
💡 Submit Term Feedback
@@ -348,14 +348,14 @@ elastic response of the material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:bulk_modulus`](https://w3id.org/nfdi4cat/catcore/bulk_modulus)
+**CURIE:** [`coremeta4cat:bulk_modulus`](https://w3id.org/nfdi4cat/coremeta4cat/bulk_modulus)
-**Schema Reference:** [bulk_modulus](./elements/bulk_modulus.md)
+**Schema Reference:** [bulk_modulus](./elements/slots/bulk_modulus.md)
**Unit:** GPa
-
+
💡 Submit Term Feedback
@@ -369,14 +369,14 @@ elastic response of the material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:shear_modulus`](https://w3id.org/nfdi4cat/catcore/shear_modulus)
+**CURIE:** [`coremeta4cat:shear_modulus`](https://w3id.org/nfdi4cat/coremeta4cat/shear_modulus)
-**Schema Reference:** [shear_modulus](./elements/shear_modulus.md)
+**Schema Reference:** [shear_modulus](./elements/slots/shear_modulus.md)
**Unit:** GPa
-
+
💡 Submit Term Feedback
@@ -390,12 +390,12 @@ elastic response of the material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:poisson_ratio`](https://w3id.org/nfdi4cat/catcore/poisson_ratio)
+**CURIE:** [`coremeta4cat:poisson_ratio`](https://w3id.org/nfdi4cat/coremeta4cat/poisson_ratio)
-**Schema Reference:** [poisson_ratio](./elements/poisson_ratio.md)
+**Schema Reference:** [poisson_ratio](./elements/slots/poisson_ratio.md)
-
+
💡 Submit Term Feedback
@@ -409,20 +409,20 @@ elastic response of the material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:young_modulus`](https://w3id.org/nfdi4cat/catcore/young_modulus)
+**CURIE:** [`coremeta4cat:young_modulus`](https://w3id.org/nfdi4cat/coremeta4cat/young_modulus)
-**Schema Reference:** [young_modulus](./elements/young_modulus.md)
+**Schema Reference:** [young_modulus](./elements/slots/young_modulus.md)
**Unit:** GPa
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -434,9 +434,9 @@ elastic response of the material.
including surface energy, Miller index, slab thickness, and vacuum spacing.
Central to heterogeneous catalysis modelling.
-**CURIE:** [`catcore:Surfaces`](https://w3id.org/nfdi4cat/catcore/Surfaces)
+**CURIE:** [`coremeta4cat:Surfaces`](https://w3id.org/nfdi4cat/coremeta4cat/Surfaces)
-**Schema Reference:** [Surfaces](./elements/Surfaces.md)
+**Schema Reference:** [Surfaces](./elements/classes/Surfaces.md)
**Slots**
@@ -450,14 +450,14 @@ A lower value indicates a more stable surface facet.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:surface_energy`](https://w3id.org/nfdi4cat/catcore/surface_energy)
+**CURIE:** [`coremeta4cat:surface_energy`](https://w3id.org/nfdi4cat/coremeta4cat/surface_energy)
-**Schema Reference:** [surface_energy](./elements/surface_energy.md)
+**Schema Reference:** [surface_energy](./elements/slots/surface_energy.md)
**Unit:** J/m2
-
+
💡 Submit Term Feedback
@@ -471,12 +471,12 @@ A lower value indicates a more stable surface facet.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:miller_indices`](https://w3id.org/nfdi4cat/catcore/miller_indices)
+**CURIE:** [`coremeta4cat:miller_indices`](https://w3id.org/nfdi4cat/coremeta4cat/miller_indices)
-**Schema Reference:** [miller_indices](./elements/miller_indices.md)
+**Schema Reference:** [miller_indices](./elements/slots/miller_indices.md)
-
+
💡 Submit Term Feedback
@@ -490,14 +490,14 @@ A lower value indicates a more stable surface facet.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:slab_thickness`](https://w3id.org/nfdi4cat/catcore/slab_thickness)
+**CURIE:** [`coremeta4cat:slab_thickness`](https://w3id.org/nfdi4cat/coremeta4cat/slab_thickness)
-**Schema Reference:** [slab_thickness](./elements/slab_thickness.md)
+**Schema Reference:** [slab_thickness](./elements/slots/slab_thickness.md)
**Unit:** Ao
-
+
💡 Submit Term Feedback
@@ -512,14 +512,14 @@ periodic interactions between slab images.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vacuum_spacing`](https://w3id.org/nfdi4cat/catcore/vacuum_spacing)
+**CURIE:** [`coremeta4cat:vacuum_spacing`](https://w3id.org/nfdi4cat/coremeta4cat/vacuum_spacing)
-**Schema Reference:** [vacuum_spacing](./elements/vacuum_spacing.md)
+**Schema Reference:** [vacuum_spacing](./elements/slots/vacuum_spacing.md)
**Unit:** Ao
-
+
💡 Submit Term Feedback
@@ -534,18 +534,18 @@ periodic interactions between slab images.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:surface_termination_method`](https://w3id.org/nfdi4cat/catcore/surface_termination_method)
+**CURIE:** [`coremeta4cat:surface_termination_method`](https://w3id.org/nfdi4cat/coremeta4cat/surface_termination_method)
-**Schema Reference:** [surface_termination_method](./elements/surface_termination_method.md)
+**Schema Reference:** [surface_termination_method](./elements/slots/surface_termination_method.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -556,28 +556,28 @@ periodic interactions between slab images.
**Description:** Dielectric tensor computed from density functional perturbation theory (DFPT).
Characterises the optical and static dielectric response of a material.
-**CURIE:** [`catcore:DielectricTensors`](https://w3id.org/nfdi4cat/catcore/DielectricTensors)
+**CURIE:** [`coremeta4cat:DielectricTensors`](https://w3id.org/nfdi4cat/coremeta4cat/DielectricTensors)
-**Schema Reference:** [DielectricTensors](./elements/DielectricTensors.md)
+**Schema Reference:** [DielectricTensors](./elements/classes/DielectricTensors.md)
**Slots**
dielectric tensor (Optional, Multivalued)
-**Description:** Components of the static and/or high-frequency dielectric tensor ε_ij,
+**Description:** Components of the static and/or high-frequency dielectric tensor epsilon_ij,
computed from DFPT.
**Data Type:** string
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:dielectric_tensor`](https://w3id.org/nfdi4cat/catcore/dielectric_tensor)
+**CURIE:** [`coremeta4cat:dielectric_tensor`](https://w3id.org/nfdi4cat/coremeta4cat/dielectric_tensor)
-**Schema Reference:** [dielectric_tensor](./elements/dielectric_tensor.md)
+**Schema Reference:** [dielectric_tensor](./elements/slots/dielectric_tensor.md)
-
+
💡 Submit Term Feedback
@@ -592,12 +592,12 @@ the polarization changes with atomic displacements.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:born_effective_charges`](https://w3id.org/nfdi4cat/catcore/born_effective_charges)
+**CURIE:** [`coremeta4cat:born_effective_charges`](https://w3id.org/nfdi4cat/coremeta4cat/born_effective_charges)
-**Schema Reference:** [born_effective_charges](./elements/born_effective_charges.md)
+**Schema Reference:** [born_effective_charges](./elements/slots/born_effective_charges.md)
-
+
💡 Submit Term Feedback
@@ -612,12 +612,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -634,10 +634,10 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
@@ -651,14 +651,14 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:energy_cutoff`](https://w3id.org/nfdi4cat/catcore/energy_cutoff)
+**CURIE:** [`coremeta4cat:energy_cutoff`](https://w3id.org/nfdi4cat/coremeta4cat/energy_cutoff)
-**Schema Reference:** [energy_cutoff](./elements/energy_cutoff.md)
+**Schema Reference:** [energy_cutoff](./elements/slots/energy_cutoff.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -673,12 +673,12 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:convergence_criteria`](https://w3id.org/nfdi4cat/catcore/convergence_criteria)
+**CURIE:** [`coremeta4cat:convergence_criteria`](https://w3id.org/nfdi4cat/coremeta4cat/convergence_criteria)
-**Schema Reference:** [convergence_criteria](./elements/convergence_criteria.md)
+**Schema Reference:** [convergence_criteria](./elements/slots/convergence_criteria.md)
-
+
💡 Submit Term Feedback
@@ -693,18 +693,18 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:k_point_mesh`](https://w3id.org/nfdi4cat/catcore/k_point_mesh)
+**CURIE:** [`coremeta4cat:k_point_mesh`](https://w3id.org/nfdi4cat/coremeta4cat/k_point_mesh)
-**Schema Reference:** [k_point_mesh](./elements/k_point_mesh.md)
+**Schema Reference:** [k_point_mesh](./elements/slots/k_point_mesh.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -716,9 +716,9 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
providing access to vibrational frequencies, thermodynamic quantities,
and dynamical stability (imaginary modes).
-**CURIE:** [`catcore:PhononDispersion`](https://w3id.org/nfdi4cat/catcore/PhononDispersion)
+**CURIE:** [`coremeta4cat:PhononDispersion`](https://w3id.org/nfdi4cat/coremeta4cat/PhononDispersion)
-**Schema Reference:** [PhononDispersion](./elements/PhononDispersion.md)
+**Schema Reference:** [PhononDispersion](./elements/classes/PhononDispersion.md)
**Slots**
@@ -732,12 +732,12 @@ differences / supercell method, DFPT/linear response).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:force_constant_method`](https://w3id.org/nfdi4cat/catcore/force_constant_method)
+**CURIE:** [`coremeta4cat:force_constant_method`](https://w3id.org/nfdi4cat/coremeta4cat/force_constant_method)
-**Schema Reference:** [force_constant_method](./elements/force_constant_method.md)
+**Schema Reference:** [force_constant_method](./elements/slots/force_constant_method.md)
-
+
💡 Submit Term Feedback
@@ -752,12 +752,12 @@ Distinct from the electronic k-point mesh.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:kq_point_mesh`](https://w3id.org/nfdi4cat/catcore/kq_point_mesh)
+**CURIE:** [`coremeta4cat:kq_point_mesh`](https://w3id.org/nfdi4cat/coremeta4cat/kq_point_mesh)
-**Schema Reference:** [kq_point_mesh](./elements/kq_point_mesh.md)
+**Schema Reference:** [kq_point_mesh](./elements/slots/kq_point_mesh.md)
-
+
💡 Submit Term Feedback
@@ -771,14 +771,14 @@ Distinct from the electronic k-point mesh.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:smearing_parameter`](https://w3id.org/nfdi4cat/catcore/smearing_parameter)
+**CURIE:** [`coremeta4cat:smearing_parameter`](https://w3id.org/nfdi4cat/coremeta4cat/smearing_parameter)
-**Schema Reference:** [smearing_parameter](./elements/smearing_parameter.md)
+**Schema Reference:** [smearing_parameter](./elements/slots/smearing_parameter.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -793,12 +793,12 @@ Imaginary modes indicate dynamical instability of the structure.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:imaginary_modes`](https://w3id.org/nfdi4cat/catcore/imaginary_modes)
+**CURIE:** [`coremeta4cat:imaginary_modes`](https://w3id.org/nfdi4cat/coremeta4cat/imaginary_modes)
-**Schema Reference:** [imaginary_modes](./elements/imaginary_modes.md)
+**Schema Reference:** [imaginary_modes](./elements/slots/imaginary_modes.md)
-
+
💡 Submit Term Feedback
@@ -813,12 +813,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -835,16 +835,16 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -856,9 +856,9 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
parametric model (e.g. Birch-Murnaghan). Used to extract equilibrium
volume, bulk modulus, and its pressure derivative.
-**CURIE:** [`catcore:EquationsOfState`](https://w3id.org/nfdi4cat/catcore/EquationsOfState)
+**CURIE:** [`coremeta4cat:EquationsOfState`](https://w3id.org/nfdi4cat/coremeta4cat/EquationsOfState)
-**Schema Reference:** [EquationsOfState](./elements/EquationsOfState.md)
+**Schema Reference:** [EquationsOfState](./elements/classes/EquationsOfState.md)
**Slots**
@@ -872,12 +872,12 @@ volume, bulk modulus, and its pressure derivative.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:fit_method`](https://w3id.org/nfdi4cat/catcore/fit_method)
+**CURIE:** [`coremeta4cat:fit_method`](https://w3id.org/nfdi4cat/coremeta4cat/fit_method)
-**Schema Reference:** [fit_method](./elements/fit_method.md)
+**Schema Reference:** [fit_method](./elements/slots/fit_method.md)
-
+
💡 Submit Term Feedback
@@ -891,14 +891,14 @@ volume, bulk modulus, and its pressure derivative.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:bulk_modulus`](https://w3id.org/nfdi4cat/catcore/bulk_modulus)
+**CURIE:** [`coremeta4cat:bulk_modulus`](https://w3id.org/nfdi4cat/coremeta4cat/bulk_modulus)
-**Schema Reference:** [bulk_modulus](./elements/bulk_modulus.md)
+**Schema Reference:** [bulk_modulus](./elements/slots/bulk_modulus.md)
**Unit:** GPa
-
+
💡 Submit Term Feedback
@@ -912,12 +912,12 @@ volume, bulk modulus, and its pressure derivative.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:pressure_derivative`](https://w3id.org/nfdi4cat/catcore/pressure_derivative)
+**CURIE:** [`coremeta4cat:pressure_derivative`](https://w3id.org/nfdi4cat/coremeta4cat/pressure_derivative)
-**Schema Reference:** [pressure_derivative](./elements/pressure_derivative.md)
+**Schema Reference:** [pressure_derivative](./elements/slots/pressure_derivative.md)
-
+
💡 Submit Term Feedback
@@ -931,12 +931,12 @@ volume, bulk modulus, and its pressure derivative.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:fit_residuals`](https://w3id.org/nfdi4cat/catcore/fit_residuals)
+**CURIE:** [`coremeta4cat:fit_residuals`](https://w3id.org/nfdi4cat/coremeta4cat/fit_residuals)
-**Schema Reference:** [fit_residuals](./elements/fit_residuals.md)
+**Schema Reference:** [fit_residuals](./elements/slots/fit_residuals.md)
-
+
💡 Submit Term Feedback
@@ -951,12 +951,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -973,10 +973,10 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
@@ -990,14 +990,14 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:energy_cutoff`](https://w3id.org/nfdi4cat/catcore/energy_cutoff)
+**CURIE:** [`coremeta4cat:energy_cutoff`](https://w3id.org/nfdi4cat/coremeta4cat/energy_cutoff)
-**Schema Reference:** [energy_cutoff](./elements/energy_cutoff.md)
+**Schema Reference:** [energy_cutoff](./elements/slots/energy_cutoff.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1012,12 +1012,12 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:convergence_criteria`](https://w3id.org/nfdi4cat/catcore/convergence_criteria)
+**CURIE:** [`coremeta4cat:convergence_criteria`](https://w3id.org/nfdi4cat/coremeta4cat/convergence_criteria)
-**Schema Reference:** [convergence_criteria](./elements/convergence_criteria.md)
+**Schema Reference:** [convergence_criteria](./elements/slots/convergence_criteria.md)
-
+
💡 Submit Term Feedback
@@ -1032,18 +1032,18 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:k_point_mesh`](https://w3id.org/nfdi4cat/catcore/k_point_mesh)
+**CURIE:** [`coremeta4cat:k_point_mesh`](https://w3id.org/nfdi4cat/coremeta4cat/k_point_mesh)
-**Schema Reference:** [k_point_mesh](./elements/k_point_mesh.md)
+**Schema Reference:** [k_point_mesh](./elements/slots/k_point_mesh.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1055,9 +1055,9 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
a function of pH and electrode potential. Critical for electrocatalyst
stability screening.
-**CURIE:** [`catcore:AqueousStability`](https://w3id.org/nfdi4cat/catcore/AqueousStability)
+**CURIE:** [`coremeta4cat:AqueousStability`](https://w3id.org/nfdi4cat/coremeta4cat/AqueousStability)
-**Schema Reference:** [AqueousStability](./elements/AqueousStability.md)
+**Schema Reference:** [AqueousStability](./elements/classes/AqueousStability.md)
**Slots**
@@ -1070,12 +1070,12 @@ stability screening.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ph_range`](https://w3id.org/nfdi4cat/catcore/ph_range)
+**CURIE:** [`coremeta4cat:ph_range`](https://w3id.org/nfdi4cat/coremeta4cat/ph_range)
-**Schema Reference:** [ph_range](./elements/ph_range.md)
+**Schema Reference:** [ph_range](./elements/slots/ph_range.md)
-
+
💡 Submit Term Feedback
@@ -1090,12 +1090,12 @@ stability screening.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:potential_range`](https://w3id.org/nfdi4cat/catcore/potential_range)
+**CURIE:** [`coremeta4cat:potential_range`](https://w3id.org/nfdi4cat/coremeta4cat/potential_range)
-**Schema Reference:** [potential_range](./elements/potential_range.md)
+**Schema Reference:** [potential_range](./elements/slots/potential_range.md)
-
+
💡 Submit Term Feedback
@@ -1110,12 +1110,12 @@ stability screening.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:solvation_model`](https://w3id.org/nfdi4cat/catcore/solvation_model)
+**CURIE:** [`coremeta4cat:solvation_model`](https://w3id.org/nfdi4cat/coremeta4cat/solvation_model)
-**Schema Reference:** [solvation_model](./elements/solvation_model.md)
+**Schema Reference:** [solvation_model](./elements/slots/solvation_model.md)
-
+
💡 Submit Term Feedback
@@ -1129,14 +1129,14 @@ stability screening.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ionic_strength`](https://w3id.org/nfdi4cat/catcore/ionic_strength)
+**CURIE:** [`coremeta4cat:ionic_strength`](https://w3id.org/nfdi4cat/coremeta4cat/ionic_strength)
-**Schema Reference:** [ionic_strength](./elements/ionic_strength.md)
+**Schema Reference:** [ionic_strength](./elements/slots/ionic_strength.md)
**Unit:** mol/L
-
+
💡 Submit Term Feedback
@@ -1152,12 +1152,12 @@ stability screening.
**CURIE:** [`AFR:0001584`](http://purl.allotrope.org/ontologies/result#AFR_0001584)
-**Schema Reference:** [temperature](./elements/temperature.md)
+**Schema Reference:** [temperature](./elements/slots/temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1172,12 +1172,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -1194,16 +1194,16 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1215,9 +1215,9 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
Relevant for understanding polycrystalline catalyst behaviour,
sintering, and charge/defect segregation.
-**CURIE:** [`catcore:GrainBoundaries`](https://w3id.org/nfdi4cat/catcore/GrainBoundaries)
+**CURIE:** [`coremeta4cat:GrainBoundaries`](https://w3id.org/nfdi4cat/coremeta4cat/GrainBoundaries)
-**Schema Reference:** [GrainBoundaries](./elements/GrainBoundaries.md)
+**Schema Reference:** [GrainBoundaries](./elements/classes/GrainBoundaries.md)
**Slots**
@@ -1225,18 +1225,18 @@ sintering, and charge/defect segregation.
grain boundary plane (Optional, Multivalued)
**Description:** Crystallographic plane of the grain boundary, expressed using
-Miller indices (e.g. "Σ5 (310)[001]").
+Miller indices (e.g. "Sigma5 (310)[001]").
**Data Type:** string
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:grain_boundary_plane`](https://w3id.org/nfdi4cat/catcore/grain_boundary_plane)
+**CURIE:** [`coremeta4cat:grain_boundary_plane`](https://w3id.org/nfdi4cat/coremeta4cat/grain_boundary_plane)
-**Schema Reference:** [grain_boundary_plane](./elements/grain_boundary_plane.md)
+**Schema Reference:** [grain_boundary_plane](./elements/slots/grain_boundary_plane.md)
-
+
💡 Submit Term Feedback
@@ -1250,14 +1250,14 @@ Miller indices (e.g. "Σ5 (310)[001]").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:misorientation_angle`](https://w3id.org/nfdi4cat/catcore/misorientation_angle)
+**CURIE:** [`coremeta4cat:misorientation_angle`](https://w3id.org/nfdi4cat/coremeta4cat/misorientation_angle)
-**Schema Reference:** [misorientation_angle](./elements/misorientation_angle.md)
+**Schema Reference:** [misorientation_angle](./elements/slots/misorientation_angle.md)
**Unit:** deg
-
+
💡 Submit Term Feedback
@@ -1271,14 +1271,14 @@ Miller indices (e.g. "Σ5 (310)[001]").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:grain_boundary_energy`](https://w3id.org/nfdi4cat/catcore/grain_boundary_energy)
+**CURIE:** [`coremeta4cat:grain_boundary_energy`](https://w3id.org/nfdi4cat/coremeta4cat/grain_boundary_energy)
-**Schema Reference:** [grain_boundary_energy](./elements/grain_boundary_energy.md)
+**Schema Reference:** [grain_boundary_energy](./elements/slots/grain_boundary_energy.md)
**Unit:** J/m2
-
+
💡 Submit Term Feedback
@@ -1293,12 +1293,12 @@ Miller indices (e.g. "Σ5 (310)[001]").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:simulation_cell_size`](https://w3id.org/nfdi4cat/catcore/simulation_cell_size)
+**CURIE:** [`coremeta4cat:simulation_cell_size`](https://w3id.org/nfdi4cat/coremeta4cat/simulation_cell_size)
-**Schema Reference:** [simulation_cell_size](./elements/simulation_cell_size.md)
+**Schema Reference:** [simulation_cell_size](./elements/slots/simulation_cell_size.md)
-
+
💡 Submit Term Feedback
@@ -1312,12 +1312,12 @@ Miller indices (e.g. "Σ5 (310)[001]").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:gb_excess_volume`](https://w3id.org/nfdi4cat/catcore/gb_excess_volume)
+**CURIE:** [`coremeta4cat:gb_excess_volume`](https://w3id.org/nfdi4cat/coremeta4cat/gb_excess_volume)
-**Schema Reference:** [gb_excess_volume](./elements/gb_excess_volume.md)
+**Schema Reference:** [gb_excess_volume](./elements/slots/gb_excess_volume.md)
-
+
💡 Submit Term Feedback
@@ -1332,12 +1332,12 @@ constitute the grain boundary structure.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:gb_structural_units`](https://w3id.org/nfdi4cat/catcore/gb_structural_units)
+**CURIE:** [`coremeta4cat:gb_structural_units`](https://w3id.org/nfdi4cat/coremeta4cat/gb_structural_units)
-**Schema Reference:** [gb_structural_units](./elements/gb_structural_units.md)
+**Schema Reference:** [gb_structural_units](./elements/slots/gb_structural_units.md)
-
+
💡 Submit Term Feedback
@@ -1352,12 +1352,12 @@ at the grain boundary (e.g. segregation energy per defect type).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:charge_defect_segregation`](https://w3id.org/nfdi4cat/catcore/charge_defect_segregation)
+**CURIE:** [`coremeta4cat:charge_defect_segregation`](https://w3id.org/nfdi4cat/coremeta4cat/charge_defect_segregation)
-**Schema Reference:** [charge_defect_segregation](./elements/charge_defect_segregation.md)
+**Schema Reference:** [charge_defect_segregation](./elements/slots/charge_defect_segregation.md)
-
+
💡 Submit Term Feedback
@@ -1372,12 +1372,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -1394,16 +1394,16 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1415,9 +1415,9 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
electronic properties of a catalyst relevant to activity descriptors
(d-band centre, band gap, Fermi energy).
-**CURIE:** [`catcore:ElectronicStructure`](https://w3id.org/nfdi4cat/catcore/ElectronicStructure)
+**CURIE:** [`coremeta4cat:ElectronicStructure`](https://w3id.org/nfdi4cat/coremeta4cat/ElectronicStructure)
-**Schema Reference:** [ElectronicStructure](./elements/ElectronicStructure.md)
+**Schema Reference:** [ElectronicStructure](./elements/classes/ElectronicStructure.md)
**Slots**
@@ -1425,18 +1425,18 @@ electronic properties of a catalyst relevant to activity descriptors
smearing method (Optional, Multivalued)
**Description:** Electronic smearing scheme and width used in the SCF calculation
-(e.g. Methfessel-Paxton order 1 with σ=0.2 eV, Gaussian with σ=0.05 eV).
+(e.g. Methfessel-Paxton order 1 with sigma=0.2 eV, Gaussian with sigma=0.05 eV).
**Data Type:** string
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:smearing_method`](https://w3id.org/nfdi4cat/catcore/smearing_method)
+**CURIE:** [`coremeta4cat:smearing_method`](https://w3id.org/nfdi4cat/coremeta4cat/smearing_method)
-**Schema Reference:** [smearing_method](./elements/smearing_method.md)
+**Schema Reference:** [smearing_method](./elements/slots/smearing_method.md)
-
+
💡 Submit Term Feedback
@@ -1451,12 +1451,12 @@ electronic properties of a catalyst relevant to activity descriptors
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:spin_polarized`](https://w3id.org/nfdi4cat/catcore/spin_polarized)
+**CURIE:** [`coremeta4cat:spin_polarized`](https://w3id.org/nfdi4cat/coremeta4cat/spin_polarized)
-**Schema Reference:** [spin_polarized](./elements/spin_polarized.md)
+**Schema Reference:** [spin_polarized](./elements/slots/spin_polarized.md)
-
+
💡 Submit Term Feedback
@@ -1465,18 +1465,18 @@ electronic properties of a catalyst relevant to activity descriptors
band path (Optional, Multivalued)
**Description:** High-symmetry k-path through the Brillouin zone used to plot the
-band structure (e.g. "Γ-X-M-Γ-R" for cubic, following SeeK-path convention).
+band structure (e.g. "Gamma-X-M-Gamma-R" for cubic, following SeeK-path convention).
**Data Type:** string
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:band_path`](https://w3id.org/nfdi4cat/catcore/band_path)
+**CURIE:** [`coremeta4cat:band_path`](https://w3id.org/nfdi4cat/coremeta4cat/band_path)
-**Schema Reference:** [band_path](./elements/band_path.md)
+**Schema Reference:** [band_path](./elements/slots/band_path.md)
-
+
💡 Submit Term Feedback
@@ -1490,14 +1490,14 @@ band structure (e.g. "Γ-X-M-Γ-R" for cubic, following SeeK-path convention).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:fermi_energy`](https://w3id.org/nfdi4cat/catcore/fermi_energy)
+**CURIE:** [`coremeta4cat:fermi_energy`](https://w3id.org/nfdi4cat/coremeta4cat/fermi_energy)
-**Schema Reference:** [fermi_energy](./elements/fermi_energy.md)
+**Schema Reference:** [fermi_energy](./elements/slots/fermi_energy.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1512,12 +1512,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -1534,10 +1534,10 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
@@ -1551,14 +1551,14 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:energy_cutoff`](https://w3id.org/nfdi4cat/catcore/energy_cutoff)
+**CURIE:** [`coremeta4cat:energy_cutoff`](https://w3id.org/nfdi4cat/coremeta4cat/energy_cutoff)
-**Schema Reference:** [energy_cutoff](./elements/energy_cutoff.md)
+**Schema Reference:** [energy_cutoff](./elements/slots/energy_cutoff.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1573,12 +1573,12 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:convergence_criteria`](https://w3id.org/nfdi4cat/catcore/convergence_criteria)
+**CURIE:** [`coremeta4cat:convergence_criteria`](https://w3id.org/nfdi4cat/coremeta4cat/convergence_criteria)
-**Schema Reference:** [convergence_criteria](./elements/convergence_criteria.md)
+**Schema Reference:** [convergence_criteria](./elements/slots/convergence_criteria.md)
-
+
💡 Submit Term Feedback
@@ -1593,18 +1593,18 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:k_point_mesh`](https://w3id.org/nfdi4cat/catcore/k_point_mesh)
+**CURIE:** [`coremeta4cat:k_point_mesh`](https://w3id.org/nfdi4cat/coremeta4cat/k_point_mesh)
-**Schema Reference:** [k_point_mesh](./elements/k_point_mesh.md)
+**Schema Reference:** [k_point_mesh](./elements/slots/k_point_mesh.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1616,9 +1616,9 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
polarization, switching barrier, and coercive field. Relevant for
ferroelectric-photocatalyst design.
-**CURIE:** [`catcore:Ferroelectrics`](https://w3id.org/nfdi4cat/catcore/Ferroelectrics)
+**CURIE:** [`coremeta4cat:Ferroelectrics`](https://w3id.org/nfdi4cat/coremeta4cat/Ferroelectrics)
-**Schema Reference:** [Ferroelectrics](./elements/Ferroelectrics.md)
+**Schema Reference:** [Ferroelectrics](./elements/classes/Ferroelectrics.md)
**Slots**
@@ -1626,18 +1626,18 @@ ferroelectric-photocatalyst design.
polarization direction (Optional, Multivalued)
**Description:** Crystallographic direction of the spontaneous electric polarization
-(e.g. "[001]" for tetragonal BaTiO₃).
+(e.g. "[001]" for tetragonal BaTiO_3).
**Data Type:** string
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:polarization_direction`](https://w3id.org/nfdi4cat/catcore/polarization_direction)
+**CURIE:** [`coremeta4cat:polarization_direction`](https://w3id.org/nfdi4cat/coremeta4cat/polarization_direction)
-**Schema Reference:** [polarization_direction](./elements/polarization_direction.md)
+**Schema Reference:** [polarization_direction](./elements/slots/polarization_direction.md)
-
+
💡 Submit Term Feedback
@@ -1651,14 +1651,14 @@ ferroelectric-photocatalyst design.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:spontaneous_polarization`](https://w3id.org/nfdi4cat/catcore/spontaneous_polarization)
+**CURIE:** [`coremeta4cat:spontaneous_polarization`](https://w3id.org/nfdi4cat/coremeta4cat/spontaneous_polarization)
-**Schema Reference:** [spontaneous_polarization](./elements/spontaneous_polarization.md)
+**Schema Reference:** [spontaneous_polarization](./elements/slots/spontaneous_polarization.md)
**Unit:** uC/cm2
-
+
💡 Submit Term Feedback
@@ -1673,12 +1673,12 @@ polarization endpoint in the Berry-phase polarization calculation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:reference_structure`](https://w3id.org/nfdi4cat/catcore/reference_structure)
+**CURIE:** [`coremeta4cat:reference_structure`](https://w3id.org/nfdi4cat/coremeta4cat/reference_structure)
-**Schema Reference:** [reference_structure](./elements/reference_structure.md)
+**Schema Reference:** [reference_structure](./elements/slots/reference_structure.md)
-
+
💡 Submit Term Feedback
@@ -1692,14 +1692,14 @@ polarization endpoint in the Berry-phase polarization calculation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:switching_barrier`](https://w3id.org/nfdi4cat/catcore/switching_barrier)
+**CURIE:** [`coremeta4cat:switching_barrier`](https://w3id.org/nfdi4cat/coremeta4cat/switching_barrier)
-**Schema Reference:** [switching_barrier](./elements/switching_barrier.md)
+**Schema Reference:** [switching_barrier](./elements/slots/switching_barrier.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1713,14 +1713,14 @@ polarization endpoint in the Berry-phase polarization calculation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:coercive_field`](https://w3id.org/nfdi4cat/catcore/coercive_field)
+**CURIE:** [`coremeta4cat:coercive_field`](https://w3id.org/nfdi4cat/coremeta4cat/coercive_field)
-**Schema Reference:** [coercive_field](./elements/coercive_field.md)
+**Schema Reference:** [coercive_field](./elements/slots/coercive_field.md)
**Unit:** kV/cm
-
+
💡 Submit Term Feedback
@@ -1734,12 +1734,12 @@ polarization endpoint in the Berry-phase polarization calculation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:temperature_dependence`](https://w3id.org/nfdi4cat/catcore/temperature_dependence)
+**CURIE:** [`coremeta4cat:temperature_dependence`](https://w3id.org/nfdi4cat/coremeta4cat/temperature_dependence)
-**Schema Reference:** [temperature_dependence](./elements/temperature_dependence.md)
+**Schema Reference:** [temperature_dependence](./elements/slots/temperature_dependence.md)
-
+
💡 Submit Term Feedback
@@ -1754,12 +1754,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -1776,16 +1776,16 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1797,9 +1797,9 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
many-body (GW) or excitonic corrections. Critical for photocatalyst
and semiconductor catalyst screening.
-**CURIE:** [`catcore:BandGap`](https://w3id.org/nfdi4cat/catcore/BandGap)
+**CURIE:** [`coremeta4cat:BandGap`](https://w3id.org/nfdi4cat/coremeta4cat/BandGap)
-**Schema Reference:** [BandGap](./elements/BandGap.md)
+**Schema Reference:** [BandGap](./elements/classes/BandGap.md)
**Slots**
@@ -1813,12 +1813,12 @@ calculated band gap.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0005056`](https://w3id.org/nfdi4cat/voc4cat_0005056)
+**CURIE:** [`VOC4CAT:0005056`](https://w3id.org/nfdi4cat/voc4cat_0005056)
-**Schema Reference:** [material_sample](./elements/material_sample.md)
+**Schema Reference:** [material_sample](./elements/slots/material_sample.md)
-
+
💡 Submit Term Feedback
@@ -1833,12 +1833,12 @@ surface slab, defect supercell).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:structure_model`](https://w3id.org/nfdi4cat/catcore/structure_model)
+**CURIE:** [`coremeta4cat:structure_model`](https://w3id.org/nfdi4cat/coremeta4cat/structure_model)
-**Schema Reference:** [structure_model](./elements/structure_model.md)
+**Schema Reference:** [structure_model](./elements/slots/structure_model.md)
-
+
💡 Submit Term Feedback
@@ -1852,14 +1852,14 @@ surface slab, defect supercell).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:smearing_broadening`](https://w3id.org/nfdi4cat/catcore/smearing_broadening)
+**CURIE:** [`coremeta4cat:smearing_broadening`](https://w3id.org/nfdi4cat/coremeta4cat/smearing_broadening)
-**Schema Reference:** [smearing_broadening](./elements/smearing_broadening.md)
+**Schema Reference:** [smearing_broadening](./elements/slots/smearing_broadening.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1874,12 +1874,12 @@ surface slab, defect supercell).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:direct_indirect`](https://w3id.org/nfdi4cat/catcore/direct_indirect)
+**CURIE:** [`coremeta4cat:direct_indirect`](https://w3id.org/nfdi4cat/coremeta4cat/direct_indirect)
-**Schema Reference:** [direct_indirect](./elements/direct_indirect.md)
+**Schema Reference:** [direct_indirect](./elements/slots/direct_indirect.md)
-
+
💡 Submit Term Feedback
@@ -1893,14 +1893,14 @@ surface slab, defect supercell).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:experimental_reference`](https://w3id.org/nfdi4cat/catcore/experimental_reference)
+**CURIE:** [`coremeta4cat:experimental_reference`](https://w3id.org/nfdi4cat/coremeta4cat/experimental_reference)
-**Schema Reference:** [experimental_reference](./elements/experimental_reference.md)
+**Schema Reference:** [experimental_reference](./elements/slots/experimental_reference.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1915,12 +1915,12 @@ was applied to correct the DFT band gap underestimation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:gw_hybrid_correction`](https://w3id.org/nfdi4cat/catcore/gw_hybrid_correction)
+**CURIE:** [`coremeta4cat:gw_hybrid_correction`](https://w3id.org/nfdi4cat/coremeta4cat/gw_hybrid_correction)
-**Schema Reference:** [gw_hybrid_correction](./elements/gw_hybrid_correction.md)
+**Schema Reference:** [gw_hybrid_correction](./elements/slots/gw_hybrid_correction.md)
-
+
💡 Submit Term Feedback
@@ -1935,14 +1935,14 @@ optical band gap.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:excitonic_correction`](https://w3id.org/nfdi4cat/catcore/excitonic_correction)
+**CURIE:** [`coremeta4cat:excitonic_correction`](https://w3id.org/nfdi4cat/coremeta4cat/excitonic_correction)
-**Schema Reference:** [excitonic_correction](./elements/excitonic_correction.md)
+**Schema Reference:** [excitonic_correction](./elements/slots/excitonic_correction.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -1957,12 +1957,12 @@ Use empirical formula or SMILES for molecular systems.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:material_composition`](https://w3id.org/nfdi4cat/catcore/material_composition)
+**CURIE:** [`coremeta4cat:material_composition`](https://w3id.org/nfdi4cat/coremeta4cat/material_composition)
-**Schema Reference:** [material_composition](./elements/material_composition.md)
+**Schema Reference:** [material_composition](./elements/slots/material_composition.md)
-
+
💡 Submit Term Feedback
@@ -1979,10 +1979,10 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**CURIE:** [`SIO:001100`](http://semanticscience.org/resource/SIO_001100)
-**Schema Reference:** [crystal_structure](./elements/crystal_structure.md)
+**Schema Reference:** [crystal_structure](./elements/slots/crystal_structure.md)
-
+
💡 Submit Term Feedback
@@ -1996,14 +1996,14 @@ lattice parameters (e.g. "Fm-3m, a=3.92 Å for Pt").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:energy_cutoff`](https://w3id.org/nfdi4cat/catcore/energy_cutoff)
+**CURIE:** [`coremeta4cat:energy_cutoff`](https://w3id.org/nfdi4cat/coremeta4cat/energy_cutoff)
-**Schema Reference:** [energy_cutoff](./elements/energy_cutoff.md)
+**Schema Reference:** [energy_cutoff](./elements/slots/energy_cutoff.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -2018,12 +2018,12 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:convergence_criteria`](https://w3id.org/nfdi4cat/catcore/convergence_criteria)
+**CURIE:** [`coremeta4cat:convergence_criteria`](https://w3id.org/nfdi4cat/coremeta4cat/convergence_criteria)
-**Schema Reference:** [convergence_criteria](./elements/convergence_criteria.md)
+**Schema Reference:** [convergence_criteria](./elements/slots/convergence_criteria.md)
-
+
💡 Submit Term Feedback
@@ -2038,38 +2038,38 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:k_point_mesh`](https://w3id.org/nfdi4cat/catcore/k_point_mesh)
+**CURIE:** [`coremeta4cat:k_point_mesh`](https://w3id.org/nfdi4cat/coremeta4cat/k_point_mesh)
-**Schema Reference:** [k_point_mesh](./elements/k_point_mesh.md)
+**Schema Reference:** [k_point_mesh](./elements/slots/k_point_mesh.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
-realized plan (Required, Multivalued)
+realized plan (Mandatory, Multivalued)
**Description:** The SimulationMethod (protocol) realized in this Simulation.
**Data Type:** SimulationMethod
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**Schema Reference:** [realized_plan](./elements/realized_plan.md)
+**Schema Reference:** [realized_plan](./elements/slots/realized_plan.md)
**Data Type Class Details:**
@@ -2084,10 +2084,10 @@ Linked from Simulation via realized_plan.
**CURIE:** [`OBI:0000272`](http://purl.obolibrary.org/obo/OBI_0000272)
-**Schema Reference:** [SimulationMethod](./elements/SimulationMethod.md)
+**Schema Reference:** [SimulationMethod](./elements/classes/SimulationMethod.md)
-
+
💡 Submit Term Feedback
@@ -2101,9 +2101,9 @@ Linked from Simulation via realized_plan.
the electronic structure of atoms, molecules, and periodic solids.
The most widely used ab initio method in computational catalysis.
-**CURIE:** [`catcore:DFT`](https://w3id.org/nfdi4cat/catcore/DFT)
+**CURIE:** [`coremeta4cat:DFT`](https://w3id.org/nfdi4cat/coremeta4cat/DFT)
-**Schema Reference:** [DFT](./elements/DFT.md)
+**Schema Reference:** [DFT](./elements/classes/DFT.md)
**Slots**
@@ -2117,12 +2117,12 @@ HSE06). The choice of functional directly affects accuracy.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:exchange_correlation_functional`](https://w3id.org/nfdi4cat/catcore/exchange_correlation_functional)
+**CURIE:** [`coremeta4cat:exchange_correlation_functional`](https://w3id.org/nfdi4cat/coremeta4cat/exchange_correlation_functional)
-**Schema Reference:** [exchange_correlation_functional](./elements/exchange_correlation_functional.md)
+**Schema Reference:** [exchange_correlation_functional](./elements/slots/exchange_correlation_functional.md)
-
+
💡 Submit Term Feedback
@@ -2136,14 +2136,14 @@ HSE06). The choice of functional directly affects accuracy.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:energy_cutoff`](https://w3id.org/nfdi4cat/catcore/energy_cutoff)
+**CURIE:** [`coremeta4cat:energy_cutoff`](https://w3id.org/nfdi4cat/coremeta4cat/energy_cutoff)
-**Schema Reference:** [energy_cutoff](./elements/energy_cutoff.md)
+**Schema Reference:** [energy_cutoff](./elements/slots/energy_cutoff.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
@@ -2158,12 +2158,12 @@ geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:convergence_criteria`](https://w3id.org/nfdi4cat/catcore/convergence_criteria)
+**CURIE:** [`coremeta4cat:convergence_criteria`](https://w3id.org/nfdi4cat/coremeta4cat/convergence_criteria)
-**Schema Reference:** [convergence_criteria](./elements/convergence_criteria.md)
+**Schema Reference:** [convergence_criteria](./elements/slots/convergence_criteria.md)
-
+
💡 Submit Term Feedback
@@ -2178,12 +2178,12 @@ U value (e.g. "Fe d: U=4.0 eV, J=0.0 eV").
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:dft_u_parameters`](https://w3id.org/nfdi4cat/catcore/dft_u_parameters)
+**CURIE:** [`coremeta4cat:dft_u_parameters`](https://w3id.org/nfdi4cat/coremeta4cat/dft_u_parameters)
-**Schema Reference:** [dft_u_parameters](./elements/dft_u_parameters.md)
+**Schema Reference:** [dft_u_parameters](./elements/slots/dft_u_parameters.md)
-
+
💡 Submit Term Feedback
@@ -2198,12 +2198,12 @@ calculation. Set to true for systems containing magnetic elements.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:spin_polarization`](https://w3id.org/nfdi4cat/catcore/spin_polarization)
+**CURIE:** [`coremeta4cat:spin_polarization`](https://w3id.org/nfdi4cat/coremeta4cat/spin_polarization)
-**Schema Reference:** [spin_polarization](./elements/spin_polarization.md)
+**Schema Reference:** [spin_polarization](./elements/slots/spin_polarization.md)
-
+
💡 Submit Term Feedback
@@ -2217,20 +2217,20 @@ calculation. Set to true for systems containing magnetic elements.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:total_energy_per_atom`](https://w3id.org/nfdi4cat/catcore/total_energy_per_atom)
+**CURIE:** [`coremeta4cat:total_energy_per_atom`](https://w3id.org/nfdi4cat/coremeta4cat/total_energy_per_atom)
-**Schema Reference:** [total_energy_per_atom](./elements/total_energy_per_atom.md)
+**Schema Reference:** [total_energy_per_atom](./elements/slots/total_energy_per_atom.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -2244,7 +2244,7 @@ Used to study diffusion, reaction kinetics, and thermal properties.
**CURIE:** [`NCIT:C18097`](http://purl.obolibrary.org/obo/NCIT_C18097)
-**Schema Reference:** [MolecularDynamics](./elements/MolecularDynamics.md)
+**Schema Reference:** [MolecularDynamics](./elements/classes/MolecularDynamics.md)
**Slots**
@@ -2258,12 +2258,12 @@ EAM). Include parametrisation source or reference.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:force_field`](https://w3id.org/nfdi4cat/catcore/force_field)
+**CURIE:** [`coremeta4cat:force_field`](https://w3id.org/nfdi4cat/coremeta4cat/force_field)
-**Schema Reference:** [force_field](./elements/force_field.md)
+**Schema Reference:** [force_field](./elements/slots/force_field.md)
-
+
💡 Submit Term Feedback
@@ -2279,12 +2279,12 @@ EAM). Include parametrisation source or reference.
**CURIE:** [`APOLLO_SV:00000012`](http://purl.obolibrary.org/obo/APOLLO_SV_00000012)
-**Schema Reference:** [simulation_timestep](./elements/simulation_timestep.md)
+**Schema Reference:** [simulation_timestep](./elements/slots/simulation_timestep.md)
**Unit:** fs
-
+
💡 Submit Term Feedback
@@ -2298,14 +2298,14 @@ EAM). Include parametrisation source or reference.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:simulation_time`](https://w3id.org/nfdi4cat/catcore/simulation_time)
+**CURIE:** [`coremeta4cat:simulation_time`](https://w3id.org/nfdi4cat/coremeta4cat/simulation_time)
-**Schema Reference:** [simulation_time](./elements/simulation_time.md)
+**Schema Reference:** [simulation_time](./elements/slots/simulation_time.md)
**Unit:** ps
-
+
💡 Submit Term Feedback
@@ -2320,12 +2320,12 @@ thermodynamic quantities are conserved.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ensemble_type`](https://w3id.org/nfdi4cat/catcore/ensemble_type)
+**CURIE:** [`coremeta4cat:ensemble_type`](https://w3id.org/nfdi4cat/coremeta4cat/ensemble_type)
-**Schema Reference:** [ensemble_type](./elements/ensemble_type.md)
+**Schema Reference:** [ensemble_type](./elements/slots/ensemble_type.md)
-
+
💡 Submit Term Feedback
@@ -2339,18 +2339,18 @@ thermodynamic quantities are conserved.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_atoms`](https://w3id.org/nfdi4cat/catcore/number_of_atoms)
+**CURIE:** [`coremeta4cat:number_of_atoms`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_atoms)
-**Schema Reference:** [number_of_atoms](./elements/number_of_atoms.md)
+**Schema Reference:** [number_of_atoms](./elements/slots/number_of_atoms.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -2362,9 +2362,9 @@ thermodynamic quantities are conserved.
elementary reaction steps and their rate constants to predict catalytic
activity and selectivity under reaction conditions.
-**CURIE:** [`catcore:Microkinetics`](https://w3id.org/nfdi4cat/catcore/Microkinetics)
+**CURIE:** [`coremeta4cat:Microkinetics`](https://w3id.org/nfdi4cat/coremeta4cat/Microkinetics)
-**Schema Reference:** [Microkinetics](./elements/Microkinetics.md)
+**Schema Reference:** [Microkinetics](./elements/classes/Microkinetics.md)
**Slots**
@@ -2380,10 +2380,10 @@ activation energy) for each elementary step in the reaction network.
**CURIE:** [`NCIT:C94967`](http://purl.obolibrary.org/obo/NCIT_C94967)
-**Schema Reference:** [rate_constants](./elements/rate_constants.md)
+**Schema Reference:** [rate_constants](./elements/slots/rate_constants.md)
-
+
💡 Submit Term Feedback
@@ -2398,12 +2398,12 @@ stiff ODE solver, steady-state Newton method).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:solver_type`](https://w3id.org/nfdi4cat/catcore/solver_type)
+**CURIE:** [`coremeta4cat:solver_type`](https://w3id.org/nfdi4cat/coremeta4cat/solver_type)
-**Schema Reference:** [solver_type](./elements/solver_type.md)
+**Schema Reference:** [solver_type](./elements/slots/solver_type.md)
-
+
💡 Submit Term Feedback
@@ -2419,12 +2419,12 @@ stiff ODE solver, steady-state Newton method).
**CURIE:** [`AFR:0001584`](http://purl.allotrope.org/ontologies/result#AFR_0001584)
-**Schema Reference:** [temperature](./elements/temperature.md)
+**Schema Reference:** [temperature](./elements/slots/temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2438,14 +2438,14 @@ stiff ODE solver, steady-state Newton method).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:pressure`](https://w3id.org/nfdi4cat/catcore/pressure)
+**CURIE:** [`coremeta4cat:pressure`](https://w3id.org/nfdi4cat/coremeta4cat/pressure)
-**Schema Reference:** [pressure](./elements/pressure.md)
+**Schema Reference:** [pressure](./elements/slots/pressure.md)
**Unit:** bar
-
+
💡 Submit Term Feedback
@@ -2459,12 +2459,12 @@ stiff ODE solver, steady-state Newton method).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:surface_coverage`](https://w3id.org/nfdi4cat/catcore/surface_coverage)
+**CURIE:** [`coremeta4cat:surface_coverage`](https://w3id.org/nfdi4cat/coremeta4cat/surface_coverage)
-**Schema Reference:** [surface_coverage](./elements/surface_coverage.md)
+**Schema Reference:** [surface_coverage](./elements/slots/surface_coverage.md)
-
+
💡 Submit Term Feedback
@@ -2478,20 +2478,20 @@ stiff ODE solver, steady-state Newton method).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:activation_energy`](https://w3id.org/nfdi4cat/catcore/activation_energy)
+**CURIE:** [`coremeta4cat:activation_energy`](https://w3id.org/nfdi4cat/coremeta4cat/activation_energy)
-**Schema Reference:** [activation_energy](./elements/activation_energy.md)
+**Schema Reference:** [activation_energy](./elements/slots/activation_energy.md)
**Unit:** eV
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -2504,9 +2504,9 @@ space using random moves accepted or rejected according to a statistical
criterion (e.g. Metropolis). Used for adsorption isotherms, phase diagrams,
and lattice-based kinetics.
-**CURIE:** [`catcore:MonteCarlo`](https://w3id.org/nfdi4cat/catcore/MonteCarlo)
+**CURIE:** [`coremeta4cat:MonteCarlo`](https://w3id.org/nfdi4cat/coremeta4cat/MonteCarlo)
-**Schema Reference:** [MonteCarlo](./elements/MonteCarlo.md)
+**Schema Reference:** [MonteCarlo](./elements/classes/MonteCarlo.md)
**Slots**
@@ -2519,12 +2519,12 @@ and lattice-based kinetics.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:interaction_potential`](https://w3id.org/nfdi4cat/catcore/interaction_potential)
+**CURIE:** [`coremeta4cat:interaction_potential`](https://w3id.org/nfdi4cat/coremeta4cat/interaction_potential)
-**Schema Reference:** [interaction_potential](./elements/interaction_potential.md)
+**Schema Reference:** [interaction_potential](./elements/slots/interaction_potential.md)
-
+
💡 Submit Term Feedback
@@ -2538,12 +2538,12 @@ and lattice-based kinetics.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_steps`](https://w3id.org/nfdi4cat/catcore/number_of_steps)
+**CURIE:** [`coremeta4cat:number_of_steps`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_steps)
-**Schema Reference:** [number_of_steps](./elements/number_of_steps.md)
+**Schema Reference:** [number_of_steps](./elements/slots/number_of_steps.md)
-
+
💡 Submit Term Feedback
@@ -2559,12 +2559,12 @@ and lattice-based kinetics.
**CURIE:** [`AFR:0001584`](http://purl.allotrope.org/ontologies/result#AFR_0001584)
-**Schema Reference:** [temperature](./elements/temperature.md)
+**Schema Reference:** [temperature](./elements/slots/temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2579,12 +2579,12 @@ and lattice-based kinetics.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:lattice_size_type`](https://w3id.org/nfdi4cat/catcore/lattice_size_type)
+**CURIE:** [`coremeta4cat:lattice_size_type`](https://w3id.org/nfdi4cat/coremeta4cat/lattice_size_type)
-**Schema Reference:** [lattice_size_type](./elements/lattice_size_type.md)
+**Schema Reference:** [lattice_size_type](./elements/slots/lattice_size_type.md)
-
+
💡 Submit Term Feedback
@@ -2599,12 +2599,12 @@ Kawasaki, heat-bath algorithm).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:acceptance_criteria`](https://w3id.org/nfdi4cat/catcore/acceptance_criteria)
+**CURIE:** [`coremeta4cat:acceptance_criteria`](https://w3id.org/nfdi4cat/coremeta4cat/acceptance_criteria)
-**Schema Reference:** [acceptance_criteria](./elements/acceptance_criteria.md)
+**Schema Reference:** [acceptance_criteria](./elements/slots/acceptance_criteria.md)
-
+
💡 Submit Term Feedback
@@ -2618,12 +2618,12 @@ Kawasaki, heat-bath algorithm).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:equilibration_steps`](https://w3id.org/nfdi4cat/catcore/equilibration_steps)
+**CURIE:** [`coremeta4cat:equilibration_steps`](https://w3id.org/nfdi4cat/coremeta4cat/equilibration_steps)
-**Schema Reference:** [equilibration_steps](./elements/equilibration_steps.md)
+**Schema Reference:** [equilibration_steps](./elements/slots/equilibration_steps.md)
-
+
💡 Submit Term Feedback
@@ -2637,24 +2637,24 @@ Kawasaki, heat-bath algorithm).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:sampling_interval`](https://w3id.org/nfdi4cat/catcore/sampling_interval)
+**CURIE:** [`coremeta4cat:sampling_interval`](https://w3id.org/nfdi4cat/coremeta4cat/sampling_interval)
-**Schema Reference:** [sampling_interval](./elements/sampling_interval.md)
+**Schema Reference:** [sampling_interval](./elements/slots/sampling_interval.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
diff --git a/docs/synthesis.md b/docs/synthesis.md
index dfbf4821a..9abc0c9b2 100644
--- a/docs/synthesis.md
+++ b/docs/synthesis.md
@@ -34,40 +34,40 @@ Metadata are organized hierarchically based on the selected synthesis method. Me
## Slots
-nominal composition (Required, Multivalued)
+nominal composition (Mandatory, Multivalued)
**Description:** Nominal elemental or chemical composition of the catalyst (e.g. 5wt% Pt/Al2O3).
**Data Type:** string
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**CURIE:** [`catcore:nominal_composition`](https://w3id.org/nfdi4cat/catcore/nominal_composition)
+**CURIE:** [`coremeta4cat:nominal_composition`](https://w3id.org/nfdi4cat/coremeta4cat/nominal_composition)
-**Schema Reference:** [nominal_composition](./elements/nominal_composition.md)
+**Schema Reference:** [nominal_composition](./elements/slots/nominal_composition.md)
-
+
💡 Submit Term Feedback
-catalyst measured properties (Required, Multivalued)
+catalyst measured properties (Mandatory, Multivalued)
**Description:** Key measured properties of the resulting catalyst
(e.g. BET surface area, sieve fraction, molar ratio).
**Data Type:** string
-**Cardinality:** Required, Multivalued
+**Cardinality:** Mandatory, Multivalued
-**CURIE:** [`catcore:catalyst_measured_properties`](https://w3id.org/nfdi4cat/catcore/catalyst_measured_properties)
+**CURIE:** [`coremeta4cat:catalyst_measured_properties`](https://w3id.org/nfdi4cat/coremeta4cat/catalyst_measured_properties)
-**Schema Reference:** [catalyst_measured_properties](./elements/catalyst_measured_properties.md)
+**Schema Reference:** [catalyst_measured_properties](./elements/slots/catalyst_measured_properties.md)
-
+
💡 Submit Term Feedback
@@ -81,12 +81,12 @@ Metadata are organized hierarchically based on the selected synthesis method. Me
**Cardinality:** Recommended, Multivalued
-**CURIE:** [`catcore:storage_conditions`](https://w3id.org/nfdi4cat/catcore/storage_conditions)
+**CURIE:** [`coremeta4cat:storage_conditions`](https://w3id.org/nfdi4cat/coremeta4cat/storage_conditions)
-**Schema Reference:** [storage_conditions](./elements/storage_conditions.md)
+**Schema Reference:** [storage_conditions](./elements/slots/storage_conditions.md)
-
+
💡 Submit Term Feedback
@@ -100,12 +100,12 @@ Metadata are organized hierarchically based on the selected synthesis method. Me
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:support`](https://w3id.org/nfdi4cat/catcore/support)
+**CURIE:** [`coremeta4cat:support`](https://w3id.org/nfdi4cat/coremeta4cat/support)
-**Schema Reference:** [support](./elements/support.md)
+**Schema Reference:** [support](./elements/slots/support.md)
-
+
💡 Submit Term Feedback
@@ -119,12 +119,12 @@ Metadata are organized hierarchically based on the selected synthesis method. Me
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0007246`](https://w3id.org/nfdi4cat/voc4cat_0007246)
+**CURIE:** [`VOC4CAT:0007246`](https://w3id.org/nfdi4cat/voc4cat_0007246)
-**Schema Reference:** [solvent](./elements/solvent.md)
+**Schema Reference:** [solvent](./elements/slots/solvent.md)
-
+
💡 Submit Term Feedback
@@ -138,26 +138,120 @@ Metadata are organized hierarchically based on the selected synthesis method. Me
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000122`](https://w3id.org/nfdi4cat/voc4cat_0000122)
+**CURIE:** [`VOC4CAT:0000122`](https://w3id.org/nfdi4cat/voc4cat_0000122)
-**Schema Reference:** [sample_pretreatment](./elements/sample_pretreatment.md)
+**Schema Reference:** [sample_pretreatment](./elements/slots/sample_pretreatment.md)
-
+
💡 Submit Term Feedback
-realized plan (Required)
+had input entity (Mandatory, Multivalued)
+
+**Description:** The Precursor(s) consumed during this Synthesis.
+
+**Data Type:** Precursor
+
+**Cardinality:** Mandatory, Multivalued
+
+**Schema Reference:** [had_input_entity](./elements/slots/had_input_entity.md)
+
+**Data Type Class Details:**
+
+
+Precursor
+
+**Description:** A MaterialSample that serves as input material in a catalyst Synthesis.
+Precursors are consumed or transformed during the preparation process.
+
+**CURIE:** [`CHEBI:52717`](http://purl.obolibrary.org/obo/CHEBI_52717)
+
+**Schema Reference:** [Precursor](./elements/classes/Precursor.md)
+
+**Slots**
+
+
+precursor quantity (Mandatory, Multivalued)
+
+**Description:** Quantity of precursor used in synthesis.
+
+**Data Type:** float
+
+**Cardinality:** Mandatory, Multivalued
+
+**CURIE:** [`coremeta4cat:precursor_quantity`](https://w3id.org/nfdi4cat/coremeta4cat/precursor_quantity)
+
+**Schema Reference:** [precursor_quantity](./elements/slots/precursor_quantity.md)
+
+**Unit:** g
+
+
+
+ 💡 Submit Term Feedback
+
+
+
+
+
+ 💡 Submit Term Feedback
+
+
+
+
+
+ 💡 Submit Term Feedback
+
+
+
+
+had output entity (Recommended, Multivalued)
+
+**Description:** The CatalystSample produced by this Synthesis.
+
+**Data Type:** CatalystSample
+
+**Cardinality:** Recommended, Multivalued
+
+**Schema Reference:** [had_output_entity](./elements/slots/had_output_entity.md)
+
+**Data Type Class Details:**
+
+
+CatalystSample
+
+**Description:** A MaterialSample that is the product of a catalyst Synthesis.
+The specific type of catalyst (e.g. heterogeneous, supported metal)
+is expressed via rdf_type using a voc4cat term.
+
+**CURIE:** [`OBI:0000747`](http://purl.obolibrary.org/obo/OBI_0000747)
+
+**Schema Reference:** [CatalystSample](./elements/classes/CatalystSample.md)
+
+
+
+ 💡 Submit Term Feedback
+
+
+
+
+
+ 💡 Submit Term Feedback
+
+
+
+
+realized plan (Mandatory)
**Description:** The PreparationMethod (protocol) realized in this Synthesis.
**Data Type:** PreparationMethod
-**Cardinality:** Required
+**Cardinality:** Mandatory
-**Schema Reference:** [realized_plan](./elements/realized_plan.md)
+**Schema Reference:** [realized_plan](./elements/slots/realized_plan.md)
**Data Type Class Details:**
@@ -172,14 +266,14 @@ method-specific parameters. Linked from Synthesis via realized_plan.
The specific preparation method type should additionally be expressed
via rdf_type on the Synthesis activity using a voc4cat term
-(e.g. voc4cat:0007016 for preparation method).
+(e.g. VOC4CAT:0007016 for preparation method).
**CURIE:** [`OBI:0000272`](http://purl.obolibrary.org/obo/OBI_0000272)
-**Schema Reference:** [PreparationMethod](./elements/PreparationMethod.md)
+**Schema Reference:** [PreparationMethod](./elements/classes/PreparationMethod.md)
-
+
💡 Submit Term Feedback
@@ -192,9 +286,9 @@ via rdf_type on the Synthesis activity using a voc4cat term
**Description:** Catalyst preparation by impregnation: a solution of the active phase
precursor is brought into contact with the support material.
-**CURIE:** [`catcore:Impregnation`](https://w3id.org/nfdi4cat/catcore/Impregnation)
+**CURIE:** [`coremeta4cat:Impregnation`](https://w3id.org/nfdi4cat/coremeta4cat/Impregnation)
-**Schema Reference:** [Impregnation](./elements/Impregnation.md)
+**Schema Reference:** [Impregnation](./elements/classes/Impregnation.md)
**Slots**
@@ -207,12 +301,12 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:impregnation_type`](https://w3id.org/nfdi4cat/catcore/impregnation_type)
+**CURIE:** [`coremeta4cat:impregnation_type`](https://w3id.org/nfdi4cat/coremeta4cat/impregnation_type)
-**Schema Reference:** [impregnation_type](./elements/impregnation_type.md)
+**Schema Reference:** [impregnation_type](./elements/slots/impregnation_type.md)
-
+
💡 Submit Term Feedback
@@ -226,14 +320,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:impregnation_duration`](https://w3id.org/nfdi4cat/catcore/impregnation_duration)
+**CURIE:** [`coremeta4cat:impregnation_duration`](https://w3id.org/nfdi4cat/coremeta4cat/impregnation_duration)
-**Schema Reference:** [impregnation_duration](./elements/impregnation_duration.md)
+**Schema Reference:** [impregnation_duration](./elements/slots/impregnation_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -247,14 +341,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:impregnation_temperature`](https://w3id.org/nfdi4cat/catcore/impregnation_temperature)
+**CURIE:** [`coremeta4cat:impregnation_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/impregnation_temperature)
-**Schema Reference:** [impregnation_temperature](./elements/impregnation_temperature.md)
+**Schema Reference:** [impregnation_temperature](./elements/slots/impregnation_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -268,12 +362,12 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_device`](https://w3id.org/nfdi4cat/catcore/drying_device)
+**CURIE:** [`coremeta4cat:drying_device`](https://w3id.org/nfdi4cat/coremeta4cat/drying_device)
-**Schema Reference:** [drying_device](./elements/drying_device.md)
+**Schema Reference:** [drying_device](./elements/slots/drying_device.md)
-
+
💡 Submit Term Feedback
@@ -287,14 +381,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_temperature`](https://w3id.org/nfdi4cat/catcore/drying_temperature)
+**CURIE:** [`coremeta4cat:drying_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature)
-**Schema Reference:** [drying_temperature](./elements/drying_temperature.md)
+**Schema Reference:** [drying_temperature](./elements/slots/drying_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -308,14 +402,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_time`](https://w3id.org/nfdi4cat/catcore/drying_time)
+**CURIE:** [`coremeta4cat:drying_time`](https://w3id.org/nfdi4cat/coremeta4cat/drying_time)
-**Schema Reference:** [drying_time](./elements/drying_time.md)
+**Schema Reference:** [drying_time](./elements/slots/drying_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -329,12 +423,12 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_atmosphere`](https://w3id.org/nfdi4cat/catcore/drying_atmosphere)
+**CURIE:** [`coremeta4cat:drying_atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere)
-**Schema Reference:** [drying_atmosphere](./elements/drying_atmosphere.md)
+**Schema Reference:** [drying_atmosphere](./elements/slots/drying_atmosphere.md)
-
+
💡 Submit Term Feedback
@@ -348,14 +442,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
+**CURIE:** [`VOC4CAT:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
-**Schema Reference:** [calcination_initial_temperature](./elements/calcination_initial_temperature.md)
+**Schema Reference:** [calcination_initial_temperature](./elements/slots/calcination_initial_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -369,14 +463,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
+**CURIE:** [`VOC4CAT:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
-**Schema Reference:** [calcination_final_temperature](./elements/calcination_final_temperature.md)
+**Schema Reference:** [calcination_final_temperature](./elements/slots/calcination_final_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -390,14 +484,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
+**CURIE:** [`VOC4CAT:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
-**Schema Reference:** [calcination_dwelling_time](./elements/calcination_dwelling_time.md)
+**Schema Reference:** [calcination_dwelling_time](./elements/slots/calcination_dwelling_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -411,12 +505,12 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -430,12 +524,12 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
+**CURIE:** [`VOC4CAT:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
-**Schema Reference:** [calcination_gaseous_environment](./elements/calcination_gaseous_environment.md)
+**Schema Reference:** [calcination_gaseous_environment](./elements/slots/calcination_gaseous_environment.md)
-
+
💡 Submit Term Feedback
@@ -449,14 +543,14 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
+**CURIE:** [`VOC4CAT:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
-**Schema Reference:** [calcination_heating_rate](./elements/calcination_heating_rate.md)
+**Schema Reference:** [calcination_heating_rate](./elements/slots/calcination_heating_rate.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -470,20 +564,20 @@ precursor is brought into contact with the support material.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
+**CURIE:** [`VOC4CAT:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
-**Schema Reference:** [calcination_gas_flow_rate](./elements/calcination_gas_flow_rate.md)
+**Schema Reference:** [calcination_gas_flow_rate](./elements/slots/calcination_gas_flow_rate.md)
**Unit:** mL/min
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -494,9 +588,9 @@ precursor is brought into contact with the support material.
**Description:** Catalyst preparation by co-precipitation: precursor salts are
simultaneously precipitated from solution by a precipitating agent.
-**CURIE:** [`catcore:CoPrecipitation`](https://w3id.org/nfdi4cat/catcore/CoPrecipitation)
+**CURIE:** [`coremeta4cat:CoPrecipitation`](https://w3id.org/nfdi4cat/coremeta4cat/CoPrecipitation)
-**Schema Reference:** [CoPrecipitation](./elements/CoPrecipitation.md)
+**Schema Reference:** [CoPrecipitation](./elements/classes/CoPrecipitation.md)
**Slots**
@@ -509,12 +603,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:precipitating_agent`](https://w3id.org/nfdi4cat/catcore/precipitating_agent)
+**CURIE:** [`coremeta4cat:precipitating_agent`](https://w3id.org/nfdi4cat/coremeta4cat/precipitating_agent)
-**Schema Reference:** [precipitating_agent](./elements/precipitating_agent.md)
+**Schema Reference:** [precipitating_agent](./elements/slots/precipitating_agent.md)
-
+
💡 Submit Term Feedback
@@ -528,14 +622,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:precipitating_concentration`](https://w3id.org/nfdi4cat/catcore/precipitating_concentration)
+**CURIE:** [`coremeta4cat:precipitating_concentration`](https://w3id.org/nfdi4cat/coremeta4cat/precipitating_concentration)
-**Schema Reference:** [precipitating_concentration](./elements/precipitating_concentration.md)
+**Schema Reference:** [precipitating_concentration](./elements/slots/precipitating_concentration.md)
**Unit:** mol/L
-
+
💡 Submit Term Feedback
@@ -549,12 +643,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000052`](https://w3id.org/nfdi4cat/voc4cat_0000052)
+**CURIE:** [`VOC4CAT:0000052`](https://w3id.org/nfdi4cat/voc4cat_0000052)
-**Schema Reference:** [synthesis_ph](./elements/synthesis_ph.md)
+**Schema Reference:** [synthesis_ph](./elements/slots/synthesis_ph.md)
-
+
💡 Submit Term Feedback
@@ -568,14 +662,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_rate`](https://w3id.org/nfdi4cat/catcore/mixing_rate)
+**CURIE:** [`coremeta4cat:mixing_rate`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_rate)
-**Schema Reference:** [mixing_rate](./elements/mixing_rate.md)
+**Schema Reference:** [mixing_rate](./elements/slots/mixing_rate.md)
**Unit:** rpm
-
+
💡 Submit Term Feedback
@@ -589,14 +683,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_time`](https://w3id.org/nfdi4cat/catcore/mixing_time)
+**CURIE:** [`coremeta4cat:mixing_time`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_time)
-**Schema Reference:** [mixing_time](./elements/mixing_time.md)
+**Schema Reference:** [mixing_time](./elements/slots/mixing_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -610,14 +704,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_temperature`](https://w3id.org/nfdi4cat/catcore/mixing_temperature)
+**CURIE:** [`coremeta4cat:mixing_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_temperature)
-**Schema Reference:** [mixing_temperature](./elements/mixing_temperature.md)
+**Schema Reference:** [mixing_temperature](./elements/slots/mixing_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -631,12 +725,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:order_of_addition`](https://w3id.org/nfdi4cat/catcore/order_of_addition)
+**CURIE:** [`coremeta4cat:order_of_addition`](https://w3id.org/nfdi4cat/coremeta4cat/order_of_addition)
-**Schema Reference:** [order_of_addition](./elements/order_of_addition.md)
+**Schema Reference:** [order_of_addition](./elements/slots/order_of_addition.md)
-
+
💡 Submit Term Feedback
@@ -650,12 +744,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filtration`](https://w3id.org/nfdi4cat/catcore/filtration)
+**CURIE:** [`coremeta4cat:filtration`](https://w3id.org/nfdi4cat/coremeta4cat/filtration)
-**Schema Reference:** [filtration](./elements/filtration.md)
+**Schema Reference:** [filtration](./elements/slots/filtration.md)
-
+
💡 Submit Term Feedback
@@ -669,12 +763,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:purification`](https://w3id.org/nfdi4cat/catcore/purification)
+**CURIE:** [`coremeta4cat:purification`](https://w3id.org/nfdi4cat/coremeta4cat/purification)
-**Schema Reference:** [purification](./elements/purification.md)
+**Schema Reference:** [purification](./elements/slots/purification.md)
-
+
💡 Submit Term Feedback
@@ -688,14 +782,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:aging_temperature`](https://w3id.org/nfdi4cat/catcore/aging_temperature)
+**CURIE:** [`coremeta4cat:aging_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/aging_temperature)
-**Schema Reference:** [aging_temperature](./elements/aging_temperature.md)
+**Schema Reference:** [aging_temperature](./elements/slots/aging_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -709,14 +803,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:aging_time`](https://w3id.org/nfdi4cat/catcore/aging_time)
+**CURIE:** [`coremeta4cat:aging_time`](https://w3id.org/nfdi4cat/coremeta4cat/aging_time)
-**Schema Reference:** [aging_time](./elements/aging_time.md)
+**Schema Reference:** [aging_time](./elements/slots/aging_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -730,12 +824,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_device`](https://w3id.org/nfdi4cat/catcore/drying_device)
+**CURIE:** [`coremeta4cat:drying_device`](https://w3id.org/nfdi4cat/coremeta4cat/drying_device)
-**Schema Reference:** [drying_device](./elements/drying_device.md)
+**Schema Reference:** [drying_device](./elements/slots/drying_device.md)
-
+
💡 Submit Term Feedback
@@ -749,14 +843,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_temperature`](https://w3id.org/nfdi4cat/catcore/drying_temperature)
+**CURIE:** [`coremeta4cat:drying_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature)
-**Schema Reference:** [drying_temperature](./elements/drying_temperature.md)
+**Schema Reference:** [drying_temperature](./elements/slots/drying_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -770,14 +864,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_time`](https://w3id.org/nfdi4cat/catcore/drying_time)
+**CURIE:** [`coremeta4cat:drying_time`](https://w3id.org/nfdi4cat/coremeta4cat/drying_time)
-**Schema Reference:** [drying_time](./elements/drying_time.md)
+**Schema Reference:** [drying_time](./elements/slots/drying_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -791,12 +885,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_atmosphere`](https://w3id.org/nfdi4cat/catcore/drying_atmosphere)
+**CURIE:** [`coremeta4cat:drying_atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere)
-**Schema Reference:** [drying_atmosphere](./elements/drying_atmosphere.md)
+**Schema Reference:** [drying_atmosphere](./elements/slots/drying_atmosphere.md)
-
+
💡 Submit Term Feedback
@@ -810,14 +904,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
+**CURIE:** [`VOC4CAT:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
-**Schema Reference:** [calcination_initial_temperature](./elements/calcination_initial_temperature.md)
+**Schema Reference:** [calcination_initial_temperature](./elements/slots/calcination_initial_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -831,14 +925,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
+**CURIE:** [`VOC4CAT:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
-**Schema Reference:** [calcination_final_temperature](./elements/calcination_final_temperature.md)
+**Schema Reference:** [calcination_final_temperature](./elements/slots/calcination_final_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -852,14 +946,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
+**CURIE:** [`VOC4CAT:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
-**Schema Reference:** [calcination_dwelling_time](./elements/calcination_dwelling_time.md)
+**Schema Reference:** [calcination_dwelling_time](./elements/slots/calcination_dwelling_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -873,12 +967,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -892,12 +986,12 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
+**CURIE:** [`VOC4CAT:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
-**Schema Reference:** [calcination_gaseous_environment](./elements/calcination_gaseous_environment.md)
+**Schema Reference:** [calcination_gaseous_environment](./elements/slots/calcination_gaseous_environment.md)
-
+
💡 Submit Term Feedback
@@ -911,14 +1005,14 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
+**CURIE:** [`VOC4CAT:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
-**Schema Reference:** [calcination_heating_rate](./elements/calcination_heating_rate.md)
+**Schema Reference:** [calcination_heating_rate](./elements/slots/calcination_heating_rate.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -932,20 +1026,20 @@ simultaneously precipitated from solution by a precipitating agent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
+**CURIE:** [`VOC4CAT:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
-**Schema Reference:** [calcination_gas_flow_rate](./elements/calcination_gas_flow_rate.md)
+**Schema Reference:** [calcination_gas_flow_rate](./elements/slots/calcination_gas_flow_rate.md)
**Unit:** mL/min
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -956,9 +1050,9 @@ simultaneously precipitated from solution by a precipitating agent.
**Description:** Catalyst preparation by the sol-gel process: hydrolysis and condensation
of precursor molecules to form a colloidal network (gel).
-**CURIE:** [`catcore:SolGel`](https://w3id.org/nfdi4cat/catcore/SolGel)
+**CURIE:** [`coremeta4cat:SolGel`](https://w3id.org/nfdi4cat/coremeta4cat/SolGel)
-**Schema Reference:** [SolGel](./elements/SolGel.md)
+**Schema Reference:** [SolGel](./elements/classes/SolGel.md)
**Slots**
@@ -971,12 +1065,12 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:hydrolysis_ratio`](https://w3id.org/nfdi4cat/catcore/hydrolysis_ratio)
+**CURIE:** [`coremeta4cat:hydrolysis_ratio`](https://w3id.org/nfdi4cat/coremeta4cat/hydrolysis_ratio)
-**Schema Reference:** [hydrolysis_ratio](./elements/hydrolysis_ratio.md)
+**Schema Reference:** [hydrolysis_ratio](./elements/slots/hydrolysis_ratio.md)
-
+
💡 Submit Term Feedback
@@ -990,14 +1084,14 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:aging_time`](https://w3id.org/nfdi4cat/catcore/aging_time)
+**CURIE:** [`coremeta4cat:aging_time`](https://w3id.org/nfdi4cat/coremeta4cat/aging_time)
-**Schema Reference:** [aging_time](./elements/aging_time.md)
+**Schema Reference:** [aging_time](./elements/slots/aging_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -1011,12 +1105,12 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying`](https://w3id.org/nfdi4cat/catcore/drying)
+**CURIE:** [`coremeta4cat:drying`](https://w3id.org/nfdi4cat/coremeta4cat/drying)
-**Schema Reference:** [drying](./elements/drying.md)
+**Schema Reference:** [drying](./elements/slots/drying.md)
-
+
💡 Submit Term Feedback
@@ -1030,12 +1124,12 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:surfactant_template`](https://w3id.org/nfdi4cat/catcore/surfactant_template)
+**CURIE:** [`coremeta4cat:surfactant_template`](https://w3id.org/nfdi4cat/coremeta4cat/surfactant_template)
-**Schema Reference:** [surfactant_template](./elements/surfactant_template.md)
+**Schema Reference:** [surfactant_template](./elements/slots/surfactant_template.md)
-
+
💡 Submit Term Feedback
@@ -1049,12 +1143,12 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_device`](https://w3id.org/nfdi4cat/catcore/drying_device)
+**CURIE:** [`coremeta4cat:drying_device`](https://w3id.org/nfdi4cat/coremeta4cat/drying_device)
-**Schema Reference:** [drying_device](./elements/drying_device.md)
+**Schema Reference:** [drying_device](./elements/slots/drying_device.md)
-
+
💡 Submit Term Feedback
@@ -1068,14 +1162,14 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_temperature`](https://w3id.org/nfdi4cat/catcore/drying_temperature)
+**CURIE:** [`coremeta4cat:drying_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature)
-**Schema Reference:** [drying_temperature](./elements/drying_temperature.md)
+**Schema Reference:** [drying_temperature](./elements/slots/drying_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1089,14 +1183,14 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_time`](https://w3id.org/nfdi4cat/catcore/drying_time)
+**CURIE:** [`coremeta4cat:drying_time`](https://w3id.org/nfdi4cat/coremeta4cat/drying_time)
-**Schema Reference:** [drying_time](./elements/drying_time.md)
+**Schema Reference:** [drying_time](./elements/slots/drying_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -1110,18 +1204,18 @@ of precursor molecules to form a colloidal network (gel).
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_atmosphere`](https://w3id.org/nfdi4cat/catcore/drying_atmosphere)
+**CURIE:** [`coremeta4cat:drying_atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere)
-**Schema Reference:** [drying_atmosphere](./elements/drying_atmosphere.md)
+**Schema Reference:** [drying_atmosphere](./elements/slots/drying_atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1132,9 +1226,9 @@ of precursor molecules to form a colloidal network (gel).
**Description:** Catalyst preparation under elevated temperature and pressure in a
sealed vessel using a non-aqueous solvent.
-**CURIE:** [`catcore:Solvothermal`](https://w3id.org/nfdi4cat/catcore/Solvothermal)
+**CURIE:** [`coremeta4cat:Solvothermal`](https://w3id.org/nfdi4cat/coremeta4cat/Solvothermal)
-**Schema Reference:** [Solvothermal](./elements/Solvothermal.md)
+**Schema Reference:** [Solvothermal](./elements/classes/Solvothermal.md)
**Slots**
@@ -1147,14 +1241,14 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filling_volume`](https://w3id.org/nfdi4cat/catcore/filling_volume)
+**CURIE:** [`coremeta4cat:filling_volume`](https://w3id.org/nfdi4cat/coremeta4cat/filling_volume)
-**Schema Reference:** [filling_volume](./elements/filling_volume.md)
+**Schema Reference:** [filling_volume](./elements/slots/filling_volume.md)
**Unit:** mL
-
+
💡 Submit Term Feedback
@@ -1168,12 +1262,12 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:stirrer_type`](https://w3id.org/nfdi4cat/catcore/stirrer_type)
+**CURIE:** [`coremeta4cat:stirrer_type`](https://w3id.org/nfdi4cat/coremeta4cat/stirrer_type)
-**Schema Reference:** [stirrer_type](./elements/stirrer_type.md)
+**Schema Reference:** [stirrer_type](./elements/slots/stirrer_type.md)
-
+
💡 Submit Term Feedback
@@ -1187,14 +1281,14 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:cooling_rate`](https://w3id.org/nfdi4cat/catcore/cooling_rate)
+**CURIE:** [`coremeta4cat:cooling_rate`](https://w3id.org/nfdi4cat/coremeta4cat/cooling_rate)
-**Schema Reference:** [cooling_rate](./elements/cooling_rate.md)
+**Schema Reference:** [cooling_rate](./elements/slots/cooling_rate.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -1208,14 +1302,14 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
+**CURIE:** [`VOC4CAT:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
-**Schema Reference:** [synthesis_temperature](./elements/synthesis_temperature.md)
+**Schema Reference:** [synthesis_temperature](./elements/slots/synthesis_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1229,14 +1323,14 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
+**CURIE:** [`VOC4CAT:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
-**Schema Reference:** [synthesis_duration](./elements/synthesis_duration.md)
+**Schema Reference:** [synthesis_duration](./elements/slots/synthesis_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -1250,12 +1344,12 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
+**CURIE:** [`VOC4CAT:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
-**Schema Reference:** [equipment](./elements/equipment.md)
+**Schema Reference:** [equipment](./elements/slots/equipment.md)
-
+
💡 Submit Term Feedback
@@ -1269,12 +1363,12 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_type`](https://w3id.org/nfdi4cat/catcore/vessel_type)
+**CURIE:** [`coremeta4cat:vessel_type`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_type)
-**Schema Reference:** [vessel_type](./elements/vessel_type.md)
+**Schema Reference:** [vessel_type](./elements/slots/vessel_type.md)
-
+
💡 Submit Term Feedback
@@ -1288,18 +1382,18 @@ sealed vessel using a non-aqueous solvent.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1310,9 +1404,9 @@ sealed vessel using a non-aqueous solvent.
**Description:** Catalyst preparation using plasma treatment to modify surface
properties or deposit active components.
-**CURIE:** [`catcore:PlasmaAssisted`](https://w3id.org/nfdi4cat/catcore/PlasmaAssisted)
+**CURIE:** [`coremeta4cat:PlasmaAssisted`](https://w3id.org/nfdi4cat/coremeta4cat/PlasmaAssisted)
-**Schema Reference:** [PlasmaAssisted](./elements/PlasmaAssisted.md)
+**Schema Reference:** [PlasmaAssisted](./elements/classes/PlasmaAssisted.md)
**Slots**
@@ -1325,12 +1419,12 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:plasma_type`](https://w3id.org/nfdi4cat/catcore/plasma_type)
+**CURIE:** [`coremeta4cat:plasma_type`](https://w3id.org/nfdi4cat/coremeta4cat/plasma_type)
-**Schema Reference:** [plasma_type](./elements/plasma_type.md)
+**Schema Reference:** [plasma_type](./elements/slots/plasma_type.md)
-
+
💡 Submit Term Feedback
@@ -1344,14 +1438,14 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:power_input`](https://w3id.org/nfdi4cat/catcore/power_input)
+**CURIE:** [`coremeta4cat:power_input`](https://w3id.org/nfdi4cat/coremeta4cat/power_input)
-**Schema Reference:** [power_input](./elements/power_input.md)
+**Schema Reference:** [power_input](./elements/slots/power_input.md)
**Unit:** W
-
+
💡 Submit Term Feedback
@@ -1365,14 +1459,14 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:exposure_time`](https://w3id.org/nfdi4cat/catcore/exposure_time)
+**CURIE:** [`coremeta4cat:exposure_time`](https://w3id.org/nfdi4cat/coremeta4cat/exposure_time)
-**Schema Reference:** [exposure_time](./elements/exposure_time.md)
+**Schema Reference:** [exposure_time](./elements/slots/exposure_time.md)
**Unit:** min
-
+
💡 Submit Term Feedback
@@ -1386,14 +1480,14 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000053`](https://w3id.org/nfdi4cat/voc4cat_0000053)
+**CURIE:** [`VOC4CAT:0000053`](https://w3id.org/nfdi4cat/voc4cat_0000053)
-**Schema Reference:** [synthesis_pressure](./elements/synthesis_pressure.md)
+**Schema Reference:** [synthesis_pressure](./elements/slots/synthesis_pressure.md)
**Unit:** bar
-
+
💡 Submit Term Feedback
@@ -1407,14 +1501,14 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
+**CURIE:** [`VOC4CAT:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
-**Schema Reference:** [synthesis_temperature](./elements/synthesis_temperature.md)
+**Schema Reference:** [synthesis_temperature](./elements/slots/synthesis_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1428,14 +1522,14 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
+**CURIE:** [`VOC4CAT:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
-**Schema Reference:** [synthesis_duration](./elements/synthesis_duration.md)
+**Schema Reference:** [synthesis_duration](./elements/slots/synthesis_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -1449,12 +1543,12 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
+**CURIE:** [`VOC4CAT:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
-**Schema Reference:** [equipment](./elements/equipment.md)
+**Schema Reference:** [equipment](./elements/slots/equipment.md)
-
+
💡 Submit Term Feedback
@@ -1468,12 +1562,12 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_type`](https://w3id.org/nfdi4cat/catcore/vessel_type)
+**CURIE:** [`coremeta4cat:vessel_type`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_type)
-**Schema Reference:** [vessel_type](./elements/vessel_type.md)
+**Schema Reference:** [vessel_type](./elements/slots/vessel_type.md)
-
+
💡 Submit Term Feedback
@@ -1487,18 +1581,18 @@ properties or deposit active components.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1509,9 +1603,9 @@ properties or deposit active components.
**Description:** Catalyst preparation by combustion of a fuel/oxidizer mixture,
producing metal oxide catalysts in a single rapid step.
-**CURIE:** [`catcore:CombustionSynthesis`](https://w3id.org/nfdi4cat/catcore/CombustionSynthesis)
+**CURIE:** [`coremeta4cat:CombustionSynthesis`](https://w3id.org/nfdi4cat/coremeta4cat/CombustionSynthesis)
-**Schema Reference:** [CombustionSynthesis](./elements/CombustionSynthesis.md)
+**Schema Reference:** [CombustionSynthesis](./elements/classes/CombustionSynthesis.md)
**Slots**
@@ -1524,12 +1618,12 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:fuel`](https://w3id.org/nfdi4cat/catcore/fuel)
+**CURIE:** [`coremeta4cat:fuel`](https://w3id.org/nfdi4cat/coremeta4cat/fuel)
-**Schema Reference:** [fuel](./elements/fuel.md)
+**Schema Reference:** [fuel](./elements/slots/fuel.md)
-
+
💡 Submit Term Feedback
@@ -1543,12 +1637,12 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:oxidizer`](https://w3id.org/nfdi4cat/catcore/oxidizer)
+**CURIE:** [`coremeta4cat:oxidizer`](https://w3id.org/nfdi4cat/coremeta4cat/oxidizer)
-**Schema Reference:** [oxidizer](./elements/oxidizer.md)
+**Schema Reference:** [oxidizer](./elements/slots/oxidizer.md)
-
+
💡 Submit Term Feedback
@@ -1562,12 +1656,12 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:fuel_to_oxidizer_ratio`](https://w3id.org/nfdi4cat/catcore/fuel_to_oxidizer_ratio)
+**CURIE:** [`coremeta4cat:fuel_to_oxidizer_ratio`](https://w3id.org/nfdi4cat/coremeta4cat/fuel_to_oxidizer_ratio)
-**Schema Reference:** [fuel_to_oxidizer_ratio](./elements/fuel_to_oxidizer_ratio.md)
+**Schema Reference:** [fuel_to_oxidizer_ratio](./elements/slots/fuel_to_oxidizer_ratio.md)
-
+
💡 Submit Term Feedback
@@ -1581,14 +1675,14 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:set_temperature`](https://w3id.org/nfdi4cat/catcore/set_temperature)
+**CURIE:** [`coremeta4cat:set_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/set_temperature)
-**Schema Reference:** [set_temperature](./elements/set_temperature.md)
+**Schema Reference:** [set_temperature](./elements/slots/set_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1602,12 +1696,12 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:post_treatment`](https://w3id.org/nfdi4cat/catcore/post_treatment)
+**CURIE:** [`coremeta4cat:post_treatment`](https://w3id.org/nfdi4cat/coremeta4cat/post_treatment)
-**Schema Reference:** [post_treatment](./elements/post_treatment.md)
+**Schema Reference:** [post_treatment](./elements/slots/post_treatment.md)
-
+
💡 Submit Term Feedback
@@ -1621,14 +1715,14 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
+**CURIE:** [`VOC4CAT:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
-**Schema Reference:** [synthesis_temperature](./elements/synthesis_temperature.md)
+**Schema Reference:** [synthesis_temperature](./elements/slots/synthesis_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1642,14 +1736,14 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
+**CURIE:** [`VOC4CAT:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
-**Schema Reference:** [synthesis_duration](./elements/synthesis_duration.md)
+**Schema Reference:** [synthesis_duration](./elements/slots/synthesis_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -1663,12 +1757,12 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
+**CURIE:** [`VOC4CAT:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
-**Schema Reference:** [equipment](./elements/equipment.md)
+**Schema Reference:** [equipment](./elements/slots/equipment.md)
-
+
💡 Submit Term Feedback
@@ -1682,12 +1776,12 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_type`](https://w3id.org/nfdi4cat/catcore/vessel_type)
+**CURIE:** [`coremeta4cat:vessel_type`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_type)
-**Schema Reference:** [vessel_type](./elements/vessel_type.md)
+**Schema Reference:** [vessel_type](./elements/slots/vessel_type.md)
-
+
💡 Submit Term Feedback
@@ -1701,18 +1795,18 @@ producing metal oxide catalysts in a single rapid step.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1724,9 +1818,9 @@ producing metal oxide catalysts in a single rapid step.
self-limiting surface reactions deposit a conformal thin film
of active phase onto a substrate.
-**CURIE:** [`catcore:AtomicLayerDeposition`](https://w3id.org/nfdi4cat/catcore/AtomicLayerDeposition)
+**CURIE:** [`coremeta4cat:AtomicLayerDeposition`](https://w3id.org/nfdi4cat/coremeta4cat/AtomicLayerDeposition)
-**Schema Reference:** [AtomicLayerDeposition](./elements/AtomicLayerDeposition.md)
+**Schema Reference:** [AtomicLayerDeposition](./elements/classes/AtomicLayerDeposition.md)
**Slots**
@@ -1739,12 +1833,12 @@ of active phase onto a substrate.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000024`](https://w3id.org/nfdi4cat/voc4cat_0000024)
+**CURIE:** [`VOC4CAT:0000024`](https://w3id.org/nfdi4cat/voc4cat_0000024)
-**Schema Reference:** [substrate](./elements/substrate.md)
+**Schema Reference:** [substrate](./elements/slots/substrate.md)
-
+
💡 Submit Term Feedback
@@ -1758,14 +1852,14 @@ of active phase onto a substrate.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:pulse_time`](https://w3id.org/nfdi4cat/catcore/pulse_time)
+**CURIE:** [`coremeta4cat:pulse_time`](https://w3id.org/nfdi4cat/coremeta4cat/pulse_time)
-**Schema Reference:** [pulse_time](./elements/pulse_time.md)
+**Schema Reference:** [pulse_time](./elements/slots/pulse_time.md)
**Unit:** s
-
+
💡 Submit Term Feedback
@@ -1779,14 +1873,14 @@ of active phase onto a substrate.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000112`](https://w3id.org/nfdi4cat/voc4cat_0000112)
+**CURIE:** [`VOC4CAT:0000112`](https://w3id.org/nfdi4cat/voc4cat_0000112)
-**Schema Reference:** [purging_duration](./elements/purging_duration.md)
+**Schema Reference:** [purging_duration](./elements/slots/purging_duration.md)
**Unit:** s
-
+
💡 Submit Term Feedback
@@ -1800,12 +1894,12 @@ of active phase onto a substrate.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -1819,14 +1913,14 @@ of active phase onto a substrate.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:deposition_temperature`](https://w3id.org/nfdi4cat/catcore/deposition_temperature)
+**CURIE:** [`coremeta4cat:deposition_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/deposition_temperature)
-**Schema Reference:** [deposition_temperature](./elements/deposition_temperature.md)
+**Schema Reference:** [deposition_temperature](./elements/slots/deposition_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1840,18 +1934,18 @@ of active phase onto a substrate.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:carrier_gas`](https://w3id.org/nfdi4cat/catcore/carrier_gas)
+**CURIE:** [`coremeta4cat:carrier_gas`](https://w3id.org/nfdi4cat/coremeta4cat/carrier_gas)
-**Schema Reference:** [carrier_gas](./elements/carrier_gas.md)
+**Schema Reference:** [carrier_gas](./elements/slots/carrier_gas.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -1862,9 +1956,9 @@ of active phase onto a substrate.
**Description:** Catalyst preparation by deposition-precipitation: the active phase
is precipitated directly onto the support surface.
-**CURIE:** [`catcore:DepositionPrecipitation`](https://w3id.org/nfdi4cat/catcore/DepositionPrecipitation)
+**CURIE:** [`coremeta4cat:DepositionPrecipitation`](https://w3id.org/nfdi4cat/coremeta4cat/DepositionPrecipitation)
-**Schema Reference:** [DepositionPrecipitation](./elements/DepositionPrecipitation.md)
+**Schema Reference:** [DepositionPrecipitation](./elements/classes/DepositionPrecipitation.md)
**Slots**
@@ -1877,14 +1971,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:deposition_temperature`](https://w3id.org/nfdi4cat/catcore/deposition_temperature)
+**CURIE:** [`coremeta4cat:deposition_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/deposition_temperature)
-**Schema Reference:** [deposition_temperature](./elements/deposition_temperature.md)
+**Schema Reference:** [deposition_temperature](./elements/slots/deposition_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -1898,14 +1992,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:deposition_time`](https://w3id.org/nfdi4cat/catcore/deposition_time)
+**CURIE:** [`coremeta4cat:deposition_time`](https://w3id.org/nfdi4cat/coremeta4cat/deposition_time)
-**Schema Reference:** [deposition_time](./elements/deposition_time.md)
+**Schema Reference:** [deposition_time](./elements/slots/deposition_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -1919,12 +2013,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:precipitating_agent`](https://w3id.org/nfdi4cat/catcore/precipitating_agent)
+**CURIE:** [`coremeta4cat:precipitating_agent`](https://w3id.org/nfdi4cat/coremeta4cat/precipitating_agent)
-**Schema Reference:** [precipitating_agent](./elements/precipitating_agent.md)
+**Schema Reference:** [precipitating_agent](./elements/slots/precipitating_agent.md)
-
+
💡 Submit Term Feedback
@@ -1938,14 +2032,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:precipitating_concentration`](https://w3id.org/nfdi4cat/catcore/precipitating_concentration)
+**CURIE:** [`coremeta4cat:precipitating_concentration`](https://w3id.org/nfdi4cat/coremeta4cat/precipitating_concentration)
-**Schema Reference:** [precipitating_concentration](./elements/precipitating_concentration.md)
+**Schema Reference:** [precipitating_concentration](./elements/slots/precipitating_concentration.md)
**Unit:** mol/L
-
+
💡 Submit Term Feedback
@@ -1959,12 +2053,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000052`](https://w3id.org/nfdi4cat/voc4cat_0000052)
+**CURIE:** [`VOC4CAT:0000052`](https://w3id.org/nfdi4cat/voc4cat_0000052)
-**Schema Reference:** [synthesis_ph](./elements/synthesis_ph.md)
+**Schema Reference:** [synthesis_ph](./elements/slots/synthesis_ph.md)
-
+
💡 Submit Term Feedback
@@ -1978,14 +2072,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_rate`](https://w3id.org/nfdi4cat/catcore/mixing_rate)
+**CURIE:** [`coremeta4cat:mixing_rate`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_rate)
-**Schema Reference:** [mixing_rate](./elements/mixing_rate.md)
+**Schema Reference:** [mixing_rate](./elements/slots/mixing_rate.md)
**Unit:** rpm
-
+
💡 Submit Term Feedback
@@ -1999,14 +2093,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_time`](https://w3id.org/nfdi4cat/catcore/mixing_time)
+**CURIE:** [`coremeta4cat:mixing_time`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_time)
-**Schema Reference:** [mixing_time](./elements/mixing_time.md)
+**Schema Reference:** [mixing_time](./elements/slots/mixing_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2020,14 +2114,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_temperature`](https://w3id.org/nfdi4cat/catcore/mixing_temperature)
+**CURIE:** [`coremeta4cat:mixing_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_temperature)
-**Schema Reference:** [mixing_temperature](./elements/mixing_temperature.md)
+**Schema Reference:** [mixing_temperature](./elements/slots/mixing_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2041,12 +2135,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:order_of_addition`](https://w3id.org/nfdi4cat/catcore/order_of_addition)
+**CURIE:** [`coremeta4cat:order_of_addition`](https://w3id.org/nfdi4cat/coremeta4cat/order_of_addition)
-**Schema Reference:** [order_of_addition](./elements/order_of_addition.md)
+**Schema Reference:** [order_of_addition](./elements/slots/order_of_addition.md)
-
+
💡 Submit Term Feedback
@@ -2060,12 +2154,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filtration`](https://w3id.org/nfdi4cat/catcore/filtration)
+**CURIE:** [`coremeta4cat:filtration`](https://w3id.org/nfdi4cat/coremeta4cat/filtration)
-**Schema Reference:** [filtration](./elements/filtration.md)
+**Schema Reference:** [filtration](./elements/slots/filtration.md)
-
+
💡 Submit Term Feedback
@@ -2079,12 +2173,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:purification`](https://w3id.org/nfdi4cat/catcore/purification)
+**CURIE:** [`coremeta4cat:purification`](https://w3id.org/nfdi4cat/coremeta4cat/purification)
-**Schema Reference:** [purification](./elements/purification.md)
+**Schema Reference:** [purification](./elements/slots/purification.md)
-
+
💡 Submit Term Feedback
@@ -2098,14 +2192,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:aging_temperature`](https://w3id.org/nfdi4cat/catcore/aging_temperature)
+**CURIE:** [`coremeta4cat:aging_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/aging_temperature)
-**Schema Reference:** [aging_temperature](./elements/aging_temperature.md)
+**Schema Reference:** [aging_temperature](./elements/slots/aging_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2119,14 +2213,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:aging_time`](https://w3id.org/nfdi4cat/catcore/aging_time)
+**CURIE:** [`coremeta4cat:aging_time`](https://w3id.org/nfdi4cat/coremeta4cat/aging_time)
-**Schema Reference:** [aging_time](./elements/aging_time.md)
+**Schema Reference:** [aging_time](./elements/slots/aging_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2140,12 +2234,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_device`](https://w3id.org/nfdi4cat/catcore/drying_device)
+**CURIE:** [`coremeta4cat:drying_device`](https://w3id.org/nfdi4cat/coremeta4cat/drying_device)
-**Schema Reference:** [drying_device](./elements/drying_device.md)
+**Schema Reference:** [drying_device](./elements/slots/drying_device.md)
-
+
💡 Submit Term Feedback
@@ -2159,14 +2253,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_temperature`](https://w3id.org/nfdi4cat/catcore/drying_temperature)
+**CURIE:** [`coremeta4cat:drying_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature)
-**Schema Reference:** [drying_temperature](./elements/drying_temperature.md)
+**Schema Reference:** [drying_temperature](./elements/slots/drying_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2180,14 +2274,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_time`](https://w3id.org/nfdi4cat/catcore/drying_time)
+**CURIE:** [`coremeta4cat:drying_time`](https://w3id.org/nfdi4cat/coremeta4cat/drying_time)
-**Schema Reference:** [drying_time](./elements/drying_time.md)
+**Schema Reference:** [drying_time](./elements/slots/drying_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2201,12 +2295,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_atmosphere`](https://w3id.org/nfdi4cat/catcore/drying_atmosphere)
+**CURIE:** [`coremeta4cat:drying_atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere)
-**Schema Reference:** [drying_atmosphere](./elements/drying_atmosphere.md)
+**Schema Reference:** [drying_atmosphere](./elements/slots/drying_atmosphere.md)
-
+
💡 Submit Term Feedback
@@ -2220,14 +2314,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
+**CURIE:** [`VOC4CAT:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
-**Schema Reference:** [calcination_initial_temperature](./elements/calcination_initial_temperature.md)
+**Schema Reference:** [calcination_initial_temperature](./elements/slots/calcination_initial_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2241,14 +2335,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
+**CURIE:** [`VOC4CAT:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
-**Schema Reference:** [calcination_final_temperature](./elements/calcination_final_temperature.md)
+**Schema Reference:** [calcination_final_temperature](./elements/slots/calcination_final_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2262,14 +2356,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
+**CURIE:** [`VOC4CAT:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
-**Schema Reference:** [calcination_dwelling_time](./elements/calcination_dwelling_time.md)
+**Schema Reference:** [calcination_dwelling_time](./elements/slots/calcination_dwelling_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2283,12 +2377,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -2302,12 +2396,12 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
+**CURIE:** [`VOC4CAT:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
-**Schema Reference:** [calcination_gaseous_environment](./elements/calcination_gaseous_environment.md)
+**Schema Reference:** [calcination_gaseous_environment](./elements/slots/calcination_gaseous_environment.md)
-
+
💡 Submit Term Feedback
@@ -2321,14 +2415,14 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
+**CURIE:** [`VOC4CAT:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
-**Schema Reference:** [calcination_heating_rate](./elements/calcination_heating_rate.md)
+**Schema Reference:** [calcination_heating_rate](./elements/slots/calcination_heating_rate.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -2342,20 +2436,20 @@ is precipitated directly onto the support surface.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
+**CURIE:** [`VOC4CAT:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
-**Schema Reference:** [calcination_gas_flow_rate](./elements/calcination_gas_flow_rate.md)
+**Schema Reference:** [calcination_gas_flow_rate](./elements/slots/calcination_gas_flow_rate.md)
**Unit:** mL/min
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -2366,9 +2460,9 @@ is precipitated directly onto the support surface.
**Description:** Catalyst preparation using microwave irradiation to rapidly and
uniformly heat the reaction mixture.
-**CURIE:** [`catcore:MicrowaveAssisted`](https://w3id.org/nfdi4cat/catcore/MicrowaveAssisted)
+**CURIE:** [`coremeta4cat:MicrowaveAssisted`](https://w3id.org/nfdi4cat/coremeta4cat/MicrowaveAssisted)
-**Schema Reference:** [MicrowaveAssisted](./elements/MicrowaveAssisted.md)
+**Schema Reference:** [MicrowaveAssisted](./elements/classes/MicrowaveAssisted.md)
**Slots**
@@ -2381,14 +2475,14 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:power`](https://w3id.org/nfdi4cat/catcore/power)
+**CURIE:** [`coremeta4cat:power`](https://w3id.org/nfdi4cat/coremeta4cat/power)
-**Schema Reference:** [power](./elements/power.md)
+**Schema Reference:** [power](./elements/slots/power.md)
**Unit:** W
-
+
💡 Submit Term Feedback
@@ -2402,14 +2496,14 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:microwave_frequency`](https://w3id.org/nfdi4cat/catcore/microwave_frequency)
+**CURIE:** [`coremeta4cat:microwave_frequency`](https://w3id.org/nfdi4cat/coremeta4cat/microwave_frequency)
-**Schema Reference:** [microwave_frequency](./elements/microwave_frequency.md)
+**Schema Reference:** [microwave_frequency](./elements/slots/microwave_frequency.md)
**Unit:** GHz
-
+
💡 Submit Term Feedback
@@ -2423,14 +2517,14 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
+**CURIE:** [`VOC4CAT:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
-**Schema Reference:** [synthesis_temperature](./elements/synthesis_temperature.md)
+**Schema Reference:** [synthesis_temperature](./elements/slots/synthesis_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2444,14 +2538,14 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
+**CURIE:** [`VOC4CAT:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
-**Schema Reference:** [synthesis_duration](./elements/synthesis_duration.md)
+**Schema Reference:** [synthesis_duration](./elements/slots/synthesis_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2465,12 +2559,12 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
+**CURIE:** [`VOC4CAT:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
-**Schema Reference:** [equipment](./elements/equipment.md)
+**Schema Reference:** [equipment](./elements/slots/equipment.md)
-
+
💡 Submit Term Feedback
@@ -2484,12 +2578,12 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_type`](https://w3id.org/nfdi4cat/catcore/vessel_type)
+**CURIE:** [`coremeta4cat:vessel_type`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_type)
-**Schema Reference:** [vessel_type](./elements/vessel_type.md)
+**Schema Reference:** [vessel_type](./elements/slots/vessel_type.md)
-
+
💡 Submit Term Feedback
@@ -2503,18 +2597,18 @@ uniformly heat the reaction mixture.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -2525,9 +2619,9 @@ uniformly heat the reaction mixture.
**Description:** Catalyst preparation using ultrasonic irradiation to drive chemical
reactions via acoustic cavitation.
-**CURIE:** [`catcore:SonochemicalSynthesis`](https://w3id.org/nfdi4cat/catcore/SonochemicalSynthesis)
+**CURIE:** [`coremeta4cat:SonochemicalSynthesis`](https://w3id.org/nfdi4cat/coremeta4cat/SonochemicalSynthesis)
-**Schema Reference:** [SonochemicalSynthesis](./elements/SonochemicalSynthesis.md)
+**Schema Reference:** [SonochemicalSynthesis](./elements/classes/SonochemicalSynthesis.md)
**Slots**
@@ -2540,14 +2634,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:sonication_power`](https://w3id.org/nfdi4cat/catcore/sonication_power)
+**CURIE:** [`coremeta4cat:sonication_power`](https://w3id.org/nfdi4cat/coremeta4cat/sonication_power)
-**Schema Reference:** [sonication_power](./elements/sonication_power.md)
+**Schema Reference:** [sonication_power](./elements/slots/sonication_power.md)
**Unit:** W
-
+
💡 Submit Term Feedback
@@ -2561,14 +2655,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:sonication_duration`](https://w3id.org/nfdi4cat/catcore/sonication_duration)
+**CURIE:** [`coremeta4cat:sonication_duration`](https://w3id.org/nfdi4cat/coremeta4cat/sonication_duration)
-**Schema Reference:** [sonication_duration](./elements/sonication_duration.md)
+**Schema Reference:** [sonication_duration](./elements/slots/sonication_duration.md)
**Unit:** min
-
+
💡 Submit Term Feedback
@@ -2584,12 +2678,12 @@ reactions via acoustic cavitation.
**CURIE:** [`AFR:0001584`](http://purl.allotrope.org/ontologies/result#AFR_0001584)
-**Schema Reference:** [temperature](./elements/temperature.md)
+**Schema Reference:** [temperature](./elements/slots/temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2603,12 +2697,12 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_device`](https://w3id.org/nfdi4cat/catcore/drying_device)
+**CURIE:** [`coremeta4cat:drying_device`](https://w3id.org/nfdi4cat/coremeta4cat/drying_device)
-**Schema Reference:** [drying_device](./elements/drying_device.md)
+**Schema Reference:** [drying_device](./elements/slots/drying_device.md)
-
+
💡 Submit Term Feedback
@@ -2622,14 +2716,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_temperature`](https://w3id.org/nfdi4cat/catcore/drying_temperature)
+**CURIE:** [`coremeta4cat:drying_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature)
-**Schema Reference:** [drying_temperature](./elements/drying_temperature.md)
+**Schema Reference:** [drying_temperature](./elements/slots/drying_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2643,14 +2737,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_time`](https://w3id.org/nfdi4cat/catcore/drying_time)
+**CURIE:** [`coremeta4cat:drying_time`](https://w3id.org/nfdi4cat/coremeta4cat/drying_time)
-**Schema Reference:** [drying_time](./elements/drying_time.md)
+**Schema Reference:** [drying_time](./elements/slots/drying_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2664,12 +2758,12 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_atmosphere`](https://w3id.org/nfdi4cat/catcore/drying_atmosphere)
+**CURIE:** [`coremeta4cat:drying_atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere)
-**Schema Reference:** [drying_atmosphere](./elements/drying_atmosphere.md)
+**Schema Reference:** [drying_atmosphere](./elements/slots/drying_atmosphere.md)
-
+
💡 Submit Term Feedback
@@ -2683,14 +2777,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
+**CURIE:** [`VOC4CAT:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
-**Schema Reference:** [calcination_initial_temperature](./elements/calcination_initial_temperature.md)
+**Schema Reference:** [calcination_initial_temperature](./elements/slots/calcination_initial_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2704,14 +2798,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
+**CURIE:** [`VOC4CAT:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
-**Schema Reference:** [calcination_final_temperature](./elements/calcination_final_temperature.md)
+**Schema Reference:** [calcination_final_temperature](./elements/slots/calcination_final_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -2725,14 +2819,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
+**CURIE:** [`VOC4CAT:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
-**Schema Reference:** [calcination_dwelling_time](./elements/calcination_dwelling_time.md)
+**Schema Reference:** [calcination_dwelling_time](./elements/slots/calcination_dwelling_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -2746,12 +2840,12 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -2765,12 +2859,12 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
+**CURIE:** [`VOC4CAT:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
-**Schema Reference:** [calcination_gaseous_environment](./elements/calcination_gaseous_environment.md)
+**Schema Reference:** [calcination_gaseous_environment](./elements/slots/calcination_gaseous_environment.md)
-
+
💡 Submit Term Feedback
@@ -2784,14 +2878,14 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
+**CURIE:** [`VOC4CAT:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
-**Schema Reference:** [calcination_heating_rate](./elements/calcination_heating_rate.md)
+**Schema Reference:** [calcination_heating_rate](./elements/slots/calcination_heating_rate.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -2805,20 +2899,20 @@ reactions via acoustic cavitation.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
+**CURIE:** [`VOC4CAT:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
-**Schema Reference:** [calcination_gas_flow_rate](./elements/calcination_gas_flow_rate.md)
+**Schema Reference:** [calcination_gas_flow_rate](./elements/slots/calcination_gas_flow_rate.md)
**Unit:** mL/min
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -2829,9 +2923,9 @@ reactions via acoustic cavitation.
**Description:** Catalyst preparation by flame spray pyrolysis (FSP): a liquid precursor
solution is atomised and combusted in a flame to produce nanoparticles.
-**CURIE:** [`voc4cat:0007031`](https://w3id.org/nfdi4cat/voc4cat_0007031)
+**CURIE:** [`VOC4CAT:0007031`](https://w3id.org/nfdi4cat/voc4cat_0007031)
-**Schema Reference:** [FlameSprayPyrolysis](./elements/FlameSprayPyrolysis.md)
+**Schema Reference:** [FlameSprayPyrolysis](./elements/classes/FlameSprayPyrolysis.md)
**Slots**
@@ -2844,12 +2938,12 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:flame_type`](https://w3id.org/nfdi4cat/catcore/flame_type)
+**CURIE:** [`coremeta4cat:flame_type`](https://w3id.org/nfdi4cat/coremeta4cat/flame_type)
-**Schema Reference:** [flame_type](./elements/flame_type.md)
+**Schema Reference:** [flame_type](./elements/slots/flame_type.md)
-
+
💡 Submit Term Feedback
@@ -2863,14 +2957,14 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:flow_rate`](https://w3id.org/nfdi4cat/catcore/flow_rate)
+**CURIE:** [`coremeta4cat:flow_rate`](https://w3id.org/nfdi4cat/coremeta4cat/flow_rate)
-**Schema Reference:** [flow_rate](./elements/flow_rate.md)
+**Schema Reference:** [flow_rate](./elements/slots/flow_rate.md)
**Unit:** mL/min
-
+
💡 Submit Term Feedback
@@ -2884,12 +2978,12 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:inlet_system`](https://w3id.org/nfdi4cat/catcore/inlet_system)
+**CURIE:** [`coremeta4cat:inlet_system`](https://w3id.org/nfdi4cat/coremeta4cat/inlet_system)
-**Schema Reference:** [inlet_system](./elements/inlet_system.md)
+**Schema Reference:** [inlet_system](./elements/slots/inlet_system.md)
-
+
💡 Submit Term Feedback
@@ -2903,12 +2997,12 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:flame_ring`](https://w3id.org/nfdi4cat/catcore/flame_ring)
+**CURIE:** [`coremeta4cat:flame_ring`](https://w3id.org/nfdi4cat/coremeta4cat/flame_ring)
-**Schema Reference:** [flame_ring](./elements/flame_ring.md)
+**Schema Reference:** [flame_ring](./elements/slots/flame_ring.md)
-
+
💡 Submit Term Feedback
@@ -2922,12 +3016,12 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:dispersant`](https://w3id.org/nfdi4cat/catcore/dispersant)
+**CURIE:** [`coremeta4cat:dispersant`](https://w3id.org/nfdi4cat/coremeta4cat/dispersant)
-**Schema Reference:** [dispersant](./elements/dispersant.md)
+**Schema Reference:** [dispersant](./elements/slots/dispersant.md)
-
+
💡 Submit Term Feedback
@@ -2941,14 +3035,14 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:capillary_pressure`](https://w3id.org/nfdi4cat/catcore/capillary_pressure)
+**CURIE:** [`coremeta4cat:capillary_pressure`](https://w3id.org/nfdi4cat/coremeta4cat/capillary_pressure)
-**Schema Reference:** [capillary_pressure](./elements/capillary_pressure.md)
+**Schema Reference:** [capillary_pressure](./elements/slots/capillary_pressure.md)
**Unit:** bar
-
+
💡 Submit Term Feedback
@@ -2962,12 +3056,12 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:fuel_dispersant_ratio`](https://w3id.org/nfdi4cat/catcore/fuel_dispersant_ratio)
+**CURIE:** [`coremeta4cat:fuel_dispersant_ratio`](https://w3id.org/nfdi4cat/coremeta4cat/fuel_dispersant_ratio)
-**Schema Reference:** [fuel_dispersant_ratio](./elements/fuel_dispersant_ratio.md)
+**Schema Reference:** [fuel_dispersant_ratio](./elements/slots/fuel_dispersant_ratio.md)
-
+
💡 Submit Term Feedback
@@ -2981,12 +3075,12 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filtration_device`](https://w3id.org/nfdi4cat/catcore/filtration_device)
+**CURIE:** [`coremeta4cat:filtration_device`](https://w3id.org/nfdi4cat/coremeta4cat/filtration_device)
-**Schema Reference:** [filtration_device](./elements/filtration_device.md)
+**Schema Reference:** [filtration_device](./elements/slots/filtration_device.md)
-
+
💡 Submit Term Feedback
@@ -3000,18 +3094,18 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filter_type`](https://w3id.org/nfdi4cat/catcore/filter_type)
+**CURIE:** [`coremeta4cat:filter_type`](https://w3id.org/nfdi4cat/coremeta4cat/filter_type)
-**Schema Reference:** [filter_type](./elements/filter_type.md)
+**Schema Reference:** [filter_type](./elements/slots/filter_type.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -3022,9 +3116,9 @@ solution is atomised and combusted in a flame to produce nanoparticles.
**Description:** Catalyst preparation by mechanical milling or grinding, optionally
combined with thermal treatment.
-**CURIE:** [`catcore:MechanochemicalSynthesis`](https://w3id.org/nfdi4cat/catcore/MechanochemicalSynthesis)
+**CURIE:** [`coremeta4cat:MechanochemicalSynthesis`](https://w3id.org/nfdi4cat/coremeta4cat/MechanochemicalSynthesis)
-**Schema Reference:** [MechanochemicalSynthesis](./elements/MechanochemicalSynthesis.md)
+**Schema Reference:** [MechanochemicalSynthesis](./elements/classes/MechanochemicalSynthesis.md)
**Slots**
@@ -3037,14 +3131,14 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_volume`](https://w3id.org/nfdi4cat/catcore/vessel_volume)
+**CURIE:** [`coremeta4cat:vessel_volume`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_volume)
-**Schema Reference:** [vessel_volume](./elements/vessel_volume.md)
+**Schema Reference:** [vessel_volume](./elements/slots/vessel_volume.md)
**Unit:** mL
-
+
💡 Submit Term Feedback
@@ -3058,12 +3152,12 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:size_and_material`](https://w3id.org/nfdi4cat/catcore/size_and_material)
+**CURIE:** [`coremeta4cat:size_and_material`](https://w3id.org/nfdi4cat/coremeta4cat/size_and_material)
-**Schema Reference:** [size_and_material](./elements/size_and_material.md)
+**Schema Reference:** [size_and_material](./elements/slots/size_and_material.md)
-
+
💡 Submit Term Feedback
@@ -3077,14 +3171,14 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:milling_speed`](https://w3id.org/nfdi4cat/catcore/milling_speed)
+**CURIE:** [`coremeta4cat:milling_speed`](https://w3id.org/nfdi4cat/coremeta4cat/milling_speed)
-**Schema Reference:** [milling_speed](./elements/milling_speed.md)
+**Schema Reference:** [milling_speed](./elements/slots/milling_speed.md)
**Unit:** rpm
-
+
💡 Submit Term Feedback
@@ -3098,14 +3192,14 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:milling_duration`](https://w3id.org/nfdi4cat/catcore/milling_duration)
+**CURIE:** [`coremeta4cat:milling_duration`](https://w3id.org/nfdi4cat/coremeta4cat/milling_duration)
-**Schema Reference:** [milling_duration](./elements/milling_duration.md)
+**Schema Reference:** [milling_duration](./elements/slots/milling_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3119,12 +3213,12 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ball_material`](https://w3id.org/nfdi4cat/catcore/ball_material)
+**CURIE:** [`coremeta4cat:ball_material`](https://w3id.org/nfdi4cat/coremeta4cat/ball_material)
-**Schema Reference:** [ball_material](./elements/ball_material.md)
+**Schema Reference:** [ball_material](./elements/slots/ball_material.md)
-
+
💡 Submit Term Feedback
@@ -3138,14 +3232,14 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ball_size`](https://w3id.org/nfdi4cat/catcore/ball_size)
+**CURIE:** [`coremeta4cat:ball_size`](https://w3id.org/nfdi4cat/coremeta4cat/ball_size)
-**Schema Reference:** [ball_size](./elements/ball_size.md)
+**Schema Reference:** [ball_size](./elements/slots/ball_size.md)
**Unit:** mm
-
+
💡 Submit Term Feedback
@@ -3159,12 +3253,12 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:ball_to_powder_ratio`](https://w3id.org/nfdi4cat/catcore/ball_to_powder_ratio)
+**CURIE:** [`coremeta4cat:ball_to_powder_ratio`](https://w3id.org/nfdi4cat/coremeta4cat/ball_to_powder_ratio)
-**Schema Reference:** [ball_to_powder_ratio](./elements/ball_to_powder_ratio.md)
+**Schema Reference:** [ball_to_powder_ratio](./elements/slots/ball_to_powder_ratio.md)
-
+
💡 Submit Term Feedback
@@ -3178,14 +3272,14 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
+**CURIE:** [`VOC4CAT:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
-**Schema Reference:** [synthesis_temperature](./elements/synthesis_temperature.md)
+**Schema Reference:** [synthesis_temperature](./elements/slots/synthesis_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -3199,14 +3293,14 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
+**CURIE:** [`VOC4CAT:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
-**Schema Reference:** [synthesis_duration](./elements/synthesis_duration.md)
+**Schema Reference:** [synthesis_duration](./elements/slots/synthesis_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3220,12 +3314,12 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
+**CURIE:** [`VOC4CAT:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
-**Schema Reference:** [equipment](./elements/equipment.md)
+**Schema Reference:** [equipment](./elements/slots/equipment.md)
-
+
💡 Submit Term Feedback
@@ -3239,12 +3333,12 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_type`](https://w3id.org/nfdi4cat/catcore/vessel_type)
+**CURIE:** [`coremeta4cat:vessel_type`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_type)
-**Schema Reference:** [vessel_type](./elements/vessel_type.md)
+**Schema Reference:** [vessel_type](./elements/slots/vessel_type.md)
-
+
💡 Submit Term Feedback
@@ -3258,18 +3352,18 @@ combined with thermal treatment.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -3280,9 +3374,9 @@ combined with thermal treatment.
**Description:** Catalyst preparation by sublimation: a solid precursor is vaporised
and deposited onto a substrate without passing through a liquid phase.
-**CURIE:** [`catcore:Sublimation`](https://w3id.org/nfdi4cat/catcore/Sublimation)
+**CURIE:** [`coremeta4cat:Sublimation`](https://w3id.org/nfdi4cat/coremeta4cat/Sublimation)
-**Schema Reference:** [Sublimation](./elements/Sublimation.md)
+**Schema Reference:** [Sublimation](./elements/classes/Sublimation.md)
**Slots**
@@ -3295,14 +3389,14 @@ and deposited onto a substrate without passing through a liquid phase.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000053`](https://w3id.org/nfdi4cat/voc4cat_0000053)
+**CURIE:** [`VOC4CAT:0000053`](https://w3id.org/nfdi4cat/voc4cat_0000053)
-**Schema Reference:** [synthesis_pressure](./elements/synthesis_pressure.md)
+**Schema Reference:** [synthesis_pressure](./elements/slots/synthesis_pressure.md)
**Unit:** bar
-
+
💡 Submit Term Feedback
@@ -3316,14 +3410,14 @@ and deposited onto a substrate without passing through a liquid phase.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
+**CURIE:** [`VOC4CAT:0000051`](https://w3id.org/nfdi4cat/voc4cat_0000051)
-**Schema Reference:** [synthesis_temperature](./elements/synthesis_temperature.md)
+**Schema Reference:** [synthesis_temperature](./elements/slots/synthesis_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -3337,14 +3431,14 @@ and deposited onto a substrate without passing through a liquid phase.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
+**CURIE:** [`VOC4CAT:0000050`](https://w3id.org/nfdi4cat/voc4cat_0000050)
-**Schema Reference:** [synthesis_duration](./elements/synthesis_duration.md)
+**Schema Reference:** [synthesis_duration](./elements/slots/synthesis_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3358,12 +3452,12 @@ and deposited onto a substrate without passing through a liquid phase.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
+**CURIE:** [`VOC4CAT:0000187`](https://w3id.org/nfdi4cat/voc4cat_0000187)
-**Schema Reference:** [equipment](./elements/equipment.md)
+**Schema Reference:** [equipment](./elements/slots/equipment.md)
-
+
💡 Submit Term Feedback
@@ -3377,12 +3471,12 @@ and deposited onto a substrate without passing through a liquid phase.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:vessel_type`](https://w3id.org/nfdi4cat/catcore/vessel_type)
+**CURIE:** [`coremeta4cat:vessel_type`](https://w3id.org/nfdi4cat/coremeta4cat/vessel_type)
-**Schema Reference:** [vessel_type](./elements/vessel_type.md)
+**Schema Reference:** [vessel_type](./elements/slots/vessel_type.md)
-
+
💡 Submit Term Feedback
@@ -3396,18 +3490,18 @@ and deposited onto a substrate without passing through a liquid phase.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -3418,9 +3512,9 @@ and deposited onto a substrate without passing through a liquid phase.
**Description:** Catalyst preparation by molecular (organometallic or coordination)
chemistry routes, including crystallisation and purification steps.
-**CURIE:** [`catcore:MolecularSynthesis`](https://w3id.org/nfdi4cat/catcore/MolecularSynthesis)
+**CURIE:** [`coremeta4cat:MolecularSynthesis`](https://w3id.org/nfdi4cat/coremeta4cat/MolecularSynthesis)
-**Schema Reference:** [MolecularSynthesis](./elements/MolecularSynthesis.md)
+**Schema Reference:** [MolecularSynthesis](./elements/classes/MolecularSynthesis.md)
**Slots**
@@ -3433,12 +3527,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:reaction_vessel`](https://w3id.org/nfdi4cat/catcore/reaction_vessel)
+**CURIE:** [`coremeta4cat:reaction_vessel`](https://w3id.org/nfdi4cat/coremeta4cat/reaction_vessel)
-**Schema Reference:** [reaction_vessel](./elements/reaction_vessel.md)
+**Schema Reference:** [reaction_vessel](./elements/slots/reaction_vessel.md)
-
+
💡 Submit Term Feedback
@@ -3452,12 +3546,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_device`](https://w3id.org/nfdi4cat/catcore/mixing_device)
+**CURIE:** [`coremeta4cat:mixing_device`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_device)
-**Schema Reference:** [mixing_device](./elements/mixing_device.md)
+**Schema Reference:** [mixing_device](./elements/slots/mixing_device.md)
-
+
💡 Submit Term Feedback
@@ -3471,14 +3565,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:stirring_duration`](https://w3id.org/nfdi4cat/catcore/stirring_duration)
+**CURIE:** [`coremeta4cat:stirring_duration`](https://w3id.org/nfdi4cat/coremeta4cat/stirring_duration)
-**Schema Reference:** [stirring_duration](./elements/stirring_duration.md)
+**Schema Reference:** [stirring_duration](./elements/slots/stirring_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3492,14 +3586,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:stirring_speed`](https://w3id.org/nfdi4cat/catcore/stirring_speed)
+**CURIE:** [`coremeta4cat:stirring_speed`](https://w3id.org/nfdi4cat/coremeta4cat/stirring_speed)
-**Schema Reference:** [stirring_speed](./elements/stirring_speed.md)
+**Schema Reference:** [stirring_speed](./elements/slots/stirring_speed.md)
**Unit:** rpm
-
+
💡 Submit Term Feedback
@@ -3513,14 +3607,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:mixing_temperature`](https://w3id.org/nfdi4cat/catcore/mixing_temperature)
+**CURIE:** [`coremeta4cat:mixing_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/mixing_temperature)
-**Schema Reference:** [mixing_temperature](./elements/mixing_temperature.md)
+**Schema Reference:** [mixing_temperature](./elements/slots/mixing_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -3534,12 +3628,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filtration_device`](https://w3id.org/nfdi4cat/catcore/filtration_device)
+**CURIE:** [`coremeta4cat:filtration_device`](https://w3id.org/nfdi4cat/coremeta4cat/filtration_device)
-**Schema Reference:** [filtration_device](./elements/filtration_device.md)
+**Schema Reference:** [filtration_device](./elements/slots/filtration_device.md)
-
+
💡 Submit Term Feedback
@@ -3553,12 +3647,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:filter_type`](https://w3id.org/nfdi4cat/catcore/filter_type)
+**CURIE:** [`coremeta4cat:filter_type`](https://w3id.org/nfdi4cat/coremeta4cat/filter_type)
-**Schema Reference:** [filter_type](./elements/filter_type.md)
+**Schema Reference:** [filter_type](./elements/slots/filter_type.md)
-
+
💡 Submit Term Feedback
@@ -3572,12 +3666,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:crystallisation_solvents`](https://w3id.org/nfdi4cat/catcore/crystallisation_solvents)
+**CURIE:** [`coremeta4cat:crystallisation_solvents`](https://w3id.org/nfdi4cat/coremeta4cat/crystallisation_solvents)
-**Schema Reference:** [crystallisation_solvents](./elements/crystallisation_solvents.md)
+**Schema Reference:** [crystallisation_solvents](./elements/slots/crystallisation_solvents.md)
-
+
💡 Submit Term Feedback
@@ -3591,12 +3685,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:precipitation_agent`](https://w3id.org/nfdi4cat/catcore/precipitation_agent)
+**CURIE:** [`coremeta4cat:precipitation_agent`](https://w3id.org/nfdi4cat/coremeta4cat/precipitation_agent)
-**Schema Reference:** [precipitation_agent](./elements/precipitation_agent.md)
+**Schema Reference:** [precipitation_agent](./elements/slots/precipitation_agent.md)
-
+
💡 Submit Term Feedback
@@ -3610,14 +3704,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:crystallisation_duration`](https://w3id.org/nfdi4cat/catcore/crystallisation_duration)
+**CURIE:** [`coremeta4cat:crystallisation_duration`](https://w3id.org/nfdi4cat/coremeta4cat/crystallisation_duration)
-**Schema Reference:** [crystallisation_duration](./elements/crystallisation_duration.md)
+**Schema Reference:** [crystallisation_duration](./elements/slots/crystallisation_duration.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3631,12 +3725,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:purification_solvent`](https://w3id.org/nfdi4cat/catcore/purification_solvent)
+**CURIE:** [`coremeta4cat:purification_solvent`](https://w3id.org/nfdi4cat/coremeta4cat/purification_solvent)
-**Schema Reference:** [purification_solvent](./elements/purification_solvent.md)
+**Schema Reference:** [purification_solvent](./elements/slots/purification_solvent.md)
-
+
💡 Submit Term Feedback
@@ -3650,12 +3744,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -3669,14 +3763,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:temperature_ramp`](https://w3id.org/nfdi4cat/catcore/temperature_ramp)
+**CURIE:** [`coremeta4cat:temperature_ramp`](https://w3id.org/nfdi4cat/coremeta4cat/temperature_ramp)
-**Schema Reference:** [temperature_ramp](./elements/temperature_ramp.md)
+**Schema Reference:** [temperature_ramp](./elements/slots/temperature_ramp.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -3690,12 +3784,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:atmosphere`](https://w3id.org/nfdi4cat/catcore/atmosphere)
+**CURIE:** [`coremeta4cat:atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/atmosphere)
-**Schema Reference:** [atmosphere](./elements/atmosphere.md)
+**Schema Reference:** [atmosphere](./elements/slots/atmosphere.md)
-
+
💡 Submit Term Feedback
@@ -3709,12 +3803,12 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_device`](https://w3id.org/nfdi4cat/catcore/drying_device)
+**CURIE:** [`coremeta4cat:drying_device`](https://w3id.org/nfdi4cat/coremeta4cat/drying_device)
-**Schema Reference:** [drying_device](./elements/drying_device.md)
+**Schema Reference:** [drying_device](./elements/slots/drying_device.md)
-
+
💡 Submit Term Feedback
@@ -3728,14 +3822,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_temperature`](https://w3id.org/nfdi4cat/catcore/drying_temperature)
+**CURIE:** [`coremeta4cat:drying_temperature`](https://w3id.org/nfdi4cat/coremeta4cat/drying_temperature)
-**Schema Reference:** [drying_temperature](./elements/drying_temperature.md)
+**Schema Reference:** [drying_temperature](./elements/slots/drying_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -3749,14 +3843,14 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_time`](https://w3id.org/nfdi4cat/catcore/drying_time)
+**CURIE:** [`coremeta4cat:drying_time`](https://w3id.org/nfdi4cat/coremeta4cat/drying_time)
-**Schema Reference:** [drying_time](./elements/drying_time.md)
+**Schema Reference:** [drying_time](./elements/slots/drying_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3770,18 +3864,18 @@ chemistry routes, including crystallisation and purification steps.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:drying_atmosphere`](https://w3id.org/nfdi4cat/catcore/drying_atmosphere)
+**CURIE:** [`coremeta4cat:drying_atmosphere`](https://w3id.org/nfdi4cat/coremeta4cat/drying_atmosphere)
-**Schema Reference:** [drying_atmosphere](./elements/drying_atmosphere.md)
+**Schema Reference:** [drying_atmosphere](./elements/slots/drying_atmosphere.md)
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
@@ -3792,9 +3886,9 @@ chemistry routes, including crystallisation and purification steps.
**Description:** Catalyst preparation by exsolution: metal nanoparticles are grown on
a perovskite oxide surface by reduction/oxidation cycling.
-**CURIE:** [`catcore:ExsolutionSynthesis`](https://w3id.org/nfdi4cat/catcore/ExsolutionSynthesis)
+**CURIE:** [`coremeta4cat:ExsolutionSynthesis`](https://w3id.org/nfdi4cat/coremeta4cat/ExsolutionSynthesis)
-**Schema Reference:** [ExsolutionSynthesis](./elements/ExsolutionSynthesis.md)
+**Schema Reference:** [ExsolutionSynthesis](./elements/classes/ExsolutionSynthesis.md)
**Slots**
@@ -3807,14 +3901,14 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
+**CURIE:** [`VOC4CAT:0000057`](https://w3id.org/nfdi4cat/voc4cat_0000057)
-**Schema Reference:** [calcination_initial_temperature](./elements/calcination_initial_temperature.md)
+**Schema Reference:** [calcination_initial_temperature](./elements/slots/calcination_initial_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -3828,14 +3922,14 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
+**CURIE:** [`VOC4CAT:0000058`](https://w3id.org/nfdi4cat/voc4cat_0000058)
-**Schema Reference:** [calcination_final_temperature](./elements/calcination_final_temperature.md)
+**Schema Reference:** [calcination_final_temperature](./elements/slots/calcination_final_temperature.md)
**Unit:** Cel
-
+
💡 Submit Term Feedback
@@ -3849,14 +3943,14 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
+**CURIE:** [`VOC4CAT:0000060`](https://w3id.org/nfdi4cat/voc4cat_0000060)
-**Schema Reference:** [calcination_dwelling_time](./elements/calcination_dwelling_time.md)
+**Schema Reference:** [calcination_dwelling_time](./elements/slots/calcination_dwelling_time.md)
**Unit:** h
-
+
💡 Submit Term Feedback
@@ -3870,12 +3964,12 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`catcore:number_of_cycles`](https://w3id.org/nfdi4cat/catcore/number_of_cycles)
+**CURIE:** [`coremeta4cat:number_of_cycles`](https://w3id.org/nfdi4cat/coremeta4cat/number_of_cycles)
-**Schema Reference:** [number_of_cycles](./elements/number_of_cycles.md)
+**Schema Reference:** [number_of_cycles](./elements/slots/number_of_cycles.md)
-
+
💡 Submit Term Feedback
@@ -3889,12 +3983,12 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
+**CURIE:** [`VOC4CAT:0000055`](https://w3id.org/nfdi4cat/voc4cat_0000055)
-**Schema Reference:** [calcination_gaseous_environment](./elements/calcination_gaseous_environment.md)
+**Schema Reference:** [calcination_gaseous_environment](./elements/slots/calcination_gaseous_environment.md)
-
+
💡 Submit Term Feedback
@@ -3908,14 +4002,14 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
+**CURIE:** [`VOC4CAT:0000059`](https://w3id.org/nfdi4cat/voc4cat_0000059)
-**Schema Reference:** [calcination_heating_rate](./elements/calcination_heating_rate.md)
+**Schema Reference:** [calcination_heating_rate](./elements/slots/calcination_heating_rate.md)
**Unit:** Cel/min
-
+
💡 Submit Term Feedback
@@ -3929,120 +4023,26 @@ a perovskite oxide surface by reduction/oxidation cycling.
**Cardinality:** Optional, Multivalued
-**CURIE:** [`voc4cat:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
+**CURIE:** [`VOC4CAT:0000056`](https://w3id.org/nfdi4cat/voc4cat_0000056)
-**Schema Reference:** [calcination_gas_flow_rate](./elements/calcination_gas_flow_rate.md)
+**Schema Reference:** [calcination_gas_flow_rate](./elements/slots/calcination_gas_flow_rate.md)
**Unit:** mL/min
-
- 💡 Submit Term Feedback
-
-
-
-
-
- 💡 Submit Term Feedback
-
-
-
-
-
- 💡 Submit Term Feedback
-
-
-
-
-had output entity (Recommended, Multivalued)
-
-**Description:** The CatalystSample produced by this Synthesis.
-
-**Data Type:** CatalystSample
-
-**Cardinality:** Recommended, Multivalued
-
-**Schema Reference:** [had_output_entity](./elements/had_output_entity.md)
-
-**Data Type Class Details:**
-
-
-CatalystSample
-
-**Description:** A MaterialSample that is the product of a catalyst Synthesis.
-The specific type of catalyst (e.g. heterogeneous, supported metal)
-is expressed via rdf_type using a voc4cat term.
-
-**CURIE:** [`OBI:0000747`](http://purl.obolibrary.org/obo/OBI_0000747)
-
-**Schema Reference:** [CatalystSample](./elements/CatalystSample.md)
-
-
-
- 💡 Submit Term Feedback
-
-
-
-
-
- 💡 Submit Term Feedback
-
-
-
-
-had input entity (Required, Multivalued)
-
-**Description:** The Precursor(s) consumed during this Synthesis.
-
-**Data Type:** Precursor
-
-**Cardinality:** Required, Multivalued
-
-**Schema Reference:** [had_input_entity](./elements/had_input_entity.md)
-
-**Data Type Class Details:**
-
-
-Precursor
-
-**Description:** A MaterialSample that serves as input material in a catalyst Synthesis.
-Precursors are consumed or transformed during the preparation process.
-
-**CURIE:** [`CHEBI:52717`](http://purl.obolibrary.org/obo/CHEBI_52717)
-
-**Schema Reference:** [Precursor](./elements/Precursor.md)
-
-**Slots**
-
-
-precursor quantity (Required, Multivalued)
-
-**Description:** Quantity of precursor used in synthesis.
-
-**Data Type:** float
-
-**Cardinality:** Required, Multivalued
-
-**CURIE:** [`catcore:precursor_quantity`](https://w3id.org/nfdi4cat/catcore/precursor_quantity)
-
-**Schema Reference:** [precursor_quantity](./elements/precursor_quantity.md)
-
-**Unit:** g
-
-
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
-
+
💡 Submit Term Feedback
diff --git a/mkdocs.yml b/mkdocs.yml
index 68b40cbcc..1fd3da74e 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -12,7 +12,7 @@ theme:
- navigation.instant
- navigation.instant.progress
- navigation.tracking
-logo: /CoreMeta4Cat/images/CoreMeta4Cat_Picture.png
+ logo: /CoreMeta4Cat/images/CoreMeta4Cat_Picture.png
# for adding extra css/js see https://www.mkdocs.org/user-guide/customizing-your-theme/
@@ -28,7 +28,7 @@ plugins:
# - gen_pages.py # or any other name or path
watch:
- - src/catcore/schema
+ - src/coremeta4cat/schema
nav:
- Home: index.md
@@ -47,14 +47,14 @@ nav:
- Characterization: characterization.md
- Synthesis: synthesis.md
- Simulation: simulation.md
- - Schema: elements/index.md
+ - Schema: elements/overview.md
- About: about.md
exclude_docs: |
/templates-linkml/
extra_css:
- - stylesheets/no-details-box.css
+ - stylesheets//no-details-box.css
site_url: https://HendrikBorgelt.github.io/CoreMeta4Cat
repo_url: https://github.com/HendrikBorgelt/CoreMeta4Cat
@@ -73,3 +73,9 @@ markdown_extensions:
- pymdownx.emoji:
emoji_index: !!python/name:material.extensions.emoji.twemoji
emoji_generator: !!python/name:material.extensions.emoji.to_svg
+ - pymdownx.superfences:
+ # make exceptions to highlighting of code:
+ custom_fences:
+ - name: mermaid
+ class: mermaid
+ format: !!python/name:mermaid2.fence_mermaid_custom
diff --git a/pyproject.toml b/pyproject.toml
index e076ced17..2fde64898 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -3,7 +3,7 @@ requires = ["hatchling", "uv-dynamic-versioning"]
build-backend = "hatchling.build"
[project]
-name = "catcore"
+name = "coremeta4cat"
description = "A metadata collection for catalysis related research"
authors = [
{name = "Hendrik Borgelt", email = "hendrik.borgelt@tu-dortmund.de"},
@@ -22,7 +22,7 @@ dependencies = [
dev = [
"linkml>=1.9.3",
"mkdocs-material>=8.2.8",
- "mkdocs-mermaid2-plugin>=1.1.1",
+ "mkdocs-mermaid2-plugin>=1.2.3",
"jupyter>=1.0.0",
"mknotebooks>= 0.8.0",
]
@@ -50,8 +50,8 @@ skip = [
"pyproject.toml",
"uv.lock",
"project/*",
- "src/catcore/datamodel/catcore_pydantic.py",
- "src/catcore/datamodel/catcore.py",
+ "src/coremeta4cat/datamodel/coremeta4cat_pydantic.py",
+ "src/coremeta4cat/datamodel/coremeta4cat.py",
]
# Reminder: words have to be lowercased for the ignore-words-list
@@ -67,6 +67,6 @@ extend-exclude = [
"uv.lock",
"pyproject.toml",
"project/*",
- "src/catcore/datamodel/catcore_pydantic.py",
- "src/catcore/datamodel/catcore.py",
+ "src/coremeta4cat/datamodel/coremeta4cat_pydantic.py",
+ "src/coremeta4cat/datamodel/coremeta4cat.py",
]
diff --git a/2025-08-21_generate_metadata_collapsed.py b/scripts/2025-08-21_generate_metadata_collapsed.py
similarity index 100%
rename from 2025-08-21_generate_metadata_collapsed.py
rename to scripts/2025-08-21_generate_metadata_collapsed.py
diff --git a/catcore_converter(3).py b/scripts/catcore_converter.py
similarity index 95%
rename from catcore_converter(3).py
rename to scripts/catcore_converter.py
index cfde8acb4..2e1a3a625 100644
--- a/catcore_converter(3).py
+++ b/scripts/catcore_converter.py
@@ -2,15 +2,15 @@
from pathlib import Path
from typing import List, Set, Optional
-# catcore.yaml is loaded FIRST so its generic stubs (range: Plan, range: AgenticEntity)
+# coremeta4cat.yaml is loaded FIRST so its generic stubs (range: Plan, range: AgenticEntity)
# are overwritten by the specific ranges in the subprofile modules.
MODULE_FILES = [
- "catcore.yaml", # load first: generic stubs get overwritten by subprofiles
- "catcore_common.yaml",
- "catcore_synthesis_ap.yaml",
- "catcore_characterization_ap.yaml",
- "catcore_reaction_ap.yaml",
- "catcore_simulation_ap.yaml",
+ "coremeta4cat.yaml", # load first: generic stubs get overwritten by subprofiles
+ "coremeta4cat_common.yaml",
+ "coremeta4cat_synthesis_ap.yaml",
+ "coremeta4cat_characterization_ap.yaml",
+ "coremeta4cat_reaction_ap.yaml",
+ "coremeta4cat_simulation_ap.yaml",
]
@@ -31,7 +31,7 @@ def merge_schemas(modules: List[dict]) -> dict:
"""
Merge all module dicts into one flat schema.
Later modules win on key collision, so subprofile modules (loaded last)
- correctly override the generic stubs in catcore.yaml (loaded first).
+ correctly override the generic stubs in coremeta4cat.yaml (loaded first).
"""
merged: dict = {"prefixes": {}, "classes": {}, "slots": {}, "enums": {}}
@@ -201,7 +201,7 @@ def get_slot_cardinality(schema: dict, class_name: str,
required = usage.get("required", slot_details.get("required", False))
recommended = usage.get("recommended", slot_details.get("recommended", False))
multivalued = usage.get("multivalued", slot_details.get("multivalued", False))
- parts = ["Required" if required else ("Recommended" if recommended else "Optional")]
+ parts = ["Mandatory" if required else ("Recommended" if recommended else "Optional")]
if multivalued:
parts.append("Multivalued")
return ", ".join(parts)
@@ -233,7 +233,7 @@ def format_class_markdown(schema: dict, class_name: str, level: int = 3,
md += f"**Description:** {description}\n\n"
if class_uri:
md += f"**CURIE:** [`{class_uri}`]({expand_curie(schema, class_uri)})\n\n"
- md += f"**Schema Reference:** [{class_name}](./elements/{class_name}.md)\n\n"
+ md += f"**Schema Reference:** [{class_name}](./elements/classes/{class_name}.md)\n\n"
slots = get_all_class_slots(schema, class_name)
if slots:
@@ -243,7 +243,7 @@ def format_class_markdown(schema: dict, class_name: str, level: int = 3,
md += format_slot_markdown(schema, slot_name, slot_details, level + 2,
processed_classes.copy(), class_name)
- md += (f"
\n \n \n'
f" 💡 Submit Term Feedback\n \n
")
@@ -275,7 +275,7 @@ def format_slot_markdown(schema: dict, slot_name: str, slot_details: dict,
md += f"**Cardinality:** {striped}\n\n"
if slot_uri:
md += f"**CURIE:** [`{slot_uri}`]({expand_curie(schema, slot_uri)})\n\n"
- md += f"**Schema Reference:** [{slot_name}](./elements/{slot_name}.md)\n\n"
+ md += f"**Schema Reference:** [{slot_name}](./elements/slots/{slot_name}.md)\n\n"
if unit and unit.get("ucum_code"):
md += f"**Unit:** {unit['ucum_code']}\n\n"
@@ -291,7 +291,7 @@ def format_slot_markdown(schema: dict, slot_name: str, slot_details: dict,
md += format_class_markdown(schema, subclass, level + 1,
processed_classes, None)
- md += (f"
\n \n \n'
f" 💡 Submit Term Feedback\n \n
")
@@ -352,7 +352,7 @@ def generate_markdown_for_main_class(schema: dict, main_class: str, output_file:
if class_uri:
md += f"**CURIE:** [`{class_uri}`]({class_uri})\n\n"
- md += (f'
')
@@ -383,7 +383,7 @@ def generate_markdown_for_main_class(schema: dict, main_class: str, output_file:
# ─────────────────────────────────────────────────────────────────────────────
def main(schema_dir: str, output_dir: str = "."):
- print(f"\nLoading CatCore modules from: {schema_dir}")
+ print(f"\nLoading CoreMeta4Cat modules from: {schema_dir}")
schema = load_merged_schema(schema_dir)
output_path = Path(output_dir)
@@ -405,7 +405,7 @@ def main(schema_dir: str, output_dir: str = "."):
if __name__ == "__main__":
# ── Edit these two paths to match your local setup ──────────────────────
- schema_dir = "./src/catcore/schema"
- output_dir = "./docs"
+ schema_dir = "../src/coremeta4cat/schema"
+ output_dir = "../docs"
# ────────────────────────────────────────────────────────────────────────
main(schema_dir, output_dir)
diff --git a/src/catcore/__init__.py b/src/coremeta4cat/__init__.py
similarity index 100%
rename from src/catcore/__init__.py
rename to src/coremeta4cat/__init__.py
diff --git a/src/catcore/_version.py b/src/coremeta4cat/_version.py
similarity index 100%
rename from src/catcore/_version.py
rename to src/coremeta4cat/_version.py
diff --git a/src/catcore/datamodel/__init__.py b/src/coremeta4cat/datamodel/__init__.py
similarity index 100%
rename from src/catcore/datamodel/__init__.py
rename to src/coremeta4cat/datamodel/__init__.py
diff --git a/src/catcore/datamodel/catcore.py b/src/coremeta4cat/datamodel/catcore.py
similarity index 99%
rename from src/catcore/datamodel/catcore.py
rename to src/coremeta4cat/datamodel/catcore.py
index 51f940969..b0b656e3c 100644
--- a/src/catcore/datamodel/catcore.py
+++ b/src/coremeta4cat/datamodel/catcore.py
@@ -1,5 +1,5 @@
# Auto generated from catcore.yaml by pythongen.py version: 0.0.1
-# Generation date: 2026-03-04T22:31:48
+# Generation date: 2026-03-09T16:03:37
# Schema: catcore-metadata
#
# id: https://w3id.org/nfdi4cat/catcore
@@ -152,8 +152,7 @@
CHEMDCATAP = CurieNamespace('chemdcatap', 'https://nfdi-de.github.io/chem-dcat-ap/')
DCAT = CurieNamespace('dcat', 'http://www.w3.org/ns/dcat#')
DCATAP = CurieNamespace('dcatap', 'http://data.europa.eu/r5r/')
-DCATAP_PLUS = CurieNamespace('dcatap_plus', 'https://w3id.org/nfdi-de/dcat-ap-plus/')
-DCATAPPLUS = CurieNamespace('dcatapplus', 'https://nfdi-de.github.io/dcat-ap-plus/')
+DCATAPPLUS = CurieNamespace('dcatapplus', 'https://w3id.org/nfdi-de/dcat-ap-plus/')
DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/')
ELI = CurieNamespace('eli', 'http://data.europa.eu/eli/ontology#')
EPOS = CurieNamespace('epos', 'https://www.epos-eu.org/epos-dcat-ap#')
@@ -1334,8 +1333,8 @@ class ClassifierMixin(YAMLRoot):
"""
_inherited_slots: ClassVar[list[str]] = []
- class_class_uri: ClassVar[URIRef] = DCATAP_PLUS["ClassifierMixin"]
- class_class_curie: ClassVar[str] = "dcatap_plus:ClassifierMixin"
+ class_class_uri: ClassVar[URIRef] = DCATAPPLUS["ClassifierMixin"]
+ class_class_curie: ClassVar[str] = "dcatapplus:ClassifierMixin"
class_name: ClassVar[str] = "ClassifierMixin"
class_model_uri: ClassVar[URIRef] = CATCORE.ClassifierMixin
@@ -6546,8 +6545,8 @@ class SupportiveEntity(YAMLRoot):
"""
_inherited_slots: ClassVar[list[str]] = []
- class_class_uri: ClassVar[URIRef] = DCATAP_PLUS["SupportiveEntity"]
- class_class_curie: ClassVar[str] = "dcatap_plus:SupportiveEntity"
+ class_class_uri: ClassVar[URIRef] = DCATAPPLUS["SupportiveEntity"]
+ class_class_curie: ClassVar[str] = "dcatapplus:SupportiveEntity"
class_name: ClassVar[str] = "SupportiveEntity"
class_model_uri: ClassVar[URIRef] = CATCORE.SupportiveEntity
@@ -9606,7 +9605,7 @@ class slots:
slots.homepage = Slot(uri=FOAF.homepage, name="homepage", curie=FOAF.curie('homepage'),
model_uri=CATCORE.homepage, domain=None, range=Optional[str])
-slots.id = Slot(uri=DCATAP_PLUS.id, name="id", curie=DCATAP_PLUS.curie('id'),
+slots.id = Slot(uri=DCATAPPLUS.id, name="id", curie=DCATAPPLUS.curie('id'),
model_uri=CATCORE.id, domain=None, range=URIRef)
slots.identifier = Slot(uri=DCTERMS.identifier, name="identifier", curie=DCTERMS.curie('identifier'),
diff --git a/src/catcore/datamodel/catcore_pydantic.py b/src/coremeta4cat/datamodel/catcore_pydantic.py
similarity index 99%
rename from src/catcore/datamodel/catcore_pydantic.py
rename to src/coremeta4cat/datamodel/catcore_pydantic.py
index 40c936963..b4ae68cc4 100644
--- a/src/catcore/datamodel/catcore_pydantic.py
+++ b/src/coremeta4cat/datamodel/catcore_pydantic.py
@@ -199,7 +199,7 @@ def __contains__(self, key:str) -> bool:
'dcat': {'prefix_prefix': 'dcat',
'prefix_reference': 'http://www.w3.org/ns/dcat#'},
'dcatapplus': {'prefix_prefix': 'dcatapplus',
- 'prefix_reference': 'https://nfdi-de.github.io/dcat-ap-plus/'},
+ 'prefix_reference': 'https://w3id.org/nfdi-de/dcat-ap-plus/'},
'dcterms': {'prefix_prefix': 'dcterms',
'prefix_reference': 'http://purl.org/dc/terms/'},
'linkml': {'prefix_prefix': 'linkml',
diff --git a/src/coremeta4cat/datamodel/coremeta4cat.py b/src/coremeta4cat/datamodel/coremeta4cat.py
new file mode 100644
index 000000000..6d12f2006
--- /dev/null
+++ b/src/coremeta4cat/datamodel/coremeta4cat.py
@@ -0,0 +1,10446 @@
+# Auto generated from coremeta4cat.yaml by pythongen.py version: 0.0.1
+# Generation date: 2026-03-09T17:19:45
+# Schema: coremeta4cat-metadata
+#
+# id: https://w3id.org/nfdi4cat/coremeta4cat
+# description: The CoreMeta4Cat describes the minimum information which must be reported with research
+# data concerning the field of catalysis. This guideline helps to handle and
+# standardize data based on the FAIR principle (Findable, Accessible, Interoperable,
+# Reusable).
+#
+# Architecture
+# ------------
+# CoreMeta4Cat follows the DCAT-AP-PLUS design patterns (see design-patterns.md):
+#
+# - The entry point is the dcat:Dataset, extended here as CatalysisDataset.
+# The catalysis research field is expressed via rdf_type (ClassifierMixin,
+# Pattern 3) using voc4cat terms — analogous to how NMRSpectroscopy uses
+# rdf_type: CHMO:0000613 to classify the measurement type.
+#
+# - The four CoreMeta4Cat pillars are modelled as DCAT-AP-PLUS Activity subclasses,
+# following the same pattern as NMRSpectroscopy (is_a: DataGeneratingActivity):
+#
+# Synthesis --> is_a: DataGeneratingActivity
+# Produces a catalyst (MaterialSample) as had_output_entity.
+# The PreparationMethod (protocol) is linked via realized_plan.
+#
+# Characterization --> is_a: DataGeneratingActivity
+# Produces measurement data about a catalyst or reaction.
+# The catalyst/sample is the evaluated_entity.
+# The CharacterizationTechnique is linked via realized_plan.
+#
+# Reaction --> is_a: EvaluatedActivity
+# The catalytic process being studied, NOT a data-generating
+# activity itself. Characterization datasets are about this.
+# Analogous to the reaction being observed in a reaction
+# monitoring dataset.
+#
+# Simulation --> is_a: DataGeneratingActivity
+# Generates computational data about a catalyst or reaction.
+# The SimulationMethod (protocol) is linked via realized_plan.
+# The simulation software is carried_out_by: Software.
+#
+# - Catalyst samples and precursor materials are modelled as MaterialSample
+# (from material_entities_ap), which is an EvaluatedEntity.
+#
+# - Reactors and instruments are modelled as Device (from dcat_ap_plus), which
+# is an AgenticEntity carried_out_by the relevant Activity.
+#
+# - PreparationMethod, CharacterizationTechnique, and SimulationMethod are
+# modelled as Plan (from dcat_ap_plus), the protocol realized by the Activity.
+#
+# This file is the top-level aggregator. It imports coremeta4cat_common (shared
+# slots and enums) and the four subprofile modules.
+#
+# Full import hierarchy:
+# coremeta4cat.yaml (this file — aggregator + CatalysisDataset entry point)
+# +-- coremeta4cat_common.yaml (shared slots, enums)
+# +-- chem_dcat_ap (SubstanceSample, ChemicalSubstance, …)
+# +-- chemical_reaction_ap
+# +-- chemical_entities_ap
+# +-- material_entities_ap
+# +-- dcat_ap_plus (DCAT-AP-PLUS base)
+# +-- coremeta4cat_synthesis_ap (Step 3 — Synthesis, PreparationMethod, mixins)
+# +-- coremeta4cat_characterization_ap (Step 4 — Characterization, 24 techniques, mixins)
+# +-- coremeta4cat_reaction_ap (Step 5 — Reaction, 8 ReactorDesignTypes)
+# +-- coremeta4cat_simulation_ap (Step 6 — Simulation, 4 methods, 12 properties, mixins)
+# license: CC-BY-4.0
+
+import dataclasses
+import re
+from dataclasses import dataclass
+from datetime import (
+ date,
+ datetime,
+ time
+)
+from typing import (
+ Any,
+ ClassVar,
+ Dict,
+ List,
+ Optional,
+ Union
+)
+
+from jsonasobj2 import (
+ JsonObj,
+ as_dict
+)
+from linkml_runtime.linkml_model.meta import (
+ EnumDefinition,
+ PermissibleValue,
+ PvFormulaOptions
+)
+from linkml_runtime.utils.curienamespace import CurieNamespace
+from linkml_runtime.utils.enumerations import EnumDefinitionImpl
+from linkml_runtime.utils.formatutils import (
+ camelcase,
+ sfx,
+ underscore
+)
+from linkml_runtime.utils.metamodelcore import (
+ bnode,
+ empty_dict,
+ empty_list
+)
+from linkml_runtime.utils.slot import Slot
+from linkml_runtime.utils.yamlutils import (
+ YAMLRoot,
+ extended_float,
+ extended_int,
+ extended_str
+)
+from rdflib import (
+ Namespace,
+ URIRef
+)
+
+from linkml_runtime.linkml_model.types import Boolean, Date, Decimal, Float, Integer, String, Uriorcurie
+from linkml_runtime.utils.metamodelcore import Bool, Decimal, URIorCURIE, XSDDate
+
+metamodel_version = "1.7.0"
+version = "1.0.0"
+
+# Namespaces
+AFE = CurieNamespace('AFE', 'http://purl.allotrope.org/ontologies/equipment#AFE_')
+AFP = CurieNamespace('AFP', 'http://purl.allotrope.org/ontologies/process#AFP_')
+AFQ = CurieNamespace('AFQ', 'http://purl.allotrope.org/ontologies/quality#AFQ_')
+AFR = CurieNamespace('AFR', 'http://purl.allotrope.org/ontologies/result#AFR_')
+AFRL = CurieNamespace('AFRL', 'http://purl.allotrope.org/ontologies/role#AFRL_')
+AFX = CurieNamespace('AFX', 'http://purl.allotrope.org/ontologies/property#AFX_')
+APOLLO_SV = CurieNamespace('APOLLO_SV', 'http://purl.obolibrary.org/obo/APOLLO_SV_')
+BFO = CurieNamespace('BFO', 'http://purl.obolibrary.org/obo/BFO_')
+CHEBI = CurieNamespace('CHEBI', 'http://purl.obolibrary.org/obo/CHEBI_')
+CHEMINF = CurieNamespace('CHEMINF', 'http://semanticscience.org/resource/CHEMINF_')
+CHMO = CurieNamespace('CHMO', 'http://purl.obolibrary.org/obo/CHMO_')
+EDAM = CurieNamespace('EDAM', 'http://edamontology.org/data_')
+ENVO = CurieNamespace('ENVO', 'http://purl.obolibrary.org/obo/ENVO_')
+IAO = CurieNamespace('IAO', 'http://purl.obolibrary.org/obo/IAO_')
+MOP = CurieNamespace('MOP', 'http://purl.obolibrary.org/obo/MOP_')
+NCIT = CurieNamespace('NCIT', 'http://purl.obolibrary.org/obo/NCIT_')
+OBI = CurieNamespace('OBI', 'http://purl.obolibrary.org/obo/OBI_')
+PATO = CurieNamespace('PATO', 'http://purl.obolibrary.org/obo/PATO_')
+PROCO = CurieNamespace('PROCO', 'http://purl.obolibrary.org/obo/PROCO_')
+REX = CurieNamespace('REX', 'http://purl.obolibrary.org/obo/REX_')
+RO = CurieNamespace('RO', 'http://purl.obolibrary.org/obo/RO_')
+RXNO = CurieNamespace('RXNO', 'http://purl.obolibrary.org/obo/RXNO_')
+SIO = CurieNamespace('SIO', 'http://semanticscience.org/resource/SIO_')
+VOC4CAT = CurieNamespace('VOC4CAT', 'https://w3id.org/nfdi4cat/voc4cat_')
+ADMS = CurieNamespace('adms', 'http://www.w3.org/ns/adms#')
+CHEMDCATAP = CurieNamespace('chemdcatap', 'https://nfdi-de.github.io/chem-dcat-ap/')
+COREMETA4CAT = CurieNamespace('coremeta4cat', 'https://w3id.org/nfdi4cat/coremeta4cat/')
+DCAT = CurieNamespace('dcat', 'http://www.w3.org/ns/dcat#')
+DCATAP = CurieNamespace('dcatap', 'http://data.europa.eu/r5r/')
+DCATAPPLUS = CurieNamespace('dcatapplus', 'https://w3id.org/nfdi-de/dcat-ap-plus/')
+DCTERMS = CurieNamespace('dcterms', 'http://purl.org/dc/terms/')
+ELI = CurieNamespace('eli', 'http://data.europa.eu/eli/ontology#')
+EPOS = CurieNamespace('epos', 'https://www.epos-eu.org/epos-dcat-ap#')
+FOAF = CurieNamespace('foaf', 'http://xmlns.com/foaf/0.1/')
+LINKML = CurieNamespace('linkml', 'https://w3id.org/linkml/')
+LOCN = CurieNamespace('locn', 'http://www.w3.org/ns/locn#')
+MATERIAL_ENTITIES_AP = CurieNamespace('material_entities_ap', 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml#')
+ODRL = CurieNamespace('odrl', 'http://www.w3.org/ns/odrl/2/')
+PROV = CurieNamespace('prov', 'http://www.w3.org/ns/prov#')
+QUDT = CurieNamespace('qudt', 'http://qudt.org/schema/qudt/')
+RDF = CurieNamespace('rdf', 'http://www.w3.org/1999/02/22-rdf-syntax-ns#')
+RDFS = CurieNamespace('rdfs', 'http://www.w3.org/2000/01/rdf-schema#')
+SCHEMA = CurieNamespace('schema', 'http://schema.org/')
+SKOS = CurieNamespace('skos', 'http://www.w3.org/2004/02/skos/core#')
+SPDX = CurieNamespace('spdx', 'http://spdx.org/rdf/terms#')
+TIME = CurieNamespace('time', 'http://www.w3.org/2006/time#')
+VCARD = CurieNamespace('vcard', 'http://www.w3.org/2006/vcard/ns#')
+XSD = CurieNamespace('xsd', 'http://www.w3.org/2001/XMLSchema#')
+DEFAULT_ = COREMETA4CAT
+
+
+# Types
+class Duration(str):
+ """ The datatype that represents durations of time. """
+ type_class_uri = XSD["duration"]
+ type_class_curie = "xsd:duration"
+ type_name = "duration"
+ type_model_uri = COREMETA4CAT.Duration
+
+
+class HexBinary(str):
+ """ The datatype that represents arbitrary hex-encoded binary data. """
+ type_class_uri = XSD["hexBinary"]
+ type_class_curie = "xsd:hexBinary"
+ type_name = "hexBinary"
+ type_model_uri = COREMETA4CAT.HexBinary
+
+
+class NonNegativeInteger(int):
+ """ The datatype that represents non-negative integers. """
+ type_class_uri = XSD["nonNegativeInteger"]
+ type_class_curie = "xsd:nonNegativeInteger"
+ type_name = "nonNegativeInteger"
+ type_model_uri = COREMETA4CAT.NonNegativeInteger
+
+
+# Class references
+class ActivityId(URIorCURIE):
+ pass
+
+
+class AgenticEntityId(URIorCURIE):
+ pass
+
+
+class DataGeneratingActivityId(ActivityId):
+ pass
+
+
+class SynthesisId(DataGeneratingActivityId):
+ pass
+
+
+class CharacterizationId(DataGeneratingActivityId):
+ pass
+
+
+class SimulationId(DataGeneratingActivityId):
+ pass
+
+
+class DataAnalysisId(DataGeneratingActivityId):
+ pass
+
+
+class DatasetId(URIorCURIE):
+ pass
+
+
+class CatalysisDatasetId(DatasetId):
+ pass
+
+
+class AnalysisDatasetId(DatasetId):
+ pass
+
+
+class DefinedTermId(URIorCURIE):
+ pass
+
+
+class DeviceId(AgenticEntityId):
+ pass
+
+
+class ReactorDesignTypeId(DeviceId):
+ pass
+
+
+class ElectrochemicalReactorId(ReactorDesignTypeId):
+ pass
+
+
+class CSTRId(ReactorDesignTypeId):
+ pass
+
+
+class PlugFlowReactorId(ReactorDesignTypeId):
+ pass
+
+
+class AutoclaveId(ReactorDesignTypeId):
+ pass
+
+
+class SlurryReactorId(ReactorDesignTypeId):
+ pass
+
+
+class MicroreactorId(ReactorDesignTypeId):
+ pass
+
+
+class FixedBedReactorId(ReactorDesignTypeId):
+ pass
+
+
+class FluidizedBedReactorId(ReactorDesignTypeId):
+ pass
+
+
+class EntityId(URIorCURIE):
+ pass
+
+
+class EvaluatedActivityId(ActivityId):
+ pass
+
+
+class ReactionId(EvaluatedActivityId):
+ pass
+
+
+class EvaluatedEntityId(EntityId):
+ pass
+
+
+class AnalysisSourceDataId(EvaluatedEntityId):
+ pass
+
+
+class SoftwareId(AgenticEntityId):
+ pass
+
+
+class DocumentId(URIorCURIE):
+ pass
+
+
+class LegalResourceId(URIorCURIE):
+ pass
+
+
+class LicenseDocumentId(URIorCURIE):
+ pass
+
+
+class ResourceId(URIorCURIE):
+ pass
+
+
+class ChemicalReactionId(ActivityId):
+ pass
+
+
+class DissolvingSubstanceId(AgenticEntityId):
+ pass
+
+
+class CatalystId(AgenticEntityId):
+ pass
+
+
+class ReactorId(DeviceId):
+ pass
+
+
+class MaterialEntityId(EntityId):
+ pass
+
+
+class ChemicalEntityId(MaterialEntityId):
+ pass
+
+
+class AtomId(ChemicalEntityId):
+ pass
+
+
+class ChemicalSubstanceId(MaterialEntityId):
+ pass
+
+
+class PolymerId(ChemicalSubstanceId):
+ pass
+
+
+class StartingMaterialId(ChemicalSubstanceId):
+ pass
+
+
+class ReagentId(ChemicalSubstanceId):
+ pass
+
+
+class ChemicalProductId(ChemicalSubstanceId):
+ pass
+
+
+class MaterialSampleId(EvaluatedEntityId):
+ pass
+
+
+class PrecursorId(MaterialSampleId):
+ pass
+
+
+class CatalystSampleId(MaterialSampleId):
+ pass
+
+
+class SubstanceSampleId(MaterialSampleId):
+ pass
+
+
+class PolymerSampleId(SubstanceSampleId):
+ pass
+
+
+@dataclass(repr=False)
+class DryingMixin(YAMLRoot):
+ """
+ Mixin providing drying step parameters. Used by preparation methods that
+ include a drying step after synthesis or precipitation
+ (Impregnation, CoPrecipitation, DepositionPrecipitation,
+ SonochemicalSynthesis, MolecularSynthesis).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["DryingMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:DryingMixin"
+ class_name: ClassVar[str] = "DryingMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DryingMixin
+
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CalcinationMixin(YAMLRoot):
+ """
+ Mixin providing calcination step parameters. Used by preparation methods
+ that include a thermal calcination step
+ (Impregnation, CoPrecipitation, DepositionPrecipitation,
+ SonochemicalSynthesis, ExsolutionSynthesis).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["CalcinationMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:CalcinationMixin"
+ class_name: ClassVar[str] = "CalcinationMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CalcinationMixin
+
+ calcination_initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_dwelling_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ calcination_gaseous_environment: Optional[Union[str, list[str]]] = empty_list()
+ calcination_heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ calcination_gas_flow_rate: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.calcination_initial_temperature, list):
+ self.calcination_initial_temperature = [self.calcination_initial_temperature] if self.calcination_initial_temperature is not None else []
+ self.calcination_initial_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_initial_temperature]
+
+ if not isinstance(self.calcination_final_temperature, list):
+ self.calcination_final_temperature = [self.calcination_final_temperature] if self.calcination_final_temperature is not None else []
+ self.calcination_final_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_final_temperature]
+
+ if not isinstance(self.calcination_dwelling_time, list):
+ self.calcination_dwelling_time = [self.calcination_dwelling_time] if self.calcination_dwelling_time is not None else []
+ self.calcination_dwelling_time = [v if isinstance(v, float) else float(v) for v in self.calcination_dwelling_time]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.calcination_gaseous_environment, list):
+ self.calcination_gaseous_environment = [self.calcination_gaseous_environment] if self.calcination_gaseous_environment is not None else []
+ self.calcination_gaseous_environment = [v if isinstance(v, str) else str(v) for v in self.calcination_gaseous_environment]
+
+ if not isinstance(self.calcination_heating_rate, list):
+ self.calcination_heating_rate = [self.calcination_heating_rate] if self.calcination_heating_rate is not None else []
+ self.calcination_heating_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_heating_rate]
+
+ if not isinstance(self.calcination_gas_flow_rate, list):
+ self.calcination_gas_flow_rate = [self.calcination_gas_flow_rate] if self.calcination_gas_flow_rate is not None else []
+ self.calcination_gas_flow_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_gas_flow_rate]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PrecipitationMixin(YAMLRoot):
+ """
+ Mixin providing precipitation and wet-chemistry step parameters. Used by
+ preparation methods based on precipitation from solution
+ (CoPrecipitation, DepositionPrecipitation).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["PrecipitationMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:PrecipitationMixin"
+ class_name: ClassVar[str] = "PrecipitationMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PrecipitationMixin
+
+ precipitating_agent: Optional[Union[str, list[str]]] = empty_list()
+ precipitating_concentration: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_ph: Optional[Union[float, list[float]]] = empty_list()
+ mixing_rate: Optional[Union[float, list[float]]] = empty_list()
+ mixing_time: Optional[Union[float, list[float]]] = empty_list()
+ mixing_temperature: Optional[Union[float, list[float]]] = empty_list()
+ order_of_addition: Optional[Union[str, list[str]]] = empty_list()
+ filtration: Optional[Union[str, list[str]]] = empty_list()
+ purification: Optional[Union[str, list[str]]] = empty_list()
+ aging_temperature: Optional[Union[float, list[float]]] = empty_list()
+ aging_time: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.precipitating_agent, list):
+ self.precipitating_agent = [self.precipitating_agent] if self.precipitating_agent is not None else []
+ self.precipitating_agent = [v if isinstance(v, str) else str(v) for v in self.precipitating_agent]
+
+ if not isinstance(self.precipitating_concentration, list):
+ self.precipitating_concentration = [self.precipitating_concentration] if self.precipitating_concentration is not None else []
+ self.precipitating_concentration = [v if isinstance(v, float) else float(v) for v in self.precipitating_concentration]
+
+ if not isinstance(self.synthesis_ph, list):
+ self.synthesis_ph = [self.synthesis_ph] if self.synthesis_ph is not None else []
+ self.synthesis_ph = [v if isinstance(v, float) else float(v) for v in self.synthesis_ph]
+
+ if not isinstance(self.mixing_rate, list):
+ self.mixing_rate = [self.mixing_rate] if self.mixing_rate is not None else []
+ self.mixing_rate = [v if isinstance(v, float) else float(v) for v in self.mixing_rate]
+
+ if not isinstance(self.mixing_time, list):
+ self.mixing_time = [self.mixing_time] if self.mixing_time is not None else []
+ self.mixing_time = [v if isinstance(v, float) else float(v) for v in self.mixing_time]
+
+ if not isinstance(self.mixing_temperature, list):
+ self.mixing_temperature = [self.mixing_temperature] if self.mixing_temperature is not None else []
+ self.mixing_temperature = [v if isinstance(v, float) else float(v) for v in self.mixing_temperature]
+
+ if not isinstance(self.order_of_addition, list):
+ self.order_of_addition = [self.order_of_addition] if self.order_of_addition is not None else []
+ self.order_of_addition = [v if isinstance(v, str) else str(v) for v in self.order_of_addition]
+
+ if not isinstance(self.filtration, list):
+ self.filtration = [self.filtration] if self.filtration is not None else []
+ self.filtration = [v if isinstance(v, str) else str(v) for v in self.filtration]
+
+ if not isinstance(self.purification, list):
+ self.purification = [self.purification] if self.purification is not None else []
+ self.purification = [v if isinstance(v, str) else str(v) for v in self.purification]
+
+ if not isinstance(self.aging_temperature, list):
+ self.aging_temperature = [self.aging_temperature] if self.aging_temperature is not None else []
+ self.aging_temperature = [v if isinstance(v, float) else float(v) for v in self.aging_temperature]
+
+ if not isinstance(self.aging_time, list):
+ self.aging_time = [self.aging_time] if self.aging_time is not None else []
+ self.aging_time = [v if isinstance(v, float) else float(v) for v in self.aging_time]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ThermalSynthesisMixin(YAMLRoot):
+ """
+ Mixin providing thermal process parameters common to synthesis methods
+ carried out at elevated temperature in a closed vessel or reactor
+ (Solvothermal, PlasmaAssisted, CombustionSynthesis,
+ MicrowaveAssisted, MechanochemicalSynthesis, Sublimation).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ThermalSynthesisMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ThermalSynthesisMixin"
+ class_name: ClassVar[str] = "ThermalSynthesisMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ThermalSynthesisMixin
+
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class XRaySourceMixin(YAMLRoot):
+ """
+ Mixin providing X-ray source and monochromator slots, shared by all
+ X-ray based techniques (PowderXRD, XRayAbsorptionSpectroscopy, XPS,
+ SingleCrystalXRD).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["XRaySourceMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:XRaySourceMixin"
+ class_name: ClassVar[str] = "XRaySourceMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.XRaySourceMixin
+
+ xray_source: Optional[Union[str, list[str]]] = empty_list()
+ monochromator: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.xray_source, list):
+ self.xray_source = [self.xray_source] if self.xray_source is not None else []
+ self.xray_source = [v if isinstance(v, str) else str(v) for v in self.xray_source]
+
+ if not isinstance(self.monochromator, list):
+ self.monochromator = [self.monochromator] if self.monochromator is not None else []
+ self.monochromator = [v if isinstance(v, str) else str(v) for v in self.monochromator]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class EnergyRangeMixin(YAMLRoot):
+ """
+ Mixin providing energy scan range slots, shared by X-ray spectroscopy
+ techniques that scan over an energy range (XRayAbsorptionSpectroscopy, XPS).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["EnergyRangeMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:EnergyRangeMixin"
+ class_name: ClassVar[str] = "EnergyRangeMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.EnergyRangeMixin
+
+ minimum_energy: Optional[Union[float, list[float]]] = empty_list()
+ maximum_energy: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.minimum_energy, list):
+ self.minimum_energy = [self.minimum_energy] if self.minimum_energy is not None else []
+ self.minimum_energy = [v if isinstance(v, float) else float(v) for v in self.minimum_energy]
+
+ if not isinstance(self.maximum_energy, list):
+ self.maximum_energy = [self.maximum_energy] if self.maximum_energy is not None else []
+ self.maximum_energy = [v if isinstance(v, float) else float(v) for v in self.maximum_energy]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ElectronMicroscopyMixin(YAMLRoot):
+ """
+ Mixin providing electron gun and image parameters shared by electron
+ microscopy techniques (TransmissionElectronMicroscopy,
+ ScanningElectronMicroscopy).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ElectronMicroscopyMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ElectronMicroscopyMixin"
+ class_name: ClassVar[str] = "ElectronMicroscopyMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElectronMicroscopyMixin
+
+ gun_type: Optional[Union[str, list[str]]] = empty_list()
+ acceleration_voltage: Optional[Union[float, list[float]]] = empty_list()
+ magnification_setting: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.gun_type, list):
+ self.gun_type = [self.gun_type] if self.gun_type is not None else []
+ self.gun_type = [v if isinstance(v, str) else str(v) for v in self.gun_type]
+
+ if not isinstance(self.acceleration_voltage, list):
+ self.acceleration_voltage = [self.acceleration_voltage] if self.acceleration_voltage is not None else []
+ self.acceleration_voltage = [v if isinstance(v, float) else float(v) for v in self.acceleration_voltage]
+
+ if not isinstance(self.magnification_setting, list):
+ self.magnification_setting = [self.magnification_setting] if self.magnification_setting is not None else []
+ self.magnification_setting = [v if isinstance(v, float) else float(v) for v in self.magnification_setting]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class TemperatureProgramMixin(YAMLRoot):
+ """
+ Mixin providing temperature-programme parameters shared by thermal
+ analysis and temperature-programmed reaction techniques
+ (Thermogravimetry, TPO, TPR).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["TemperatureProgramMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:TemperatureProgramMixin"
+ class_name: ClassVar[str] = "TemperatureProgramMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.TemperatureProgramMixin
+
+ minimum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ maximum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ heating_procedure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.minimum_temperature, list):
+ self.minimum_temperature = [self.minimum_temperature] if self.minimum_temperature is not None else []
+ self.minimum_temperature = [v if isinstance(v, float) else float(v) for v in self.minimum_temperature]
+
+ if not isinstance(self.maximum_temperature, list):
+ self.maximum_temperature = [self.maximum_temperature] if self.maximum_temperature is not None else []
+ self.maximum_temperature = [v if isinstance(v, float) else float(v) for v in self.maximum_temperature]
+
+ if not isinstance(self.heating_rate, list):
+ self.heating_rate = [self.heating_rate] if self.heating_rate is not None else []
+ self.heating_rate = [v if isinstance(v, float) else float(v) for v in self.heating_rate]
+
+ if not isinstance(self.heating_procedure, list):
+ self.heating_procedure = [self.heating_procedure] if self.heating_procedure is not None else []
+ self.heating_procedure = [v if isinstance(v, str) else str(v) for v in self.heating_procedure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ChromatographyMixin(YAMLRoot):
+ """
+ Mixin providing chromatographic separation parameters shared by
+ separation techniques (GCMS, SizeExclusionChromatography, HPLC_MS).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ChromatographyMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ChromatographyMixin"
+ class_name: ClassVar[str] = "ChromatographyMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ChromatographyMixin
+
+ column_type: Optional[Union[str, list[str]]] = empty_list()
+ eluent: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ injection_volume: Optional[Union[float, list[float]]] = empty_list()
+ external_standard: Optional[Union[str, list[str]]] = empty_list()
+ internal_standard: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.column_type, list):
+ self.column_type = [self.column_type] if self.column_type is not None else []
+ self.column_type = [v if isinstance(v, str) else str(v) for v in self.column_type]
+
+ if not isinstance(self.eluent, list):
+ self.eluent = [self.eluent] if self.eluent is not None else []
+ self.eluent = [v if isinstance(v, str) else str(v) for v in self.eluent]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.injection_volume, list):
+ self.injection_volume = [self.injection_volume] if self.injection_volume is not None else []
+ self.injection_volume = [v if isinstance(v, float) else float(v) for v in self.injection_volume]
+
+ if not isinstance(self.external_standard, list):
+ self.external_standard = [self.external_standard] if self.external_standard is not None else []
+ self.external_standard = [v if isinstance(v, str) else str(v) for v in self.external_standard]
+
+ if not isinstance(self.internal_standard, list):
+ self.internal_standard = [self.internal_standard] if self.internal_standard is not None else []
+ self.internal_standard = [v if isinstance(v, str) else str(v) for v in self.internal_standard]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MassRangeMixin(YAMLRoot):
+ """
+ Mixin providing mass-to-charge scan range slots shared by mass
+ spectrometry techniques (GCMS, ESI_MS).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["MassRangeMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:MassRangeMixin"
+ class_name: ClassVar[str] = "MassRangeMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MassRangeMixin
+
+ mz_minimum: Optional[Union[float, list[float]]] = empty_list()
+ mz_maximum: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.mz_minimum, list):
+ self.mz_minimum = [self.mz_minimum] if self.mz_minimum is not None else []
+ self.mz_minimum = [v if isinstance(v, float) else float(v) for v in self.mz_minimum]
+
+ if not isinstance(self.mz_maximum, list):
+ self.mz_maximum = [self.mz_maximum] if self.mz_maximum is not None else []
+ self.mz_maximum = [v if isinstance(v, float) else float(v) for v in self.mz_maximum]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PhotoluminescenceMixin(YAMLRoot):
+ """
+ Mixin providing optical excitation/emission parameters shared by
+ photoluminescence techniques (PhotoluminescenceSpectroscopy,
+ PhotoluminescenceLifetime).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["PhotoluminescenceMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:PhotoluminescenceMixin"
+ class_name: ClassVar[str] = "PhotoluminescenceMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PhotoluminescenceMixin
+
+ excitation_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ emission_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ optical_filter: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.excitation_wavelength, list):
+ self.excitation_wavelength = [self.excitation_wavelength] if self.excitation_wavelength is not None else []
+ self.excitation_wavelength = [v if isinstance(v, float) else float(v) for v in self.excitation_wavelength]
+
+ if not isinstance(self.emission_wavelength, list):
+ self.emission_wavelength = [self.emission_wavelength] if self.emission_wavelength is not None else []
+ self.emission_wavelength = [v if isinstance(v, float) else float(v) for v in self.emission_wavelength]
+
+ if not isinstance(self.optical_filter, list):
+ self.optical_filter = [self.optical_filter] if self.optical_filter is not None else []
+ self.optical_filter = [v if isinstance(v, str) else str(v) for v in self.optical_filter]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ElectrochemistryMixin(YAMLRoot):
+ """
+ Mixin providing electrochemical cell parameters shared by
+ electrochemical characterization techniques (CyclicVoltammetry,
+ ConductivityMeasurement).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ElectrochemistryMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ElectrochemistryMixin"
+ class_name: ClassVar[str] = "ElectrochemistryMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElectrochemistryMixin
+
+ reference_electrode: Optional[Union[str, list[str]]] = empty_list()
+ working_electrode: Optional[Union[str, list[str]]] = empty_list()
+ counter_electrode: Optional[Union[str, list[str]]] = empty_list()
+ electrolyte_composition: Optional[Union[str, list[str]]] = empty_list()
+ electrolyte_concentration: Optional[Union[float, list[float]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.reference_electrode, list):
+ self.reference_electrode = [self.reference_electrode] if self.reference_electrode is not None else []
+ self.reference_electrode = [v if isinstance(v, str) else str(v) for v in self.reference_electrode]
+
+ if not isinstance(self.working_electrode, list):
+ self.working_electrode = [self.working_electrode] if self.working_electrode is not None else []
+ self.working_electrode = [v if isinstance(v, str) else str(v) for v in self.working_electrode]
+
+ if not isinstance(self.counter_electrode, list):
+ self.counter_electrode = [self.counter_electrode] if self.counter_electrode is not None else []
+ self.counter_electrode = [v if isinstance(v, str) else str(v) for v in self.counter_electrode]
+
+ if not isinstance(self.electrolyte_composition, list):
+ self.electrolyte_composition = [self.electrolyte_composition] if self.electrolyte_composition is not None else []
+ self.electrolyte_composition = [v if isinstance(v, str) else str(v) for v in self.electrolyte_composition]
+
+ if not isinstance(self.electrolyte_concentration, list):
+ self.electrolyte_concentration = [self.electrolyte_concentration] if self.electrolyte_concentration is not None else []
+ self.electrolyte_concentration = [v if isinstance(v, float) else float(v) for v in self.electrolyte_concentration]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MaterialDescriptorMixin(YAMLRoot):
+ """
+ Mixin providing material identity slots shared by CalculatedProperty
+ subclasses that target a specific material composition and crystal
+ structure (DielectricTensors, PhononDispersion, EquationsOfState,
+ AqueousStability, GrainBoundaries, ElectronicStructure, Ferroelectrics,
+ BandGap).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["MaterialDescriptorMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:MaterialDescriptorMixin"
+ class_name: ClassVar[str] = "MaterialDescriptorMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MaterialDescriptorMixin
+
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DFTSettingsMixin(YAMLRoot):
+ """
+ Mixin providing plane-wave DFT numerical settings shared by CalculatedProperty
+ subclasses that are computed with periodic DFT (DielectricTensors,
+ EquationsOfState, ElectronicStructure, BandGap).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["DFTSettingsMixin"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:DFTSettingsMixin"
+ class_name: ClassVar[str] = "DFTSettingsMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DFTSettingsMixin
+
+ energy_cutoff: Optional[Union[float, list[float]]] = empty_list()
+ convergence_criteria: Optional[Union[str, list[str]]] = empty_list()
+ k_point_mesh: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.energy_cutoff, list):
+ self.energy_cutoff = [self.energy_cutoff] if self.energy_cutoff is not None else []
+ self.energy_cutoff = [v if isinstance(v, float) else float(v) for v in self.energy_cutoff]
+
+ if not isinstance(self.convergence_criteria, list):
+ self.convergence_criteria = [self.convergence_criteria] if self.convergence_criteria is not None else []
+ self.convergence_criteria = [v if isinstance(v, str) else str(v) for v in self.convergence_criteria]
+
+ if not isinstance(self.k_point_mesh, list):
+ self.k_point_mesh = [self.k_point_mesh] if self.k_point_mesh is not None else []
+ self.k_point_mesh = [v if isinstance(v, str) else str(v) for v in self.k_point_mesh]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Activity(YAMLRoot):
+ """
+ See [DCAT-AP specs:Activity](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Activity)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Activity"]
+ class_class_curie: ClassVar[str] = "prov:Activity"
+ class_name: ClassVar[str] = "Activity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Activity
+
+ id: Union[str, ActivityId] = None
+ title: Optional[Union[str, list[str]]] = empty_list()
+ description: Optional[Union[str, list[str]]] = empty_list()
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+ has_part: Optional[Union[dict[Union[str, ActivityId], Union[dict, "Activity"]], list[Union[dict, "Activity"]]]] = empty_dict()
+ had_input_entity: Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]] = empty_dict()
+ had_output_entity: Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]] = empty_dict()
+ had_input_activity: Optional[Union[dict[Union[str, ActivityId], Union[dict, "Activity"]], list[Union[dict, "Activity"]]]] = empty_dict()
+ carried_out_by: Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, "AgenticEntity"]], list[Union[dict, "AgenticEntity"]]]] = empty_dict()
+ has_qualitative_attribute: Optional[Union[Union[dict, "QualitativeAttribute"], list[Union[dict, "QualitativeAttribute"]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, "QuantitativeAttribute"], list[Union[dict, "QuantitativeAttribute"]]]] = empty_list()
+ part_of: Optional[Union[dict[Union[str, ActivityId], Union[dict, "Activity"]], list[Union[dict, "Activity"]]]] = empty_dict()
+ type: Optional[Union[dict, "DefinedTerm"]] = None
+ rdf_type: Optional[Union[dict, "DefinedTerm"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ActivityId):
+ self.id = ActivityId(self.id)
+
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=Activity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="had_input_entity", slot_type=Entity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="had_output_entity", slot_type=Entity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="had_input_activity", slot_type=Activity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="carried_out_by", slot_type=AgenticEntity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ self._normalize_inlined_as_list(slot_name="part_of", slot_type=Activity, key_name="id", keyed=True)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Agent(YAMLRoot):
+ """
+ See [DCAT-AP specs:Agent](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Agent)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = FOAF["Agent"]
+ class_class_curie: ClassVar[str] = "foaf:Agent"
+ class_name: ClassVar[str] = "Agent"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Agent
+
+ name: Union[str, list[str]] = None
+ type: Optional[Union[dict, "Concept"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.name):
+ self.MissingRequiredField("name")
+ if not isinstance(self.name, list):
+ self.name = [self.name] if self.name is not None else []
+ self.name = [v if isinstance(v, str) else str(v) for v in self.name]
+
+ if self.type is not None and not isinstance(self.type, Concept):
+ self.type = Concept(**as_dict(self.type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class AgenticEntity(YAMLRoot):
+ """
+ An entity that is somehow responsible for an Activity to take place.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Agent"]
+ class_class_curie: ClassVar[str] = "prov:Agent"
+ class_name: ClassVar[str] = "AgenticEntity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.AgenticEntity
+
+ id: Union[str, AgenticEntityId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+ has_qualitative_attribute: Optional[Union[Union[dict, "QualitativeAttribute"], list[Union[dict, "QualitativeAttribute"]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, "QuantitativeAttribute"], list[Union[dict, "QuantitativeAttribute"]]]] = empty_list()
+ has_part: Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, "AgenticEntity"]], list[Union[dict, "AgenticEntity"]]]] = empty_dict()
+ part_of: Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, "AgenticEntity"]], list[Union[dict, "AgenticEntity"]]]] = empty_dict()
+ type: Optional[Union[dict, "DefinedTerm"]] = None
+ rdf_type: Optional[Union[dict, "DefinedTerm"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, AgenticEntityId):
+ self.id = AgenticEntityId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=AgenticEntity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="part_of", slot_type=AgenticEntity, key_name="id", keyed=True)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+Any = Any
+
+@dataclass(repr=False)
+class Catalogue(YAMLRoot):
+ """
+ See [DCAT-AP specs:Catalogue](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Catalogue)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Catalog"]
+ class_class_curie: ClassVar[str] = "dcat:Catalog"
+ class_name: ClassVar[str] = "Catalogue"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Catalogue
+
+ description: Union[str, list[str]] = None
+ publisher: Union[dict, Agent] = None
+ title: Union[str, list[str]] = None
+ applicable_legislation: Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]] = empty_dict()
+ catalogue: Optional[Union[Union[dict, "Catalogue"], list[Union[dict, "Catalogue"]]]] = empty_list()
+ creator: Optional[Union[dict, Agent]] = None
+ geographical_coverage: Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]] = empty_list()
+ has_dataset: Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]] = empty_dict()
+ has_part: Optional[Union[Union[dict, "Catalogue"], list[Union[dict, "Catalogue"]]]] = empty_list()
+ homepage: Optional[Union[dict, "Document"]] = None
+ language: Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]] = empty_list()
+ licence: Optional[Union[dict, "LicenseDocument"]] = None
+ modification_date: Optional[Union[str, XSDDate]] = None
+ record: Optional[Union[Union[dict, "CatalogueRecord"], list[Union[dict, "CatalogueRecord"]]]] = empty_list()
+ release_date: Optional[Union[str, XSDDate]] = None
+ rights: Optional[Union[dict, "RightsStatement"]] = None
+ service: Optional[Union[Union[dict, "DataService"], list[Union[dict, "DataService"]]]] = empty_list()
+ temporal_coverage: Optional[Union[Union[dict, "PeriodOfTime"], list[Union[dict, "PeriodOfTime"]]]] = empty_list()
+ themes: Optional[Union[Union[dict, "ConceptScheme"], list[Union[dict, "ConceptScheme"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.description):
+ self.MissingRequiredField("description")
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ if self._is_empty(self.publisher):
+ self.MissingRequiredField("publisher")
+ if not isinstance(self.publisher, Agent):
+ self.publisher = Agent(**as_dict(self.publisher))
+
+ if self._is_empty(self.title):
+ self.MissingRequiredField("title")
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ self._normalize_inlined_as_list(slot_name="applicable_legislation", slot_type=LegalResource, key_name="id", keyed=True)
+
+ if not isinstance(self.catalogue, list):
+ self.catalogue = [self.catalogue] if self.catalogue is not None else []
+ self.catalogue = [v if isinstance(v, Catalogue) else Catalogue(**as_dict(v)) for v in self.catalogue]
+
+ if self.creator is not None and not isinstance(self.creator, Agent):
+ self.creator = Agent(**as_dict(self.creator))
+
+ if not isinstance(self.geographical_coverage, list):
+ self.geographical_coverage = [self.geographical_coverage] if self.geographical_coverage is not None else []
+ self.geographical_coverage = [v if isinstance(v, Location) else Location(**as_dict(v)) for v in self.geographical_coverage]
+
+ self._normalize_inlined_as_list(slot_name="has_dataset", slot_type=Dataset, key_name="id", keyed=True)
+
+ if not isinstance(self.has_part, list):
+ self.has_part = [self.has_part] if self.has_part is not None else []
+ self.has_part = [v if isinstance(v, Catalogue) else Catalogue(**as_dict(v)) for v in self.has_part]
+
+ if self.homepage is not None and not isinstance(self.homepage, Document):
+ self.homepage = Document(**as_dict(self.homepage))
+
+ if not isinstance(self.language, list):
+ self.language = [self.language] if self.language is not None else []
+ self.language = [v if isinstance(v, LinguisticSystem) else LinguisticSystem(**as_dict(v)) for v in self.language]
+
+ if self.licence is not None and not isinstance(self.licence, LicenseDocument):
+ self.licence = LicenseDocument(**as_dict(self.licence))
+
+ if self.modification_date is not None and not isinstance(self.modification_date, XSDDate):
+ self.modification_date = XSDDate(self.modification_date)
+
+ if not isinstance(self.record, list):
+ self.record = [self.record] if self.record is not None else []
+ self.record = [v if isinstance(v, CatalogueRecord) else CatalogueRecord(**as_dict(v)) for v in self.record]
+
+ if self.release_date is not None and not isinstance(self.release_date, XSDDate):
+ self.release_date = XSDDate(self.release_date)
+
+ if self.rights is not None and not isinstance(self.rights, RightsStatement):
+ self.rights = RightsStatement(**as_dict(self.rights))
+
+ if not isinstance(self.service, list):
+ self.service = [self.service] if self.service is not None else []
+ self.service = [v if isinstance(v, DataService) else DataService(**as_dict(v)) for v in self.service]
+
+ if not isinstance(self.temporal_coverage, list):
+ self.temporal_coverage = [self.temporal_coverage] if self.temporal_coverage is not None else []
+ self.temporal_coverage = [v if isinstance(v, PeriodOfTime) else PeriodOfTime(**as_dict(v)) for v in self.temporal_coverage]
+
+ if not isinstance(self.themes, list):
+ self.themes = [self.themes] if self.themes is not None else []
+ self.themes = [v if isinstance(v, ConceptScheme) else ConceptScheme(**as_dict(v)) for v in self.themes]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CatalogueRecord(YAMLRoot):
+ """
+ See [DCAT-AP specs:CatalogueRecord](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#CatalogueRecord)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["CatalogRecord"]
+ class_class_curie: ClassVar[str] = "dcat:CatalogRecord"
+ class_name: ClassVar[str] = "CatalogueRecord"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CatalogueRecord
+
+ modification_date: Union[str, XSDDate] = None
+ primary_topic: Union[dict, Any] = None
+ application_profile: Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]] = empty_list()
+ change_type: Optional[Union[dict, "Concept"]] = None
+ description: Optional[Union[str, list[str]]] = empty_list()
+ language: Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]] = empty_list()
+ listing_date: Optional[Union[str, XSDDate]] = None
+ source_metadata: Optional[Union[dict, "CatalogueRecord"]] = None
+ title: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.modification_date):
+ self.MissingRequiredField("modification_date")
+ if not isinstance(self.modification_date, XSDDate):
+ self.modification_date = XSDDate(self.modification_date)
+
+ if not isinstance(self.application_profile, list):
+ self.application_profile = [self.application_profile] if self.application_profile is not None else []
+ self.application_profile = [v if isinstance(v, Standard) else Standard(**as_dict(v)) for v in self.application_profile]
+
+ if self.change_type is not None and not isinstance(self.change_type, Concept):
+ self.change_type = Concept(**as_dict(self.change_type))
+
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ if not isinstance(self.language, list):
+ self.language = [self.language] if self.language is not None else []
+ self.language = [v if isinstance(v, LinguisticSystem) else LinguisticSystem(**as_dict(v)) for v in self.language]
+
+ if self.listing_date is not None and not isinstance(self.listing_date, XSDDate):
+ self.listing_date = XSDDate(self.listing_date)
+
+ if self.source_metadata is not None and not isinstance(self.source_metadata, CatalogueRecord):
+ self.source_metadata = CatalogueRecord(**as_dict(self.source_metadata))
+
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Checksum(YAMLRoot):
+ """
+ See [DCAT-AP specs:Checksum](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Checksum)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SPDX["Checksum"]
+ class_class_curie: ClassVar[str] = "spdx:Checksum"
+ class_name: ClassVar[str] = "Checksum"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Checksum
+
+ algorithm: Union[dict, "ChecksumAlgorithm"] = None
+ checksum_value: str = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.algorithm):
+ self.MissingRequiredField("algorithm")
+ if not isinstance(self.algorithm, ChecksumAlgorithm):
+ self.algorithm = ChecksumAlgorithm(**as_dict(self.algorithm))
+
+ if self._is_empty(self.checksum_value):
+ self.MissingRequiredField("checksum_value")
+ if not isinstance(self.checksum_value, str):
+ self.checksum_value = str(self.checksum_value)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ClassifierMixin(YAMLRoot):
+ """
+ A mixin with which an entity of this schema can be classified via an additional rdf:type or dcterms:type assertion.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCATAPPLUS["ClassifierMixin"]
+ class_class_curie: ClassVar[str] = "dcatapplus:ClassifierMixin"
+ class_name: ClassVar[str] = "ClassifierMixin"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ClassifierMixin
+
+ type: Optional[Union[dict, "DefinedTerm"]] = None
+ rdf_type: Optional[Union[dict, "DefinedTerm"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DataGeneratingActivity(Activity):
+ """
+ An Activity (process) that has the objective to produce information (in form of a dataset) about another Activity
+ or Entity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Activity"]
+ class_class_curie: ClassVar[str] = "prov:Activity"
+ class_name: ClassVar[str] = "DataGeneratingActivity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DataGeneratingActivity
+
+ id: Union[str, DataGeneratingActivityId] = None
+ evaluated_entity: Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]] = empty_dict()
+ evaluated_activity: Optional[Union[dict[Union[str, EvaluatedActivityId], Union[dict, "EvaluatedActivity"]], list[Union[dict, "EvaluatedActivity"]]]] = empty_dict()
+ realized_plan: Optional[Union[dict, "Plan"]] = None
+ occurred_in: Optional[Union[dict, "Surrounding"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DataGeneratingActivityId):
+ self.id = DataGeneratingActivityId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="evaluated_entity", slot_type=EvaluatedEntity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="evaluated_activity", slot_type=EvaluatedActivity, key_name="id", keyed=True)
+
+ if self.realized_plan is not None and not isinstance(self.realized_plan, Plan):
+ self.realized_plan = Plan(**as_dict(self.realized_plan))
+
+ if self.occurred_in is not None and not isinstance(self.occurred_in, Surrounding):
+ self.occurred_in = Surrounding(**as_dict(self.occurred_in))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Synthesis(DataGeneratingActivity):
+ """
+ A DataGeneratingActivity in which a catalyst is prepared.
+
+ The preparation protocol is linked via realized_plan using a
+ PreparationMethod instance. Input materials (Precursors) are linked via
+ had_input_entity. The resulting catalyst (CatalystSample) is linked via
+ had_output_entity.
+
+ The type of synthesis is further specified via rdf_type using an ontology
+ term (e.g. a voc4cat preparation method term), following DCAT-AP-PLUS
+ Pattern 3.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000070"]
+ class_class_curie: ClassVar[str] = "OBI:0000070"
+ class_name: ClassVar[str] = "Synthesis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Synthesis
+
+ id: Union[str, SynthesisId] = None
+ nominal_composition: Union[str, list[str]] = None
+ catalyst_measured_properties: Union[str, list[str]] = None
+ had_input_entity: Union[dict[Union[str, PrecursorId], Union[dict, "Precursor"]], list[Union[dict, "Precursor"]]] = empty_dict()
+ realized_plan: Union[dict, "PreparationMethod"] = None
+ storage_conditions: Optional[Union[str, list[str]]] = empty_list()
+ support: Optional[Union[str, list[str]]] = empty_list()
+ solvent: Optional[Union[str, list[str]]] = empty_list()
+ sample_pretreatment: Optional[Union[str, list[str]]] = empty_list()
+ had_output_entity: Optional[Union[dict[Union[str, CatalystSampleId], Union[dict, "CatalystSample"]], list[Union[dict, "CatalystSample"]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, SynthesisId):
+ self.id = SynthesisId(self.id)
+
+ if self._is_empty(self.nominal_composition):
+ self.MissingRequiredField("nominal_composition")
+ if not isinstance(self.nominal_composition, list):
+ self.nominal_composition = [self.nominal_composition] if self.nominal_composition is not None else []
+ self.nominal_composition = [v if isinstance(v, str) else str(v) for v in self.nominal_composition]
+
+ if self._is_empty(self.catalyst_measured_properties):
+ self.MissingRequiredField("catalyst_measured_properties")
+ if not isinstance(self.catalyst_measured_properties, list):
+ self.catalyst_measured_properties = [self.catalyst_measured_properties] if self.catalyst_measured_properties is not None else []
+ self.catalyst_measured_properties = [v if isinstance(v, str) else str(v) for v in self.catalyst_measured_properties]
+
+ if self._is_empty(self.had_input_entity):
+ self.MissingRequiredField("had_input_entity")
+ self._normalize_inlined_as_list(slot_name="had_input_entity", slot_type=Precursor, key_name="id", keyed=True)
+
+ if self._is_empty(self.realized_plan):
+ self.MissingRequiredField("realized_plan")
+ if not isinstance(self.realized_plan, PreparationMethod):
+ self.realized_plan = PreparationMethod(**as_dict(self.realized_plan))
+
+ if not isinstance(self.storage_conditions, list):
+ self.storage_conditions = [self.storage_conditions] if self.storage_conditions is not None else []
+ self.storage_conditions = [v if isinstance(v, str) else str(v) for v in self.storage_conditions]
+
+ if not isinstance(self.support, list):
+ self.support = [self.support] if self.support is not None else []
+ self.support = [v if isinstance(v, str) else str(v) for v in self.support]
+
+ if not isinstance(self.solvent, list):
+ self.solvent = [self.solvent] if self.solvent is not None else []
+ self.solvent = [v if isinstance(v, str) else str(v) for v in self.solvent]
+
+ if not isinstance(self.sample_pretreatment, list):
+ self.sample_pretreatment = [self.sample_pretreatment] if self.sample_pretreatment is not None else []
+ self.sample_pretreatment = [v if isinstance(v, str) else str(v) for v in self.sample_pretreatment]
+
+ self._normalize_inlined_as_list(slot_name="had_output_entity", slot_type=CatalystSample, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Characterization(DataGeneratingActivity):
+ """
+ A DataGeneratingActivity in which a catalyst sample or catalytic material
+ is characterized using an analytical technique.
+
+ The catalyst sample being characterized is linked via evaluated_entity.
+ The analytical protocol is linked via realized_plan using a
+ CharacterizationTechnique instance. The instrument used is linked via
+ carried_out_by as a Device.
+
+ The specific technique type is expressed via rdf_type using an ontology
+ term (e.g. CHMO:0000158 for powder XRD, CHMO:0000404 for XPS),
+ following DCAT-AP-PLUS Pattern 3 — exactly as NMRSpectroscopy uses
+ rdf_type: CHMO:0000613.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000070"]
+ class_class_curie: ClassVar[str] = "OBI:0000070"
+ class_name: ClassVar[str] = "Characterization"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Characterization
+
+ id: Union[str, CharacterizationId] = None
+ equipment: Union[str, list[str]] = None
+ realized_plan: Union[dict, "CharacterizationTechnique"] = None
+ sample_state: Optional[Union[Union[str, "SampleStateEnum"], list[Union[str, "SampleStateEnum"]]]] = empty_list()
+ sample_description: Optional[Union[str, list[str]]] = empty_list()
+ sample_preparation: Optional[Union[str, list[str]]] = empty_list()
+ sample_pretreatment: Optional[Union[str, list[str]]] = empty_list()
+ detector_type: Optional[Union[str, list[str]]] = empty_list()
+ evaluated_entity: Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]] = empty_dict()
+ rdf_type: Optional[Union[dict, "DefinedTerm"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, CharacterizationId):
+ self.id = CharacterizationId(self.id)
+
+ if self._is_empty(self.equipment):
+ self.MissingRequiredField("equipment")
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if self._is_empty(self.realized_plan):
+ self.MissingRequiredField("realized_plan")
+ if not isinstance(self.realized_plan, CharacterizationTechnique):
+ self.realized_plan = CharacterizationTechnique(**as_dict(self.realized_plan))
+
+ if not isinstance(self.sample_state, list):
+ self.sample_state = [self.sample_state] if self.sample_state is not None else []
+ self.sample_state = [v if isinstance(v, SampleStateEnum) else SampleStateEnum(v) for v in self.sample_state]
+
+ if not isinstance(self.sample_description, list):
+ self.sample_description = [self.sample_description] if self.sample_description is not None else []
+ self.sample_description = [v if isinstance(v, str) else str(v) for v in self.sample_description]
+
+ if not isinstance(self.sample_preparation, list):
+ self.sample_preparation = [self.sample_preparation] if self.sample_preparation is not None else []
+ self.sample_preparation = [v if isinstance(v, str) else str(v) for v in self.sample_preparation]
+
+ if not isinstance(self.sample_pretreatment, list):
+ self.sample_pretreatment = [self.sample_pretreatment] if self.sample_pretreatment is not None else []
+ self.sample_pretreatment = [v if isinstance(v, str) else str(v) for v in self.sample_pretreatment]
+
+ if not isinstance(self.detector_type, list):
+ self.detector_type = [self.detector_type] if self.detector_type is not None else []
+ self.detector_type = [v if isinstance(v, str) else str(v) for v in self.detector_type]
+
+ self._normalize_inlined_as_list(slot_name="evaluated_entity", slot_type=EvaluatedEntity, key_name="id", keyed=True)
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Simulation(DataGeneratingActivity):
+ """
+ A DataGeneratingActivity in which a catalyst, catalytic material, or
+ catalytic process is modelled computationally.
+
+ The simulation software is linked via carried_out_by as a Software agent.
+ The simulation method (protocol) is linked via realized_plan using a
+ SimulationMethod instance. The catalyst model or reaction being simulated
+ is linked via evaluated_entity or evaluated_activity.
+
+ The specific simulation type is expressed via rdf_type (e.g. coremeta4cat:DFT,
+ NCIT:C18097 for molecular dynamics), following DCAT-AP-PLUS Pattern 3.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = NCIT["C48936"]
+ class_class_curie: ClassVar[str] = "NCIT:C48936"
+ class_name: ClassVar[str] = "Simulation"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Simulation
+
+ id: Union[str, SimulationId] = None
+ software_package: Union[str, list[str]] = None
+ calculated_property: Union[Union[dict, "CalculatedProperty"], list[Union[dict, "CalculatedProperty"]]] = None
+ realized_plan: Union[Union[dict, "SimulationMethod"], list[Union[dict, "SimulationMethod"]]] = None
+ rdf_type: Optional[Union[dict, "DefinedTerm"]] = None
+ carried_out_by: Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, AgenticEntity]], list[Union[dict, AgenticEntity]]]] = empty_dict()
+ evaluated_entity: Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, SimulationId):
+ self.id = SimulationId(self.id)
+
+ if self._is_empty(self.software_package):
+ self.MissingRequiredField("software_package")
+ if not isinstance(self.software_package, list):
+ self.software_package = [self.software_package] if self.software_package is not None else []
+ self.software_package = [v if isinstance(v, str) else str(v) for v in self.software_package]
+
+ if self._is_empty(self.calculated_property):
+ self.MissingRequiredField("calculated_property")
+ if not isinstance(self.calculated_property, list):
+ self.calculated_property = [self.calculated_property] if self.calculated_property is not None else []
+ self.calculated_property = [v if isinstance(v, CalculatedProperty) else CalculatedProperty(**as_dict(v)) for v in self.calculated_property]
+
+ if self._is_empty(self.realized_plan):
+ self.MissingRequiredField("realized_plan")
+ if not isinstance(self.realized_plan, list):
+ self.realized_plan = [self.realized_plan] if self.realized_plan is not None else []
+ self.realized_plan = [v if isinstance(v, SimulationMethod) else SimulationMethod(**as_dict(v)) for v in self.realized_plan]
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ self._normalize_inlined_as_list(slot_name="carried_out_by", slot_type=AgenticEntity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="evaluated_entity", slot_type=EvaluatedEntity, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DataAnalysis(DataGeneratingActivity):
+ """
+ An Activity that evaluates the data produced by another Activity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Activity"]
+ class_class_curie: ClassVar[str] = "prov:Activity"
+ class_name: ClassVar[str] = "DataAnalysis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DataAnalysis
+
+ id: Union[str, DataAnalysisId] = None
+ evaluated_entity: Optional[Union[dict[Union[str, AnalysisSourceDataId], Union[dict, "AnalysisSourceData"]], list[Union[dict, "AnalysisSourceData"]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DataAnalysisId):
+ self.id = DataAnalysisId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="evaluated_entity", slot_type=AnalysisSourceData, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DataService(YAMLRoot):
+ """
+ See [DCAT-AP specs:DataService](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#DataService)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["DataService"]
+ class_class_curie: ClassVar[str] = "dcat:DataService"
+ class_name: ClassVar[str] = "DataService"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DataService
+
+ endpoint_URL: Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]] = empty_dict()
+ title: Union[str, list[str]] = None
+ access_rights: Optional[Union[dict, "RightsStatement"]] = None
+ applicable_legislation: Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]] = empty_dict()
+ conforms_to: Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]] = empty_list()
+ contact_point: Optional[Union[Union[dict, "Kind"], list[Union[dict, "Kind"]]]] = empty_list()
+ description: Optional[Union[str, list[str]]] = empty_list()
+ documentation: Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]] = empty_dict()
+ endpoint_description: Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]] = empty_dict()
+ format: Optional[Union[Union[dict, "MediaTypeOrExtent"], list[Union[dict, "MediaTypeOrExtent"]]]] = empty_list()
+ keyword: Optional[Union[str, list[str]]] = empty_list()
+ landing_page: Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]] = empty_dict()
+ licence: Optional[Union[dict, "LicenseDocument"]] = None
+ publisher: Optional[Union[dict, Agent]] = None
+ serves_dataset: Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]] = empty_dict()
+ theme: Optional[Union[Union[dict, "Concept"], list[Union[dict, "Concept"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.endpoint_URL):
+ self.MissingRequiredField("endpoint_URL")
+ self._normalize_inlined_as_list(slot_name="endpoint_URL", slot_type=Resource, key_name="id", keyed=True)
+
+ if self._is_empty(self.title):
+ self.MissingRequiredField("title")
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ if self.access_rights is not None and not isinstance(self.access_rights, RightsStatement):
+ self.access_rights = RightsStatement(**as_dict(self.access_rights))
+
+ self._normalize_inlined_as_list(slot_name="applicable_legislation", slot_type=LegalResource, key_name="id", keyed=True)
+
+ if not isinstance(self.conforms_to, list):
+ self.conforms_to = [self.conforms_to] if self.conforms_to is not None else []
+ self.conforms_to = [v if isinstance(v, Standard) else Standard(**as_dict(v)) for v in self.conforms_to]
+
+ if not isinstance(self.contact_point, list):
+ self.contact_point = [self.contact_point] if self.contact_point is not None else []
+ self.contact_point = [v if isinstance(v, Kind) else Kind(**as_dict(v)) for v in self.contact_point]
+
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ self._normalize_inlined_as_list(slot_name="documentation", slot_type=Document, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="endpoint_description", slot_type=Resource, key_name="id", keyed=True)
+
+ if not isinstance(self.format, list):
+ self.format = [self.format] if self.format is not None else []
+ self.format = [v if isinstance(v, MediaTypeOrExtent) else MediaTypeOrExtent(**as_dict(v)) for v in self.format]
+
+ if not isinstance(self.keyword, list):
+ self.keyword = [self.keyword] if self.keyword is not None else []
+ self.keyword = [v if isinstance(v, str) else str(v) for v in self.keyword]
+
+ self._normalize_inlined_as_list(slot_name="landing_page", slot_type=Document, key_name="id", keyed=True)
+
+ if self.licence is not None and not isinstance(self.licence, LicenseDocument):
+ self.licence = LicenseDocument(**as_dict(self.licence))
+
+ if self.publisher is not None and not isinstance(self.publisher, Agent):
+ self.publisher = Agent(**as_dict(self.publisher))
+
+ self._normalize_inlined_as_list(slot_name="serves_dataset", slot_type=Dataset, key_name="id", keyed=True)
+
+ if not isinstance(self.theme, list):
+ self.theme = [self.theme] if self.theme is not None else []
+ self.theme = [v if isinstance(v, Concept) else Concept(**as_dict(v)) for v in self.theme]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Dataset(YAMLRoot):
+ """
+ A collection of data, published or curated by a single agent, and available for access or download in one or more
+ representations.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Dataset"]
+ class_class_curie: ClassVar[str] = "dcat:Dataset"
+ class_name: ClassVar[str] = "Dataset"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Dataset
+
+ id: Union[str, DatasetId] = None
+ description: Union[str, list[str]] = None
+ title: Union[str, list[str]] = None
+ was_generated_by: Union[dict[Union[str, DataGeneratingActivityId], Union[dict, DataGeneratingActivity]], list[Union[dict, DataGeneratingActivity]]] = empty_dict()
+ access_rights: Optional[Union[dict, "RightsStatement"]] = None
+ applicable_legislation: Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]] = empty_dict()
+ conforms_to: Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]] = empty_list()
+ contact_point: Optional[Union[Union[dict, "Kind"], list[Union[dict, "Kind"]]]] = empty_list()
+ creator: Optional[Union[Union[dict, Agent], list[Union[dict, Agent]]]] = empty_list()
+ dataset_distribution: Optional[Union[Union[dict, "Distribution"], list[Union[dict, "Distribution"]]]] = empty_list()
+ documentation: Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]] = empty_dict()
+ frequency: Optional[Union[dict, "Frequency"]] = None
+ geographical_coverage: Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]] = empty_list()
+ has_version: Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]] = empty_dict()
+ identifier: Optional[Union[str, list[str]]] = empty_list()
+ in_series: Optional[Union[Union[dict, "DatasetSeries"], list[Union[dict, "DatasetSeries"]]]] = empty_list()
+ is_referenced_by: Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]] = empty_dict()
+ keyword: Optional[Union[str, list[str]]] = empty_list()
+ landing_page: Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]] = empty_dict()
+ language: Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]] = empty_list()
+ modification_date: Optional[Union[str, XSDDate]] = None
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+ provenance: Optional[Union[Union[dict, "ProvenanceStatement"], list[Union[dict, "ProvenanceStatement"]]]] = empty_list()
+ publisher: Optional[Union[dict, Agent]] = None
+ qualified_attribution: Optional[Union[Union[dict, "Attribution"], list[Union[dict, "Attribution"]]]] = empty_list()
+ qualified_relation: Optional[Union[Union[dict, "Relationship"], list[Union[dict, "Relationship"]]]] = empty_list()
+ related_resource: Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]] = empty_dict()
+ release_date: Optional[Union[str, XSDDate]] = None
+ sample: Optional[Union[Union[dict, "Distribution"], list[Union[dict, "Distribution"]]]] = empty_list()
+ source: Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]] = empty_dict()
+ spatial_resolution: Optional[Decimal] = None
+ temporal_coverage: Optional[Union[Union[dict, "PeriodOfTime"], list[Union[dict, "PeriodOfTime"]]]] = empty_list()
+ temporal_resolution: Optional[str] = None
+ theme: Optional[Union[Union[dict, "Concept"], list[Union[dict, "Concept"]]]] = empty_list()
+ type: Optional[Union[Union[dict, "Concept"], list[Union[dict, "Concept"]]]] = empty_list()
+ version: Optional[str] = None
+ version_notes: Optional[Union[str, list[str]]] = empty_list()
+ is_about_entity: Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]] = empty_dict()
+ is_about_activity: Optional[Union[dict[Union[str, EvaluatedActivityId], Union[dict, "EvaluatedActivity"]], list[Union[dict, "EvaluatedActivity"]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DatasetId):
+ self.id = DatasetId(self.id)
+
+ if self._is_empty(self.description):
+ self.MissingRequiredField("description")
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ if self._is_empty(self.title):
+ self.MissingRequiredField("title")
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ if self._is_empty(self.was_generated_by):
+ self.MissingRequiredField("was_generated_by")
+ self._normalize_inlined_as_list(slot_name="was_generated_by", slot_type=DataGeneratingActivity, key_name="id", keyed=True)
+
+ if self.access_rights is not None and not isinstance(self.access_rights, RightsStatement):
+ self.access_rights = RightsStatement(**as_dict(self.access_rights))
+
+ self._normalize_inlined_as_list(slot_name="applicable_legislation", slot_type=LegalResource, key_name="id", keyed=True)
+
+ if not isinstance(self.conforms_to, list):
+ self.conforms_to = [self.conforms_to] if self.conforms_to is not None else []
+ self.conforms_to = [v if isinstance(v, Standard) else Standard(**as_dict(v)) for v in self.conforms_to]
+
+ if not isinstance(self.contact_point, list):
+ self.contact_point = [self.contact_point] if self.contact_point is not None else []
+ self.contact_point = [v if isinstance(v, Kind) else Kind(**as_dict(v)) for v in self.contact_point]
+
+ if not isinstance(self.creator, list):
+ self.creator = [self.creator] if self.creator is not None else []
+ self.creator = [v if isinstance(v, Agent) else Agent(**as_dict(v)) for v in self.creator]
+
+ if not isinstance(self.dataset_distribution, list):
+ self.dataset_distribution = [self.dataset_distribution] if self.dataset_distribution is not None else []
+ self.dataset_distribution = [v if isinstance(v, Distribution) else Distribution(**as_dict(v)) for v in self.dataset_distribution]
+
+ self._normalize_inlined_as_list(slot_name="documentation", slot_type=Document, key_name="id", keyed=True)
+
+ if self.frequency is not None and not isinstance(self.frequency, Frequency):
+ self.frequency = Frequency(**as_dict(self.frequency))
+
+ if not isinstance(self.geographical_coverage, list):
+ self.geographical_coverage = [self.geographical_coverage] if self.geographical_coverage is not None else []
+ self.geographical_coverage = [v if isinstance(v, Location) else Location(**as_dict(v)) for v in self.geographical_coverage]
+
+ self._normalize_inlined_as_list(slot_name="has_version", slot_type=Dataset, key_name="id", keyed=True)
+
+ if not isinstance(self.identifier, list):
+ self.identifier = [self.identifier] if self.identifier is not None else []
+ self.identifier = [v if isinstance(v, str) else str(v) for v in self.identifier]
+
+ if not isinstance(self.in_series, list):
+ self.in_series = [self.in_series] if self.in_series is not None else []
+ self.in_series = [v if isinstance(v, DatasetSeries) else DatasetSeries(**as_dict(v)) for v in self.in_series]
+
+ self._normalize_inlined_as_list(slot_name="is_referenced_by", slot_type=Resource, key_name="id", keyed=True)
+
+ if not isinstance(self.keyword, list):
+ self.keyword = [self.keyword] if self.keyword is not None else []
+ self.keyword = [v if isinstance(v, str) else str(v) for v in self.keyword]
+
+ self._normalize_inlined_as_list(slot_name="landing_page", slot_type=Document, key_name="id", keyed=True)
+
+ if not isinstance(self.language, list):
+ self.language = [self.language] if self.language is not None else []
+ self.language = [v if isinstance(v, LinguisticSystem) else LinguisticSystem(**as_dict(v)) for v in self.language]
+
+ if self.modification_date is not None and not isinstance(self.modification_date, XSDDate):
+ self.modification_date = XSDDate(self.modification_date)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ if not isinstance(self.provenance, list):
+ self.provenance = [self.provenance] if self.provenance is not None else []
+ self.provenance = [v if isinstance(v, ProvenanceStatement) else ProvenanceStatement(**as_dict(v)) for v in self.provenance]
+
+ if self.publisher is not None and not isinstance(self.publisher, Agent):
+ self.publisher = Agent(**as_dict(self.publisher))
+
+ if not isinstance(self.qualified_attribution, list):
+ self.qualified_attribution = [self.qualified_attribution] if self.qualified_attribution is not None else []
+ self.qualified_attribution = [v if isinstance(v, Attribution) else Attribution(**as_dict(v)) for v in self.qualified_attribution]
+
+ if not isinstance(self.qualified_relation, list):
+ self.qualified_relation = [self.qualified_relation] if self.qualified_relation is not None else []
+ self.qualified_relation = [v if isinstance(v, Relationship) else Relationship(**as_dict(v)) for v in self.qualified_relation]
+
+ self._normalize_inlined_as_list(slot_name="related_resource", slot_type=Resource, key_name="id", keyed=True)
+
+ if self.release_date is not None and not isinstance(self.release_date, XSDDate):
+ self.release_date = XSDDate(self.release_date)
+
+ if not isinstance(self.sample, list):
+ self.sample = [self.sample] if self.sample is not None else []
+ self.sample = [v if isinstance(v, Distribution) else Distribution(**as_dict(v)) for v in self.sample]
+
+ self._normalize_inlined_as_list(slot_name="source", slot_type=Dataset, key_name="id", keyed=True)
+
+ if self.spatial_resolution is not None and not isinstance(self.spatial_resolution, Decimal):
+ self.spatial_resolution = Decimal(self.spatial_resolution)
+
+ if not isinstance(self.temporal_coverage, list):
+ self.temporal_coverage = [self.temporal_coverage] if self.temporal_coverage is not None else []
+ self.temporal_coverage = [v if isinstance(v, PeriodOfTime) else PeriodOfTime(**as_dict(v)) for v in self.temporal_coverage]
+
+ if self.temporal_resolution is not None and not isinstance(self.temporal_resolution, str):
+ self.temporal_resolution = str(self.temporal_resolution)
+
+ if not isinstance(self.theme, list):
+ self.theme = [self.theme] if self.theme is not None else []
+ self.theme = [v if isinstance(v, Concept) else Concept(**as_dict(v)) for v in self.theme]
+
+ if not isinstance(self.type, list):
+ self.type = [self.type] if self.type is not None else []
+ self.type = [v if isinstance(v, Concept) else Concept(**as_dict(v)) for v in self.type]
+
+ if self.version is not None and not isinstance(self.version, str):
+ self.version = str(self.version)
+
+ if not isinstance(self.version_notes, list):
+ self.version_notes = [self.version_notes] if self.version_notes is not None else []
+ self.version_notes = [v if isinstance(v, str) else str(v) for v in self.version_notes]
+
+ self._normalize_inlined_as_list(slot_name="is_about_entity", slot_type=EvaluatedEntity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="is_about_activity", slot_type=EvaluatedActivity, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CatalysisDataset(Dataset):
+ """
+ A dcat:Dataset that contains research data in the field of catalysis.
+
+ The catalysis research field is expressed via rdf_type using a voc4cat
+ term from CatalysisResearchFieldEnum (following DCAT-AP-PLUS Pattern 3).
+ For example, a dataset from heterogeneous catalysis research would carry:
+ rdf_type:
+ id: VOC4CAT:0007001
+ title: "heterogeneous catalysis"
+
+ The four CoreMeta4Cat minimum information pillars are linked via the slots
+ below, each pointing to the corresponding DataGeneratingActivity or
+ EvaluatedActivity subclass defined in the CoreMeta4Cat subprofile modules.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Dataset"]
+ class_class_curie: ClassVar[str] = "dcat:Dataset"
+ class_name: ClassVar[str] = "CatalysisDataset"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CatalysisDataset
+
+ id: Union[str, CatalysisDatasetId] = None
+ description: Union[str, list[str]] = None
+ title: Union[str, list[str]] = None
+ rdf_type: Optional[Union[dict, "DefinedTerm"]] = None
+ was_generated_by: Optional[Union[dict[Union[str, DataGeneratingActivityId], Union[dict, DataGeneratingActivity]], list[Union[dict, DataGeneratingActivity]]]] = empty_dict()
+ is_about_activity: Optional[Union[dict[Union[str, EvaluatedActivityId], Union[dict, "EvaluatedActivity"]], list[Union[dict, "EvaluatedActivity"]]]] = empty_dict()
+ is_about_entity: Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, CatalysisDatasetId):
+ self.id = CatalysisDatasetId(self.id)
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ self._normalize_inlined_as_list(slot_name="was_generated_by", slot_type=DataGeneratingActivity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="is_about_activity", slot_type=EvaluatedActivity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="is_about_entity", slot_type=EvaluatedEntity, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class AnalysisDataset(Dataset):
+ """
+ A Dataset that was generated by an analysis of some previously generated data. For example, a dataset that
+ contains the data of an assignment of a chemical structure to a sample based on the spectral data obtained from
+ the sample is an AnalyticalDataset.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Dataset"]
+ class_class_curie: ClassVar[str] = "dcat:Dataset"
+ class_name: ClassVar[str] = "AnalysisDataset"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.AnalysisDataset
+
+ id: Union[str, AnalysisDatasetId] = None
+ description: Union[str, list[str]] = None
+ title: Union[str, list[str]] = None
+ was_generated_by: Optional[Union[dict[Union[str, DataAnalysisId], Union[dict, DataAnalysis]], list[Union[dict, DataAnalysis]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, AnalysisDatasetId):
+ self.id = AnalysisDatasetId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="was_generated_by", slot_type=DataAnalysis, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DatasetSeries(YAMLRoot):
+ """
+ See [DCAT-AP specs:DatasetSeries](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#DatasetSeries)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["DatasetSeries"]
+ class_class_curie: ClassVar[str] = "dcat:DatasetSeries"
+ class_name: ClassVar[str] = "DatasetSeries"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DatasetSeries
+
+ description: Union[str, list[str]] = None
+ title: Union[str, list[str]] = None
+ applicable_legislation: Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]] = empty_dict()
+ contact_point: Optional[Union[Union[dict, "Kind"], list[Union[dict, "Kind"]]]] = empty_list()
+ frequency: Optional[Union[dict, "Frequency"]] = None
+ geographical_coverage: Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]] = empty_list()
+ modification_date: Optional[Union[str, XSDDate]] = None
+ publisher: Optional[Union[dict, Agent]] = None
+ release_date: Optional[Union[str, XSDDate]] = None
+ temporal_coverage: Optional[Union[Union[dict, "PeriodOfTime"], list[Union[dict, "PeriodOfTime"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.description):
+ self.MissingRequiredField("description")
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ if self._is_empty(self.title):
+ self.MissingRequiredField("title")
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ self._normalize_inlined_as_list(slot_name="applicable_legislation", slot_type=LegalResource, key_name="id", keyed=True)
+
+ if not isinstance(self.contact_point, list):
+ self.contact_point = [self.contact_point] if self.contact_point is not None else []
+ self.contact_point = [v if isinstance(v, Kind) else Kind(**as_dict(v)) for v in self.contact_point]
+
+ if self.frequency is not None and not isinstance(self.frequency, Frequency):
+ self.frequency = Frequency(**as_dict(self.frequency))
+
+ if not isinstance(self.geographical_coverage, list):
+ self.geographical_coverage = [self.geographical_coverage] if self.geographical_coverage is not None else []
+ self.geographical_coverage = [v if isinstance(v, Location) else Location(**as_dict(v)) for v in self.geographical_coverage]
+
+ if self.modification_date is not None and not isinstance(self.modification_date, XSDDate):
+ self.modification_date = XSDDate(self.modification_date)
+
+ if self.publisher is not None and not isinstance(self.publisher, Agent):
+ self.publisher = Agent(**as_dict(self.publisher))
+
+ if self.release_date is not None and not isinstance(self.release_date, XSDDate):
+ self.release_date = XSDDate(self.release_date)
+
+ if not isinstance(self.temporal_coverage, list):
+ self.temporal_coverage = [self.temporal_coverage] if self.temporal_coverage is not None else []
+ self.temporal_coverage = [v if isinstance(v, PeriodOfTime) else PeriodOfTime(**as_dict(v)) for v in self.temporal_coverage]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DefinedTerm(YAMLRoot):
+ """
+ A word, name, acronym or phrase that is defined in a controlled vocabulary (CV) and that is used to provide an
+ additional rdf:type or dcterms:type of a class within this schema.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SCHEMA["DefinedTerm"]
+ class_class_curie: ClassVar[str] = "schema:DefinedTerm"
+ class_name: ClassVar[str] = "DefinedTerm"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DefinedTerm
+
+ id: Union[str, DefinedTermId] = None
+ title: Optional[str] = None
+ from_CV: Optional[Union[str, URIorCURIE]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DefinedTermId):
+ self.id = DefinedTermId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.from_CV is not None and not isinstance(self.from_CV, URIorCURIE):
+ self.from_CV = URIorCURIE(self.from_CV)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Device(AgenticEntity):
+ """
+ A material instrument that is designed to perform a function primarily by means of its mechanical or electrical
+ nature.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Agent"]
+ class_class_curie: ClassVar[str] = "prov:Agent"
+ class_name: ClassVar[str] = "Device"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Device
+
+ id: Union[str, DeviceId] = None
+ has_part: Optional[Union[dict[Union[str, DeviceId], Union[dict, "Device"]], list[Union[dict, "Device"]]]] = empty_dict()
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DeviceId):
+ self.id = DeviceId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=Device, key_name="id", keyed=True)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ReactorDesignType(Device):
+ """
+ Abstract Device representing the type of reactor used in a catalytic experiment.
+ Concrete subclasses specify the reactor geometry and operating mode.
+ Linked from Reaction via carried_out_by.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0007018"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0007018"
+ class_name: ClassVar[str] = "ReactorDesignType"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ReactorDesignType
+
+ id: Union[str, ReactorDesignTypeId] = None
+
+@dataclass(repr=False)
+class ElectrochemicalReactor(ReactorDesignType):
+ """
+ Electrochemical reactor used in electrocatalytic experiments, including
+ H-cells, flow cells, and membrane electrode assemblies.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000193"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000193"
+ class_name: ClassVar[str] = "ElectrochemicalReactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElectrochemicalReactor
+
+ id: Union[str, ElectrochemicalReactorId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ElectrochemicalReactorId):
+ self.id = ElectrochemicalReactorId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CSTR(ReactorDesignType):
+ """
+ Continuous stirred tank reactor (CSTR) — a well-mixed, continuous-flow
+ reactor operating at steady state.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0007019"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0007019"
+ class_name: ClassVar[str] = "CSTR"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CSTR
+
+ id: Union[str, CSTRId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, CSTRId):
+ self.id = CSTRId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PlugFlowReactor(ReactorDesignType):
+ """
+ Plug flow reactor (PFR) — a tubular reactor in which reactant composition
+ varies along the axis with no axial mixing.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0007102"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0007102"
+ class_name: ClassVar[str] = "PlugFlowReactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PlugFlowReactor
+
+ id: Union[str, PlugFlowReactorId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, PlugFlowReactorId):
+ self.id = PlugFlowReactorId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Autoclave(ReactorDesignType):
+ """
+ Autoclave reactor — a sealed pressure vessel for batch reactions at
+ elevated temperature and/or pressure.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = NCIT["C93052"]
+ class_class_curie: ClassVar[str] = "NCIT:C93052"
+ class_name: ClassVar[str] = "Autoclave"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Autoclave
+
+ id: Union[str, AutoclaveId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, AutoclaveId):
+ self.id = AutoclaveId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SlurryReactor(ReactorDesignType):
+ """
+ Slurry reactor — a three-phase reactor in which catalyst particles are
+ suspended in a liquid phase through which gas is bubbled.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["SlurryReactor"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:SlurryReactor"
+ class_name: ClassVar[str] = "SlurryReactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SlurryReactor
+
+ id: Union[str, SlurryReactorId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, SlurryReactorId):
+ self.id = SlurryReactorId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Microreactor(ReactorDesignType):
+ """
+ Microreactor — a miniaturised flow reactor with characteristic dimensions
+ in the sub-millimetre range, enabling precise thermal control and rapid
+ screening.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000234"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000234"
+ class_name: ClassVar[str] = "Microreactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Microreactor
+
+ id: Union[str, MicroreactorId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, MicroreactorId):
+ self.id = MicroreactorId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class FixedBedReactor(ReactorDesignType):
+ """
+ Fixed bed reactor — a tubular reactor packed with a stationary catalyst bed.
+ The most common reactor type in heterogeneous catalysis testing.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["FixedBedReactor"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:FixedBedReactor"
+ class_name: ClassVar[str] = "FixedBedReactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.FixedBedReactor
+
+ id: Union[str, FixedBedReactorId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, FixedBedReactorId):
+ self.id = FixedBedReactorId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class FluidizedBedReactor(ReactorDesignType):
+ """
+ Fluidized bed reactor — a reactor in which the catalyst particles are
+ suspended in an upward-flowing gas or liquid stream.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["FluidizedBedReactor"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:FluidizedBedReactor"
+ class_name: ClassVar[str] = "FluidizedBedReactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.FluidizedBedReactor
+
+ id: Union[str, FluidizedBedReactorId] = None
+ gas_distributor_type: Optional[Union[str, list[str]]] = empty_list()
+ bed_expansion_height: Optional[Union[float, list[float]]] = empty_list()
+ bubble_size_distribution: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, FluidizedBedReactorId):
+ self.id = FluidizedBedReactorId(self.id)
+
+ if not isinstance(self.gas_distributor_type, list):
+ self.gas_distributor_type = [self.gas_distributor_type] if self.gas_distributor_type is not None else []
+ self.gas_distributor_type = [v if isinstance(v, str) else str(v) for v in self.gas_distributor_type]
+
+ if not isinstance(self.bed_expansion_height, list):
+ self.bed_expansion_height = [self.bed_expansion_height] if self.bed_expansion_height is not None else []
+ self.bed_expansion_height = [v if isinstance(v, float) else float(v) for v in self.bed_expansion_height]
+
+ if self.bubble_size_distribution is not None and not isinstance(self.bubble_size_distribution, str):
+ self.bubble_size_distribution = str(self.bubble_size_distribution)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Distribution(YAMLRoot):
+ """
+ See [DCAT-AP specs:Distribution](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Distribution)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Distribution"]
+ class_class_curie: ClassVar[str] = "dcat:Distribution"
+ class_name: ClassVar[str] = "Distribution"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Distribution
+
+ access_URL: Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]] = empty_dict()
+ access_service: Optional[Union[Union[dict, DataService], list[Union[dict, DataService]]]] = empty_list()
+ applicable_legislation: Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]] = empty_dict()
+ availability: Optional[Union[dict, "Concept"]] = None
+ byte_size: Optional[int] = None
+ checksum: Optional[Union[dict, Checksum]] = None
+ compression_format: Optional[Union[dict, "MediaType"]] = None
+ description: Optional[Union[str, list[str]]] = empty_list()
+ documentation: Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]] = empty_dict()
+ download_URL: Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]] = empty_dict()
+ format: Optional[Union[dict, "MediaTypeOrExtent"]] = None
+ has_policy: Optional[Union[dict, "Policy"]] = None
+ language: Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]] = empty_list()
+ licence: Optional[Union[dict, "LicenseDocument"]] = None
+ linked_schemas: Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]] = empty_list()
+ media_type: Optional[Union[dict, "MediaType"]] = None
+ modification_date: Optional[Union[str, XSDDate]] = None
+ packaging_format: Optional[Union[dict, "MediaType"]] = None
+ release_date: Optional[Union[str, XSDDate]] = None
+ rights: Optional[Union[dict, "RightsStatement"]] = None
+ spatial_resolution: Optional[Decimal] = None
+ status: Optional[Union[dict, "Concept"]] = None
+ temporal_resolution: Optional[str] = None
+ title: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.access_URL):
+ self.MissingRequiredField("access_URL")
+ self._normalize_inlined_as_list(slot_name="access_URL", slot_type=Resource, key_name="id", keyed=True)
+
+ if not isinstance(self.access_service, list):
+ self.access_service = [self.access_service] if self.access_service is not None else []
+ self.access_service = [v if isinstance(v, DataService) else DataService(**as_dict(v)) for v in self.access_service]
+
+ self._normalize_inlined_as_list(slot_name="applicable_legislation", slot_type=LegalResource, key_name="id", keyed=True)
+
+ if self.availability is not None and not isinstance(self.availability, Concept):
+ self.availability = Concept(**as_dict(self.availability))
+
+ if self.byte_size is not None and not isinstance(self.byte_size, int):
+ self.byte_size = int(self.byte_size)
+
+ if self.checksum is not None and not isinstance(self.checksum, Checksum):
+ self.checksum = Checksum(**as_dict(self.checksum))
+
+ if self.compression_format is not None and not isinstance(self.compression_format, MediaType):
+ self.compression_format = MediaType(**as_dict(self.compression_format))
+
+ if not isinstance(self.description, list):
+ self.description = [self.description] if self.description is not None else []
+ self.description = [v if isinstance(v, str) else str(v) for v in self.description]
+
+ self._normalize_inlined_as_list(slot_name="documentation", slot_type=Document, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="download_URL", slot_type=Resource, key_name="id", keyed=True)
+
+ if self.format is not None and not isinstance(self.format, MediaTypeOrExtent):
+ self.format = MediaTypeOrExtent(**as_dict(self.format))
+
+ if self.has_policy is not None and not isinstance(self.has_policy, Policy):
+ self.has_policy = Policy(**as_dict(self.has_policy))
+
+ if not isinstance(self.language, list):
+ self.language = [self.language] if self.language is not None else []
+ self.language = [v if isinstance(v, LinguisticSystem) else LinguisticSystem(**as_dict(v)) for v in self.language]
+
+ if self.licence is not None and not isinstance(self.licence, LicenseDocument):
+ self.licence = LicenseDocument(**as_dict(self.licence))
+
+ if not isinstance(self.linked_schemas, list):
+ self.linked_schemas = [self.linked_schemas] if self.linked_schemas is not None else []
+ self.linked_schemas = [v if isinstance(v, Standard) else Standard(**as_dict(v)) for v in self.linked_schemas]
+
+ if self.media_type is not None and not isinstance(self.media_type, MediaType):
+ self.media_type = MediaType(**as_dict(self.media_type))
+
+ if self.modification_date is not None and not isinstance(self.modification_date, XSDDate):
+ self.modification_date = XSDDate(self.modification_date)
+
+ if self.packaging_format is not None and not isinstance(self.packaging_format, MediaType):
+ self.packaging_format = MediaType(**as_dict(self.packaging_format))
+
+ if self.release_date is not None and not isinstance(self.release_date, XSDDate):
+ self.release_date = XSDDate(self.release_date)
+
+ if self.rights is not None and not isinstance(self.rights, RightsStatement):
+ self.rights = RightsStatement(**as_dict(self.rights))
+
+ if self.spatial_resolution is not None and not isinstance(self.spatial_resolution, Decimal):
+ self.spatial_resolution = Decimal(self.spatial_resolution)
+
+ if self.status is not None and not isinstance(self.status, Concept):
+ self.status = Concept(**as_dict(self.status))
+
+ if self.temporal_resolution is not None and not isinstance(self.temporal_resolution, str):
+ self.temporal_resolution = str(self.temporal_resolution)
+
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Entity(YAMLRoot):
+ """
+ A physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Entity"]
+ class_class_curie: ClassVar[str] = "prov:Entity"
+ class_name: ClassVar[str] = "Entity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Entity
+
+ id: Union[str, EntityId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+ has_qualitative_attribute: Optional[Union[Union[dict, "QualitativeAttribute"], list[Union[dict, "QualitativeAttribute"]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, "QuantitativeAttribute"], list[Union[dict, "QuantitativeAttribute"]]]] = empty_list()
+ has_part: Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]] = empty_dict()
+ part_of: Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]] = empty_dict()
+ type: Optional[Union[dict, DefinedTerm]] = None
+ rdf_type: Optional[Union[dict, DefinedTerm]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, EntityId):
+ self.id = EntityId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=Entity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="part_of", slot_type=Entity, key_name="id", keyed=True)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class EvaluatedActivity(Activity):
+ """
+ An activity or process that is being evaluated in a DataGeneratingActivity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Activity"]
+ class_class_curie: ClassVar[str] = "prov:Activity"
+ class_name: ClassVar[str] = "EvaluatedActivity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.EvaluatedActivity
+
+ id: Union[str, EvaluatedActivityId] = None
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, EvaluatedActivityId):
+ self.id = EvaluatedActivityId(self.id)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Reaction(EvaluatedActivity):
+ """
+ An EvaluatedActivity representing the catalytic reaction being studied.
+
+ Reaction is NOT a DataGeneratingActivity — it is the catalytic process
+ being observed, not the process that generates the dataset. A CatalysisDataset
+ is linked to the Reaction it is about via is_about_activity.
+
+ For operando experiments (e.g. in-situ XRD during a reaction), the dataset
+ carries both:
+ was_generated_by: Characterization (the measurement producing data)
+ is_about_activity: Reaction (the catalytic process being monitored)
+
+ The reactor is linked via carried_out_by as a ReactorDesignType (Device).
+ Reactants are linked via had_input_entity. The type of catalytic reaction
+ (e.g. ammonia synthesis, CO oxidation) is expressed via rdf_type using a
+ voc4cat or ChemO term.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["010345"]
+ class_class_curie: ClassVar[str] = "SIO:010345"
+ class_name: ClassVar[str] = "Reaction"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Reaction
+
+ id: Union[str, ReactionId] = None
+ catalyst_quantity: Union[float, list[float]] = None
+ reactant: Union[str, list[str]] = None
+ carried_out_by: Union[dict[Union[str, ReactorDesignTypeId], Union[dict, ReactorDesignType]], list[Union[dict, ReactorDesignType]]] = empty_dict()
+ product_identification_method: Union[Union[dict, "ProductIdentificationMethod"], list[Union[dict, "ProductIdentificationMethod"]]] = None
+ catalyst_type: Optional[Union[str, list[str]]] = empty_list()
+ reactor_temperature_range: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ experiment_pressure: Optional[Union[float, list[float]]] = empty_list()
+ feed_composition_range: Optional[Union[str, list[str]]] = empty_list()
+ experiment_duration: Optional[Union[float, list[float]]] = empty_list()
+ rdf_type: Optional[Union[dict, DefinedTerm]] = None
+ had_input_entity: Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ReactionId):
+ self.id = ReactionId(self.id)
+
+ if self._is_empty(self.catalyst_quantity):
+ self.MissingRequiredField("catalyst_quantity")
+ if not isinstance(self.catalyst_quantity, list):
+ self.catalyst_quantity = [self.catalyst_quantity] if self.catalyst_quantity is not None else []
+ self.catalyst_quantity = [v if isinstance(v, float) else float(v) for v in self.catalyst_quantity]
+
+ if self._is_empty(self.reactant):
+ self.MissingRequiredField("reactant")
+ if not isinstance(self.reactant, list):
+ self.reactant = [self.reactant] if self.reactant is not None else []
+ self.reactant = [v if isinstance(v, str) else str(v) for v in self.reactant]
+
+ if self._is_empty(self.carried_out_by):
+ self.MissingRequiredField("carried_out_by")
+ self._normalize_inlined_as_list(slot_name="carried_out_by", slot_type=ReactorDesignType, key_name="id", keyed=True)
+
+ if self._is_empty(self.product_identification_method):
+ self.MissingRequiredField("product_identification_method")
+ if not isinstance(self.product_identification_method, list):
+ self.product_identification_method = [self.product_identification_method] if self.product_identification_method is not None else []
+ self.product_identification_method = [v if isinstance(v, ProductIdentificationMethod) else ProductIdentificationMethod(**as_dict(v)) for v in self.product_identification_method]
+
+ if not isinstance(self.catalyst_type, list):
+ self.catalyst_type = [self.catalyst_type] if self.catalyst_type is not None else []
+ self.catalyst_type = [v if isinstance(v, str) else str(v) for v in self.catalyst_type]
+
+ if not isinstance(self.reactor_temperature_range, list):
+ self.reactor_temperature_range = [self.reactor_temperature_range] if self.reactor_temperature_range is not None else []
+ self.reactor_temperature_range = [v if isinstance(v, str) else str(v) for v in self.reactor_temperature_range]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.experiment_pressure, list):
+ self.experiment_pressure = [self.experiment_pressure] if self.experiment_pressure is not None else []
+ self.experiment_pressure = [v if isinstance(v, float) else float(v) for v in self.experiment_pressure]
+
+ if not isinstance(self.feed_composition_range, list):
+ self.feed_composition_range = [self.feed_composition_range] if self.feed_composition_range is not None else []
+ self.feed_composition_range = [v if isinstance(v, str) else str(v) for v in self.feed_composition_range]
+
+ if not isinstance(self.experiment_duration, list):
+ self.experiment_duration = [self.experiment_duration] if self.experiment_duration is not None else []
+ self.experiment_duration = [v if isinstance(v, float) else float(v) for v in self.experiment_duration]
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ self._normalize_inlined_as_list(slot_name="had_input_entity", slot_type=EvaluatedEntity, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class EvaluatedEntity(Entity):
+ """
+ An Entity that is being evaluated in a DataGeneratingActivity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Entity"]
+ class_class_curie: ClassVar[str] = "prov:Entity"
+ class_name: ClassVar[str] = "EvaluatedEntity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.EvaluatedEntity
+
+ id: Union[str, EvaluatedEntityId] = None
+ was_generated_by: Optional[Union[dict[Union[str, ActivityId], Union[dict, Activity]], list[Union[dict, Activity]]]] = empty_dict()
+ title: Optional[str] = None
+ description: Optional[str] = None
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, EvaluatedEntityId):
+ self.id = EvaluatedEntityId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="was_generated_by", slot_type=Activity, key_name="id", keyed=True)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class AnalysisSourceData(EvaluatedEntity):
+ """
+ Information that was evaluated within a DataAnalysis.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Entity"]
+ class_class_curie: ClassVar[str] = "prov:Entity"
+ class_name: ClassVar[str] = "AnalysisSourceData"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.AnalysisSourceData
+
+ id: Union[str, AnalysisSourceDataId] = None
+ was_generated_by: Optional[Union[dict[Union[str, DataGeneratingActivityId], Union[dict, DataGeneratingActivity]], list[Union[dict, DataGeneratingActivity]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, AnalysisSourceDataId):
+ self.id = AnalysisSourceDataId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="was_generated_by", slot_type=DataGeneratingActivity, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+class Kind(YAMLRoot):
+ """
+ See [DCAT-AP specs:Kind](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Kind)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VCARD["Kind"]
+ class_class_curie: ClassVar[str] = "vcard:Kind"
+ class_name: ClassVar[str] = "Kind"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Kind
+
+
+@dataclass(repr=False)
+class Location(YAMLRoot):
+ """
+ See [DCAT-AP specs:Location](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Location)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["Location"]
+ class_class_curie: ClassVar[str] = "dcterms:Location"
+ class_name: ClassVar[str] = "Location"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Location
+
+ bbox: Optional[str] = None
+ centroid: Optional[str] = None
+ geometry: Optional[Union[dict, "Geometry"]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.bbox is not None and not isinstance(self.bbox, str):
+ self.bbox = str(self.bbox)
+
+ if self.centroid is not None and not isinstance(self.centroid, str):
+ self.centroid = str(self.centroid)
+
+ if self.geometry is not None and not isinstance(self.geometry, Geometry):
+ self.geometry = Geometry(**as_dict(self.geometry))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Plan(YAMLRoot):
+ """
+ A piece of information that specifies how an activity has to be carried out by its agents including what kind of
+ steps have to be taken and what kind of parameters have to be met/set.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Plan"]
+ class_class_curie: ClassVar[str] = "prov:Plan"
+ class_name: ClassVar[str] = "Plan"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Plan
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+ type: Optional[Union[dict, DefinedTerm]] = None
+ rdf_type: Optional[Union[dict, DefinedTerm]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+class PreparationMethod(Plan):
+ """
+ An abstract Plan describing the protocol used to prepare a catalyst.
+ Concrete subclasses (Impregnation, CoPrecipitation, …) specify the
+ method-specific parameters. Linked from Synthesis via realized_plan.
+
+ The specific preparation method type should additionally be expressed
+ via rdf_type on the Synthesis activity using a voc4cat term
+ (e.g. VOC4CAT:0007016 for preparation method).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000272"]
+ class_class_curie: ClassVar[str] = "OBI:0000272"
+ class_name: ClassVar[str] = "PreparationMethod"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PreparationMethod
+
+
+@dataclass(repr=False)
+class Impregnation(PreparationMethod):
+ """
+ Catalyst preparation by impregnation: a solution of the active phase
+ precursor is brought into contact with the support material.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Impregnation"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Impregnation"
+ class_name: ClassVar[str] = "Impregnation"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Impregnation
+
+ impregnation_type: Optional[Union[Union[str, "ImpregnationTypeEnum"], list[Union[str, "ImpregnationTypeEnum"]]]] = empty_list()
+ impregnation_duration: Optional[Union[float, list[float]]] = empty_list()
+ impregnation_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ calcination_initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_dwelling_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ calcination_gaseous_environment: Optional[Union[str, list[str]]] = empty_list()
+ calcination_heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ calcination_gas_flow_rate: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.impregnation_type, list):
+ self.impregnation_type = [self.impregnation_type] if self.impregnation_type is not None else []
+ self.impregnation_type = [v if isinstance(v, ImpregnationTypeEnum) else ImpregnationTypeEnum(v) for v in self.impregnation_type]
+
+ if not isinstance(self.impregnation_duration, list):
+ self.impregnation_duration = [self.impregnation_duration] if self.impregnation_duration is not None else []
+ self.impregnation_duration = [v if isinstance(v, float) else float(v) for v in self.impregnation_duration]
+
+ if not isinstance(self.impregnation_temperature, list):
+ self.impregnation_temperature = [self.impregnation_temperature] if self.impregnation_temperature is not None else []
+ self.impregnation_temperature = [v if isinstance(v, float) else float(v) for v in self.impregnation_temperature]
+
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ if not isinstance(self.calcination_initial_temperature, list):
+ self.calcination_initial_temperature = [self.calcination_initial_temperature] if self.calcination_initial_temperature is not None else []
+ self.calcination_initial_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_initial_temperature]
+
+ if not isinstance(self.calcination_final_temperature, list):
+ self.calcination_final_temperature = [self.calcination_final_temperature] if self.calcination_final_temperature is not None else []
+ self.calcination_final_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_final_temperature]
+
+ if not isinstance(self.calcination_dwelling_time, list):
+ self.calcination_dwelling_time = [self.calcination_dwelling_time] if self.calcination_dwelling_time is not None else []
+ self.calcination_dwelling_time = [v if isinstance(v, float) else float(v) for v in self.calcination_dwelling_time]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.calcination_gaseous_environment, list):
+ self.calcination_gaseous_environment = [self.calcination_gaseous_environment] if self.calcination_gaseous_environment is not None else []
+ self.calcination_gaseous_environment = [v if isinstance(v, str) else str(v) for v in self.calcination_gaseous_environment]
+
+ if not isinstance(self.calcination_heating_rate, list):
+ self.calcination_heating_rate = [self.calcination_heating_rate] if self.calcination_heating_rate is not None else []
+ self.calcination_heating_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_heating_rate]
+
+ if not isinstance(self.calcination_gas_flow_rate, list):
+ self.calcination_gas_flow_rate = [self.calcination_gas_flow_rate] if self.calcination_gas_flow_rate is not None else []
+ self.calcination_gas_flow_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_gas_flow_rate]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CoPrecipitation(PreparationMethod):
+ """
+ Catalyst preparation by co-precipitation: precursor salts are
+ simultaneously precipitated from solution by a precipitating agent.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["CoPrecipitation"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:CoPrecipitation"
+ class_name: ClassVar[str] = "CoPrecipitation"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CoPrecipitation
+
+ precipitating_agent: Optional[Union[str, list[str]]] = empty_list()
+ precipitating_concentration: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_ph: Optional[Union[float, list[float]]] = empty_list()
+ mixing_rate: Optional[Union[float, list[float]]] = empty_list()
+ mixing_time: Optional[Union[float, list[float]]] = empty_list()
+ mixing_temperature: Optional[Union[float, list[float]]] = empty_list()
+ order_of_addition: Optional[Union[str, list[str]]] = empty_list()
+ filtration: Optional[Union[str, list[str]]] = empty_list()
+ purification: Optional[Union[str, list[str]]] = empty_list()
+ aging_temperature: Optional[Union[float, list[float]]] = empty_list()
+ aging_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ calcination_initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_dwelling_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ calcination_gaseous_environment: Optional[Union[str, list[str]]] = empty_list()
+ calcination_heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ calcination_gas_flow_rate: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.precipitating_agent, list):
+ self.precipitating_agent = [self.precipitating_agent] if self.precipitating_agent is not None else []
+ self.precipitating_agent = [v if isinstance(v, str) else str(v) for v in self.precipitating_agent]
+
+ if not isinstance(self.precipitating_concentration, list):
+ self.precipitating_concentration = [self.precipitating_concentration] if self.precipitating_concentration is not None else []
+ self.precipitating_concentration = [v if isinstance(v, float) else float(v) for v in self.precipitating_concentration]
+
+ if not isinstance(self.synthesis_ph, list):
+ self.synthesis_ph = [self.synthesis_ph] if self.synthesis_ph is not None else []
+ self.synthesis_ph = [v if isinstance(v, float) else float(v) for v in self.synthesis_ph]
+
+ if not isinstance(self.mixing_rate, list):
+ self.mixing_rate = [self.mixing_rate] if self.mixing_rate is not None else []
+ self.mixing_rate = [v if isinstance(v, float) else float(v) for v in self.mixing_rate]
+
+ if not isinstance(self.mixing_time, list):
+ self.mixing_time = [self.mixing_time] if self.mixing_time is not None else []
+ self.mixing_time = [v if isinstance(v, float) else float(v) for v in self.mixing_time]
+
+ if not isinstance(self.mixing_temperature, list):
+ self.mixing_temperature = [self.mixing_temperature] if self.mixing_temperature is not None else []
+ self.mixing_temperature = [v if isinstance(v, float) else float(v) for v in self.mixing_temperature]
+
+ if not isinstance(self.order_of_addition, list):
+ self.order_of_addition = [self.order_of_addition] if self.order_of_addition is not None else []
+ self.order_of_addition = [v if isinstance(v, str) else str(v) for v in self.order_of_addition]
+
+ if not isinstance(self.filtration, list):
+ self.filtration = [self.filtration] if self.filtration is not None else []
+ self.filtration = [v if isinstance(v, str) else str(v) for v in self.filtration]
+
+ if not isinstance(self.purification, list):
+ self.purification = [self.purification] if self.purification is not None else []
+ self.purification = [v if isinstance(v, str) else str(v) for v in self.purification]
+
+ if not isinstance(self.aging_temperature, list):
+ self.aging_temperature = [self.aging_temperature] if self.aging_temperature is not None else []
+ self.aging_temperature = [v if isinstance(v, float) else float(v) for v in self.aging_temperature]
+
+ if not isinstance(self.aging_time, list):
+ self.aging_time = [self.aging_time] if self.aging_time is not None else []
+ self.aging_time = [v if isinstance(v, float) else float(v) for v in self.aging_time]
+
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ if not isinstance(self.calcination_initial_temperature, list):
+ self.calcination_initial_temperature = [self.calcination_initial_temperature] if self.calcination_initial_temperature is not None else []
+ self.calcination_initial_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_initial_temperature]
+
+ if not isinstance(self.calcination_final_temperature, list):
+ self.calcination_final_temperature = [self.calcination_final_temperature] if self.calcination_final_temperature is not None else []
+ self.calcination_final_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_final_temperature]
+
+ if not isinstance(self.calcination_dwelling_time, list):
+ self.calcination_dwelling_time = [self.calcination_dwelling_time] if self.calcination_dwelling_time is not None else []
+ self.calcination_dwelling_time = [v if isinstance(v, float) else float(v) for v in self.calcination_dwelling_time]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.calcination_gaseous_environment, list):
+ self.calcination_gaseous_environment = [self.calcination_gaseous_environment] if self.calcination_gaseous_environment is not None else []
+ self.calcination_gaseous_environment = [v if isinstance(v, str) else str(v) for v in self.calcination_gaseous_environment]
+
+ if not isinstance(self.calcination_heating_rate, list):
+ self.calcination_heating_rate = [self.calcination_heating_rate] if self.calcination_heating_rate is not None else []
+ self.calcination_heating_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_heating_rate]
+
+ if not isinstance(self.calcination_gas_flow_rate, list):
+ self.calcination_gas_flow_rate = [self.calcination_gas_flow_rate] if self.calcination_gas_flow_rate is not None else []
+ self.calcination_gas_flow_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_gas_flow_rate]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SolGel(PreparationMethod):
+ """
+ Catalyst preparation by the sol-gel process: hydrolysis and condensation
+ of precursor molecules to form a colloidal network (gel).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["SolGel"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:SolGel"
+ class_name: ClassVar[str] = "SolGel"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SolGel
+
+ hydrolysis_ratio: Optional[Union[float, list[float]]] = empty_list()
+ aging_time: Optional[Union[float, list[float]]] = empty_list()
+ drying: Optional[Union[str, list[str]]] = empty_list()
+ surfactant_template: Optional[Union[str, list[str]]] = empty_list()
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.hydrolysis_ratio, list):
+ self.hydrolysis_ratio = [self.hydrolysis_ratio] if self.hydrolysis_ratio is not None else []
+ self.hydrolysis_ratio = [v if isinstance(v, float) else float(v) for v in self.hydrolysis_ratio]
+
+ if not isinstance(self.aging_time, list):
+ self.aging_time = [self.aging_time] if self.aging_time is not None else []
+ self.aging_time = [v if isinstance(v, float) else float(v) for v in self.aging_time]
+
+ if not isinstance(self.drying, list):
+ self.drying = [self.drying] if self.drying is not None else []
+ self.drying = [v if isinstance(v, str) else str(v) for v in self.drying]
+
+ if not isinstance(self.surfactant_template, list):
+ self.surfactant_template = [self.surfactant_template] if self.surfactant_template is not None else []
+ self.surfactant_template = [v if isinstance(v, str) else str(v) for v in self.surfactant_template]
+
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Solvothermal(PreparationMethod):
+ """
+ Catalyst preparation under elevated temperature and pressure in a
+ sealed vessel using a non-aqueous solvent.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Solvothermal"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Solvothermal"
+ class_name: ClassVar[str] = "Solvothermal"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Solvothermal
+
+ filling_volume: Optional[Union[float, list[float]]] = empty_list()
+ stirrer_type: Optional[Union[str, list[str]]] = empty_list()
+ cooling_rate: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.filling_volume, list):
+ self.filling_volume = [self.filling_volume] if self.filling_volume is not None else []
+ self.filling_volume = [v if isinstance(v, float) else float(v) for v in self.filling_volume]
+
+ if not isinstance(self.stirrer_type, list):
+ self.stirrer_type = [self.stirrer_type] if self.stirrer_type is not None else []
+ self.stirrer_type = [v if isinstance(v, str) else str(v) for v in self.stirrer_type]
+
+ if not isinstance(self.cooling_rate, list):
+ self.cooling_rate = [self.cooling_rate] if self.cooling_rate is not None else []
+ self.cooling_rate = [v if isinstance(v, float) else float(v) for v in self.cooling_rate]
+
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PlasmaAssisted(PreparationMethod):
+ """
+ Catalyst preparation using plasma treatment to modify surface
+ properties or deposit active components.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["PlasmaAssisted"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:PlasmaAssisted"
+ class_name: ClassVar[str] = "PlasmaAssisted"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PlasmaAssisted
+
+ plasma_type: Optional[Union[str, list[str]]] = empty_list()
+ power_input: Optional[Union[float, list[float]]] = empty_list()
+ exposure_time: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_pressure: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.plasma_type, list):
+ self.plasma_type = [self.plasma_type] if self.plasma_type is not None else []
+ self.plasma_type = [v if isinstance(v, str) else str(v) for v in self.plasma_type]
+
+ if not isinstance(self.power_input, list):
+ self.power_input = [self.power_input] if self.power_input is not None else []
+ self.power_input = [v if isinstance(v, float) else float(v) for v in self.power_input]
+
+ if not isinstance(self.exposure_time, list):
+ self.exposure_time = [self.exposure_time] if self.exposure_time is not None else []
+ self.exposure_time = [v if isinstance(v, float) else float(v) for v in self.exposure_time]
+
+ if not isinstance(self.synthesis_pressure, list):
+ self.synthesis_pressure = [self.synthesis_pressure] if self.synthesis_pressure is not None else []
+ self.synthesis_pressure = [v if isinstance(v, float) else float(v) for v in self.synthesis_pressure]
+
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CombustionSynthesis(PreparationMethod):
+ """
+ Catalyst preparation by combustion of a fuel/oxidizer mixture,
+ producing metal oxide catalysts in a single rapid step.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["CombustionSynthesis"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:CombustionSynthesis"
+ class_name: ClassVar[str] = "CombustionSynthesis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CombustionSynthesis
+
+ fuel: Optional[Union[str, list[str]]] = empty_list()
+ oxidizer: Optional[Union[str, list[str]]] = empty_list()
+ fuel_to_oxidizer_ratio: Optional[Union[float, list[float]]] = empty_list()
+ set_temperature: Optional[Union[float, list[float]]] = empty_list()
+ post_treatment: Optional[Union[str, list[str]]] = empty_list()
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.fuel, list):
+ self.fuel = [self.fuel] if self.fuel is not None else []
+ self.fuel = [v if isinstance(v, str) else str(v) for v in self.fuel]
+
+ if not isinstance(self.oxidizer, list):
+ self.oxidizer = [self.oxidizer] if self.oxidizer is not None else []
+ self.oxidizer = [v if isinstance(v, str) else str(v) for v in self.oxidizer]
+
+ if not isinstance(self.fuel_to_oxidizer_ratio, list):
+ self.fuel_to_oxidizer_ratio = [self.fuel_to_oxidizer_ratio] if self.fuel_to_oxidizer_ratio is not None else []
+ self.fuel_to_oxidizer_ratio = [v if isinstance(v, float) else float(v) for v in self.fuel_to_oxidizer_ratio]
+
+ if not isinstance(self.set_temperature, list):
+ self.set_temperature = [self.set_temperature] if self.set_temperature is not None else []
+ self.set_temperature = [v if isinstance(v, float) else float(v) for v in self.set_temperature]
+
+ if not isinstance(self.post_treatment, list):
+ self.post_treatment = [self.post_treatment] if self.post_treatment is not None else []
+ self.post_treatment = [v if isinstance(v, str) else str(v) for v in self.post_treatment]
+
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class AtomicLayerDeposition(PreparationMethod):
+ """
+ Catalyst preparation by atomic layer deposition (ALD): sequential
+ self-limiting surface reactions deposit a conformal thin film
+ of active phase onto a substrate.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["AtomicLayerDeposition"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:AtomicLayerDeposition"
+ class_name: ClassVar[str] = "AtomicLayerDeposition"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.AtomicLayerDeposition
+
+ substrate: Optional[Union[str, list[str]]] = empty_list()
+ pulse_time: Optional[Union[float, list[float]]] = empty_list()
+ purging_duration: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ deposition_temperature: Optional[Union[float, list[float]]] = empty_list()
+ carrier_gas: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.substrate, list):
+ self.substrate = [self.substrate] if self.substrate is not None else []
+ self.substrate = [v if isinstance(v, str) else str(v) for v in self.substrate]
+
+ if not isinstance(self.pulse_time, list):
+ self.pulse_time = [self.pulse_time] if self.pulse_time is not None else []
+ self.pulse_time = [v if isinstance(v, float) else float(v) for v in self.pulse_time]
+
+ if not isinstance(self.purging_duration, list):
+ self.purging_duration = [self.purging_duration] if self.purging_duration is not None else []
+ self.purging_duration = [v if isinstance(v, float) else float(v) for v in self.purging_duration]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.deposition_temperature, list):
+ self.deposition_temperature = [self.deposition_temperature] if self.deposition_temperature is not None else []
+ self.deposition_temperature = [v if isinstance(v, float) else float(v) for v in self.deposition_temperature]
+
+ if not isinstance(self.carrier_gas, list):
+ self.carrier_gas = [self.carrier_gas] if self.carrier_gas is not None else []
+ self.carrier_gas = [v if isinstance(v, str) else str(v) for v in self.carrier_gas]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DepositionPrecipitation(PreparationMethod):
+ """
+ Catalyst preparation by deposition-precipitation: the active phase
+ is precipitated directly onto the support surface.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["DepositionPrecipitation"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:DepositionPrecipitation"
+ class_name: ClassVar[str] = "DepositionPrecipitation"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DepositionPrecipitation
+
+ deposition_temperature: Optional[Union[float, list[float]]] = empty_list()
+ deposition_time: Optional[Union[float, list[float]]] = empty_list()
+ precipitating_agent: Optional[Union[str, list[str]]] = empty_list()
+ precipitating_concentration: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_ph: Optional[Union[float, list[float]]] = empty_list()
+ mixing_rate: Optional[Union[float, list[float]]] = empty_list()
+ mixing_time: Optional[Union[float, list[float]]] = empty_list()
+ mixing_temperature: Optional[Union[float, list[float]]] = empty_list()
+ order_of_addition: Optional[Union[str, list[str]]] = empty_list()
+ filtration: Optional[Union[str, list[str]]] = empty_list()
+ purification: Optional[Union[str, list[str]]] = empty_list()
+ aging_temperature: Optional[Union[float, list[float]]] = empty_list()
+ aging_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ calcination_initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_dwelling_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ calcination_gaseous_environment: Optional[Union[str, list[str]]] = empty_list()
+ calcination_heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ calcination_gas_flow_rate: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.deposition_temperature, list):
+ self.deposition_temperature = [self.deposition_temperature] if self.deposition_temperature is not None else []
+ self.deposition_temperature = [v if isinstance(v, float) else float(v) for v in self.deposition_temperature]
+
+ if not isinstance(self.deposition_time, list):
+ self.deposition_time = [self.deposition_time] if self.deposition_time is not None else []
+ self.deposition_time = [v if isinstance(v, float) else float(v) for v in self.deposition_time]
+
+ if not isinstance(self.precipitating_agent, list):
+ self.precipitating_agent = [self.precipitating_agent] if self.precipitating_agent is not None else []
+ self.precipitating_agent = [v if isinstance(v, str) else str(v) for v in self.precipitating_agent]
+
+ if not isinstance(self.precipitating_concentration, list):
+ self.precipitating_concentration = [self.precipitating_concentration] if self.precipitating_concentration is not None else []
+ self.precipitating_concentration = [v if isinstance(v, float) else float(v) for v in self.precipitating_concentration]
+
+ if not isinstance(self.synthesis_ph, list):
+ self.synthesis_ph = [self.synthesis_ph] if self.synthesis_ph is not None else []
+ self.synthesis_ph = [v if isinstance(v, float) else float(v) for v in self.synthesis_ph]
+
+ if not isinstance(self.mixing_rate, list):
+ self.mixing_rate = [self.mixing_rate] if self.mixing_rate is not None else []
+ self.mixing_rate = [v if isinstance(v, float) else float(v) for v in self.mixing_rate]
+
+ if not isinstance(self.mixing_time, list):
+ self.mixing_time = [self.mixing_time] if self.mixing_time is not None else []
+ self.mixing_time = [v if isinstance(v, float) else float(v) for v in self.mixing_time]
+
+ if not isinstance(self.mixing_temperature, list):
+ self.mixing_temperature = [self.mixing_temperature] if self.mixing_temperature is not None else []
+ self.mixing_temperature = [v if isinstance(v, float) else float(v) for v in self.mixing_temperature]
+
+ if not isinstance(self.order_of_addition, list):
+ self.order_of_addition = [self.order_of_addition] if self.order_of_addition is not None else []
+ self.order_of_addition = [v if isinstance(v, str) else str(v) for v in self.order_of_addition]
+
+ if not isinstance(self.filtration, list):
+ self.filtration = [self.filtration] if self.filtration is not None else []
+ self.filtration = [v if isinstance(v, str) else str(v) for v in self.filtration]
+
+ if not isinstance(self.purification, list):
+ self.purification = [self.purification] if self.purification is not None else []
+ self.purification = [v if isinstance(v, str) else str(v) for v in self.purification]
+
+ if not isinstance(self.aging_temperature, list):
+ self.aging_temperature = [self.aging_temperature] if self.aging_temperature is not None else []
+ self.aging_temperature = [v if isinstance(v, float) else float(v) for v in self.aging_temperature]
+
+ if not isinstance(self.aging_time, list):
+ self.aging_time = [self.aging_time] if self.aging_time is not None else []
+ self.aging_time = [v if isinstance(v, float) else float(v) for v in self.aging_time]
+
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ if not isinstance(self.calcination_initial_temperature, list):
+ self.calcination_initial_temperature = [self.calcination_initial_temperature] if self.calcination_initial_temperature is not None else []
+ self.calcination_initial_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_initial_temperature]
+
+ if not isinstance(self.calcination_final_temperature, list):
+ self.calcination_final_temperature = [self.calcination_final_temperature] if self.calcination_final_temperature is not None else []
+ self.calcination_final_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_final_temperature]
+
+ if not isinstance(self.calcination_dwelling_time, list):
+ self.calcination_dwelling_time = [self.calcination_dwelling_time] if self.calcination_dwelling_time is not None else []
+ self.calcination_dwelling_time = [v if isinstance(v, float) else float(v) for v in self.calcination_dwelling_time]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.calcination_gaseous_environment, list):
+ self.calcination_gaseous_environment = [self.calcination_gaseous_environment] if self.calcination_gaseous_environment is not None else []
+ self.calcination_gaseous_environment = [v if isinstance(v, str) else str(v) for v in self.calcination_gaseous_environment]
+
+ if not isinstance(self.calcination_heating_rate, list):
+ self.calcination_heating_rate = [self.calcination_heating_rate] if self.calcination_heating_rate is not None else []
+ self.calcination_heating_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_heating_rate]
+
+ if not isinstance(self.calcination_gas_flow_rate, list):
+ self.calcination_gas_flow_rate = [self.calcination_gas_flow_rate] if self.calcination_gas_flow_rate is not None else []
+ self.calcination_gas_flow_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_gas_flow_rate]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MicrowaveAssisted(PreparationMethod):
+ """
+ Catalyst preparation using microwave irradiation to rapidly and
+ uniformly heat the reaction mixture.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["MicrowaveAssisted"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:MicrowaveAssisted"
+ class_name: ClassVar[str] = "MicrowaveAssisted"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MicrowaveAssisted
+
+ power: Optional[Union[float, list[float]]] = empty_list()
+ microwave_frequency: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.power, list):
+ self.power = [self.power] if self.power is not None else []
+ self.power = [v if isinstance(v, float) else float(v) for v in self.power]
+
+ if not isinstance(self.microwave_frequency, list):
+ self.microwave_frequency = [self.microwave_frequency] if self.microwave_frequency is not None else []
+ self.microwave_frequency = [v if isinstance(v, float) else float(v) for v in self.microwave_frequency]
+
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SonochemicalSynthesis(PreparationMethod):
+ """
+ Catalyst preparation using ultrasonic irradiation to drive chemical
+ reactions via acoustic cavitation.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["SonochemicalSynthesis"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:SonochemicalSynthesis"
+ class_name: ClassVar[str] = "SonochemicalSynthesis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SonochemicalSynthesis
+
+ sonication_power: Optional[Union[float, list[float]]] = empty_list()
+ sonication_duration: Optional[Union[float, list[float]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ calcination_initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_dwelling_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ calcination_gaseous_environment: Optional[Union[str, list[str]]] = empty_list()
+ calcination_heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ calcination_gas_flow_rate: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.sonication_power, list):
+ self.sonication_power = [self.sonication_power] if self.sonication_power is not None else []
+ self.sonication_power = [v if isinstance(v, float) else float(v) for v in self.sonication_power]
+
+ if not isinstance(self.sonication_duration, list):
+ self.sonication_duration = [self.sonication_duration] if self.sonication_duration is not None else []
+ self.sonication_duration = [v if isinstance(v, float) else float(v) for v in self.sonication_duration]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ if not isinstance(self.calcination_initial_temperature, list):
+ self.calcination_initial_temperature = [self.calcination_initial_temperature] if self.calcination_initial_temperature is not None else []
+ self.calcination_initial_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_initial_temperature]
+
+ if not isinstance(self.calcination_final_temperature, list):
+ self.calcination_final_temperature = [self.calcination_final_temperature] if self.calcination_final_temperature is not None else []
+ self.calcination_final_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_final_temperature]
+
+ if not isinstance(self.calcination_dwelling_time, list):
+ self.calcination_dwelling_time = [self.calcination_dwelling_time] if self.calcination_dwelling_time is not None else []
+ self.calcination_dwelling_time = [v if isinstance(v, float) else float(v) for v in self.calcination_dwelling_time]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.calcination_gaseous_environment, list):
+ self.calcination_gaseous_environment = [self.calcination_gaseous_environment] if self.calcination_gaseous_environment is not None else []
+ self.calcination_gaseous_environment = [v if isinstance(v, str) else str(v) for v in self.calcination_gaseous_environment]
+
+ if not isinstance(self.calcination_heating_rate, list):
+ self.calcination_heating_rate = [self.calcination_heating_rate] if self.calcination_heating_rate is not None else []
+ self.calcination_heating_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_heating_rate]
+
+ if not isinstance(self.calcination_gas_flow_rate, list):
+ self.calcination_gas_flow_rate = [self.calcination_gas_flow_rate] if self.calcination_gas_flow_rate is not None else []
+ self.calcination_gas_flow_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_gas_flow_rate]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class FlameSprayPyrolysis(PreparationMethod):
+ """
+ Catalyst preparation by flame spray pyrolysis (FSP): a liquid precursor
+ solution is atomised and combusted in a flame to produce nanoparticles.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0007031"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0007031"
+ class_name: ClassVar[str] = "FlameSprayPyrolysis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.FlameSprayPyrolysis
+
+ flame_type: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ inlet_system: Optional[Union[str, list[str]]] = empty_list()
+ flame_ring: Optional[Union[str, list[str]]] = empty_list()
+ dispersant: Optional[Union[str, list[str]]] = empty_list()
+ capillary_pressure: Optional[Union[float, list[float]]] = empty_list()
+ fuel_dispersant_ratio: Optional[Union[float, list[float]]] = empty_list()
+ filtration_device: Optional[Union[str, list[str]]] = empty_list()
+ filter_type: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.flame_type, list):
+ self.flame_type = [self.flame_type] if self.flame_type is not None else []
+ self.flame_type = [v if isinstance(v, str) else str(v) for v in self.flame_type]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.inlet_system, list):
+ self.inlet_system = [self.inlet_system] if self.inlet_system is not None else []
+ self.inlet_system = [v if isinstance(v, str) else str(v) for v in self.inlet_system]
+
+ if not isinstance(self.flame_ring, list):
+ self.flame_ring = [self.flame_ring] if self.flame_ring is not None else []
+ self.flame_ring = [v if isinstance(v, str) else str(v) for v in self.flame_ring]
+
+ if not isinstance(self.dispersant, list):
+ self.dispersant = [self.dispersant] if self.dispersant is not None else []
+ self.dispersant = [v if isinstance(v, str) else str(v) for v in self.dispersant]
+
+ if not isinstance(self.capillary_pressure, list):
+ self.capillary_pressure = [self.capillary_pressure] if self.capillary_pressure is not None else []
+ self.capillary_pressure = [v if isinstance(v, float) else float(v) for v in self.capillary_pressure]
+
+ if not isinstance(self.fuel_dispersant_ratio, list):
+ self.fuel_dispersant_ratio = [self.fuel_dispersant_ratio] if self.fuel_dispersant_ratio is not None else []
+ self.fuel_dispersant_ratio = [v if isinstance(v, float) else float(v) for v in self.fuel_dispersant_ratio]
+
+ if not isinstance(self.filtration_device, list):
+ self.filtration_device = [self.filtration_device] if self.filtration_device is not None else []
+ self.filtration_device = [v if isinstance(v, str) else str(v) for v in self.filtration_device]
+
+ if not isinstance(self.filter_type, list):
+ self.filter_type = [self.filter_type] if self.filter_type is not None else []
+ self.filter_type = [v if isinstance(v, str) else str(v) for v in self.filter_type]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MechanochemicalSynthesis(PreparationMethod):
+ """
+ Catalyst preparation by mechanical milling or grinding, optionally
+ combined with thermal treatment.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["MechanochemicalSynthesis"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:MechanochemicalSynthesis"
+ class_name: ClassVar[str] = "MechanochemicalSynthesis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MechanochemicalSynthesis
+
+ vessel_volume: Optional[Union[float, list[float]]] = empty_list()
+ size_and_material: Optional[Union[str, list[str]]] = empty_list()
+ milling_speed: Optional[Union[float, list[float]]] = empty_list()
+ milling_duration: Optional[Union[float, list[float]]] = empty_list()
+ ball_material: Optional[Union[str, list[str]]] = empty_list()
+ ball_size: Optional[Union[float, list[float]]] = empty_list()
+ ball_to_powder_ratio: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.vessel_volume, list):
+ self.vessel_volume = [self.vessel_volume] if self.vessel_volume is not None else []
+ self.vessel_volume = [v if isinstance(v, float) else float(v) for v in self.vessel_volume]
+
+ if not isinstance(self.size_and_material, list):
+ self.size_and_material = [self.size_and_material] if self.size_and_material is not None else []
+ self.size_and_material = [v if isinstance(v, str) else str(v) for v in self.size_and_material]
+
+ if not isinstance(self.milling_speed, list):
+ self.milling_speed = [self.milling_speed] if self.milling_speed is not None else []
+ self.milling_speed = [v if isinstance(v, float) else float(v) for v in self.milling_speed]
+
+ if not isinstance(self.milling_duration, list):
+ self.milling_duration = [self.milling_duration] if self.milling_duration is not None else []
+ self.milling_duration = [v if isinstance(v, float) else float(v) for v in self.milling_duration]
+
+ if not isinstance(self.ball_material, list):
+ self.ball_material = [self.ball_material] if self.ball_material is not None else []
+ self.ball_material = [v if isinstance(v, str) else str(v) for v in self.ball_material]
+
+ if not isinstance(self.ball_size, list):
+ self.ball_size = [self.ball_size] if self.ball_size is not None else []
+ self.ball_size = [v if isinstance(v, float) else float(v) for v in self.ball_size]
+
+ if not isinstance(self.ball_to_powder_ratio, list):
+ self.ball_to_powder_ratio = [self.ball_to_powder_ratio] if self.ball_to_powder_ratio is not None else []
+ self.ball_to_powder_ratio = [v if isinstance(v, float) else float(v) for v in self.ball_to_powder_ratio]
+
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Sublimation(PreparationMethod):
+ """
+ Catalyst preparation by sublimation: a solid precursor is vaporised
+ and deposited onto a substrate without passing through a liquid phase.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Sublimation"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Sublimation"
+ class_name: ClassVar[str] = "Sublimation"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Sublimation
+
+ synthesis_pressure: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_temperature: Optional[Union[float, list[float]]] = empty_list()
+ synthesis_duration: Optional[Union[float, list[float]]] = empty_list()
+ equipment: Optional[Union[str, list[str]]] = empty_list()
+ vessel_type: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.synthesis_pressure, list):
+ self.synthesis_pressure = [self.synthesis_pressure] if self.synthesis_pressure is not None else []
+ self.synthesis_pressure = [v if isinstance(v, float) else float(v) for v in self.synthesis_pressure]
+
+ if not isinstance(self.synthesis_temperature, list):
+ self.synthesis_temperature = [self.synthesis_temperature] if self.synthesis_temperature is not None else []
+ self.synthesis_temperature = [v if isinstance(v, float) else float(v) for v in self.synthesis_temperature]
+
+ if not isinstance(self.synthesis_duration, list):
+ self.synthesis_duration = [self.synthesis_duration] if self.synthesis_duration is not None else []
+ self.synthesis_duration = [v if isinstance(v, float) else float(v) for v in self.synthesis_duration]
+
+ if not isinstance(self.equipment, list):
+ self.equipment = [self.equipment] if self.equipment is not None else []
+ self.equipment = [v if isinstance(v, str) else str(v) for v in self.equipment]
+
+ if not isinstance(self.vessel_type, list):
+ self.vessel_type = [self.vessel_type] if self.vessel_type is not None else []
+ self.vessel_type = [v if isinstance(v, str) else str(v) for v in self.vessel_type]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MolecularSynthesis(PreparationMethod):
+ """
+ Catalyst preparation by molecular (organometallic or coordination)
+ chemistry routes, including crystallisation and purification steps.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["MolecularSynthesis"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:MolecularSynthesis"
+ class_name: ClassVar[str] = "MolecularSynthesis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MolecularSynthesis
+
+ reaction_vessel: Optional[Union[str, list[str]]] = empty_list()
+ mixing_device: Optional[Union[str, list[str]]] = empty_list()
+ stirring_duration: Optional[Union[float, list[float]]] = empty_list()
+ stirring_speed: Optional[Union[float, list[float]]] = empty_list()
+ mixing_temperature: Optional[Union[float, list[float]]] = empty_list()
+ filtration_device: Optional[Union[str, list[str]]] = empty_list()
+ filter_type: Optional[Union[str, list[str]]] = empty_list()
+ crystallisation_solvents: Optional[Union[str, list[str]]] = empty_list()
+ precipitation_agent: Optional[Union[str, list[str]]] = empty_list()
+ crystallisation_duration: Optional[Union[float, list[float]]] = empty_list()
+ purification_solvent: Optional[Union[str, list[str]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ temperature_ramp: Optional[Union[float, list[float]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ drying_device: Optional[Union[str, list[str]]] = empty_list()
+ drying_temperature: Optional[Union[float, list[float]]] = empty_list()
+ drying_time: Optional[Union[float, list[float]]] = empty_list()
+ drying_atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.reaction_vessel, list):
+ self.reaction_vessel = [self.reaction_vessel] if self.reaction_vessel is not None else []
+ self.reaction_vessel = [v if isinstance(v, str) else str(v) for v in self.reaction_vessel]
+
+ if not isinstance(self.mixing_device, list):
+ self.mixing_device = [self.mixing_device] if self.mixing_device is not None else []
+ self.mixing_device = [v if isinstance(v, str) else str(v) for v in self.mixing_device]
+
+ if not isinstance(self.stirring_duration, list):
+ self.stirring_duration = [self.stirring_duration] if self.stirring_duration is not None else []
+ self.stirring_duration = [v if isinstance(v, float) else float(v) for v in self.stirring_duration]
+
+ if not isinstance(self.stirring_speed, list):
+ self.stirring_speed = [self.stirring_speed] if self.stirring_speed is not None else []
+ self.stirring_speed = [v if isinstance(v, float) else float(v) for v in self.stirring_speed]
+
+ if not isinstance(self.mixing_temperature, list):
+ self.mixing_temperature = [self.mixing_temperature] if self.mixing_temperature is not None else []
+ self.mixing_temperature = [v if isinstance(v, float) else float(v) for v in self.mixing_temperature]
+
+ if not isinstance(self.filtration_device, list):
+ self.filtration_device = [self.filtration_device] if self.filtration_device is not None else []
+ self.filtration_device = [v if isinstance(v, str) else str(v) for v in self.filtration_device]
+
+ if not isinstance(self.filter_type, list):
+ self.filter_type = [self.filter_type] if self.filter_type is not None else []
+ self.filter_type = [v if isinstance(v, str) else str(v) for v in self.filter_type]
+
+ if not isinstance(self.crystallisation_solvents, list):
+ self.crystallisation_solvents = [self.crystallisation_solvents] if self.crystallisation_solvents is not None else []
+ self.crystallisation_solvents = [v if isinstance(v, str) else str(v) for v in self.crystallisation_solvents]
+
+ if not isinstance(self.precipitation_agent, list):
+ self.precipitation_agent = [self.precipitation_agent] if self.precipitation_agent is not None else []
+ self.precipitation_agent = [v if isinstance(v, str) else str(v) for v in self.precipitation_agent]
+
+ if not isinstance(self.crystallisation_duration, list):
+ self.crystallisation_duration = [self.crystallisation_duration] if self.crystallisation_duration is not None else []
+ self.crystallisation_duration = [v if isinstance(v, float) else float(v) for v in self.crystallisation_duration]
+
+ if not isinstance(self.purification_solvent, list):
+ self.purification_solvent = [self.purification_solvent] if self.purification_solvent is not None else []
+ self.purification_solvent = [v if isinstance(v, str) else str(v) for v in self.purification_solvent]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.temperature_ramp, list):
+ self.temperature_ramp = [self.temperature_ramp] if self.temperature_ramp is not None else []
+ self.temperature_ramp = [v if isinstance(v, float) else float(v) for v in self.temperature_ramp]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.drying_device, list):
+ self.drying_device = [self.drying_device] if self.drying_device is not None else []
+ self.drying_device = [v if isinstance(v, str) else str(v) for v in self.drying_device]
+
+ if not isinstance(self.drying_temperature, list):
+ self.drying_temperature = [self.drying_temperature] if self.drying_temperature is not None else []
+ self.drying_temperature = [v if isinstance(v, float) else float(v) for v in self.drying_temperature]
+
+ if not isinstance(self.drying_time, list):
+ self.drying_time = [self.drying_time] if self.drying_time is not None else []
+ self.drying_time = [v if isinstance(v, float) else float(v) for v in self.drying_time]
+
+ if not isinstance(self.drying_atmosphere, list):
+ self.drying_atmosphere = [self.drying_atmosphere] if self.drying_atmosphere is not None else []
+ self.drying_atmosphere = [v if isinstance(v, str) else str(v) for v in self.drying_atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ExsolutionSynthesis(PreparationMethod):
+ """
+ Catalyst preparation by exsolution: metal nanoparticles are grown on
+ a perovskite oxide surface by reduction/oxidation cycling.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ExsolutionSynthesis"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ExsolutionSynthesis"
+ class_name: ClassVar[str] = "ExsolutionSynthesis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ExsolutionSynthesis
+
+ calcination_initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ calcination_dwelling_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ calcination_gaseous_environment: Optional[Union[str, list[str]]] = empty_list()
+ calcination_heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ calcination_gas_flow_rate: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.calcination_initial_temperature, list):
+ self.calcination_initial_temperature = [self.calcination_initial_temperature] if self.calcination_initial_temperature is not None else []
+ self.calcination_initial_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_initial_temperature]
+
+ if not isinstance(self.calcination_final_temperature, list):
+ self.calcination_final_temperature = [self.calcination_final_temperature] if self.calcination_final_temperature is not None else []
+ self.calcination_final_temperature = [v if isinstance(v, float) else float(v) for v in self.calcination_final_temperature]
+
+ if not isinstance(self.calcination_dwelling_time, list):
+ self.calcination_dwelling_time = [self.calcination_dwelling_time] if self.calcination_dwelling_time is not None else []
+ self.calcination_dwelling_time = [v if isinstance(v, float) else float(v) for v in self.calcination_dwelling_time]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.calcination_gaseous_environment, list):
+ self.calcination_gaseous_environment = [self.calcination_gaseous_environment] if self.calcination_gaseous_environment is not None else []
+ self.calcination_gaseous_environment = [v if isinstance(v, str) else str(v) for v in self.calcination_gaseous_environment]
+
+ if not isinstance(self.calcination_heating_rate, list):
+ self.calcination_heating_rate = [self.calcination_heating_rate] if self.calcination_heating_rate is not None else []
+ self.calcination_heating_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_heating_rate]
+
+ if not isinstance(self.calcination_gas_flow_rate, list):
+ self.calcination_gas_flow_rate = [self.calcination_gas_flow_rate] if self.calcination_gas_flow_rate is not None else []
+ self.calcination_gas_flow_rate = [v if isinstance(v, float) else float(v) for v in self.calcination_gas_flow_rate]
+
+ super().__post_init__(**kwargs)
+
+
+class CharacterizationTechnique(Plan):
+ """
+ An abstract Plan describing the analytical protocol used to characterize
+ a catalyst. Concrete subclasses specify technique-specific parameters.
+ Linked from Characterization via realized_plan.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000272"]
+ class_class_curie: ClassVar[str] = "OBI:0000272"
+ class_name: ClassVar[str] = "CharacterizationTechnique"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CharacterizationTechnique
+
+
+@dataclass(repr=False)
+class PowderXRD(CharacterizationTechnique):
+ """
+ Powder X-ray diffraction for phase identification and structural analysis.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000158"]
+ class_class_curie: ClassVar[str] = "CHMO:0000158"
+ class_name: ClassVar[str] = "PowderXRD"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PowderXRD
+
+ minimum_2theta: Optional[Union[float, list[float]]] = empty_list()
+ maximum_2theta: Optional[Union[float, list[float]]] = empty_list()
+ step_size: Optional[Union[float, list[float]]] = empty_list()
+ operation_mode: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ sample_spinning_speed: Optional[Union[float, list[float]]] = empty_list()
+ experiment_duration: Optional[Union[float, list[float]]] = empty_list()
+ xray_source: Optional[Union[str, list[str]]] = empty_list()
+ monochromator: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.minimum_2theta, list):
+ self.minimum_2theta = [self.minimum_2theta] if self.minimum_2theta is not None else []
+ self.minimum_2theta = [v if isinstance(v, float) else float(v) for v in self.minimum_2theta]
+
+ if not isinstance(self.maximum_2theta, list):
+ self.maximum_2theta = [self.maximum_2theta] if self.maximum_2theta is not None else []
+ self.maximum_2theta = [v if isinstance(v, float) else float(v) for v in self.maximum_2theta]
+
+ if not isinstance(self.step_size, list):
+ self.step_size = [self.step_size] if self.step_size is not None else []
+ self.step_size = [v if isinstance(v, float) else float(v) for v in self.step_size]
+
+ if not isinstance(self.operation_mode, list):
+ self.operation_mode = [self.operation_mode] if self.operation_mode is not None else []
+ self.operation_mode = [v if isinstance(v, str) else str(v) for v in self.operation_mode]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.sample_spinning_speed, list):
+ self.sample_spinning_speed = [self.sample_spinning_speed] if self.sample_spinning_speed is not None else []
+ self.sample_spinning_speed = [v if isinstance(v, float) else float(v) for v in self.sample_spinning_speed]
+
+ if not isinstance(self.experiment_duration, list):
+ self.experiment_duration = [self.experiment_duration] if self.experiment_duration is not None else []
+ self.experiment_duration = [v if isinstance(v, float) else float(v) for v in self.experiment_duration]
+
+ if not isinstance(self.xray_source, list):
+ self.xray_source = [self.xray_source] if self.xray_source is not None else []
+ self.xray_source = [v if isinstance(v, str) else str(v) for v in self.xray_source]
+
+ if not isinstance(self.monochromator, list):
+ self.monochromator = [self.monochromator] if self.monochromator is not None else []
+ self.monochromator = [v if isinstance(v, str) else str(v) for v in self.monochromator]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SingleCrystalXRD(CharacterizationTechnique):
+ """
+ Single crystal X-ray diffraction for structure determination.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000852"]
+ class_class_curie: ClassVar[str] = "CHMO:0000852"
+ class_name: ClassVar[str] = "SingleCrystalXRD"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SingleCrystalXRD
+
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ xray_source: Optional[Union[str, list[str]]] = empty_list()
+ monochromator: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.xray_source, list):
+ self.xray_source = [self.xray_source] if self.xray_source is not None else []
+ self.xray_source = [v if isinstance(v, str) else str(v) for v in self.xray_source]
+
+ if not isinstance(self.monochromator, list):
+ self.monochromator = [self.monochromator] if self.monochromator is not None else []
+ self.monochromator = [v if isinstance(v, str) else str(v) for v in self.monochromator]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class XRayAbsorptionSpectroscopy(CharacterizationTechnique):
+ """
+ X-ray absorption spectroscopy (XAS/XANES/EXAFS) for electronic and local structure analysis.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000286"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000286"
+ class_name: ClassVar[str] = "XRayAbsorptionSpectroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.XRayAbsorptionSpectroscopy
+
+ operation_mode: Optional[Union[str, list[str]]] = empty_list()
+ element_analyzed: Optional[Union[str, list[str]]] = empty_list()
+ absorption_edge: Optional[Union[str, list[str]]] = empty_list()
+ energy_resolution: Optional[Union[float, list[float]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ beamline_source: Optional[Union[str, list[str]]] = empty_list()
+ noise_of_measurement: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ xray_source: Optional[Union[str, list[str]]] = empty_list()
+ monochromator: Optional[Union[str, list[str]]] = empty_list()
+ minimum_energy: Optional[Union[float, list[float]]] = empty_list()
+ maximum_energy: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.operation_mode, list):
+ self.operation_mode = [self.operation_mode] if self.operation_mode is not None else []
+ self.operation_mode = [v if isinstance(v, str) else str(v) for v in self.operation_mode]
+
+ if not isinstance(self.element_analyzed, list):
+ self.element_analyzed = [self.element_analyzed] if self.element_analyzed is not None else []
+ self.element_analyzed = [v if isinstance(v, str) else str(v) for v in self.element_analyzed]
+
+ if not isinstance(self.absorption_edge, list):
+ self.absorption_edge = [self.absorption_edge] if self.absorption_edge is not None else []
+ self.absorption_edge = [v if isinstance(v, str) else str(v) for v in self.absorption_edge]
+
+ if not isinstance(self.energy_resolution, list):
+ self.energy_resolution = [self.energy_resolution] if self.energy_resolution is not None else []
+ self.energy_resolution = [v if isinstance(v, float) else float(v) for v in self.energy_resolution]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.beamline_source, list):
+ self.beamline_source = [self.beamline_source] if self.beamline_source is not None else []
+ self.beamline_source = [v if isinstance(v, str) else str(v) for v in self.beamline_source]
+
+ if not isinstance(self.noise_of_measurement, list):
+ self.noise_of_measurement = [self.noise_of_measurement] if self.noise_of_measurement is not None else []
+ self.noise_of_measurement = [v if isinstance(v, float) else float(v) for v in self.noise_of_measurement]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.xray_source, list):
+ self.xray_source = [self.xray_source] if self.xray_source is not None else []
+ self.xray_source = [v if isinstance(v, str) else str(v) for v in self.xray_source]
+
+ if not isinstance(self.monochromator, list):
+ self.monochromator = [self.monochromator] if self.monochromator is not None else []
+ self.monochromator = [v if isinstance(v, str) else str(v) for v in self.monochromator]
+
+ if not isinstance(self.minimum_energy, list):
+ self.minimum_energy = [self.minimum_energy] if self.minimum_energy is not None else []
+ self.minimum_energy = [v if isinstance(v, float) else float(v) for v in self.minimum_energy]
+
+ if not isinstance(self.maximum_energy, list):
+ self.maximum_energy = [self.maximum_energy] if self.maximum_energy is not None else []
+ self.maximum_energy = [v if isinstance(v, float) else float(v) for v in self.maximum_energy]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class XPS(CharacterizationTechnique):
+ """
+ X-ray photoelectron spectroscopy for surface elemental and chemical state analysis.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000404"]
+ class_class_curie: ClassVar[str] = "CHMO:0000404"
+ class_name: ClassVar[str] = "XPS"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.XPS
+
+ total_acquisition_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_scans: Optional[Union[int, list[int]]] = empty_list()
+ step_size: Optional[Union[float, list[float]]] = empty_list()
+ pass_energy: Optional[Union[float, list[float]]] = empty_list()
+ spot_size: Optional[Union[float, list[float]]] = empty_list()
+ lense_mode: Optional[Union[str, list[str]]] = empty_list()
+ charge_compensation: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ xray_source: Optional[Union[str, list[str]]] = empty_list()
+ monochromator: Optional[Union[str, list[str]]] = empty_list()
+ minimum_energy: Optional[Union[float, list[float]]] = empty_list()
+ maximum_energy: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.total_acquisition_time, list):
+ self.total_acquisition_time = [self.total_acquisition_time] if self.total_acquisition_time is not None else []
+ self.total_acquisition_time = [v if isinstance(v, float) else float(v) for v in self.total_acquisition_time]
+
+ if not isinstance(self.number_of_scans, list):
+ self.number_of_scans = [self.number_of_scans] if self.number_of_scans is not None else []
+ self.number_of_scans = [v if isinstance(v, int) else int(v) for v in self.number_of_scans]
+
+ if not isinstance(self.step_size, list):
+ self.step_size = [self.step_size] if self.step_size is not None else []
+ self.step_size = [v if isinstance(v, float) else float(v) for v in self.step_size]
+
+ if not isinstance(self.pass_energy, list):
+ self.pass_energy = [self.pass_energy] if self.pass_energy is not None else []
+ self.pass_energy = [v if isinstance(v, float) else float(v) for v in self.pass_energy]
+
+ if not isinstance(self.spot_size, list):
+ self.spot_size = [self.spot_size] if self.spot_size is not None else []
+ self.spot_size = [v if isinstance(v, float) else float(v) for v in self.spot_size]
+
+ if not isinstance(self.lense_mode, list):
+ self.lense_mode = [self.lense_mode] if self.lense_mode is not None else []
+ self.lense_mode = [v if isinstance(v, str) else str(v) for v in self.lense_mode]
+
+ if not isinstance(self.charge_compensation, list):
+ self.charge_compensation = [self.charge_compensation] if self.charge_compensation is not None else []
+ self.charge_compensation = [v if isinstance(v, str) else str(v) for v in self.charge_compensation]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.xray_source, list):
+ self.xray_source = [self.xray_source] if self.xray_source is not None else []
+ self.xray_source = [v if isinstance(v, str) else str(v) for v in self.xray_source]
+
+ if not isinstance(self.monochromator, list):
+ self.monochromator = [self.monochromator] if self.monochromator is not None else []
+ self.monochromator = [v if isinstance(v, str) else str(v) for v in self.monochromator]
+
+ if not isinstance(self.minimum_energy, list):
+ self.minimum_energy = [self.minimum_energy] if self.minimum_energy is not None else []
+ self.minimum_energy = [v if isinstance(v, float) else float(v) for v in self.minimum_energy]
+
+ if not isinstance(self.maximum_energy, list):
+ self.maximum_energy = [self.maximum_energy] if self.maximum_energy is not None else []
+ self.maximum_energy = [v if isinstance(v, float) else float(v) for v in self.maximum_energy]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class EDX(CharacterizationTechnique):
+ """
+ Energy-dispersive X-ray spectroscopy for elemental mapping and quantification.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000309"]
+ class_class_curie: ClassVar[str] = "CHMO:0000309"
+ class_name: ClassVar[str] = "EDX"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.EDX
+
+ primary_energy: Optional[Union[float, list[float]]] = empty_list()
+ counting_time: Optional[Union[float, list[float]]] = empty_list()
+ resolution: Optional[Union[float, list[float]]] = empty_list()
+ calibration_method: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.primary_energy, list):
+ self.primary_energy = [self.primary_energy] if self.primary_energy is not None else []
+ self.primary_energy = [v if isinstance(v, float) else float(v) for v in self.primary_energy]
+
+ if not isinstance(self.counting_time, list):
+ self.counting_time = [self.counting_time] if self.counting_time is not None else []
+ self.counting_time = [v if isinstance(v, float) else float(v) for v in self.counting_time]
+
+ if not isinstance(self.resolution, list):
+ self.resolution = [self.resolution] if self.resolution is not None else []
+ self.resolution = [v if isinstance(v, float) else float(v) for v in self.resolution]
+
+ if not isinstance(self.calibration_method, list):
+ self.calibration_method = [self.calibration_method] if self.calibration_method is not None else []
+ self.calibration_method = [v if isinstance(v, str) else str(v) for v in self.calibration_method]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class InfraredSpectroscopy(CharacterizationTechnique):
+ """
+ Infrared spectroscopy (FTIR/ATR) for functional group and surface species identification.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["InfraredSpectroscopy"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:InfraredSpectroscopy"
+ class_name: ClassVar[str] = "InfraredSpectroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.InfraredSpectroscopy
+
+ operation_mode: Optional[Union[str, list[str]]] = empty_list()
+ minimum_wavenumber: Optional[Union[float, list[float]]] = empty_list()
+ maximum_wavenumber: Optional[Union[float, list[float]]] = empty_list()
+ step_size: Optional[Union[float, list[float]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ background_correction: Optional[Union[str, list[str]]] = empty_list()
+ number_of_scans: Optional[Union[int, list[int]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.operation_mode, list):
+ self.operation_mode = [self.operation_mode] if self.operation_mode is not None else []
+ self.operation_mode = [v if isinstance(v, str) else str(v) for v in self.operation_mode]
+
+ if not isinstance(self.minimum_wavenumber, list):
+ self.minimum_wavenumber = [self.minimum_wavenumber] if self.minimum_wavenumber is not None else []
+ self.minimum_wavenumber = [v if isinstance(v, float) else float(v) for v in self.minimum_wavenumber]
+
+ if not isinstance(self.maximum_wavenumber, list):
+ self.maximum_wavenumber = [self.maximum_wavenumber] if self.maximum_wavenumber is not None else []
+ self.maximum_wavenumber = [v if isinstance(v, float) else float(v) for v in self.maximum_wavenumber]
+
+ if not isinstance(self.step_size, list):
+ self.step_size = [self.step_size] if self.step_size is not None else []
+ self.step_size = [v if isinstance(v, float) else float(v) for v in self.step_size]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.background_correction, list):
+ self.background_correction = [self.background_correction] if self.background_correction is not None else []
+ self.background_correction = [v if isinstance(v, str) else str(v) for v in self.background_correction]
+
+ if not isinstance(self.number_of_scans, list):
+ self.number_of_scans = [self.number_of_scans] if self.number_of_scans is not None else []
+ self.number_of_scans = [v if isinstance(v, int) else int(v) for v in self.number_of_scans]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DRIFTS(CharacterizationTechnique):
+ """
+ Diffuse reflectance infrared Fourier transform spectroscopy for in-situ
+ surface species identification under reactive gas conditions.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000645"]
+ class_class_curie: ClassVar[str] = "CHMO:0000645"
+ class_name: ClassVar[str] = "DRIFTS"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DRIFTS
+
+ adsorption_gas: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ diluting_reference: Optional[Union[str, list[str]]] = empty_list()
+ ratio_reference_sample: Optional[Union[float, list[float]]] = empty_list()
+ step_size: Optional[Union[float, list[float]]] = empty_list()
+ resolution: Optional[Union[float, list[float]]] = empty_list()
+ background_correction_method: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ number_of_scans: Optional[Union[int, list[int]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.adsorption_gas, list):
+ self.adsorption_gas = [self.adsorption_gas] if self.adsorption_gas is not None else []
+ self.adsorption_gas = [v if isinstance(v, str) else str(v) for v in self.adsorption_gas]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.diluting_reference, list):
+ self.diluting_reference = [self.diluting_reference] if self.diluting_reference is not None else []
+ self.diluting_reference = [v if isinstance(v, str) else str(v) for v in self.diluting_reference]
+
+ if not isinstance(self.ratio_reference_sample, list):
+ self.ratio_reference_sample = [self.ratio_reference_sample] if self.ratio_reference_sample is not None else []
+ self.ratio_reference_sample = [v if isinstance(v, float) else float(v) for v in self.ratio_reference_sample]
+
+ if not isinstance(self.step_size, list):
+ self.step_size = [self.step_size] if self.step_size is not None else []
+ self.step_size = [v if isinstance(v, float) else float(v) for v in self.step_size]
+
+ if not isinstance(self.resolution, list):
+ self.resolution = [self.resolution] if self.resolution is not None else []
+ self.resolution = [v if isinstance(v, float) else float(v) for v in self.resolution]
+
+ if not isinstance(self.background_correction_method, list):
+ self.background_correction_method = [self.background_correction_method] if self.background_correction_method is not None else []
+ self.background_correction_method = [v if isinstance(v, str) else str(v) for v in self.background_correction_method]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.number_of_scans, list):
+ self.number_of_scans = [self.number_of_scans] if self.number_of_scans is not None else []
+ self.number_of_scans = [v if isinstance(v, int) else int(v) for v in self.number_of_scans]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class RamanSpectroscopy(CharacterizationTechnique):
+ """
+ Raman spectroscopy for vibrational and structural characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000069"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000069"
+ class_name: ClassVar[str] = "RamanSpectroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.RamanSpectroscopy
+
+ excitation_laser_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ excitation_laser_power: Optional[Union[float, list[float]]] = empty_list()
+ magnification_setting: Optional[Union[float, list[float]]] = empty_list()
+ integration_time: Optional[Union[float, list[float]]] = empty_list()
+ number_of_scans: Optional[Union[int, list[int]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ filter_or_grating: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.excitation_laser_wavelength, list):
+ self.excitation_laser_wavelength = [self.excitation_laser_wavelength] if self.excitation_laser_wavelength is not None else []
+ self.excitation_laser_wavelength = [v if isinstance(v, float) else float(v) for v in self.excitation_laser_wavelength]
+
+ if not isinstance(self.excitation_laser_power, list):
+ self.excitation_laser_power = [self.excitation_laser_power] if self.excitation_laser_power is not None else []
+ self.excitation_laser_power = [v if isinstance(v, float) else float(v) for v in self.excitation_laser_power]
+
+ if not isinstance(self.magnification_setting, list):
+ self.magnification_setting = [self.magnification_setting] if self.magnification_setting is not None else []
+ self.magnification_setting = [v if isinstance(v, float) else float(v) for v in self.magnification_setting]
+
+ if not isinstance(self.integration_time, list):
+ self.integration_time = [self.integration_time] if self.integration_time is not None else []
+ self.integration_time = [v if isinstance(v, float) else float(v) for v in self.integration_time]
+
+ if not isinstance(self.number_of_scans, list):
+ self.number_of_scans = [self.number_of_scans] if self.number_of_scans is not None else []
+ self.number_of_scans = [v if isinstance(v, int) else int(v) for v in self.number_of_scans]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.filter_or_grating, list):
+ self.filter_or_grating = [self.filter_or_grating] if self.filter_or_grating is not None else []
+ self.filter_or_grating = [v if isinstance(v, str) else str(v) for v in self.filter_or_grating]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class NMRSpectroscopy(CharacterizationTechnique):
+ """
+ Nuclear magnetic resonance spectroscopy for structure elucidation.
+ Note: for detailed liquid-state NMR minimum information, the dedicated
+ nmr_dcat_ap profile (MARGARITAS) should be used in combination with
+ this subprofile.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000073"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000073"
+ class_name: ClassVar[str] = "NMRSpectroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.NMRSpectroscopy
+
+ nucleus: Optional[Union[str, list[str]]] = empty_list()
+ solvent: Optional[Union[str, list[str]]] = empty_list()
+ irradiation_frequency: Optional[Union[float, list[float]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ nmr_pulse_sequence: Optional[Union[str, list[str]]] = empty_list()
+ nmr_sample_tube: Optional[Union[str, list[str]]] = empty_list()
+ number_of_scans: Optional[Union[int, list[int]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.nucleus, list):
+ self.nucleus = [self.nucleus] if self.nucleus is not None else []
+ self.nucleus = [v if isinstance(v, str) else str(v) for v in self.nucleus]
+
+ if not isinstance(self.solvent, list):
+ self.solvent = [self.solvent] if self.solvent is not None else []
+ self.solvent = [v if isinstance(v, str) else str(v) for v in self.solvent]
+
+ if not isinstance(self.irradiation_frequency, list):
+ self.irradiation_frequency = [self.irradiation_frequency] if self.irradiation_frequency is not None else []
+ self.irradiation_frequency = [v if isinstance(v, float) else float(v) for v in self.irradiation_frequency]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.nmr_pulse_sequence, list):
+ self.nmr_pulse_sequence = [self.nmr_pulse_sequence] if self.nmr_pulse_sequence is not None else []
+ self.nmr_pulse_sequence = [v if isinstance(v, str) else str(v) for v in self.nmr_pulse_sequence]
+
+ if not isinstance(self.nmr_sample_tube, list):
+ self.nmr_sample_tube = [self.nmr_sample_tube] if self.nmr_sample_tube is not None else []
+ self.nmr_sample_tube = [v if isinstance(v, str) else str(v) for v in self.nmr_sample_tube]
+
+ if not isinstance(self.number_of_scans, list):
+ self.number_of_scans = [self.number_of_scans] if self.number_of_scans is not None else []
+ self.number_of_scans = [v if isinstance(v, int) else int(v) for v in self.number_of_scans]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class TransmissionElectronMicroscopy(CharacterizationTechnique):
+ """
+ TEM for atomic-resolution imaging and diffraction of catalyst particles.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000078"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000078"
+ class_name: ClassVar[str] = "TransmissionElectronMicroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.TransmissionElectronMicroscopy
+
+ operation_mode: Optional[Union[str, list[str]]] = empty_list()
+ gun_type: Optional[Union[str, list[str]]] = empty_list()
+ acceleration_voltage: Optional[Union[float, list[float]]] = empty_list()
+ magnification_setting: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.operation_mode, list):
+ self.operation_mode = [self.operation_mode] if self.operation_mode is not None else []
+ self.operation_mode = [v if isinstance(v, str) else str(v) for v in self.operation_mode]
+
+ if not isinstance(self.gun_type, list):
+ self.gun_type = [self.gun_type] if self.gun_type is not None else []
+ self.gun_type = [v if isinstance(v, str) else str(v) for v in self.gun_type]
+
+ if not isinstance(self.acceleration_voltage, list):
+ self.acceleration_voltage = [self.acceleration_voltage] if self.acceleration_voltage is not None else []
+ self.acceleration_voltage = [v if isinstance(v, float) else float(v) for v in self.acceleration_voltage]
+
+ if not isinstance(self.magnification_setting, list):
+ self.magnification_setting = [self.magnification_setting] if self.magnification_setting is not None else []
+ self.magnification_setting = [v if isinstance(v, float) else float(v) for v in self.magnification_setting]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ScanningElectronMicroscopy(CharacterizationTechnique):
+ """
+ SEM for surface morphology and particle size/shape imaging.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000075"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000075"
+ class_name: ClassVar[str] = "ScanningElectronMicroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ScanningElectronMicroscopy
+
+ image_resolution: Optional[Union[float, list[float]]] = empty_list()
+ field_emitter: Optional[Union[str, list[str]]] = empty_list()
+ gun_type: Optional[Union[str, list[str]]] = empty_list()
+ acceleration_voltage: Optional[Union[float, list[float]]] = empty_list()
+ magnification_setting: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.image_resolution, list):
+ self.image_resolution = [self.image_resolution] if self.image_resolution is not None else []
+ self.image_resolution = [v if isinstance(v, float) else float(v) for v in self.image_resolution]
+
+ if not isinstance(self.field_emitter, list):
+ self.field_emitter = [self.field_emitter] if self.field_emitter is not None else []
+ self.field_emitter = [v if isinstance(v, str) else str(v) for v in self.field_emitter]
+
+ if not isinstance(self.gun_type, list):
+ self.gun_type = [self.gun_type] if self.gun_type is not None else []
+ self.gun_type = [v if isinstance(v, str) else str(v) for v in self.gun_type]
+
+ if not isinstance(self.acceleration_voltage, list):
+ self.acceleration_voltage = [self.acceleration_voltage] if self.acceleration_voltage is not None else []
+ self.acceleration_voltage = [v if isinstance(v, float) else float(v) for v in self.acceleration_voltage]
+
+ if not isinstance(self.magnification_setting, list):
+ self.magnification_setting = [self.magnification_setting] if self.magnification_setting is not None else []
+ self.magnification_setting = [v if isinstance(v, float) else float(v) for v in self.magnification_setting]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Thermogravimetry(CharacterizationTechnique):
+ """
+ Thermogravimetric analysis (TGA/DTG) for mass loss, decomposition, and oxidation state characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000690"]
+ class_class_curie: ClassVar[str] = "CHMO:0000690"
+ class_name: ClassVar[str] = "Thermogravimetry"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Thermogravimetry
+
+ operation_mode: Optional[Union[str, list[str]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ initial_temperature: Optional[Union[float, list[float]]] = empty_list()
+ final_temperature: Optional[Union[float, list[float]]] = empty_list()
+ sample_mass: Optional[Union[float, list[float]]] = empty_list()
+ minimum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ maximum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ heating_procedure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.operation_mode, list):
+ self.operation_mode = [self.operation_mode] if self.operation_mode is not None else []
+ self.operation_mode = [v if isinstance(v, str) else str(v) for v in self.operation_mode]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.initial_temperature, list):
+ self.initial_temperature = [self.initial_temperature] if self.initial_temperature is not None else []
+ self.initial_temperature = [v if isinstance(v, float) else float(v) for v in self.initial_temperature]
+
+ if not isinstance(self.final_temperature, list):
+ self.final_temperature = [self.final_temperature] if self.final_temperature is not None else []
+ self.final_temperature = [v if isinstance(v, float) else float(v) for v in self.final_temperature]
+
+ if not isinstance(self.sample_mass, list):
+ self.sample_mass = [self.sample_mass] if self.sample_mass is not None else []
+ self.sample_mass = [v if isinstance(v, float) else float(v) for v in self.sample_mass]
+
+ if not isinstance(self.minimum_temperature, list):
+ self.minimum_temperature = [self.minimum_temperature] if self.minimum_temperature is not None else []
+ self.minimum_temperature = [v if isinstance(v, float) else float(v) for v in self.minimum_temperature]
+
+ if not isinstance(self.maximum_temperature, list):
+ self.maximum_temperature = [self.maximum_temperature] if self.maximum_temperature is not None else []
+ self.maximum_temperature = [v if isinstance(v, float) else float(v) for v in self.maximum_temperature]
+
+ if not isinstance(self.heating_rate, list):
+ self.heating_rate = [self.heating_rate] if self.heating_rate is not None else []
+ self.heating_rate = [v if isinstance(v, float) else float(v) for v in self.heating_rate]
+
+ if not isinstance(self.heating_procedure, list):
+ self.heating_procedure = [self.heating_procedure] if self.heating_procedure is not None else []
+ self.heating_procedure = [v if isinstance(v, str) else str(v) for v in self.heating_procedure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class TPR(CharacterizationTechnique):
+ """
+ Temperature-programmed reduction for reducibility and metal-support interaction characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0002908"]
+ class_class_curie: ClassVar[str] = "CHMO:0002908"
+ class_name: ClassVar[str] = "TPR"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.TPR
+
+ reducing_gas_composition: Optional[Union[str, list[str]]] = empty_list()
+ minimum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ maximum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ heating_procedure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.reducing_gas_composition, list):
+ self.reducing_gas_composition = [self.reducing_gas_composition] if self.reducing_gas_composition is not None else []
+ self.reducing_gas_composition = [v if isinstance(v, str) else str(v) for v in self.reducing_gas_composition]
+
+ if not isinstance(self.minimum_temperature, list):
+ self.minimum_temperature = [self.minimum_temperature] if self.minimum_temperature is not None else []
+ self.minimum_temperature = [v if isinstance(v, float) else float(v) for v in self.minimum_temperature]
+
+ if not isinstance(self.maximum_temperature, list):
+ self.maximum_temperature = [self.maximum_temperature] if self.maximum_temperature is not None else []
+ self.maximum_temperature = [v if isinstance(v, float) else float(v) for v in self.maximum_temperature]
+
+ if not isinstance(self.heating_rate, list):
+ self.heating_rate = [self.heating_rate] if self.heating_rate is not None else []
+ self.heating_rate = [v if isinstance(v, float) else float(v) for v in self.heating_rate]
+
+ if not isinstance(self.heating_procedure, list):
+ self.heating_procedure = [self.heating_procedure] if self.heating_procedure is not None else []
+ self.heating_procedure = [v if isinstance(v, str) else str(v) for v in self.heating_procedure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class TPO(CharacterizationTechnique):
+ """
+ Temperature-programmed oxidation for coke quantification and reoxidation characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0002907"]
+ class_class_curie: ClassVar[str] = "CHMO:0002907"
+ class_name: ClassVar[str] = "TPO"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.TPO
+
+ oxidizing_gas_composition: Optional[Union[str, list[str]]] = empty_list()
+ minimum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ maximum_temperature: Optional[Union[float, list[float]]] = empty_list()
+ heating_rate: Optional[Union[float, list[float]]] = empty_list()
+ heating_procedure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.oxidizing_gas_composition, list):
+ self.oxidizing_gas_composition = [self.oxidizing_gas_composition] if self.oxidizing_gas_composition is not None else []
+ self.oxidizing_gas_composition = [v if isinstance(v, str) else str(v) for v in self.oxidizing_gas_composition]
+
+ if not isinstance(self.minimum_temperature, list):
+ self.minimum_temperature = [self.minimum_temperature] if self.minimum_temperature is not None else []
+ self.minimum_temperature = [v if isinstance(v, float) else float(v) for v in self.minimum_temperature]
+
+ if not isinstance(self.maximum_temperature, list):
+ self.maximum_temperature = [self.maximum_temperature] if self.maximum_temperature is not None else []
+ self.maximum_temperature = [v if isinstance(v, float) else float(v) for v in self.maximum_temperature]
+
+ if not isinstance(self.heating_rate, list):
+ self.heating_rate = [self.heating_rate] if self.heating_rate is not None else []
+ self.heating_rate = [v if isinstance(v, float) else float(v) for v in self.heating_rate]
+
+ if not isinstance(self.heating_procedure, list):
+ self.heating_procedure = [self.heating_procedure] if self.heating_procedure is not None else []
+ self.heating_procedure = [v if isinstance(v, str) else str(v) for v in self.heating_procedure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class BET(CharacterizationTechnique):
+ """
+ Brunauer-Emmett-Teller analysis for specific surface area and pore size distribution.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["BET"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:BET"
+ class_name: ClassVar[str] = "BET"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.BET
+
+ adsorbate_gas: Optional[Union[str, list[str]]] = empty_list()
+ degassing_temperature: Optional[Union[float, list[float]]] = empty_list()
+ measurement_temperature: Optional[Union[float, list[float]]] = empty_list()
+ pore_size_distribution_method: Optional[Union[str, list[str]]] = empty_list()
+ sample_mass: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.adsorbate_gas, list):
+ self.adsorbate_gas = [self.adsorbate_gas] if self.adsorbate_gas is not None else []
+ self.adsorbate_gas = [v if isinstance(v, str) else str(v) for v in self.adsorbate_gas]
+
+ if not isinstance(self.degassing_temperature, list):
+ self.degassing_temperature = [self.degassing_temperature] if self.degassing_temperature is not None else []
+ self.degassing_temperature = [v if isinstance(v, float) else float(v) for v in self.degassing_temperature]
+
+ if not isinstance(self.measurement_temperature, list):
+ self.measurement_temperature = [self.measurement_temperature] if self.measurement_temperature is not None else []
+ self.measurement_temperature = [v if isinstance(v, float) else float(v) for v in self.measurement_temperature]
+
+ if not isinstance(self.pore_size_distribution_method, list):
+ self.pore_size_distribution_method = [self.pore_size_distribution_method] if self.pore_size_distribution_method is not None else []
+ self.pore_size_distribution_method = [v if isinstance(v, str) else str(v) for v in self.pore_size_distribution_method]
+
+ if not isinstance(self.sample_mass, list):
+ self.sample_mass = [self.sample_mass] if self.sample_mass is not None else []
+ self.sample_mass = [v if isinstance(v, float) else float(v) for v in self.sample_mass]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ICPAES(CharacterizationTechnique):
+ """
+ Inductively coupled plasma atomic emission spectroscopy for bulk elemental composition.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000267"]
+ class_class_curie: ClassVar[str] = "CHMO:0000267"
+ class_name: ClassVar[str] = "ICPAES"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ICPAES
+
+ element_analyzed: Optional[Union[str, list[str]]] = empty_list()
+ calibration_method: Optional[Union[str, list[str]]] = empty_list()
+ detection_limit: Optional[Union[float, list[float]]] = empty_list()
+ matrix_effect_correction: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.element_analyzed, list):
+ self.element_analyzed = [self.element_analyzed] if self.element_analyzed is not None else []
+ self.element_analyzed = [v if isinstance(v, str) else str(v) for v in self.element_analyzed]
+
+ if not isinstance(self.calibration_method, list):
+ self.calibration_method = [self.calibration_method] if self.calibration_method is not None else []
+ self.calibration_method = [v if isinstance(v, str) else str(v) for v in self.calibration_method]
+
+ if not isinstance(self.detection_limit, list):
+ self.detection_limit = [self.detection_limit] if self.detection_limit is not None else []
+ self.detection_limit = [v if isinstance(v, float) else float(v) for v in self.detection_limit]
+
+ if not isinstance(self.matrix_effect_correction, list):
+ self.matrix_effect_correction = [self.matrix_effect_correction] if self.matrix_effect_correction is not None else []
+ self.matrix_effect_correction = [v if isinstance(v, str) else str(v) for v in self.matrix_effect_correction]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ElementalAnalysis(CharacterizationTechnique):
+ """
+ Combustion elemental analysis (CHNS/O) for carbon, hydrogen, nitrogen, sulfur content.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0001075"]
+ class_class_curie: ClassVar[str] = "CHMO:0001075"
+ class_name: ClassVar[str] = "ElementalAnalysis"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElementalAnalysis
+
+ elements_analyzed: Optional[Union[str, list[str]]] = empty_list()
+ combustion_temperature: Optional[Union[float, list[float]]] = empty_list()
+ carrier_gas: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.elements_analyzed, list):
+ self.elements_analyzed = [self.elements_analyzed] if self.elements_analyzed is not None else []
+ self.elements_analyzed = [v if isinstance(v, str) else str(v) for v in self.elements_analyzed]
+
+ if not isinstance(self.combustion_temperature, list):
+ self.combustion_temperature = [self.combustion_temperature] if self.combustion_temperature is not None else []
+ self.combustion_temperature = [v if isinstance(v, float) else float(v) for v in self.combustion_temperature]
+
+ if not isinstance(self.carrier_gas, list):
+ self.carrier_gas = [self.carrier_gas] if self.carrier_gas is not None else []
+ self.carrier_gas = [v if isinstance(v, str) else str(v) for v in self.carrier_gas]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class UVVisSpectroscopy(CharacterizationTechnique):
+ """
+ UV-Vis spectroscopy for electronic transitions, band gap, and concentration determination.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = VOC4CAT["0000079"]
+ class_class_curie: ClassVar[str] = "VOC4CAT:0000079"
+ class_name: ClassVar[str] = "UVVisSpectroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.UVVisSpectroscopy
+
+ minimum_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ maximum_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ path_length: Optional[Union[float, list[float]]] = empty_list()
+ solvent: Optional[Union[str, list[str]]] = empty_list()
+ concentration: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.minimum_wavelength, list):
+ self.minimum_wavelength = [self.minimum_wavelength] if self.minimum_wavelength is not None else []
+ self.minimum_wavelength = [v if isinstance(v, float) else float(v) for v in self.minimum_wavelength]
+
+ if not isinstance(self.maximum_wavelength, list):
+ self.maximum_wavelength = [self.maximum_wavelength] if self.maximum_wavelength is not None else []
+ self.maximum_wavelength = [v if isinstance(v, float) else float(v) for v in self.maximum_wavelength]
+
+ if not isinstance(self.path_length, list):
+ self.path_length = [self.path_length] if self.path_length is not None else []
+ self.path_length = [v if isinstance(v, float) else float(v) for v in self.path_length]
+
+ if not isinstance(self.solvent, list):
+ self.solvent = [self.solvent] if self.solvent is not None else []
+ self.solvent = [v if isinstance(v, str) else str(v) for v in self.solvent]
+
+ if not isinstance(self.concentration, list):
+ self.concentration = [self.concentration] if self.concentration is not None else []
+ self.concentration = [v if isinstance(v, float) else float(v) for v in self.concentration]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PhotoluminescenceSpectroscopy(CharacterizationTechnique):
+ """
+ Photoluminescence spectroscopy for defect and charge carrier characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["PhotoluminescenceSpectroscopy"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:PhotoluminescenceSpectroscopy"
+ class_name: ClassVar[str] = "PhotoluminescenceSpectroscopy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PhotoluminescenceSpectroscopy
+
+ emission_range: Optional[Union[str, list[str]]] = empty_list()
+ slit_width: Optional[Union[float, list[float]]] = empty_list()
+ step_size: Optional[Union[float, list[float]]] = empty_list()
+ integration_time: Optional[Union[float, list[float]]] = empty_list()
+ excitation_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ emission_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ optical_filter: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.emission_range, list):
+ self.emission_range = [self.emission_range] if self.emission_range is not None else []
+ self.emission_range = [v if isinstance(v, str) else str(v) for v in self.emission_range]
+
+ if not isinstance(self.slit_width, list):
+ self.slit_width = [self.slit_width] if self.slit_width is not None else []
+ self.slit_width = [v if isinstance(v, float) else float(v) for v in self.slit_width]
+
+ if not isinstance(self.step_size, list):
+ self.step_size = [self.step_size] if self.step_size is not None else []
+ self.step_size = [v if isinstance(v, float) else float(v) for v in self.step_size]
+
+ if not isinstance(self.integration_time, list):
+ self.integration_time = [self.integration_time] if self.integration_time is not None else []
+ self.integration_time = [v if isinstance(v, float) else float(v) for v in self.integration_time]
+
+ if not isinstance(self.excitation_wavelength, list):
+ self.excitation_wavelength = [self.excitation_wavelength] if self.excitation_wavelength is not None else []
+ self.excitation_wavelength = [v if isinstance(v, float) else float(v) for v in self.excitation_wavelength]
+
+ if not isinstance(self.emission_wavelength, list):
+ self.emission_wavelength = [self.emission_wavelength] if self.emission_wavelength is not None else []
+ self.emission_wavelength = [v if isinstance(v, float) else float(v) for v in self.emission_wavelength]
+
+ if not isinstance(self.optical_filter, list):
+ self.optical_filter = [self.optical_filter] if self.optical_filter is not None else []
+ self.optical_filter = [v if isinstance(v, str) else str(v) for v in self.optical_filter]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PhotoluminescenceLifetime(CharacterizationTechnique):
+ """
+ Time-resolved photoluminescence for charge carrier lifetime and recombination dynamics.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["PhotoluminescenceLifetime"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:PhotoluminescenceLifetime"
+ class_name: ClassVar[str] = "PhotoluminescenceLifetime"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PhotoluminescenceLifetime
+
+ lifetime_fitting_model: Optional[Union[str, list[str]]] = empty_list()
+ number_of_shots: Optional[Union[int, list[int]]] = empty_list()
+ excitation_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ emission_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ optical_filter: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.lifetime_fitting_model, list):
+ self.lifetime_fitting_model = [self.lifetime_fitting_model] if self.lifetime_fitting_model is not None else []
+ self.lifetime_fitting_model = [v if isinstance(v, str) else str(v) for v in self.lifetime_fitting_model]
+
+ if not isinstance(self.number_of_shots, list):
+ self.number_of_shots = [self.number_of_shots] if self.number_of_shots is not None else []
+ self.number_of_shots = [v if isinstance(v, int) else int(v) for v in self.number_of_shots]
+
+ if not isinstance(self.excitation_wavelength, list):
+ self.excitation_wavelength = [self.excitation_wavelength] if self.excitation_wavelength is not None else []
+ self.excitation_wavelength = [v if isinstance(v, float) else float(v) for v in self.excitation_wavelength]
+
+ if not isinstance(self.emission_wavelength, list):
+ self.emission_wavelength = [self.emission_wavelength] if self.emission_wavelength is not None else []
+ self.emission_wavelength = [v if isinstance(v, float) else float(v) for v in self.emission_wavelength]
+
+ if not isinstance(self.optical_filter, list):
+ self.optical_filter = [self.optical_filter] if self.optical_filter is not None else []
+ self.optical_filter = [v if isinstance(v, str) else str(v) for v in self.optical_filter]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CyclicVoltammetry(CharacterizationTechnique):
+ """
+ Cyclic voltammetry for electrochemical activity, redox potential, and capacitance characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000025"]
+ class_class_curie: ClassVar[str] = "CHMO:0000025"
+ class_name: ClassVar[str] = "CyclicVoltammetry"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CyclicVoltammetry
+
+ scan_rate: Optional[Union[float, list[float]]] = empty_list()
+ minimum_potential: Optional[Union[float, list[float]]] = empty_list()
+ maximum_potential: Optional[Union[float, list[float]]] = empty_list()
+ step_size_potential: Optional[Union[float, list[float]]] = empty_list()
+ number_of_cycles: Optional[Union[int, list[int]]] = empty_list()
+ reference_electrode: Optional[Union[str, list[str]]] = empty_list()
+ working_electrode: Optional[Union[str, list[str]]] = empty_list()
+ counter_electrode: Optional[Union[str, list[str]]] = empty_list()
+ electrolyte_composition: Optional[Union[str, list[str]]] = empty_list()
+ electrolyte_concentration: Optional[Union[float, list[float]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.scan_rate, list):
+ self.scan_rate = [self.scan_rate] if self.scan_rate is not None else []
+ self.scan_rate = [v if isinstance(v, float) else float(v) for v in self.scan_rate]
+
+ if not isinstance(self.minimum_potential, list):
+ self.minimum_potential = [self.minimum_potential] if self.minimum_potential is not None else []
+ self.minimum_potential = [v if isinstance(v, float) else float(v) for v in self.minimum_potential]
+
+ if not isinstance(self.maximum_potential, list):
+ self.maximum_potential = [self.maximum_potential] if self.maximum_potential is not None else []
+ self.maximum_potential = [v if isinstance(v, float) else float(v) for v in self.maximum_potential]
+
+ if not isinstance(self.step_size_potential, list):
+ self.step_size_potential = [self.step_size_potential] if self.step_size_potential is not None else []
+ self.step_size_potential = [v if isinstance(v, float) else float(v) for v in self.step_size_potential]
+
+ if not isinstance(self.number_of_cycles, list):
+ self.number_of_cycles = [self.number_of_cycles] if self.number_of_cycles is not None else []
+ self.number_of_cycles = [v if isinstance(v, int) else int(v) for v in self.number_of_cycles]
+
+ if not isinstance(self.reference_electrode, list):
+ self.reference_electrode = [self.reference_electrode] if self.reference_electrode is not None else []
+ self.reference_electrode = [v if isinstance(v, str) else str(v) for v in self.reference_electrode]
+
+ if not isinstance(self.working_electrode, list):
+ self.working_electrode = [self.working_electrode] if self.working_electrode is not None else []
+ self.working_electrode = [v if isinstance(v, str) else str(v) for v in self.working_electrode]
+
+ if not isinstance(self.counter_electrode, list):
+ self.counter_electrode = [self.counter_electrode] if self.counter_electrode is not None else []
+ self.counter_electrode = [v if isinstance(v, str) else str(v) for v in self.counter_electrode]
+
+ if not isinstance(self.electrolyte_composition, list):
+ self.electrolyte_composition = [self.electrolyte_composition] if self.electrolyte_composition is not None else []
+ self.electrolyte_composition = [v if isinstance(v, str) else str(v) for v in self.electrolyte_composition]
+
+ if not isinstance(self.electrolyte_concentration, list):
+ self.electrolyte_concentration = [self.electrolyte_concentration] if self.electrolyte_concentration is not None else []
+ self.electrolyte_concentration = [v if isinstance(v, float) else float(v) for v in self.electrolyte_concentration]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ConductivityMeasurement(CharacterizationTechnique):
+ """
+ Electrical conductivity measurement for ionic and electronic transport characterization.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ConductivityMeasurement"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ConductivityMeasurement"
+ class_name: ClassVar[str] = "ConductivityMeasurement"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ConductivityMeasurement
+
+ electrode_configuration: Optional[Union[str, list[str]]] = empty_list()
+ ac_frequency: Optional[Union[float, list[float]]] = empty_list()
+ ac_dc_mode: Optional[Union[str, list[str]]] = empty_list()
+ sample_geometry: Optional[Union[str, list[str]]] = empty_list()
+ reference_electrode: Optional[Union[str, list[str]]] = empty_list()
+ working_electrode: Optional[Union[str, list[str]]] = empty_list()
+ counter_electrode: Optional[Union[str, list[str]]] = empty_list()
+ electrolyte_composition: Optional[Union[str, list[str]]] = empty_list()
+ electrolyte_concentration: Optional[Union[float, list[float]]] = empty_list()
+ atmosphere: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.electrode_configuration, list):
+ self.electrode_configuration = [self.electrode_configuration] if self.electrode_configuration is not None else []
+ self.electrode_configuration = [v if isinstance(v, str) else str(v) for v in self.electrode_configuration]
+
+ if not isinstance(self.ac_frequency, list):
+ self.ac_frequency = [self.ac_frequency] if self.ac_frequency is not None else []
+ self.ac_frequency = [v if isinstance(v, float) else float(v) for v in self.ac_frequency]
+
+ if not isinstance(self.ac_dc_mode, list):
+ self.ac_dc_mode = [self.ac_dc_mode] if self.ac_dc_mode is not None else []
+ self.ac_dc_mode = [v if isinstance(v, str) else str(v) for v in self.ac_dc_mode]
+
+ if not isinstance(self.sample_geometry, list):
+ self.sample_geometry = [self.sample_geometry] if self.sample_geometry is not None else []
+ self.sample_geometry = [v if isinstance(v, str) else str(v) for v in self.sample_geometry]
+
+ if not isinstance(self.reference_electrode, list):
+ self.reference_electrode = [self.reference_electrode] if self.reference_electrode is not None else []
+ self.reference_electrode = [v if isinstance(v, str) else str(v) for v in self.reference_electrode]
+
+ if not isinstance(self.working_electrode, list):
+ self.working_electrode = [self.working_electrode] if self.working_electrode is not None else []
+ self.working_electrode = [v if isinstance(v, str) else str(v) for v in self.working_electrode]
+
+ if not isinstance(self.counter_electrode, list):
+ self.counter_electrode = [self.counter_electrode] if self.counter_electrode is not None else []
+ self.counter_electrode = [v if isinstance(v, str) else str(v) for v in self.counter_electrode]
+
+ if not isinstance(self.electrolyte_composition, list):
+ self.electrolyte_composition = [self.electrolyte_composition] if self.electrolyte_composition is not None else []
+ self.electrolyte_composition = [v if isinstance(v, str) else str(v) for v in self.electrolyte_composition]
+
+ if not isinstance(self.electrolyte_concentration, list):
+ self.electrolyte_concentration = [self.electrolyte_concentration] if self.electrolyte_concentration is not None else []
+ self.electrolyte_concentration = [v if isinstance(v, float) else float(v) for v in self.electrolyte_concentration]
+
+ if not isinstance(self.atmosphere, list):
+ self.atmosphere = [self.atmosphere] if self.atmosphere is not None else []
+ self.atmosphere = [v if isinstance(v, str) else str(v) for v in self.atmosphere]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DynamicLightScattering(CharacterizationTechnique):
+ """
+ Dynamic light scattering for hydrodynamic particle size distribution in suspension.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000167"]
+ class_class_curie: ClassVar[str] = "CHMO:0000167"
+ class_name: ClassVar[str] = "DynamicLightScattering"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DynamicLightScattering
+
+ solvent: Optional[Union[str, list[str]]] = empty_list()
+ concentration: Optional[Union[float, list[float]]] = empty_list()
+ light_wavelength: Optional[Union[float, list[float]]] = empty_list()
+ scattering_angle: Optional[Union[float, list[float]]] = empty_list()
+ refractive_index: Optional[Union[float, list[float]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ dispersant: Optional[Union[str, list[str]]] = empty_list()
+ measurement_duration: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.solvent, list):
+ self.solvent = [self.solvent] if self.solvent is not None else []
+ self.solvent = [v if isinstance(v, str) else str(v) for v in self.solvent]
+
+ if not isinstance(self.concentration, list):
+ self.concentration = [self.concentration] if self.concentration is not None else []
+ self.concentration = [v if isinstance(v, float) else float(v) for v in self.concentration]
+
+ if not isinstance(self.light_wavelength, list):
+ self.light_wavelength = [self.light_wavelength] if self.light_wavelength is not None else []
+ self.light_wavelength = [v if isinstance(v, float) else float(v) for v in self.light_wavelength]
+
+ if not isinstance(self.scattering_angle, list):
+ self.scattering_angle = [self.scattering_angle] if self.scattering_angle is not None else []
+ self.scattering_angle = [v if isinstance(v, float) else float(v) for v in self.scattering_angle]
+
+ if not isinstance(self.refractive_index, list):
+ self.refractive_index = [self.refractive_index] if self.refractive_index is not None else []
+ self.refractive_index = [v if isinstance(v, float) else float(v) for v in self.refractive_index]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.dispersant, list):
+ self.dispersant = [self.dispersant] if self.dispersant is not None else []
+ self.dispersant = [v if isinstance(v, str) else str(v) for v in self.dispersant]
+
+ if not isinstance(self.measurement_duration, list):
+ self.measurement_duration = [self.measurement_duration] if self.measurement_duration is not None else []
+ self.measurement_duration = [v if isinstance(v, float) else float(v) for v in self.measurement_duration]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ElectroSprayIonizationMassSpectrometry(CharacterizationTechnique):
+ """
+ Electrospray ionisation mass spectrometry for molecular mass and identity determination.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000482"]
+ class_class_curie: ClassVar[str] = "CHMO:0000482"
+ class_name: ClassVar[str] = "ElectroSprayIonizationMassSpectrometry"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElectroSprayIonizationMassSpectrometry
+
+ operation_mode: Optional[Union[str, list[str]]] = empty_list()
+ spray_voltage: Optional[Union[float, list[float]]] = empty_list()
+ capillary_temperature: Optional[Union[float, list[float]]] = empty_list()
+ solvent_composition: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ carrier_gas: Optional[Union[str, list[str]]] = empty_list()
+ concentration: Optional[Union[float, list[float]]] = empty_list()
+ mz_minimum: Optional[Union[float, list[float]]] = empty_list()
+ mz_maximum: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.operation_mode, list):
+ self.operation_mode = [self.operation_mode] if self.operation_mode is not None else []
+ self.operation_mode = [v if isinstance(v, str) else str(v) for v in self.operation_mode]
+
+ if not isinstance(self.spray_voltage, list):
+ self.spray_voltage = [self.spray_voltage] if self.spray_voltage is not None else []
+ self.spray_voltage = [v if isinstance(v, float) else float(v) for v in self.spray_voltage]
+
+ if not isinstance(self.capillary_temperature, list):
+ self.capillary_temperature = [self.capillary_temperature] if self.capillary_temperature is not None else []
+ self.capillary_temperature = [v if isinstance(v, float) else float(v) for v in self.capillary_temperature]
+
+ if not isinstance(self.solvent_composition, list):
+ self.solvent_composition = [self.solvent_composition] if self.solvent_composition is not None else []
+ self.solvent_composition = [v if isinstance(v, str) else str(v) for v in self.solvent_composition]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.carrier_gas, list):
+ self.carrier_gas = [self.carrier_gas] if self.carrier_gas is not None else []
+ self.carrier_gas = [v if isinstance(v, str) else str(v) for v in self.carrier_gas]
+
+ if not isinstance(self.concentration, list):
+ self.concentration = [self.concentration] if self.concentration is not None else []
+ self.concentration = [v if isinstance(v, float) else float(v) for v in self.concentration]
+
+ if not isinstance(self.mz_minimum, list):
+ self.mz_minimum = [self.mz_minimum] if self.mz_minimum is not None else []
+ self.mz_minimum = [v if isinstance(v, float) else float(v) for v in self.mz_minimum]
+
+ if not isinstance(self.mz_maximum, list):
+ self.mz_maximum = [self.mz_maximum] if self.mz_maximum is not None else []
+ self.mz_maximum = [v if isinstance(v, float) else float(v) for v in self.mz_maximum]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class GCMS(CharacterizationTechnique):
+ """
+ Gas chromatography-mass spectrometry for volatile compound identification and quantification.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000497"]
+ class_class_curie: ClassVar[str] = "CHMO:0000497"
+ class_name: ClassVar[str] = "GCMS"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.GCMS
+
+ carrier_gas: Optional[Union[str, list[str]]] = empty_list()
+ carrier_gas_purity: Optional[Union[str, list[str]]] = empty_list()
+ inlet_temperature: Optional[Union[float, list[float]]] = empty_list()
+ minimum_oven_temperature: Optional[Union[float, list[float]]] = empty_list()
+ maximum_oven_temperature: Optional[Union[float, list[float]]] = empty_list()
+ heating_ramp: Optional[Union[float, list[float]]] = empty_list()
+ heating_procedure: Optional[Union[str, list[str]]] = empty_list()
+ acquisition_mode: Optional[Union[str, list[str]]] = empty_list()
+ solvent_delay: Optional[Union[float, list[float]]] = empty_list()
+ trace_ion_detection: Optional[Union[str, list[str]]] = empty_list()
+ split_ratio: Optional[Union[float, list[float]]] = empty_list()
+ column_type: Optional[Union[str, list[str]]] = empty_list()
+ eluent: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ injection_volume: Optional[Union[float, list[float]]] = empty_list()
+ external_standard: Optional[Union[str, list[str]]] = empty_list()
+ internal_standard: Optional[Union[str, list[str]]] = empty_list()
+ mz_minimum: Optional[Union[float, list[float]]] = empty_list()
+ mz_maximum: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.carrier_gas, list):
+ self.carrier_gas = [self.carrier_gas] if self.carrier_gas is not None else []
+ self.carrier_gas = [v if isinstance(v, str) else str(v) for v in self.carrier_gas]
+
+ if not isinstance(self.carrier_gas_purity, list):
+ self.carrier_gas_purity = [self.carrier_gas_purity] if self.carrier_gas_purity is not None else []
+ self.carrier_gas_purity = [v if isinstance(v, str) else str(v) for v in self.carrier_gas_purity]
+
+ if not isinstance(self.inlet_temperature, list):
+ self.inlet_temperature = [self.inlet_temperature] if self.inlet_temperature is not None else []
+ self.inlet_temperature = [v if isinstance(v, float) else float(v) for v in self.inlet_temperature]
+
+ if not isinstance(self.minimum_oven_temperature, list):
+ self.minimum_oven_temperature = [self.minimum_oven_temperature] if self.minimum_oven_temperature is not None else []
+ self.minimum_oven_temperature = [v if isinstance(v, float) else float(v) for v in self.minimum_oven_temperature]
+
+ if not isinstance(self.maximum_oven_temperature, list):
+ self.maximum_oven_temperature = [self.maximum_oven_temperature] if self.maximum_oven_temperature is not None else []
+ self.maximum_oven_temperature = [v if isinstance(v, float) else float(v) for v in self.maximum_oven_temperature]
+
+ if not isinstance(self.heating_ramp, list):
+ self.heating_ramp = [self.heating_ramp] if self.heating_ramp is not None else []
+ self.heating_ramp = [v if isinstance(v, float) else float(v) for v in self.heating_ramp]
+
+ if not isinstance(self.heating_procedure, list):
+ self.heating_procedure = [self.heating_procedure] if self.heating_procedure is not None else []
+ self.heating_procedure = [v if isinstance(v, str) else str(v) for v in self.heating_procedure]
+
+ if not isinstance(self.acquisition_mode, list):
+ self.acquisition_mode = [self.acquisition_mode] if self.acquisition_mode is not None else []
+ self.acquisition_mode = [v if isinstance(v, str) else str(v) for v in self.acquisition_mode]
+
+ if not isinstance(self.solvent_delay, list):
+ self.solvent_delay = [self.solvent_delay] if self.solvent_delay is not None else []
+ self.solvent_delay = [v if isinstance(v, float) else float(v) for v in self.solvent_delay]
+
+ if not isinstance(self.trace_ion_detection, list):
+ self.trace_ion_detection = [self.trace_ion_detection] if self.trace_ion_detection is not None else []
+ self.trace_ion_detection = [v if isinstance(v, str) else str(v) for v in self.trace_ion_detection]
+
+ if not isinstance(self.split_ratio, list):
+ self.split_ratio = [self.split_ratio] if self.split_ratio is not None else []
+ self.split_ratio = [v if isinstance(v, float) else float(v) for v in self.split_ratio]
+
+ if not isinstance(self.column_type, list):
+ self.column_type = [self.column_type] if self.column_type is not None else []
+ self.column_type = [v if isinstance(v, str) else str(v) for v in self.column_type]
+
+ if not isinstance(self.eluent, list):
+ self.eluent = [self.eluent] if self.eluent is not None else []
+ self.eluent = [v if isinstance(v, str) else str(v) for v in self.eluent]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.injection_volume, list):
+ self.injection_volume = [self.injection_volume] if self.injection_volume is not None else []
+ self.injection_volume = [v if isinstance(v, float) else float(v) for v in self.injection_volume]
+
+ if not isinstance(self.external_standard, list):
+ self.external_standard = [self.external_standard] if self.external_standard is not None else []
+ self.external_standard = [v if isinstance(v, str) else str(v) for v in self.external_standard]
+
+ if not isinstance(self.internal_standard, list):
+ self.internal_standard = [self.internal_standard] if self.internal_standard is not None else []
+ self.internal_standard = [v if isinstance(v, str) else str(v) for v in self.internal_standard]
+
+ if not isinstance(self.mz_minimum, list):
+ self.mz_minimum = [self.mz_minimum] if self.mz_minimum is not None else []
+ self.mz_minimum = [v if isinstance(v, float) else float(v) for v in self.mz_minimum]
+
+ if not isinstance(self.mz_maximum, list):
+ self.mz_maximum = [self.mz_maximum] if self.mz_maximum is not None else []
+ self.mz_maximum = [v if isinstance(v, float) else float(v) for v in self.mz_maximum]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SizeExclusionChromatography(CharacterizationTechnique):
+ """
+ Size exclusion chromatography for molecular weight distribution determination.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = AFP["0000843"]
+ class_class_curie: ClassVar[str] = "AFP:0000843"
+ class_name: ClassVar[str] = "SizeExclusionChromatography"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SizeExclusionChromatography
+
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ calibration_standard: Optional[Union[str, list[str]]] = empty_list()
+ column_type: Optional[Union[str, list[str]]] = empty_list()
+ eluent: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ injection_volume: Optional[Union[float, list[float]]] = empty_list()
+ external_standard: Optional[Union[str, list[str]]] = empty_list()
+ internal_standard: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.calibration_standard, list):
+ self.calibration_standard = [self.calibration_standard] if self.calibration_standard is not None else []
+ self.calibration_standard = [v if isinstance(v, str) else str(v) for v in self.calibration_standard]
+
+ if not isinstance(self.column_type, list):
+ self.column_type = [self.column_type] if self.column_type is not None else []
+ self.column_type = [v if isinstance(v, str) else str(v) for v in self.column_type]
+
+ if not isinstance(self.eluent, list):
+ self.eluent = [self.eluent] if self.eluent is not None else []
+ self.eluent = [v if isinstance(v, str) else str(v) for v in self.eluent]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.injection_volume, list):
+ self.injection_volume = [self.injection_volume] if self.injection_volume is not None else []
+ self.injection_volume = [v if isinstance(v, float) else float(v) for v in self.injection_volume]
+
+ if not isinstance(self.external_standard, list):
+ self.external_standard = [self.external_standard] if self.external_standard is not None else []
+ self.external_standard = [v if isinstance(v, str) else str(v) for v in self.external_standard]
+
+ if not isinstance(self.internal_standard, list):
+ self.internal_standard = [self.internal_standard] if self.internal_standard is not None else []
+ self.internal_standard = [v if isinstance(v, str) else str(v) for v in self.internal_standard]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class HighPerformanceLiquidChromatographyMassSpectrometry(CharacterizationTechnique):
+ """
+ High-performance liquid chromatography-mass spectrometry for compound identification and quantification.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0000796"]
+ class_class_curie: ClassVar[str] = "CHMO:0000796"
+ class_name: ClassVar[str] = "HighPerformanceLiquidChromatographyMassSpectrometry"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.HighPerformanceLiquidChromatographyMassSpectrometry
+
+ gradient_program: Optional[Union[str, list[str]]] = empty_list()
+ ionization_mode: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ column_type: Optional[Union[str, list[str]]] = empty_list()
+ eluent: Optional[Union[str, list[str]]] = empty_list()
+ flow_rate: Optional[Union[float, list[float]]] = empty_list()
+ injection_volume: Optional[Union[float, list[float]]] = empty_list()
+ external_standard: Optional[Union[str, list[str]]] = empty_list()
+ internal_standard: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.gradient_program, list):
+ self.gradient_program = [self.gradient_program] if self.gradient_program is not None else []
+ self.gradient_program = [v if isinstance(v, str) else str(v) for v in self.gradient_program]
+
+ if not isinstance(self.ionization_mode, list):
+ self.ionization_mode = [self.ionization_mode] if self.ionization_mode is not None else []
+ self.ionization_mode = [v if isinstance(v, str) else str(v) for v in self.ionization_mode]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.column_type, list):
+ self.column_type = [self.column_type] if self.column_type is not None else []
+ self.column_type = [v if isinstance(v, str) else str(v) for v in self.column_type]
+
+ if not isinstance(self.eluent, list):
+ self.eluent = [self.eluent] if self.eluent is not None else []
+ self.eluent = [v if isinstance(v, str) else str(v) for v in self.eluent]
+
+ if not isinstance(self.flow_rate, list):
+ self.flow_rate = [self.flow_rate] if self.flow_rate is not None else []
+ self.flow_rate = [v if isinstance(v, float) else float(v) for v in self.flow_rate]
+
+ if not isinstance(self.injection_volume, list):
+ self.injection_volume = [self.injection_volume] if self.injection_volume is not None else []
+ self.injection_volume = [v if isinstance(v, float) else float(v) for v in self.injection_volume]
+
+ if not isinstance(self.external_standard, list):
+ self.external_standard = [self.external_standard] if self.external_standard is not None else []
+ self.external_standard = [v if isinstance(v, str) else str(v) for v in self.external_standard]
+
+ if not isinstance(self.internal_standard, list):
+ self.internal_standard = [self.internal_standard] if self.internal_standard is not None else []
+ self.internal_standard = [v if isinstance(v, str) else str(v) for v in self.internal_standard]
+
+ super().__post_init__(**kwargs)
+
+
+class ProductIdentificationMethod(Plan):
+ """
+ Abstract Plan representing the method used to identify and quantify reaction
+ products. In practice, users should reference a concrete CharacterizationTechnique
+ subclass from coremeta4cat_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
+
+ This abstract class is retained for backward compatibility with the original
+ CoreMeta4Cat monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
+ it can participate in the realized_plan slot if needed.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000272"]
+ class_class_curie: ClassVar[str] = "OBI:0000272"
+ class_name: ClassVar[str] = "ProductIdentificationMethod"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ProductIdentificationMethod
+
+
+class SimulationMethod(Plan):
+ """
+ Abstract Plan describing the computational method (protocol) used in a
+ Simulation. Concrete subclasses carry method-specific parameter slots.
+ Linked from Simulation via realized_plan.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000272"]
+ class_class_curie: ClassVar[str] = "OBI:0000272"
+ class_name: ClassVar[str] = "SimulationMethod"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SimulationMethod
+
+
+@dataclass(repr=False)
+class DFT(SimulationMethod):
+ """
+ Density functional theory — a quantum mechanical method for calculating
+ the electronic structure of atoms, molecules, and periodic solids.
+ The most widely used ab initio method in computational catalysis.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["DFT"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:DFT"
+ class_name: ClassVar[str] = "DFT"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DFT
+
+ exchange_correlation_functional: Optional[Union[str, list[str]]] = empty_list()
+ energy_cutoff: Optional[Union[float, list[float]]] = empty_list()
+ convergence_criteria: Optional[Union[str, list[str]]] = empty_list()
+ dft_u_parameters: Optional[Union[str, list[str]]] = empty_list()
+ spin_polarization: Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]] = empty_list()
+ total_energy_per_atom: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.exchange_correlation_functional, list):
+ self.exchange_correlation_functional = [self.exchange_correlation_functional] if self.exchange_correlation_functional is not None else []
+ self.exchange_correlation_functional = [v if isinstance(v, str) else str(v) for v in self.exchange_correlation_functional]
+
+ if not isinstance(self.energy_cutoff, list):
+ self.energy_cutoff = [self.energy_cutoff] if self.energy_cutoff is not None else []
+ self.energy_cutoff = [v if isinstance(v, float) else float(v) for v in self.energy_cutoff]
+
+ if not isinstance(self.convergence_criteria, list):
+ self.convergence_criteria = [self.convergence_criteria] if self.convergence_criteria is not None else []
+ self.convergence_criteria = [v if isinstance(v, str) else str(v) for v in self.convergence_criteria]
+
+ if not isinstance(self.dft_u_parameters, list):
+ self.dft_u_parameters = [self.dft_u_parameters] if self.dft_u_parameters is not None else []
+ self.dft_u_parameters = [v if isinstance(v, str) else str(v) for v in self.dft_u_parameters]
+
+ if not isinstance(self.spin_polarization, list):
+ self.spin_polarization = [self.spin_polarization] if self.spin_polarization is not None else []
+ self.spin_polarization = [v if isinstance(v, Bool) else Bool(v) for v in self.spin_polarization]
+
+ if not isinstance(self.total_energy_per_atom, list):
+ self.total_energy_per_atom = [self.total_energy_per_atom] if self.total_energy_per_atom is not None else []
+ self.total_energy_per_atom = [v if isinstance(v, float) else float(v) for v in self.total_energy_per_atom]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MolecularDynamics(SimulationMethod):
+ """
+ Molecular dynamics simulation — a method for computing the time evolution
+ of a system of interacting particles by integrating the equations of motion.
+ Used to study diffusion, reaction kinetics, and thermal properties.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = NCIT["C18097"]
+ class_class_curie: ClassVar[str] = "NCIT:C18097"
+ class_name: ClassVar[str] = "MolecularDynamics"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MolecularDynamics
+
+ force_field: Optional[Union[str, list[str]]] = empty_list()
+ simulation_timestep: Optional[Union[float, list[float]]] = empty_list()
+ simulation_time: Optional[Union[float, list[float]]] = empty_list()
+ ensemble_type: Optional[Union[str, list[str]]] = empty_list()
+ number_of_atoms: Optional[Union[int, list[int]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.force_field, list):
+ self.force_field = [self.force_field] if self.force_field is not None else []
+ self.force_field = [v if isinstance(v, str) else str(v) for v in self.force_field]
+
+ if not isinstance(self.simulation_timestep, list):
+ self.simulation_timestep = [self.simulation_timestep] if self.simulation_timestep is not None else []
+ self.simulation_timestep = [v if isinstance(v, float) else float(v) for v in self.simulation_timestep]
+
+ if not isinstance(self.simulation_time, list):
+ self.simulation_time = [self.simulation_time] if self.simulation_time is not None else []
+ self.simulation_time = [v if isinstance(v, float) else float(v) for v in self.simulation_time]
+
+ if not isinstance(self.ensemble_type, list):
+ self.ensemble_type = [self.ensemble_type] if self.ensemble_type is not None else []
+ self.ensemble_type = [v if isinstance(v, str) else str(v) for v in self.ensemble_type]
+
+ if not isinstance(self.number_of_atoms, list):
+ self.number_of_atoms = [self.number_of_atoms] if self.number_of_atoms is not None else []
+ self.number_of_atoms = [v if isinstance(v, int) else int(v) for v in self.number_of_atoms]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Microkinetics(SimulationMethod):
+ """
+ Microkinetic modelling — a mean-field kinetic approach that integrates
+ elementary reaction steps and their rate constants to predict catalytic
+ activity and selectivity under reaction conditions.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Microkinetics"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Microkinetics"
+ class_name: ClassVar[str] = "Microkinetics"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Microkinetics
+
+ rate_constants: Optional[Union[str, list[str]]] = empty_list()
+ solver_type: Optional[Union[str, list[str]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ pressure: Optional[Union[float, list[float]]] = empty_list()
+ surface_coverage: Optional[Union[float, list[float]]] = empty_list()
+ activation_energy: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.rate_constants, list):
+ self.rate_constants = [self.rate_constants] if self.rate_constants is not None else []
+ self.rate_constants = [v if isinstance(v, str) else str(v) for v in self.rate_constants]
+
+ if not isinstance(self.solver_type, list):
+ self.solver_type = [self.solver_type] if self.solver_type is not None else []
+ self.solver_type = [v if isinstance(v, str) else str(v) for v in self.solver_type]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.pressure, list):
+ self.pressure = [self.pressure] if self.pressure is not None else []
+ self.pressure = [v if isinstance(v, float) else float(v) for v in self.pressure]
+
+ if not isinstance(self.surface_coverage, list):
+ self.surface_coverage = [self.surface_coverage] if self.surface_coverage is not None else []
+ self.surface_coverage = [v if isinstance(v, float) else float(v) for v in self.surface_coverage]
+
+ if not isinstance(self.activation_energy, list):
+ self.activation_energy = [self.activation_energy] if self.activation_energy is not None else []
+ self.activation_energy = [v if isinstance(v, float) else float(v) for v in self.activation_energy]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MonteCarlo(SimulationMethod):
+ """
+ Monte Carlo simulation — a stochastic method that samples configuration
+ space using random moves accepted or rejected according to a statistical
+ criterion (e.g. Metropolis). Used for adsorption isotherms, phase diagrams,
+ and lattice-based kinetics.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["MonteCarlo"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:MonteCarlo"
+ class_name: ClassVar[str] = "MonteCarlo"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MonteCarlo
+
+ interaction_potential: Optional[Union[str, list[str]]] = empty_list()
+ number_of_steps: Optional[Union[int, list[int]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ lattice_size_type: Optional[Union[str, list[str]]] = empty_list()
+ acceptance_criteria: Optional[Union[str, list[str]]] = empty_list()
+ equilibration_steps: Optional[Union[int, list[int]]] = empty_list()
+ sampling_interval: Optional[Union[int, list[int]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.interaction_potential, list):
+ self.interaction_potential = [self.interaction_potential] if self.interaction_potential is not None else []
+ self.interaction_potential = [v if isinstance(v, str) else str(v) for v in self.interaction_potential]
+
+ if not isinstance(self.number_of_steps, list):
+ self.number_of_steps = [self.number_of_steps] if self.number_of_steps is not None else []
+ self.number_of_steps = [v if isinstance(v, int) else int(v) for v in self.number_of_steps]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.lattice_size_type, list):
+ self.lattice_size_type = [self.lattice_size_type] if self.lattice_size_type is not None else []
+ self.lattice_size_type = [v if isinstance(v, str) else str(v) for v in self.lattice_size_type]
+
+ if not isinstance(self.acceptance_criteria, list):
+ self.acceptance_criteria = [self.acceptance_criteria] if self.acceptance_criteria is not None else []
+ self.acceptance_criteria = [v if isinstance(v, str) else str(v) for v in self.acceptance_criteria]
+
+ if not isinstance(self.equilibration_steps, list):
+ self.equilibration_steps = [self.equilibration_steps] if self.equilibration_steps is not None else []
+ self.equilibration_steps = [v if isinstance(v, int) else int(v) for v in self.equilibration_steps]
+
+ if not isinstance(self.sampling_interval, list):
+ self.sampling_interval = [self.sampling_interval] if self.sampling_interval is not None else []
+ self.sampling_interval = [v if isinstance(v, int) else int(v) for v in self.sampling_interval]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class QualitativeAttribute(YAMLRoot):
+ """
+ A piece of information that is attributed to an Entity, Activity or AgenticEntity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Entity"]
+ class_class_curie: ClassVar[str] = "prov:Entity"
+ class_name: ClassVar[str] = "QualitativeAttribute"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.QualitativeAttribute
+
+ value: str = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+ type: Optional[Union[dict, DefinedTerm]] = None
+ rdf_type: Optional[Union[dict, DefinedTerm]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.value):
+ self.MissingRequiredField("value")
+ if not isinstance(self.value, str):
+ self.value = str(self.value)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CalculatedProperty(QualitativeAttribute):
+ """
+ Abstract QualitativeAttribute representing a property computed by a
+ Simulation. Concrete subclasses carry the property-specific output
+ values and the computational settings used to produce them.
+ Linked from Simulation via the calculated_property slot.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["CalculatedProperty"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:CalculatedProperty"
+ class_name: ClassVar[str] = "CalculatedProperty"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CalculatedProperty
+
+ value: str = None
+
+@dataclass(repr=False)
+class ThermodynamicStability(CalculatedProperty):
+ """
+ Thermodynamic stability of a material or phase, characterised by formation
+ energy, convex hull distance, and competing phases. Used to screen catalyst
+ stability and predict synthesis feasibility.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ThermodynamicStability"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ThermodynamicStability"
+ class_name: ClassVar[str] = "ThermodynamicStability"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ThermodynamicStability
+
+ value: str = None
+ formation_energy: Optional[Union[float, list[float]]] = empty_list()
+ reference_energies: Optional[Union[str, list[str]]] = empty_list()
+ energy_above_hull: Optional[Union[float, list[float]]] = empty_list()
+ phase_diagram_type: Optional[Union[str, list[str]]] = empty_list()
+ competing_phases: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.formation_energy, list):
+ self.formation_energy = [self.formation_energy] if self.formation_energy is not None else []
+ self.formation_energy = [v if isinstance(v, float) else float(v) for v in self.formation_energy]
+
+ if not isinstance(self.reference_energies, list):
+ self.reference_energies = [self.reference_energies] if self.reference_energies is not None else []
+ self.reference_energies = [v if isinstance(v, str) else str(v) for v in self.reference_energies]
+
+ if not isinstance(self.energy_above_hull, list):
+ self.energy_above_hull = [self.energy_above_hull] if self.energy_above_hull is not None else []
+ self.energy_above_hull = [v if isinstance(v, float) else float(v) for v in self.energy_above_hull]
+
+ if not isinstance(self.phase_diagram_type, list):
+ self.phase_diagram_type = [self.phase_diagram_type] if self.phase_diagram_type is not None else []
+ self.phase_diagram_type = [v if isinstance(v, str) else str(v) for v in self.phase_diagram_type]
+
+ if not isinstance(self.competing_phases, list):
+ self.competing_phases = [self.competing_phases] if self.competing_phases is not None else []
+ self.competing_phases = [v if isinstance(v, str) else str(v) for v in self.competing_phases]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Piezoelectricity(CalculatedProperty):
+ """
+ Piezoelectric response of a non-centrosymmetric material, described by the
+ piezoelectric tensor. Relevant for piezocatalysis applications.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Piezoelectricity"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Piezoelectricity"
+ class_name: ClassVar[str] = "Piezoelectricity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Piezoelectricity
+
+ value: str = None
+ piezoelectric_tensor: Optional[Union[str, list[str]]] = empty_list()
+ crystal_symmetry: Optional[Union[str, list[str]]] = empty_list()
+ strain_applied: Optional[Union[float, list[float]]] = empty_list()
+ ionic_electronic_contributions: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.piezoelectric_tensor, list):
+ self.piezoelectric_tensor = [self.piezoelectric_tensor] if self.piezoelectric_tensor is not None else []
+ self.piezoelectric_tensor = [v if isinstance(v, str) else str(v) for v in self.piezoelectric_tensor]
+
+ if not isinstance(self.crystal_symmetry, list):
+ self.crystal_symmetry = [self.crystal_symmetry] if self.crystal_symmetry is not None else []
+ self.crystal_symmetry = [v if isinstance(v, str) else str(v) for v in self.crystal_symmetry]
+
+ if not isinstance(self.strain_applied, list):
+ self.strain_applied = [self.strain_applied] if self.strain_applied is not None else []
+ self.strain_applied = [v if isinstance(v, float) else float(v) for v in self.strain_applied]
+
+ if not isinstance(self.ionic_electronic_contributions, list):
+ self.ionic_electronic_contributions = [self.ionic_electronic_contributions] if self.ionic_electronic_contributions is not None else []
+ self.ionic_electronic_contributions = [v if isinstance(v, str) else str(v) for v in self.ionic_electronic_contributions]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ElasticConstants(CalculatedProperty):
+ """
+ Elastic mechanical properties of a material derived from the elastic tensor,
+ including bulk modulus, shear modulus, and Young's modulus.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ElasticConstants"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ElasticConstants"
+ class_name: ClassVar[str] = "ElasticConstants"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElasticConstants
+
+ value: str = None
+ elastic_tensor: Optional[Union[str, list[str]]] = empty_list()
+ bulk_modulus: Optional[Union[float, list[float]]] = empty_list()
+ shear_modulus: Optional[Union[float, list[float]]] = empty_list()
+ poisson_ratio: Optional[Union[float, list[float]]] = empty_list()
+ young_modulus: Optional[Union[float, list[float]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.elastic_tensor, list):
+ self.elastic_tensor = [self.elastic_tensor] if self.elastic_tensor is not None else []
+ self.elastic_tensor = [v if isinstance(v, str) else str(v) for v in self.elastic_tensor]
+
+ if not isinstance(self.bulk_modulus, list):
+ self.bulk_modulus = [self.bulk_modulus] if self.bulk_modulus is not None else []
+ self.bulk_modulus = [v if isinstance(v, float) else float(v) for v in self.bulk_modulus]
+
+ if not isinstance(self.shear_modulus, list):
+ self.shear_modulus = [self.shear_modulus] if self.shear_modulus is not None else []
+ self.shear_modulus = [v if isinstance(v, float) else float(v) for v in self.shear_modulus]
+
+ if not isinstance(self.poisson_ratio, list):
+ self.poisson_ratio = [self.poisson_ratio] if self.poisson_ratio is not None else []
+ self.poisson_ratio = [v if isinstance(v, float) else float(v) for v in self.poisson_ratio]
+
+ if not isinstance(self.young_modulus, list):
+ self.young_modulus = [self.young_modulus] if self.young_modulus is not None else []
+ self.young_modulus = [v if isinstance(v, float) else float(v) for v in self.young_modulus]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Surfaces(CalculatedProperty):
+ """
+ Surface properties of a catalyst computed from a periodic slab model,
+ including surface energy, Miller index, slab thickness, and vacuum spacing.
+ Central to heterogeneous catalysis modelling.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Surfaces"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Surfaces"
+ class_name: ClassVar[str] = "Surfaces"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Surfaces
+
+ value: str = None
+ surface_energy: Optional[Union[float, list[float]]] = empty_list()
+ miller_indices: Optional[Union[str, list[str]]] = empty_list()
+ slab_thickness: Optional[Union[float, list[float]]] = empty_list()
+ vacuum_spacing: Optional[Union[float, list[float]]] = empty_list()
+ surface_termination_method: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.surface_energy, list):
+ self.surface_energy = [self.surface_energy] if self.surface_energy is not None else []
+ self.surface_energy = [v if isinstance(v, float) else float(v) for v in self.surface_energy]
+
+ if not isinstance(self.miller_indices, list):
+ self.miller_indices = [self.miller_indices] if self.miller_indices is not None else []
+ self.miller_indices = [v if isinstance(v, str) else str(v) for v in self.miller_indices]
+
+ if not isinstance(self.slab_thickness, list):
+ self.slab_thickness = [self.slab_thickness] if self.slab_thickness is not None else []
+ self.slab_thickness = [v if isinstance(v, float) else float(v) for v in self.slab_thickness]
+
+ if not isinstance(self.vacuum_spacing, list):
+ self.vacuum_spacing = [self.vacuum_spacing] if self.vacuum_spacing is not None else []
+ self.vacuum_spacing = [v if isinstance(v, float) else float(v) for v in self.vacuum_spacing]
+
+ if not isinstance(self.surface_termination_method, list):
+ self.surface_termination_method = [self.surface_termination_method] if self.surface_termination_method is not None else []
+ self.surface_termination_method = [v if isinstance(v, str) else str(v) for v in self.surface_termination_method]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DielectricTensors(CalculatedProperty):
+ """
+ Dielectric tensor computed from density functional perturbation theory (DFPT).
+ Characterises the optical and static dielectric response of a material.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["DielectricTensors"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:DielectricTensors"
+ class_name: ClassVar[str] = "DielectricTensors"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DielectricTensors
+
+ value: str = None
+ dielectric_tensor: Optional[Union[str, list[str]]] = empty_list()
+ born_effective_charges: Optional[Union[str, list[str]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+ energy_cutoff: Optional[Union[float, list[float]]] = empty_list()
+ convergence_criteria: Optional[Union[str, list[str]]] = empty_list()
+ k_point_mesh: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.dielectric_tensor, list):
+ self.dielectric_tensor = [self.dielectric_tensor] if self.dielectric_tensor is not None else []
+ self.dielectric_tensor = [v if isinstance(v, str) else str(v) for v in self.dielectric_tensor]
+
+ if not isinstance(self.born_effective_charges, list):
+ self.born_effective_charges = [self.born_effective_charges] if self.born_effective_charges is not None else []
+ self.born_effective_charges = [v if isinstance(v, str) else str(v) for v in self.born_effective_charges]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ if not isinstance(self.energy_cutoff, list):
+ self.energy_cutoff = [self.energy_cutoff] if self.energy_cutoff is not None else []
+ self.energy_cutoff = [v if isinstance(v, float) else float(v) for v in self.energy_cutoff]
+
+ if not isinstance(self.convergence_criteria, list):
+ self.convergence_criteria = [self.convergence_criteria] if self.convergence_criteria is not None else []
+ self.convergence_criteria = [v if isinstance(v, str) else str(v) for v in self.convergence_criteria]
+
+ if not isinstance(self.k_point_mesh, list):
+ self.k_point_mesh = [self.k_point_mesh] if self.k_point_mesh is not None else []
+ self.k_point_mesh = [v if isinstance(v, str) else str(v) for v in self.k_point_mesh]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PhononDispersion(CalculatedProperty):
+ """
+ Phonon dispersion relations computed from interatomic force constants,
+ providing access to vibrational frequencies, thermodynamic quantities,
+ and dynamical stability (imaginary modes).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["PhononDispersion"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:PhononDispersion"
+ class_name: ClassVar[str] = "PhononDispersion"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PhononDispersion
+
+ value: str = None
+ force_constant_method: Optional[Union[str, list[str]]] = empty_list()
+ kq_point_mesh: Optional[Union[str, list[str]]] = empty_list()
+ smearing_parameter: Optional[Union[float, list[float]]] = empty_list()
+ imaginary_modes: Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.force_constant_method, list):
+ self.force_constant_method = [self.force_constant_method] if self.force_constant_method is not None else []
+ self.force_constant_method = [v if isinstance(v, str) else str(v) for v in self.force_constant_method]
+
+ if not isinstance(self.kq_point_mesh, list):
+ self.kq_point_mesh = [self.kq_point_mesh] if self.kq_point_mesh is not None else []
+ self.kq_point_mesh = [v if isinstance(v, str) else str(v) for v in self.kq_point_mesh]
+
+ if not isinstance(self.smearing_parameter, list):
+ self.smearing_parameter = [self.smearing_parameter] if self.smearing_parameter is not None else []
+ self.smearing_parameter = [v if isinstance(v, float) else float(v) for v in self.smearing_parameter]
+
+ if not isinstance(self.imaginary_modes, list):
+ self.imaginary_modes = [self.imaginary_modes] if self.imaginary_modes is not None else []
+ self.imaginary_modes = [v if isinstance(v, Bool) else Bool(v) for v in self.imaginary_modes]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class EquationsOfState(CalculatedProperty):
+ """
+ Equation of state relating energy (or enthalpy) to volume, fitted to a
+ parametric model (e.g. Birch-Murnaghan). Used to extract equilibrium
+ volume, bulk modulus, and its pressure derivative.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["EquationsOfState"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:EquationsOfState"
+ class_name: ClassVar[str] = "EquationsOfState"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.EquationsOfState
+
+ value: str = None
+ fit_method: Optional[Union[str, list[str]]] = empty_list()
+ bulk_modulus: Optional[Union[float, list[float]]] = empty_list()
+ pressure_derivative: Optional[Union[float, list[float]]] = empty_list()
+ fit_residuals: Optional[Union[float, list[float]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+ energy_cutoff: Optional[Union[float, list[float]]] = empty_list()
+ convergence_criteria: Optional[Union[str, list[str]]] = empty_list()
+ k_point_mesh: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.fit_method, list):
+ self.fit_method = [self.fit_method] if self.fit_method is not None else []
+ self.fit_method = [v if isinstance(v, str) else str(v) for v in self.fit_method]
+
+ if not isinstance(self.bulk_modulus, list):
+ self.bulk_modulus = [self.bulk_modulus] if self.bulk_modulus is not None else []
+ self.bulk_modulus = [v if isinstance(v, float) else float(v) for v in self.bulk_modulus]
+
+ if not isinstance(self.pressure_derivative, list):
+ self.pressure_derivative = [self.pressure_derivative] if self.pressure_derivative is not None else []
+ self.pressure_derivative = [v if isinstance(v, float) else float(v) for v in self.pressure_derivative]
+
+ if not isinstance(self.fit_residuals, list):
+ self.fit_residuals = [self.fit_residuals] if self.fit_residuals is not None else []
+ self.fit_residuals = [v if isinstance(v, float) else float(v) for v in self.fit_residuals]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ if not isinstance(self.energy_cutoff, list):
+ self.energy_cutoff = [self.energy_cutoff] if self.energy_cutoff is not None else []
+ self.energy_cutoff = [v if isinstance(v, float) else float(v) for v in self.energy_cutoff]
+
+ if not isinstance(self.convergence_criteria, list):
+ self.convergence_criteria = [self.convergence_criteria] if self.convergence_criteria is not None else []
+ self.convergence_criteria = [v if isinstance(v, str) else str(v) for v in self.convergence_criteria]
+
+ if not isinstance(self.k_point_mesh, list):
+ self.k_point_mesh = [self.k_point_mesh] if self.k_point_mesh is not None else []
+ self.k_point_mesh = [v if isinstance(v, str) else str(v) for v in self.k_point_mesh]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class AqueousStability(CalculatedProperty):
+ """
+ Electrochemical (Pourbaix) stability of a catalyst in aqueous solution as
+ a function of pH and electrode potential. Critical for electrocatalyst
+ stability screening.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["AqueousStability"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:AqueousStability"
+ class_name: ClassVar[str] = "AqueousStability"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.AqueousStability
+
+ value: str = None
+ ph_range: Optional[Union[str, list[str]]] = empty_list()
+ potential_range: Optional[Union[str, list[str]]] = empty_list()
+ solvation_model: Optional[Union[str, list[str]]] = empty_list()
+ ionic_strength: Optional[Union[float, list[float]]] = empty_list()
+ temperature: Optional[Union[float, list[float]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.ph_range, list):
+ self.ph_range = [self.ph_range] if self.ph_range is not None else []
+ self.ph_range = [v if isinstance(v, str) else str(v) for v in self.ph_range]
+
+ if not isinstance(self.potential_range, list):
+ self.potential_range = [self.potential_range] if self.potential_range is not None else []
+ self.potential_range = [v if isinstance(v, str) else str(v) for v in self.potential_range]
+
+ if not isinstance(self.solvation_model, list):
+ self.solvation_model = [self.solvation_model] if self.solvation_model is not None else []
+ self.solvation_model = [v if isinstance(v, str) else str(v) for v in self.solvation_model]
+
+ if not isinstance(self.ionic_strength, list):
+ self.ionic_strength = [self.ionic_strength] if self.ionic_strength is not None else []
+ self.ionic_strength = [v if isinstance(v, float) else float(v) for v in self.ionic_strength]
+
+ if not isinstance(self.temperature, list):
+ self.temperature = [self.temperature] if self.temperature is not None else []
+ self.temperature = [v if isinstance(v, float) else float(v) for v in self.temperature]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class GrainBoundaries(CalculatedProperty):
+ """
+ Grain boundary structure and energetics from atomistic simulation.
+ Relevant for understanding polycrystalline catalyst behaviour,
+ sintering, and charge/defect segregation.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["GrainBoundaries"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:GrainBoundaries"
+ class_name: ClassVar[str] = "GrainBoundaries"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.GrainBoundaries
+
+ value: str = None
+ grain_boundary_plane: Optional[Union[str, list[str]]] = empty_list()
+ misorientation_angle: Optional[Union[float, list[float]]] = empty_list()
+ grain_boundary_energy: Optional[Union[float, list[float]]] = empty_list()
+ simulation_cell_size: Optional[Union[str, list[str]]] = empty_list()
+ gb_excess_volume: Optional[Union[float, list[float]]] = empty_list()
+ gb_structural_units: Optional[Union[str, list[str]]] = empty_list()
+ charge_defect_segregation: Optional[Union[str, list[str]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.grain_boundary_plane, list):
+ self.grain_boundary_plane = [self.grain_boundary_plane] if self.grain_boundary_plane is not None else []
+ self.grain_boundary_plane = [v if isinstance(v, str) else str(v) for v in self.grain_boundary_plane]
+
+ if not isinstance(self.misorientation_angle, list):
+ self.misorientation_angle = [self.misorientation_angle] if self.misorientation_angle is not None else []
+ self.misorientation_angle = [v if isinstance(v, float) else float(v) for v in self.misorientation_angle]
+
+ if not isinstance(self.grain_boundary_energy, list):
+ self.grain_boundary_energy = [self.grain_boundary_energy] if self.grain_boundary_energy is not None else []
+ self.grain_boundary_energy = [v if isinstance(v, float) else float(v) for v in self.grain_boundary_energy]
+
+ if not isinstance(self.simulation_cell_size, list):
+ self.simulation_cell_size = [self.simulation_cell_size] if self.simulation_cell_size is not None else []
+ self.simulation_cell_size = [v if isinstance(v, str) else str(v) for v in self.simulation_cell_size]
+
+ if not isinstance(self.gb_excess_volume, list):
+ self.gb_excess_volume = [self.gb_excess_volume] if self.gb_excess_volume is not None else []
+ self.gb_excess_volume = [v if isinstance(v, float) else float(v) for v in self.gb_excess_volume]
+
+ if not isinstance(self.gb_structural_units, list):
+ self.gb_structural_units = [self.gb_structural_units] if self.gb_structural_units is not None else []
+ self.gb_structural_units = [v if isinstance(v, str) else str(v) for v in self.gb_structural_units]
+
+ if not isinstance(self.charge_defect_segregation, list):
+ self.charge_defect_segregation = [self.charge_defect_segregation] if self.charge_defect_segregation is not None else []
+ self.charge_defect_segregation = [v if isinstance(v, str) else str(v) for v in self.charge_defect_segregation]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ElectronicStructure(CalculatedProperty):
+ """
+ Electronic band structure and density of states, characterising the
+ electronic properties of a catalyst relevant to activity descriptors
+ (d-band centre, band gap, Fermi energy).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["ElectronicStructure"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:ElectronicStructure"
+ class_name: ClassVar[str] = "ElectronicStructure"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ElectronicStructure
+
+ value: str = None
+ smearing_method: Optional[Union[str, list[str]]] = empty_list()
+ spin_polarized: Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]] = empty_list()
+ band_path: Optional[Union[str, list[str]]] = empty_list()
+ fermi_energy: Optional[Union[float, list[float]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+ energy_cutoff: Optional[Union[float, list[float]]] = empty_list()
+ convergence_criteria: Optional[Union[str, list[str]]] = empty_list()
+ k_point_mesh: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.smearing_method, list):
+ self.smearing_method = [self.smearing_method] if self.smearing_method is not None else []
+ self.smearing_method = [v if isinstance(v, str) else str(v) for v in self.smearing_method]
+
+ if not isinstance(self.spin_polarized, list):
+ self.spin_polarized = [self.spin_polarized] if self.spin_polarized is not None else []
+ self.spin_polarized = [v if isinstance(v, Bool) else Bool(v) for v in self.spin_polarized]
+
+ if not isinstance(self.band_path, list):
+ self.band_path = [self.band_path] if self.band_path is not None else []
+ self.band_path = [v if isinstance(v, str) else str(v) for v in self.band_path]
+
+ if not isinstance(self.fermi_energy, list):
+ self.fermi_energy = [self.fermi_energy] if self.fermi_energy is not None else []
+ self.fermi_energy = [v if isinstance(v, float) else float(v) for v in self.fermi_energy]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ if not isinstance(self.energy_cutoff, list):
+ self.energy_cutoff = [self.energy_cutoff] if self.energy_cutoff is not None else []
+ self.energy_cutoff = [v if isinstance(v, float) else float(v) for v in self.energy_cutoff]
+
+ if not isinstance(self.convergence_criteria, list):
+ self.convergence_criteria = [self.convergence_criteria] if self.convergence_criteria is not None else []
+ self.convergence_criteria = [v if isinstance(v, str) else str(v) for v in self.convergence_criteria]
+
+ if not isinstance(self.k_point_mesh, list):
+ self.k_point_mesh = [self.k_point_mesh] if self.k_point_mesh is not None else []
+ self.k_point_mesh = [v if isinstance(v, str) else str(v) for v in self.k_point_mesh]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Ferroelectrics(CalculatedProperty):
+ """
+ Ferroelectric properties computed from DFT, including spontaneous
+ polarization, switching barrier, and coercive field. Relevant for
+ ferroelectric-photocatalyst design.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["Ferroelectrics"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:Ferroelectrics"
+ class_name: ClassVar[str] = "Ferroelectrics"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Ferroelectrics
+
+ value: str = None
+ polarization_direction: Optional[Union[str, list[str]]] = empty_list()
+ spontaneous_polarization: Optional[Union[float, list[float]]] = empty_list()
+ reference_structure: Optional[Union[str, list[str]]] = empty_list()
+ switching_barrier: Optional[Union[float, list[float]]] = empty_list()
+ coercive_field: Optional[Union[float, list[float]]] = empty_list()
+ temperature_dependence: Optional[Union[str, list[str]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.polarization_direction, list):
+ self.polarization_direction = [self.polarization_direction] if self.polarization_direction is not None else []
+ self.polarization_direction = [v if isinstance(v, str) else str(v) for v in self.polarization_direction]
+
+ if not isinstance(self.spontaneous_polarization, list):
+ self.spontaneous_polarization = [self.spontaneous_polarization] if self.spontaneous_polarization is not None else []
+ self.spontaneous_polarization = [v if isinstance(v, float) else float(v) for v in self.spontaneous_polarization]
+
+ if not isinstance(self.reference_structure, list):
+ self.reference_structure = [self.reference_structure] if self.reference_structure is not None else []
+ self.reference_structure = [v if isinstance(v, str) else str(v) for v in self.reference_structure]
+
+ if not isinstance(self.switching_barrier, list):
+ self.switching_barrier = [self.switching_barrier] if self.switching_barrier is not None else []
+ self.switching_barrier = [v if isinstance(v, float) else float(v) for v in self.switching_barrier]
+
+ if not isinstance(self.coercive_field, list):
+ self.coercive_field = [self.coercive_field] if self.coercive_field is not None else []
+ self.coercive_field = [v if isinstance(v, float) else float(v) for v in self.coercive_field]
+
+ if not isinstance(self.temperature_dependence, list):
+ self.temperature_dependence = [self.temperature_dependence] if self.temperature_dependence is not None else []
+ self.temperature_dependence = [v if isinstance(v, str) else str(v) for v in self.temperature_dependence]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class BandGap(CalculatedProperty):
+ """
+ Electronic band gap and its character (direct/indirect), with optional
+ many-body (GW) or excitonic corrections. Critical for photocatalyst
+ and semiconductor catalyst screening.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = COREMETA4CAT["BandGap"]
+ class_class_curie: ClassVar[str] = "coremeta4cat:BandGap"
+ class_name: ClassVar[str] = "BandGap"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.BandGap
+
+ value: str = None
+ material_sample: Optional[Union[str, list[str]]] = empty_list()
+ structure_model: Optional[Union[str, list[str]]] = empty_list()
+ smearing_broadening: Optional[Union[float, list[float]]] = empty_list()
+ direct_indirect: Optional[Union[str, list[str]]] = empty_list()
+ experimental_reference: Optional[Union[float, list[float]]] = empty_list()
+ gw_hybrid_correction: Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]] = empty_list()
+ excitonic_correction: Optional[Union[float, list[float]]] = empty_list()
+ material_composition: Optional[Union[str, list[str]]] = empty_list()
+ crystal_structure: Optional[Union[str, list[str]]] = empty_list()
+ energy_cutoff: Optional[Union[float, list[float]]] = empty_list()
+ convergence_criteria: Optional[Union[str, list[str]]] = empty_list()
+ k_point_mesh: Optional[Union[str, list[str]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.material_sample, list):
+ self.material_sample = [self.material_sample] if self.material_sample is not None else []
+ self.material_sample = [v if isinstance(v, str) else str(v) for v in self.material_sample]
+
+ if not isinstance(self.structure_model, list):
+ self.structure_model = [self.structure_model] if self.structure_model is not None else []
+ self.structure_model = [v if isinstance(v, str) else str(v) for v in self.structure_model]
+
+ if not isinstance(self.smearing_broadening, list):
+ self.smearing_broadening = [self.smearing_broadening] if self.smearing_broadening is not None else []
+ self.smearing_broadening = [v if isinstance(v, float) else float(v) for v in self.smearing_broadening]
+
+ if not isinstance(self.direct_indirect, list):
+ self.direct_indirect = [self.direct_indirect] if self.direct_indirect is not None else []
+ self.direct_indirect = [v if isinstance(v, str) else str(v) for v in self.direct_indirect]
+
+ if not isinstance(self.experimental_reference, list):
+ self.experimental_reference = [self.experimental_reference] if self.experimental_reference is not None else []
+ self.experimental_reference = [v if isinstance(v, float) else float(v) for v in self.experimental_reference]
+
+ if not isinstance(self.gw_hybrid_correction, list):
+ self.gw_hybrid_correction = [self.gw_hybrid_correction] if self.gw_hybrid_correction is not None else []
+ self.gw_hybrid_correction = [v if isinstance(v, Bool) else Bool(v) for v in self.gw_hybrid_correction]
+
+ if not isinstance(self.excitonic_correction, list):
+ self.excitonic_correction = [self.excitonic_correction] if self.excitonic_correction is not None else []
+ self.excitonic_correction = [v if isinstance(v, float) else float(v) for v in self.excitonic_correction]
+
+ if not isinstance(self.material_composition, list):
+ self.material_composition = [self.material_composition] if self.material_composition is not None else []
+ self.material_composition = [v if isinstance(v, str) else str(v) for v in self.material_composition]
+
+ if not isinstance(self.crystal_structure, list):
+ self.crystal_structure = [self.crystal_structure] if self.crystal_structure is not None else []
+ self.crystal_structure = [v if isinstance(v, str) else str(v) for v in self.crystal_structure]
+
+ if not isinstance(self.energy_cutoff, list):
+ self.energy_cutoff = [self.energy_cutoff] if self.energy_cutoff is not None else []
+ self.energy_cutoff = [v if isinstance(v, float) else float(v) for v in self.energy_cutoff]
+
+ if not isinstance(self.convergence_criteria, list):
+ self.convergence_criteria = [self.convergence_criteria] if self.convergence_criteria is not None else []
+ self.convergence_criteria = [v if isinstance(v, str) else str(v) for v in self.convergence_criteria]
+
+ if not isinstance(self.k_point_mesh, list):
+ self.k_point_mesh = [self.k_point_mesh] if self.k_point_mesh is not None else []
+ self.k_point_mesh = [v if isinstance(v, str) else str(v) for v in self.k_point_mesh]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class QuantitativeAttribute(YAMLRoot):
+ """
+ A quantifiable piece of information that is attributed to an Entity, Activity or AgenticEntity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "QuantitativeAttribute"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.QuantitativeAttribute
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+ unit: Optional[Union[str, DefinedTermId]] = None
+ type: Optional[Union[dict, DefinedTerm]] = None
+ rdf_type: Optional[Union[dict, DefinedTerm]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.value):
+ self.MissingRequiredField("value")
+ if not isinstance(self.value, float):
+ self.value = float(self.value)
+
+ if self._is_empty(self.has_quantity_type):
+ self.MissingRequiredField("has_quantity_type")
+ if not isinstance(self.has_quantity_type, DefinedTermId):
+ self.has_quantity_type = DefinedTermId(self.has_quantity_type)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if self.unit is not None and not isinstance(self.unit, DefinedTermId):
+ self.unit = DefinedTermId(self.unit)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Relationship(YAMLRoot):
+ """
+ See [DCAT-AP specs:Relationship](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Relationship)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Relationship"]
+ class_class_curie: ClassVar[str] = "dcat:Relationship"
+ class_name: ClassVar[str] = "Relationship"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Relationship
+
+ had_role: Union[Union[dict, "Role"], list[Union[dict, "Role"]]] = None
+ relation: Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.had_role):
+ self.MissingRequiredField("had_role")
+ if not isinstance(self.had_role, list):
+ self.had_role = [self.had_role] if self.had_role is not None else []
+ self.had_role = [v if isinstance(v, Role) else Role(**as_dict(v)) for v in self.had_role]
+
+ if self._is_empty(self.relation):
+ self.MissingRequiredField("relation")
+ self._normalize_inlined_as_list(slot_name="relation", slot_type=Resource, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Software(AgenticEntity):
+ """
+ An instrument composed of a series of instructions that can be interpreted by or directly executed by a computer.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["SoftwareAgent"]
+ class_class_curie: ClassVar[str] = "prov:SoftwareAgent"
+ class_name: ClassVar[str] = "Software"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Software
+
+ id: Union[str, SoftwareId] = None
+ has_part: Optional[Union[dict[Union[str, SoftwareId], Union[dict, "Software"]], list[Union[dict, "Software"]]]] = empty_dict()
+ other_identifier: Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, SoftwareId):
+ self.id = SoftwareId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=Software, key_name="id", keyed=True)
+
+ if not isinstance(self.other_identifier, list):
+ self.other_identifier = [self.other_identifier] if self.other_identifier is not None else []
+ self.other_identifier = [v if isinstance(v, Identifier) else Identifier(**as_dict(v)) for v in self.other_identifier]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SupportiveEntity(YAMLRoot):
+ """
+ The supportive entities are supporting the main entities in the Application Profile. They are included in the
+ Application Profile because they form the range of properties.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCATAPPLUS["SupportiveEntity"]
+ class_class_curie: ClassVar[str] = "dcatapplus:SupportiveEntity"
+ class_name: ClassVar[str] = "SupportiveEntity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SupportiveEntity
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Attribution(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Attribution](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Attribution)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Attribution"]
+ class_class_curie: ClassVar[str] = "prov:Attribution"
+ class_name: ClassVar[str] = "Attribution"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Attribution
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ChecksumAlgorithm(SupportiveEntity):
+ """
+ See [DCAT-AP specs:ChecksumAlgorithm](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#ChecksumAlgorithm)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SPDX["ChecksumAlgorithm"]
+ class_class_curie: ClassVar[str] = "spdx:ChecksumAlgorithm"
+ class_name: ClassVar[str] = "ChecksumAlgorithm"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ChecksumAlgorithm
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Concept(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Concept](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Concept)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SKOS["Concept"]
+ class_class_curie: ClassVar[str] = "skos:Concept"
+ class_name: ClassVar[str] = "Concept"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Concept
+
+ preferred_label: Union[str, list[str]] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.preferred_label):
+ self.MissingRequiredField("preferred_label")
+ if not isinstance(self.preferred_label, list):
+ self.preferred_label = [self.preferred_label] if self.preferred_label is not None else []
+ self.preferred_label = [v if isinstance(v, str) else str(v) for v in self.preferred_label]
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ConceptScheme(SupportiveEntity):
+ """
+ See [DCAT-AP specs:ConceptScheme](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#ConceptScheme)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SKOS["ConceptScheme"]
+ class_class_curie: ClassVar[str] = "skos:ConceptScheme"
+ class_name: ClassVar[str] = "ConceptScheme"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ConceptScheme
+
+ title: Union[str, list[str]] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.title):
+ self.MissingRequiredField("title")
+ if not isinstance(self.title, list):
+ self.title = [self.title] if self.title is not None else []
+ self.title = [v if isinstance(v, str) else str(v) for v in self.title]
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Document(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Document](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Document)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = FOAF["Document"]
+ class_class_curie: ClassVar[str] = "foaf:Document"
+ class_name: ClassVar[str] = "Document"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Document
+
+ id: Union[str, DocumentId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DocumentId):
+ self.id = DocumentId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Frequency(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Frequency](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Frequency)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["Frequency"]
+ class_class_curie: ClassVar[str] = "dcterms:Frequency"
+ class_name: ClassVar[str] = "Frequency"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Frequency
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Geometry(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Geometry](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Geometry)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = LOCN["Geometry"]
+ class_class_curie: ClassVar[str] = "locn:Geometry"
+ class_name: ClassVar[str] = "Geometry"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Geometry
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Identifier(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Identifier](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Identifier)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = ADMS["Identifier"]
+ class_class_curie: ClassVar[str] = "adms:Identifier"
+ class_name: ClassVar[str] = "Identifier"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Identifier
+
+ notation: str = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.notation):
+ self.MissingRequiredField("notation")
+ if not isinstance(self.notation, str):
+ self.notation = str(self.notation)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class LegalResource(SupportiveEntity):
+ """
+ See [DCAT-AP specs:LegalResource](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#LegalResource)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = ELI["LegalResource"]
+ class_class_curie: ClassVar[str] = "eli:LegalResource"
+ class_name: ClassVar[str] = "LegalResource"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.LegalResource
+
+ id: Union[str, LegalResourceId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, LegalResourceId):
+ self.id = LegalResourceId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class LicenseDocument(SupportiveEntity):
+ """
+ See [DCAT-AP specs:LicenseDocument](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#LicenseDocument)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["LicenseDocument"]
+ class_class_curie: ClassVar[str] = "dcterms:LicenseDocument"
+ class_name: ClassVar[str] = "LicenseDocument"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.LicenseDocument
+
+ id: Union[str, LicenseDocumentId] = None
+ type: Optional[Union[Union[dict, Concept], list[Union[dict, Concept]]]] = empty_list()
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, LicenseDocumentId):
+ self.id = LicenseDocumentId(self.id)
+
+ if not isinstance(self.type, list):
+ self.type = [self.type] if self.type is not None else []
+ self.type = [v if isinstance(v, Concept) else Concept(**as_dict(v)) for v in self.type]
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class LinguisticSystem(SupportiveEntity):
+ """
+ See [DCAT-AP specs:LinguisticSystem](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#LinguisticSystem)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["LinguisticSystem"]
+ class_class_curie: ClassVar[str] = "dcterms:LinguisticSystem"
+ class_name: ClassVar[str] = "LinguisticSystem"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.LinguisticSystem
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MediaType(SupportiveEntity):
+ """
+ See [DCAT-AP specs:MediaType](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#MediaType)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["MediaType"]
+ class_class_curie: ClassVar[str] = "dcterms:MediaType"
+ class_name: ClassVar[str] = "MediaType"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MediaType
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MediaTypeOrExtent(SupportiveEntity):
+ """
+ See [DCAT-AP specs:MediaTypeOrExtent](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#MediaTypeOrExtent)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["MediaTypeOrExtent"]
+ class_class_curie: ClassVar[str] = "dcterms:MediaTypeOrExtent"
+ class_name: ClassVar[str] = "MediaTypeOrExtent"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MediaTypeOrExtent
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PeriodOfTime(SupportiveEntity):
+ """
+ See [DCAT-AP specs:PeriodOfTime](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#PeriodOfTime)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["PeriodOfTime"]
+ class_class_curie: ClassVar[str] = "dcterms:PeriodOfTime"
+ class_name: ClassVar[str] = "PeriodOfTime"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PeriodOfTime
+
+ beginning: Optional[Union[dict, "TimeInstant"]] = None
+ end: Optional[Union[dict, "TimeInstant"]] = None
+ end_date: Optional[Union[str, XSDDate]] = None
+ start_date: Optional[Union[str, XSDDate]] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.beginning is not None and not isinstance(self.beginning, TimeInstant):
+ self.beginning = TimeInstant(**as_dict(self.beginning))
+
+ if self.end is not None and not isinstance(self.end, TimeInstant):
+ self.end = TimeInstant(**as_dict(self.end))
+
+ if self.end_date is not None and not isinstance(self.end_date, XSDDate):
+ self.end_date = XSDDate(self.end_date)
+
+ if self.start_date is not None and not isinstance(self.start_date, XSDDate):
+ self.start_date = XSDDate(self.start_date)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Policy(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Policy](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Policy)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = ODRL["Policy"]
+ class_class_curie: ClassVar[str] = "odrl:Policy"
+ class_name: ClassVar[str] = "Policy"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Policy
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ProvenanceStatement(SupportiveEntity):
+ """
+ See [DCAT-AP specs:ProvenanceStatement](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#ProvenanceStatement)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["ProvenanceStatement"]
+ class_class_curie: ClassVar[str] = "dcterms:ProvenanceStatement"
+ class_name: ClassVar[str] = "ProvenanceStatement"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ProvenanceStatement
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Resource(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Resource](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Resource)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = RDFS["Resource"]
+ class_class_curie: ClassVar[str] = "rdfs:Resource"
+ class_name: ClassVar[str] = "Resource"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Resource
+
+ id: Union[str, ResourceId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ResourceId):
+ self.id = ResourceId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class RightsStatement(SupportiveEntity):
+ """
+ See [DCAT-AP specs:RightsStatement](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#RightsStatement)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["RightsStatement"]
+ class_class_curie: ClassVar[str] = "dcterms:RightsStatement"
+ class_name: ClassVar[str] = "RightsStatement"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.RightsStatement
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Role(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Role](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Role)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCAT["Role"]
+ class_class_curie: ClassVar[str] = "dcat:Role"
+ class_name: ClassVar[str] = "Role"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Role
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Standard(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Standard](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Standard)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = DCTERMS["Standard"]
+ class_class_curie: ClassVar[str] = "dcterms:Standard"
+ class_name: ClassVar[str] = "Standard"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Standard
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Surrounding(YAMLRoot):
+ """
+ The surrounding in which the dataset creating activity took place (e.g. a lab).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROV["Location"]
+ class_class_curie: ClassVar[str] = "prov:Location"
+ class_name: ClassVar[str] = "Surrounding"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Surrounding
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+ type: Optional[Union[dict, DefinedTerm]] = None
+ rdf_type: Optional[Union[dict, DefinedTerm]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if self.type is not None and not isinstance(self.type, DefinedTerm):
+ self.type = DefinedTerm(**as_dict(self.type))
+
+ if self.rdf_type is not None and not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+class Laboratory(Surrounding):
+ """
+ A facility that provides controlled conditions in which scientific or technological research, experiments, and
+ measurement may be performed.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = ENVO["01001405"]
+ class_class_curie: ClassVar[str] = "ENVO:01001405"
+ class_name: ClassVar[str] = "Laboratory"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Laboratory
+
+
+@dataclass(repr=False)
+class TimeInstant(SupportiveEntity):
+ """
+ See [DCAT-AP specs:TimeInstant](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#TimeInstant)
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = TIME["Instant"]
+ class_class_curie: ClassVar[str] = "time:Instant"
+ class_name: ClassVar[str] = "TimeInstant"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.TimeInstant
+
+ title: Optional[str] = None
+ description: Optional[str] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class InChIKey(QualitativeAttribute):
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEMINF["000059"]
+ class_class_curie: ClassVar[str] = "CHEMINF:000059"
+ class_name: ClassVar[str] = "InChIKey"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.InChIKey
+
+ value: str = None
+
+@dataclass(repr=False)
+class InChi(QualitativeAttribute):
+ """
+ A structure descriptor which conforms to the InChI format specification.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEMINF["000113"]
+ class_class_curie: ClassVar[str] = "CHEMINF:000113"
+ class_name: ClassVar[str] = "InChi"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.InChi
+
+ value: str = None
+
+@dataclass(repr=False)
+class MolecularFormula(QualitativeAttribute):
+ """
+ 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.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEMINF["000042"]
+ class_class_curie: ClassVar[str] = "CHEMINF:000042"
+ class_name: ClassVar[str] = "MolecularFormula"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MolecularFormula
+
+ value: str = None
+
+@dataclass(repr=False)
+class IUPACName(QualitativeAttribute):
+ """
+ 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).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEMINF["000107"]
+ class_class_curie: ClassVar[str] = "CHEMINF:000107"
+ class_name: ClassVar[str] = "IUPACName"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.IUPACName
+
+ value: str = None
+
+@dataclass(repr=False)
+class SMILES(QualitativeAttribute):
+ """
+ A structure descriptor that denotes a molecular structure as a graph and conforms to the SMILES format
+ specification.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEMINF["000018"]
+ class_class_curie: ClassVar[str] = "CHEMINF:000018"
+ class_name: ClassVar[str] = "SMILES"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SMILES
+
+ value: str = None
+
+@dataclass(repr=False)
+class Concentration(QuantitativeAttribute):
+ """
+ A QuantitativeAttribute of a ChemicalSubstance that represents the amount of a constituent divided by the volume
+ of the mixture.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHMO["0002820"]
+ class_class_curie: ClassVar[str] = "CHMO:0002820"
+ class_name: ClassVar[str] = "Concentration"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Concentration
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class AmountOfSubstance(QuantitativeAttribute):
+ """
+ The total amount of substance used in a ChemicalReaction.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "AmountOfSubstance"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.AmountOfSubstance
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class PHValue(QuantitativeAttribute):
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["001089"]
+ class_class_curie: ClassVar[str] = "SIO:001089"
+ class_name: ClassVar[str] = "PHValue"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PHValue
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class ChemicalReaction(Activity):
+ """
+ A process that leads to the transformation of one set of chemical substances to another.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["010345"]
+ class_class_curie: ClassVar[str] = "SIO:010345"
+ class_name: ClassVar[str] = "ChemicalReaction"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ChemicalReaction
+
+ id: Union[str, ChemicalReactionId] = None
+ used_starting_material: Optional[Union[dict[Union[str, StartingMaterialId], Union[dict, "StartingMaterial"]], list[Union[dict, "StartingMaterial"]]]] = empty_dict()
+ used_reactant: Optional[Union[dict[Union[str, ReagentId], Union[dict, "Reagent"]], list[Union[dict, "Reagent"]]]] = empty_dict()
+ generated_product: Optional[Union[dict[Union[str, ChemicalProductId], Union[dict, "ChemicalProduct"]], list[Union[dict, "ChemicalProduct"]]]] = empty_dict()
+ used_catalyst: Optional[Union[dict[Union[str, CatalystId], Union[dict, "Catalyst"]], list[Union[dict, "Catalyst"]]]] = empty_dict()
+ used_solvent: Optional[Union[dict[Union[str, DissolvingSubstanceId], Union[dict, "DissolvingSubstance"]], list[Union[dict, "DissolvingSubstance"]]]] = empty_dict()
+ has_duration: Optional[str] = None
+ used_reactor: Optional[Union[dict[Union[str, ReactorId], Union[dict, "Reactor"]], list[Union[dict, "Reactor"]]]] = empty_dict()
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+ has_yield: Optional[Union[Union[dict, "Yield"], list[Union[dict, "Yield"]]]] = empty_list()
+ has_reaction_step: Optional[Union[str, ChemicalReactionId]] = None
+ related_resource: Optional[Union[dict[Union[str, ResourceId], Union[dict, Resource]], list[Union[dict, Resource]]]] = empty_dict()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ChemicalReactionId):
+ self.id = ChemicalReactionId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="used_starting_material", slot_type=StartingMaterial, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="used_reactant", slot_type=Reagent, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="generated_product", slot_type=ChemicalProduct, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="used_catalyst", slot_type=Catalyst, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="used_solvent", slot_type=DissolvingSubstance, key_name="id", keyed=True)
+
+ if self.has_duration is not None and not isinstance(self.has_duration, str):
+ self.has_duration = str(self.has_duration)
+
+ self._normalize_inlined_as_list(slot_name="used_reactor", slot_type=Reactor, key_name="id", keyed=True)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ if not isinstance(self.has_yield, list):
+ self.has_yield = [self.has_yield] if self.has_yield is not None else []
+ self.has_yield = [v if isinstance(v, Yield) else Yield(**as_dict(v)) for v in self.has_yield]
+
+ if self.has_reaction_step is not None and not isinstance(self.has_reaction_step, ChemicalReactionId):
+ self.has_reaction_step = ChemicalReactionId(self.has_reaction_step)
+
+ self._normalize_inlined_as_list(slot_name="related_resource", slot_type=Resource, key_name="id", keyed=True)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class DissolvingSubstance(AgenticEntity):
+ """
+ A liquid ChemicalSubstance that dissolves or that is capable of dissolving a ChemicalSubstance.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["010417"]
+ class_class_curie: ClassVar[str] = "SIO:010417"
+ class_name: ClassVar[str] = "DissolvingSubstance"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.DissolvingSubstance
+
+ id: Union[str, DissolvingSubstanceId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+ has_qualitative_attribute: Optional[Union[Union[dict, QualitativeAttribute], list[Union[dict, QualitativeAttribute]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, QuantitativeAttribute], list[Union[dict, QuantitativeAttribute]]]] = empty_list()
+ has_percentage_of_total: Optional[Union[Union[dict, "PercentageOfTotal"], list[Union[dict, "PercentageOfTotal"]]]] = empty_list()
+ alternative_label: Optional[str] = None
+ has_physical_state: Optional[Union[str, "PhysicalStateEnum"]] = None
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_mass: Optional[Union[Union[dict, "Mass"], list[Union[dict, "Mass"]]]] = empty_list()
+ has_volume: Optional[Union[Union[dict, "Volume"], list[Union[dict, "Volume"]]]] = empty_list()
+ has_density: Optional[Union[Union[dict, "Density"], list[Union[dict, "Density"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+ has_concentration: Optional[Union[Union[dict, Concentration], list[Union[dict, Concentration]]]] = empty_list()
+ has_ph_value: Optional[Union[Union[dict, PHValue], list[Union[dict, PHValue]]]] = empty_list()
+ composed_of: Optional[Union[dict[Union[str, ChemicalEntityId], Union[dict, "ChemicalEntity"]], list[Union[dict, "ChemicalEntity"]]]] = empty_dict()
+ has_molar_equivalent: Optional[Union[Union[dict, "MolarEquivalent"], list[Union[dict, "MolarEquivalent"]]]] = empty_list()
+ has_amount: Optional[Union[Union[dict, AmountOfSubstance], list[Union[dict, AmountOfSubstance]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, DissolvingSubstanceId):
+ self.id = DissolvingSubstanceId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ if not isinstance(self.has_percentage_of_total, list):
+ self.has_percentage_of_total = [self.has_percentage_of_total] if self.has_percentage_of_total is not None else []
+ self.has_percentage_of_total = [v if isinstance(v, PercentageOfTotal) else PercentageOfTotal(**as_dict(v)) for v in self.has_percentage_of_total]
+
+ if self.alternative_label is not None and not isinstance(self.alternative_label, str):
+ self.alternative_label = str(self.alternative_label)
+
+ if self.has_physical_state is not None and not isinstance(self.has_physical_state, PhysicalStateEnum):
+ self.has_physical_state = PhysicalStateEnum(self.has_physical_state)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_mass, list):
+ self.has_mass = [self.has_mass] if self.has_mass is not None else []
+ self.has_mass = [v if isinstance(v, Mass) else Mass(**as_dict(v)) for v in self.has_mass]
+
+ if not isinstance(self.has_volume, list):
+ self.has_volume = [self.has_volume] if self.has_volume is not None else []
+ self.has_volume = [v if isinstance(v, Volume) else Volume(**as_dict(v)) for v in self.has_volume]
+
+ if not isinstance(self.has_density, list):
+ self.has_density = [self.has_density] if self.has_density is not None else []
+ self.has_density = [v if isinstance(v, Density) else Density(**as_dict(v)) for v in self.has_density]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ if not isinstance(self.has_concentration, list):
+ self.has_concentration = [self.has_concentration] if self.has_concentration is not None else []
+ self.has_concentration = [v if isinstance(v, Concentration) else Concentration(**as_dict(v)) for v in self.has_concentration]
+
+ if not isinstance(self.has_ph_value, list):
+ self.has_ph_value = [self.has_ph_value] if self.has_ph_value is not None else []
+ self.has_ph_value = [v if isinstance(v, PHValue) else PHValue(**as_dict(v)) for v in self.has_ph_value]
+
+ self._normalize_inlined_as_list(slot_name="composed_of", slot_type=ChemicalEntity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ if not isinstance(self.has_amount, list):
+ self.has_amount = [self.has_amount] if self.has_amount is not None else []
+ self.has_amount = [v if isinstance(v, AmountOfSubstance) else AmountOfSubstance(**as_dict(v)) for v in self.has_amount]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Catalyst(AgenticEntity):
+ """
+ A ChemicalSubstance or MaterialEntity that initiates or accelerates a ChemicalReaction without itself being
+ affected.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["010344"]
+ class_class_curie: ClassVar[str] = "SIO:010344"
+ class_name: ClassVar[str] = "Catalyst"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Catalyst
+
+ id: Union[str, CatalystId] = None
+ title: Optional[str] = None
+ description: Optional[str] = None
+ has_qualitative_attribute: Optional[Union[Union[dict, QualitativeAttribute], list[Union[dict, QualitativeAttribute]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, QuantitativeAttribute], list[Union[dict, QuantitativeAttribute]]]] = empty_list()
+ has_molar_equivalent: Optional[Union[Union[dict, "MolarEquivalent"], list[Union[dict, "MolarEquivalent"]]]] = empty_list()
+ alternative_label: Optional[str] = None
+ has_physical_state: Optional[Union[str, "PhysicalStateEnum"]] = None
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_mass: Optional[Union[Union[dict, "Mass"], list[Union[dict, "Mass"]]]] = empty_list()
+ has_volume: Optional[Union[Union[dict, "Volume"], list[Union[dict, "Volume"]]]] = empty_list()
+ has_density: Optional[Union[Union[dict, "Density"], list[Union[dict, "Density"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+ has_concentration: Optional[Union[Union[dict, Concentration], list[Union[dict, Concentration]]]] = empty_list()
+ has_ph_value: Optional[Union[Union[dict, PHValue], list[Union[dict, PHValue]]]] = empty_list()
+ composed_of: Optional[Union[dict[Union[str, ChemicalEntityId], Union[dict, "ChemicalEntity"]], list[Union[dict, "ChemicalEntity"]]]] = empty_dict()
+ has_amount: Optional[Union[Union[dict, AmountOfSubstance], list[Union[dict, AmountOfSubstance]]]] = empty_list()
+ has_percentage_of_total: Optional[Union[Union[dict, "PercentageOfTotal"], list[Union[dict, "PercentageOfTotal"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, CatalystId):
+ self.id = CatalystId(self.id)
+
+ if self.title is not None and not isinstance(self.title, str):
+ self.title = str(self.title)
+
+ if self.description is not None and not isinstance(self.description, str):
+ self.description = str(self.description)
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ if self.alternative_label is not None and not isinstance(self.alternative_label, str):
+ self.alternative_label = str(self.alternative_label)
+
+ if self.has_physical_state is not None and not isinstance(self.has_physical_state, PhysicalStateEnum):
+ self.has_physical_state = PhysicalStateEnum(self.has_physical_state)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_mass, list):
+ self.has_mass = [self.has_mass] if self.has_mass is not None else []
+ self.has_mass = [v if isinstance(v, Mass) else Mass(**as_dict(v)) for v in self.has_mass]
+
+ if not isinstance(self.has_volume, list):
+ self.has_volume = [self.has_volume] if self.has_volume is not None else []
+ self.has_volume = [v if isinstance(v, Volume) else Volume(**as_dict(v)) for v in self.has_volume]
+
+ if not isinstance(self.has_density, list):
+ self.has_density = [self.has_density] if self.has_density is not None else []
+ self.has_density = [v if isinstance(v, Density) else Density(**as_dict(v)) for v in self.has_density]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ if not isinstance(self.has_concentration, list):
+ self.has_concentration = [self.has_concentration] if self.has_concentration is not None else []
+ self.has_concentration = [v if isinstance(v, Concentration) else Concentration(**as_dict(v)) for v in self.has_concentration]
+
+ if not isinstance(self.has_ph_value, list):
+ self.has_ph_value = [self.has_ph_value] if self.has_ph_value is not None else []
+ self.has_ph_value = [v if isinstance(v, PHValue) else PHValue(**as_dict(v)) for v in self.has_ph_value]
+
+ self._normalize_inlined_as_list(slot_name="composed_of", slot_type=ChemicalEntity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_amount, list):
+ self.has_amount = [self.has_amount] if self.has_amount is not None else []
+ self.has_amount = [v if isinstance(v, AmountOfSubstance) else AmountOfSubstance(**as_dict(v)) for v in self.has_amount]
+
+ if not isinstance(self.has_percentage_of_total, list):
+ self.has_percentage_of_total = [self.has_percentage_of_total] if self.has_percentage_of_total is not None else []
+ self.has_percentage_of_total = [v if isinstance(v, PercentageOfTotal) else PercentageOfTotal(**as_dict(v)) for v in self.has_percentage_of_total]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Reactor(Device):
+ """
+ A reactor is a container for controlling a biological or chemical reaction or process.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = AFE["0000153"]
+ class_class_curie: ClassVar[str] = "AFE:0000153"
+ class_name: ClassVar[str] = "Reactor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Reactor
+
+ id: Union[str, ReactorId] = None
+ alternative_label: Optional[str] = None
+ has_physical_state: Optional[Union[str, "PhysicalStateEnum"]] = None
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_mass: Optional[Union[Union[dict, "Mass"], list[Union[dict, "Mass"]]]] = empty_list()
+ has_volume: Optional[Union[Union[dict, "Volume"], list[Union[dict, "Volume"]]]] = empty_list()
+ has_density: Optional[Union[Union[dict, "Density"], list[Union[dict, "Density"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ReactorId):
+ self.id = ReactorId(self.id)
+
+ if self.alternative_label is not None and not isinstance(self.alternative_label, str):
+ self.alternative_label = str(self.alternative_label)
+
+ if self.has_physical_state is not None and not isinstance(self.has_physical_state, PhysicalStateEnum):
+ self.has_physical_state = PhysicalStateEnum(self.has_physical_state)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_mass, list):
+ self.has_mass = [self.has_mass] if self.has_mass is not None else []
+ self.has_mass = [v if isinstance(v, Mass) else Mass(**as_dict(v)) for v in self.has_mass]
+
+ if not isinstance(self.has_volume, list):
+ self.has_volume = [self.has_volume] if self.has_volume is not None else []
+ self.has_volume = [v if isinstance(v, Volume) else Volume(**as_dict(v)) for v in self.has_volume]
+
+ if not isinstance(self.has_density, list):
+ self.has_density = [self.has_density] if self.has_density is not None else []
+ self.has_density = [v if isinstance(v, Density) else Density(**as_dict(v)) for v in self.has_density]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Yield(QuantitativeAttribute):
+ """
+ A dimensionless physical quantity describing the fraction of a product B that is formed from a reactant A taking
+ into account the stoichiometry. If A fully reacts to B without side-reactions, the yield of product B is 1 (or 100
+ %).
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "Yield"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Yield
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class MolarEquivalent(QuantitativeAttribute):
+ """
+ A dimensionless ratio that quantifies the stoichiometric proportion of a chemical substance relative to a
+ reference substance in a chemical reaction.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "MolarEquivalent"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MolarEquivalent
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class PercentageOfTotal(QuantitativeAttribute):
+ """
+ A dimensionless ratio that quantifies the stoichiometric proportion of a chemical substance relative to a
+ reference substance in a chemical reaction.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "PercentageOfTotal"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PercentageOfTotal
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class Materialistic(YAMLRoot):
+ """
+ A LinkML mixin used to pass down properties common to all material entities. It is needed for example to have
+ MaterialSample have the same properties as MaterialEntity, although it is defined as a subclass of
+ EvaluatedEntity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = MATERIAL_ENTITIES_AP["Materialistic"]
+ class_class_curie: ClassVar[str] = "material_entities_ap:Materialistic"
+ class_name: ClassVar[str] = "Materialistic"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Materialistic
+
+ alternative_label: Optional[str] = None
+ has_physical_state: Optional[Union[str, "PhysicalStateEnum"]] = None
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_mass: Optional[Union[Union[dict, "Mass"], list[Union[dict, "Mass"]]]] = empty_list()
+ has_volume: Optional[Union[Union[dict, "Volume"], list[Union[dict, "Volume"]]]] = empty_list()
+ has_density: Optional[Union[Union[dict, "Density"], list[Union[dict, "Density"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self.alternative_label is not None and not isinstance(self.alternative_label, str):
+ self.alternative_label = str(self.alternative_label)
+
+ if self.has_physical_state is not None and not isinstance(self.has_physical_state, PhysicalStateEnum):
+ self.has_physical_state = PhysicalStateEnum(self.has_physical_state)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_mass, list):
+ self.has_mass = [self.has_mass] if self.has_mass is not None else []
+ self.has_mass = [v if isinstance(v, Mass) else Mass(**as_dict(v)) for v in self.has_mass]
+
+ if not isinstance(self.has_volume, list):
+ self.has_volume = [self.has_volume] if self.has_volume is not None else []
+ self.has_volume = [v if isinstance(v, Volume) else Volume(**as_dict(v)) for v in self.has_volume]
+
+ if not isinstance(self.has_density, list):
+ self.has_density = [self.has_density] if self.has_density is not None else []
+ self.has_density = [v if isinstance(v, Density) else Density(**as_dict(v)) for v in self.has_density]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MaterialEntity(Entity):
+ """
+ A material is an Entity that has some portion of matter as proper part.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = BFO["0000040"]
+ class_class_curie: ClassVar[str] = "BFO:0000040"
+ class_name: ClassVar[str] = "MaterialEntity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MaterialEntity
+
+ id: Union[str, MaterialEntityId] = None
+ has_part: Optional[Union[dict[Union[str, MaterialEntityId], Union[dict, "MaterialEntity"]], list[Union[dict, "MaterialEntity"]]]] = empty_dict()
+ alternative_label: Optional[str] = None
+ has_physical_state: Optional[Union[str, "PhysicalStateEnum"]] = None
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_mass: Optional[Union[Union[dict, "Mass"], list[Union[dict, "Mass"]]]] = empty_list()
+ has_volume: Optional[Union[Union[dict, "Volume"], list[Union[dict, "Volume"]]]] = empty_list()
+ has_density: Optional[Union[Union[dict, "Density"], list[Union[dict, "Density"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, MaterialEntityId):
+ self.id = MaterialEntityId(self.id)
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=MaterialEntity, key_name="id", keyed=True)
+
+ if self.alternative_label is not None and not isinstance(self.alternative_label, str):
+ self.alternative_label = str(self.alternative_label)
+
+ if self.has_physical_state is not None and not isinstance(self.has_physical_state, PhysicalStateEnum):
+ self.has_physical_state = PhysicalStateEnum(self.has_physical_state)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_mass, list):
+ self.has_mass = [self.has_mass] if self.has_mass is not None else []
+ self.has_mass = [v if isinstance(v, Mass) else Mass(**as_dict(v)) for v in self.has_mass]
+
+ if not isinstance(self.has_volume, list):
+ self.has_volume = [self.has_volume] if self.has_volume is not None else []
+ self.has_volume = [v if isinstance(v, Volume) else Volume(**as_dict(v)) for v in self.has_volume]
+
+ if not isinstance(self.has_density, list):
+ self.has_density = [self.has_density] if self.has_density is not None else []
+ self.has_density = [v if isinstance(v, Density) else Density(**as_dict(v)) for v in self.has_density]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ChemicalEntity(MaterialEntity):
+ """
+ Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, radical ion, complex,
+ conformer etc., identifiable as a separately distinguishable entity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEBI["23367"]
+ class_class_curie: ClassVar[str] = "CHEBI:23367"
+ class_name: ClassVar[str] = "ChemicalEntity"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ChemicalEntity
+
+ id: Union[str, ChemicalEntityId] = None
+ inchi: Optional[Union[Union[dict, InChi], list[Union[dict, InChi]]]] = empty_list()
+ inchikey: Optional[Union[Union[dict, InChIKey], list[Union[dict, InChIKey]]]] = empty_list()
+ smiles: Optional[Union[Union[dict, SMILES], list[Union[dict, SMILES]]]] = empty_list()
+ molecular_formula: Optional[Union[Union[dict, MolecularFormula], list[Union[dict, MolecularFormula]]]] = empty_list()
+ iupac_name: Optional[Union[Union[dict, IUPACName], list[Union[dict, IUPACName]]]] = empty_list()
+ has_molar_mass: Optional[Union[Union[dict, "MolarMass"], list[Union[dict, "MolarMass"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ChemicalEntityId):
+ self.id = ChemicalEntityId(self.id)
+
+ if not isinstance(self.inchi, list):
+ self.inchi = [self.inchi] if self.inchi is not None else []
+ self.inchi = [v if isinstance(v, InChi) else InChi(**as_dict(v)) for v in self.inchi]
+
+ if not isinstance(self.inchikey, list):
+ self.inchikey = [self.inchikey] if self.inchikey is not None else []
+ self.inchikey = [v if isinstance(v, InChIKey) else InChIKey(**as_dict(v)) for v in self.inchikey]
+
+ if not isinstance(self.smiles, list):
+ self.smiles = [self.smiles] if self.smiles is not None else []
+ self.smiles = [v if isinstance(v, SMILES) else SMILES(**as_dict(v)) for v in self.smiles]
+
+ if not isinstance(self.molecular_formula, list):
+ self.molecular_formula = [self.molecular_formula] if self.molecular_formula is not None else []
+ self.molecular_formula = [v if isinstance(v, MolecularFormula) else MolecularFormula(**as_dict(v)) for v in self.molecular_formula]
+
+ if not isinstance(self.iupac_name, list):
+ self.iupac_name = [self.iupac_name] if self.iupac_name is not None else []
+ self.iupac_name = [v if isinstance(v, IUPACName) else IUPACName(**as_dict(v)) for v in self.iupac_name]
+
+ if not isinstance(self.has_molar_mass, list):
+ self.has_molar_mass = [self.has_molar_mass] if self.has_molar_mass is not None else []
+ self.has_molar_mass = [v if isinstance(v, MolarMass) else MolarMass(**as_dict(v)) for v in self.has_molar_mass]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Atom(ChemicalEntity):
+ """
+ A MaterialEntity constituting the smallest component of an element having the chemical properties of the element.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEBI["33250"]
+ class_class_curie: ClassVar[str] = "CHEBI:33250"
+ class_name: ClassVar[str] = "Atom"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Atom
+
+ id: Union[str, AtomId] = None
+ rdf_type: Union[dict, DefinedTerm] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, AtomId):
+ self.id = AtomId(self.id)
+
+ if self._is_empty(self.rdf_type):
+ self.MissingRequiredField("rdf_type")
+ if not isinstance(self.rdf_type, DefinedTerm):
+ self.rdf_type = DefinedTerm(**as_dict(self.rdf_type))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ChemicalSubstance(MaterialEntity):
+ """
+ A MaterialEntity of constant composition, composed of chemical entities of the same type or of different types.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEBI["59999"]
+ class_class_curie: ClassVar[str] = "CHEBI:59999"
+ class_name: ClassVar[str] = "ChemicalSubstance"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ChemicalSubstance
+
+ id: Union[str, ChemicalSubstanceId] = None
+ has_concentration: Optional[Union[Union[dict, Concentration], list[Union[dict, Concentration]]]] = empty_list()
+ has_ph_value: Optional[Union[Union[dict, PHValue], list[Union[dict, PHValue]]]] = empty_list()
+ composed_of: Optional[Union[dict[Union[str, ChemicalEntityId], Union[dict, ChemicalEntity]], list[Union[dict, ChemicalEntity]]]] = empty_dict()
+ has_molar_equivalent: Optional[Union[Union[dict, MolarEquivalent], list[Union[dict, MolarEquivalent]]]] = empty_list()
+ has_amount: Optional[Union[Union[dict, AmountOfSubstance], list[Union[dict, AmountOfSubstance]]]] = empty_list()
+ has_percentage_of_total: Optional[Union[Union[dict, PercentageOfTotal], list[Union[dict, PercentageOfTotal]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if not isinstance(self.has_concentration, list):
+ self.has_concentration = [self.has_concentration] if self.has_concentration is not None else []
+ self.has_concentration = [v if isinstance(v, Concentration) else Concentration(**as_dict(v)) for v in self.has_concentration]
+
+ if not isinstance(self.has_ph_value, list):
+ self.has_ph_value = [self.has_ph_value] if self.has_ph_value is not None else []
+ self.has_ph_value = [v if isinstance(v, PHValue) else PHValue(**as_dict(v)) for v in self.has_ph_value]
+
+ self._normalize_inlined_as_list(slot_name="composed_of", slot_type=ChemicalEntity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ if not isinstance(self.has_amount, list):
+ self.has_amount = [self.has_amount] if self.has_amount is not None else []
+ self.has_amount = [v if isinstance(v, AmountOfSubstance) else AmountOfSubstance(**as_dict(v)) for v in self.has_amount]
+
+ if not isinstance(self.has_percentage_of_total, list):
+ self.has_percentage_of_total = [self.has_percentage_of_total] if self.has_percentage_of_total is not None else []
+ self.has_percentage_of_total = [v if isinstance(v, PercentageOfTotal) else PercentageOfTotal(**as_dict(v)) for v in self.has_percentage_of_total]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Polymer(ChemicalSubstance):
+ """
+ A ChemicalSubstance that is composed of macromolecules of different kinds and which may be differentiated by
+ composition, length, degree of branching etc..
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEBI["60027"]
+ class_class_curie: ClassVar[str] = "CHEBI:60027"
+ class_name: ClassVar[str] = "Polymer"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Polymer
+
+ id: Union[str, PolymerId] = None
+
+@dataclass(repr=False)
+class StartingMaterial(ChemicalSubstance):
+ """
+ A ChemicalSubstance with that has a starting material role in a synthesis.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = PROCO["0000029"]
+ class_class_curie: ClassVar[str] = "PROCO:0000029"
+ class_name: ClassVar[str] = "StartingMaterial"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.StartingMaterial
+
+ id: Union[str, StartingMaterialId] = None
+ has_molar_equivalent: Optional[Union[Union[dict, MolarEquivalent], list[Union[dict, MolarEquivalent]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, StartingMaterialId):
+ self.id = StartingMaterialId(self.id)
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Reagent(ChemicalSubstance):
+ """
+ A ChemicalSubstance that is consumed or transformed in a ChemicalReaction.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["010411"]
+ class_class_curie: ClassVar[str] = "SIO:010411"
+ class_name: ClassVar[str] = "Reagent"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Reagent
+
+ id: Union[str, ReagentId] = None
+ has_molar_equivalent: Optional[Union[Union[dict, MolarEquivalent], list[Union[dict, MolarEquivalent]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ReagentId):
+ self.id = ReagentId(self.id)
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class ChemicalProduct(ChemicalSubstance):
+ """
+ A chemical substance that is produced by a ChemicalReaction.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = NCIT["C48810"]
+ class_class_curie: ClassVar[str] = "NCIT:C48810"
+ class_name: ClassVar[str] = "ChemicalProduct"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.ChemicalProduct
+
+ id: Union[str, ChemicalProductId] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, ChemicalProductId):
+ self.id = ChemicalProductId(self.id)
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class MaterialSample(EvaluatedEntity):
+ """
+ A Sample that was derived from a previous MaterialSample or some other kind of MaterialEntity.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000747"]
+ class_class_curie: ClassVar[str] = "OBI:0000747"
+ class_name: ClassVar[str] = "MaterialSample"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MaterialSample
+
+ id: Union[str, MaterialSampleId] = None
+ derived_from: Optional[Union[dict, Entity]] = None
+ alternative_label: Optional[str] = None
+ has_physical_state: Optional[Union[str, "PhysicalStateEnum"]] = None
+ has_temperature: Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]] = empty_list()
+ has_mass: Optional[Union[Union[dict, "Mass"], list[Union[dict, "Mass"]]]] = empty_list()
+ has_volume: Optional[Union[Union[dict, "Volume"], list[Union[dict, "Volume"]]]] = empty_list()
+ has_density: Optional[Union[Union[dict, "Density"], list[Union[dict, "Density"]]]] = empty_list()
+ has_pressure: Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, MaterialSampleId):
+ self.id = MaterialSampleId(self.id)
+
+ if self.derived_from is not None and not isinstance(self.derived_from, Entity):
+ self.derived_from = Entity(**as_dict(self.derived_from))
+
+ if self.alternative_label is not None and not isinstance(self.alternative_label, str):
+ self.alternative_label = str(self.alternative_label)
+
+ if self.has_physical_state is not None and not isinstance(self.has_physical_state, PhysicalStateEnum):
+ self.has_physical_state = PhysicalStateEnum(self.has_physical_state)
+
+ if not isinstance(self.has_temperature, list):
+ self.has_temperature = [self.has_temperature] if self.has_temperature is not None else []
+ self.has_temperature = [v if isinstance(v, Temperature) else Temperature(**as_dict(v)) for v in self.has_temperature]
+
+ if not isinstance(self.has_mass, list):
+ self.has_mass = [self.has_mass] if self.has_mass is not None else []
+ self.has_mass = [v if isinstance(v, Mass) else Mass(**as_dict(v)) for v in self.has_mass]
+
+ if not isinstance(self.has_volume, list):
+ self.has_volume = [self.has_volume] if self.has_volume is not None else []
+ self.has_volume = [v if isinstance(v, Volume) else Volume(**as_dict(v)) for v in self.has_volume]
+
+ if not isinstance(self.has_density, list):
+ self.has_density = [self.has_density] if self.has_density is not None else []
+ self.has_density = [v if isinstance(v, Density) else Density(**as_dict(v)) for v in self.has_density]
+
+ if not isinstance(self.has_pressure, list):
+ self.has_pressure = [self.has_pressure] if self.has_pressure is not None else []
+ self.has_pressure = [v if isinstance(v, Pressure) else Pressure(**as_dict(v)) for v in self.has_pressure]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Precursor(MaterialSample):
+ """
+ A MaterialSample that serves as input material in a catalyst Synthesis.
+ Precursors are consumed or transformed during the preparation process.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = CHEBI["52717"]
+ class_class_curie: ClassVar[str] = "CHEBI:52717"
+ class_name: ClassVar[str] = "Precursor"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Precursor
+
+ id: Union[str, PrecursorId] = None
+ precursor_quantity: Union[float, list[float]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, PrecursorId):
+ self.id = PrecursorId(self.id)
+
+ if self._is_empty(self.precursor_quantity):
+ self.MissingRequiredField("precursor_quantity")
+ if not isinstance(self.precursor_quantity, list):
+ self.precursor_quantity = [self.precursor_quantity] if self.precursor_quantity is not None else []
+ self.precursor_quantity = [v if isinstance(v, float) else float(v) for v in self.precursor_quantity]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class CatalystSample(MaterialSample):
+ """
+ A MaterialSample that is the product of a catalyst Synthesis.
+ The specific type of catalyst (e.g. heterogeneous, supported metal)
+ is expressed via rdf_type using a voc4cat term.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = OBI["0000747"]
+ class_class_curie: ClassVar[str] = "OBI:0000747"
+ class_name: ClassVar[str] = "CatalystSample"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.CatalystSample
+
+ id: Union[str, CatalystSampleId] = None
+ derived_from: Optional[Union[dict, MaterialSample]] = None
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, CatalystSampleId):
+ self.id = CatalystSampleId(self.id)
+
+ if self.derived_from is not None and not isinstance(self.derived_from, MaterialSample):
+ self.derived_from = MaterialSample(**as_dict(self.derived_from))
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class SubstanceSample(MaterialSample):
+ """
+ A MaterialSample derived from a ChemicalSubstance that is of interest in an analytical procedure.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["001378"]
+ class_class_curie: ClassVar[str] = "SIO:001378"
+ class_name: ClassVar[str] = "SubstanceSample"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.SubstanceSample
+
+ id: Union[str, SubstanceSampleId] = None
+ has_qualitative_attribute: Optional[Union[Union[dict, QualitativeAttribute], list[Union[dict, QualitativeAttribute]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, QuantitativeAttribute], list[Union[dict, QuantitativeAttribute]]]] = empty_list()
+ has_part: Optional[Union[dict[Union[str, EntityId], Union[dict, Entity]], list[Union[dict, Entity]]]] = empty_dict()
+ part_of: Optional[Union[dict[Union[str, EntityId], Union[dict, Entity]], list[Union[dict, Entity]]]] = empty_dict()
+ has_concentration: Optional[Union[Union[dict, Concentration], list[Union[dict, Concentration]]]] = empty_list()
+ has_ph_value: Optional[Union[Union[dict, PHValue], list[Union[dict, PHValue]]]] = empty_list()
+ composed_of: Optional[Union[dict[Union[str, ChemicalEntityId], Union[dict, ChemicalEntity]], list[Union[dict, ChemicalEntity]]]] = empty_dict()
+ has_molar_equivalent: Optional[Union[Union[dict, MolarEquivalent], list[Union[dict, MolarEquivalent]]]] = empty_list()
+ has_amount: Optional[Union[Union[dict, AmountOfSubstance], list[Union[dict, AmountOfSubstance]]]] = empty_list()
+ has_percentage_of_total: Optional[Union[Union[dict, PercentageOfTotal], list[Union[dict, PercentageOfTotal]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, SubstanceSampleId):
+ self.id = SubstanceSampleId(self.id)
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=Entity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="part_of", slot_type=Entity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_concentration, list):
+ self.has_concentration = [self.has_concentration] if self.has_concentration is not None else []
+ self.has_concentration = [v if isinstance(v, Concentration) else Concentration(**as_dict(v)) for v in self.has_concentration]
+
+ if not isinstance(self.has_ph_value, list):
+ self.has_ph_value = [self.has_ph_value] if self.has_ph_value is not None else []
+ self.has_ph_value = [v if isinstance(v, PHValue) else PHValue(**as_dict(v)) for v in self.has_ph_value]
+
+ self._normalize_inlined_as_list(slot_name="composed_of", slot_type=ChemicalEntity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ if not isinstance(self.has_amount, list):
+ self.has_amount = [self.has_amount] if self.has_amount is not None else []
+ self.has_amount = [v if isinstance(v, AmountOfSubstance) else AmountOfSubstance(**as_dict(v)) for v in self.has_amount]
+
+ if not isinstance(self.has_percentage_of_total, list):
+ self.has_percentage_of_total = [self.has_percentage_of_total] if self.has_percentage_of_total is not None else []
+ self.has_percentage_of_total = [v if isinstance(v, PercentageOfTotal) else PercentageOfTotal(**as_dict(v)) for v in self.has_percentage_of_total]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class PolymerSample(SubstanceSample):
+ """
+ A SubstanceSample derived from a Polymer.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["001378"]
+ class_class_curie: ClassVar[str] = "SIO:001378"
+ class_name: ClassVar[str] = "PolymerSample"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.PolymerSample
+
+ id: Union[str, PolymerSampleId] = None
+ has_qualitative_attribute: Optional[Union[Union[dict, QualitativeAttribute], list[Union[dict, QualitativeAttribute]]]] = empty_list()
+ has_quantitative_attribute: Optional[Union[Union[dict, QuantitativeAttribute], list[Union[dict, QuantitativeAttribute]]]] = empty_list()
+ has_part: Optional[Union[dict[Union[str, EntityId], Union[dict, Entity]], list[Union[dict, Entity]]]] = empty_dict()
+ part_of: Optional[Union[dict[Union[str, EntityId], Union[dict, Entity]], list[Union[dict, Entity]]]] = empty_dict()
+ has_concentration: Optional[Union[Union[dict, Concentration], list[Union[dict, Concentration]]]] = empty_list()
+ has_ph_value: Optional[Union[Union[dict, PHValue], list[Union[dict, PHValue]]]] = empty_list()
+ composed_of: Optional[Union[dict[Union[str, ChemicalEntityId], Union[dict, ChemicalEntity]], list[Union[dict, ChemicalEntity]]]] = empty_dict()
+ has_molar_equivalent: Optional[Union[Union[dict, MolarEquivalent], list[Union[dict, MolarEquivalent]]]] = empty_list()
+ has_amount: Optional[Union[Union[dict, AmountOfSubstance], list[Union[dict, AmountOfSubstance]]]] = empty_list()
+ has_percentage_of_total: Optional[Union[Union[dict, PercentageOfTotal], list[Union[dict, PercentageOfTotal]]]] = empty_list()
+
+ def __post_init__(self, *_: str, **kwargs: Any):
+ if self._is_empty(self.id):
+ self.MissingRequiredField("id")
+ if not isinstance(self.id, PolymerSampleId):
+ self.id = PolymerSampleId(self.id)
+
+ if not isinstance(self.has_qualitative_attribute, list):
+ self.has_qualitative_attribute = [self.has_qualitative_attribute] if self.has_qualitative_attribute is not None else []
+ self.has_qualitative_attribute = [v if isinstance(v, QualitativeAttribute) else QualitativeAttribute(**as_dict(v)) for v in self.has_qualitative_attribute]
+
+ if not isinstance(self.has_quantitative_attribute, list):
+ self.has_quantitative_attribute = [self.has_quantitative_attribute] if self.has_quantitative_attribute is not None else []
+ self.has_quantitative_attribute = [v if isinstance(v, QuantitativeAttribute) else QuantitativeAttribute(**as_dict(v)) for v in self.has_quantitative_attribute]
+
+ self._normalize_inlined_as_list(slot_name="has_part", slot_type=Entity, key_name="id", keyed=True)
+
+ self._normalize_inlined_as_list(slot_name="part_of", slot_type=Entity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_concentration, list):
+ self.has_concentration = [self.has_concentration] if self.has_concentration is not None else []
+ self.has_concentration = [v if isinstance(v, Concentration) else Concentration(**as_dict(v)) for v in self.has_concentration]
+
+ if not isinstance(self.has_ph_value, list):
+ self.has_ph_value = [self.has_ph_value] if self.has_ph_value is not None else []
+ self.has_ph_value = [v if isinstance(v, PHValue) else PHValue(**as_dict(v)) for v in self.has_ph_value]
+
+ self._normalize_inlined_as_list(slot_name="composed_of", slot_type=ChemicalEntity, key_name="id", keyed=True)
+
+ if not isinstance(self.has_molar_equivalent, list):
+ self.has_molar_equivalent = [self.has_molar_equivalent] if self.has_molar_equivalent is not None else []
+ self.has_molar_equivalent = [v if isinstance(v, MolarEquivalent) else MolarEquivalent(**as_dict(v)) for v in self.has_molar_equivalent]
+
+ if not isinstance(self.has_amount, list):
+ self.has_amount = [self.has_amount] if self.has_amount is not None else []
+ self.has_amount = [v if isinstance(v, AmountOfSubstance) else AmountOfSubstance(**as_dict(v)) for v in self.has_amount]
+
+ if not isinstance(self.has_percentage_of_total, list):
+ self.has_percentage_of_total = [self.has_percentage_of_total] if self.has_percentage_of_total is not None else []
+ self.has_percentage_of_total = [v if isinstance(v, PercentageOfTotal) else PercentageOfTotal(**as_dict(v)) for v in self.has_percentage_of_total]
+
+ super().__post_init__(**kwargs)
+
+
+@dataclass(repr=False)
+class Temperature(QuantitativeAttribute):
+ """
+ A physical quantity that quantitatively expresses the attribute of hotness or coldness.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "Temperature"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Temperature
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class Mass(QuantitativeAttribute):
+ """
+ The strength of a body's gravitational attraction to other bodies.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "Mass"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Mass
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class MolarMass(Mass):
+ """
+ A Mass (physical quality) that quantifies the mass of a homogeneous ChemicalSubstance containing 6.02 x 10^23
+ atoms or molecules.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = AFR["0002409"]
+ class_class_curie: ClassVar[str] = "AFR:0002409"
+ class_name: ClassVar[str] = "MolarMass"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.MolarMass
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class Volume(QuantitativeAttribute):
+ """
+ A measure of regions in three-dimensional space.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "Volume"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Volume
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class Density(QuantitativeAttribute):
+ """
+ A measure of the mass per unit volume of a substance.
+ """
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = SIO["001406"]
+ class_class_curie: ClassVar[str] = "SIO:001406"
+ class_name: ClassVar[str] = "Density"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Density
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+@dataclass(repr=False)
+class Pressure(QuantitativeAttribute):
+ _inherited_slots: ClassVar[list[str]] = []
+
+ class_class_uri: ClassVar[URIRef] = QUDT["Quantity"]
+ class_class_curie: ClassVar[str] = "qudt:Quantity"
+ class_name: ClassVar[str] = "Pressure"
+ class_model_uri: ClassVar[URIRef] = COREMETA4CAT.Pressure
+
+ value: float = None
+ has_quantity_type: Union[str, DefinedTermId] = None
+
+# Enumerations
+class CatalysisResearchFieldEnum(EnumDefinitionImpl):
+ """
+ Enumeration of catalysis research fields.
+ Intended for use via rdf_type on a dcat:Dataset (via ClassifierMixin)
+ to classify which field of catalysis the dataset belongs to,
+ following DCAT-AP-PLUS Pattern 3 (Flexible classification).
+ """
+ heterogeneous_catalysis = PermissibleValue(
+ text="heterogeneous_catalysis",
+ description="Heterogeneous catalysis — catalyst and reactants are in different phases.",
+ meaning=VOC4CAT["0007001"])
+ homogeneous_catalysis = PermissibleValue(
+ text="homogeneous_catalysis",
+ description="Homogeneous catalysis — catalyst and reactants are in the same phase.",
+ meaning=VOC4CAT["0000294"])
+ biocatalysis = PermissibleValue(
+ text="biocatalysis",
+ description="Biocatalysis — use of enzymes or whole cells as catalysts.",
+ meaning=VOC4CAT["0000204"])
+ electrocatalysis = PermissibleValue(
+ text="electrocatalysis",
+ description="Electrocatalysis — catalysis of electrochemical reactions.",
+ meaning=VOC4CAT["0000216"])
+ hybrid_catalysis = PermissibleValue(
+ text="hybrid_catalysis",
+ description="Hybrid catalysis — combination of two or more catalytic approaches.")
+ other = PermissibleValue(
+ text="other",
+ description="Other catalysis research field not covered by the above terms.")
+
+ _defn = EnumDefinition(
+ name="CatalysisResearchFieldEnum",
+ description="""Enumeration of catalysis research fields.
+Intended for use via rdf_type on a dcat:Dataset (via ClassifierMixin)
+to classify which field of catalysis the dataset belongs to,
+following DCAT-AP-PLUS Pattern 3 (Flexible classification).""",
+ )
+
+class ImpregnationTypeEnum(EnumDefinitionImpl):
+ """
+ Enumeration of impregnation types used in catalyst synthesis.
+ """
+ wet_impregnation = PermissibleValue(
+ text="wet_impregnation",
+ description="Wet impregnation — excess solution is used to impregnate the support.")
+ dry_impregnation = PermissibleValue(
+ text="dry_impregnation",
+ description="Dry impregnation — solution volume equals the pore volume of the support.")
+ incipient_wetness = PermissibleValue(
+ text="incipient_wetness",
+ description="Incipient wetness impregnation — synonym for dry impregnation.")
+ other = PermissibleValue(
+ text="other",
+ description="Other impregnation type.")
+
+ _defn = EnumDefinition(
+ name="ImpregnationTypeEnum",
+ description="Enumeration of impregnation types used in catalyst synthesis.",
+ )
+
+class SampleStateEnum(EnumDefinitionImpl):
+ """
+ Enumeration of physical states in which a catalyst sample may be present.
+ """
+ solid = PermissibleValue(
+ text="solid",
+ description="Solid state.")
+ liquid = PermissibleValue(
+ text="liquid",
+ description="Liquid state.")
+ gas = PermissibleValue(
+ text="gas",
+ description="Gas state.")
+ solution = PermissibleValue(
+ text="solution",
+ description="Dissolved in solvent.")
+ powder = PermissibleValue(
+ text="powder",
+ description="Powder form.")
+ pellet = PermissibleValue(
+ text="pellet",
+ description="Pellet form (pressed powder).")
+ thin_film = PermissibleValue(
+ text="thin_film",
+ description="Thin film deposited on a substrate.")
+ other = PermissibleValue(
+ text="other",
+ description="Other sample state.")
+
+ _defn = EnumDefinition(
+ name="SampleStateEnum",
+ description="Enumeration of physical states in which a catalyst sample may be present.",
+ )
+
+class DatasetThemes(EnumDefinitionImpl):
+
+ AGRI = PermissibleValue(
+ text="AGRI",
+ description="Agriculture, fisheries, forestry and food",
+ meaning=None)
+ ECON = PermissibleValue(
+ text="ECON",
+ description="Economy and finance",
+ meaning=None)
+ EDUC = PermissibleValue(
+ text="EDUC",
+ description="Education, culture and sport",
+ meaning=None)
+ ENER = PermissibleValue(
+ text="ENER",
+ description="Energy",
+ meaning=None)
+ ENVI = PermissibleValue(
+ text="ENVI",
+ description="Environment",
+ meaning=None)
+ GOVE = PermissibleValue(
+ text="GOVE",
+ description="Government and public sector",
+ meaning=None)
+ HEAL = PermissibleValue(
+ text="HEAL",
+ description="Health",
+ meaning=None)
+ INTR = PermissibleValue(
+ text="INTR",
+ description="International issues",
+ meaning=None)
+ JUST = PermissibleValue(
+ text="JUST",
+ description="Justice, legal system and public safety",
+ meaning=None)
+ OP_DATPRO = PermissibleValue(
+ text="OP_DATPRO",
+ description="Provisional data",
+ meaning=None)
+ REGI = PermissibleValue(
+ text="REGI",
+ description="Regions and cities",
+ meaning=None)
+ SOCI = PermissibleValue(
+ text="SOCI",
+ description="Population and society",
+ meaning=None)
+ TECH = PermissibleValue(
+ text="TECH",
+ description="Science and technology",
+ meaning=None)
+ TRAN = PermissibleValue(
+ text="TRAN",
+ description="Transport",
+ meaning=None)
+
+ _defn = EnumDefinition(
+ name="DatasetThemes",
+ )
+
+class TopLevelMediaTypes(EnumDefinitionImpl):
+
+ application = PermissibleValue(text="application")
+ audio = PermissibleValue(text="audio")
+ example = PermissibleValue(text="example")
+ font = PermissibleValue(text="font")
+ haptics = PermissibleValue(text="haptics")
+ image = PermissibleValue(text="image")
+ message = PermissibleValue(text="message")
+ model = PermissibleValue(text="model")
+ multipart = PermissibleValue(text="multipart")
+ text = PermissibleValue(text="text")
+ video = PermissibleValue(text="video")
+
+ _defn = EnumDefinition(
+ name="TopLevelMediaTypes",
+ )
+
+class QUDTQuantityKindEnum(EnumDefinitionImpl):
+ """
+ Possible kinds of quantifiable attribute types provided as QUDT QualityKind instances.
+ """
+ _defn = EnumDefinition(
+ name="QUDTQuantityKindEnum",
+ description="Possible kinds of quantifiable attribute types provided as QUDT QualityKind instances.",
+ )
+
+class QUDTUnitEnum(EnumDefinitionImpl):
+ """
+ Possible kinds of QUDT unit instances.
+ """
+ _defn = EnumDefinition(
+ name="QUDTUnitEnum",
+ description="Possible kinds of QUDT unit instances.",
+ )
+
+class PhysicalStateEnum(EnumDefinitionImpl):
+
+ SOLID = PermissibleValue(
+ text="SOLID",
+ description="A state of matter in which molecules are closely packed and cannot move past each other.",
+ meaning=PATO["0001736"])
+ CRYSTAL = PermissibleValue(
+ text="CRYSTAL",
+ description="""A solid state of matter whose constituents (such as atoms, molecules, or ions) are arranged in a highly ordered microscopic structure, forming a crystal lattice that extends in all directions.""",
+ meaning=PATO["0002066"])
+ LIQUID = PermissibleValue(
+ text="LIQUID",
+ description="""A state of matter with a definite volume but no fixed shape. Liquids adapt to the shape of their container and are nearly incompressible, maintaining their volume even under pressure.""",
+ meaning=PATO["0001735"])
+ GASEOUS = PermissibleValue(
+ text="GASEOUS",
+ description="A state of matter with neither fixed volume nor fixed shape.",
+ meaning=PATO["0001737"])
+
+ _defn = EnumDefinition(
+ name="PhysicalStateEnum",
+ )
+
+# Slots
+class slots:
+ pass
+
+slots.atmosphere = Slot(uri=COREMETA4CAT.atmosphere, name="atmosphere", curie=COREMETA4CAT.curie('atmosphere'),
+ model_uri=COREMETA4CAT.atmosphere, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.temperature = Slot(uri=AFR['0001584'], name="temperature", curie=AFR.curie('0001584'),
+ model_uri=COREMETA4CAT.temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.equipment = Slot(uri=VOC4CAT['0000187'], name="equipment", curie=VOC4CAT.curie('0000187'),
+ model_uri=COREMETA4CAT.equipment, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.flow_rate = Slot(uri=COREMETA4CAT.flow_rate, name="flow_rate", curie=COREMETA4CAT.curie('flow_rate'),
+ model_uri=COREMETA4CAT.flow_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.heating_rate = Slot(uri=COREMETA4CAT.heating_rate, name="heating_rate", curie=COREMETA4CAT.curie('heating_rate'),
+ model_uri=COREMETA4CAT.heating_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.heating_procedure = Slot(uri=COREMETA4CAT.heating_procedure, name="heating_procedure", curie=COREMETA4CAT.curie('heating_procedure'),
+ model_uri=COREMETA4CAT.heating_procedure, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.number_of_cycles = Slot(uri=COREMETA4CAT.number_of_cycles, name="number_of_cycles", curie=COREMETA4CAT.curie('number_of_cycles'),
+ model_uri=COREMETA4CAT.number_of_cycles, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.sample_mass = Slot(uri=COREMETA4CAT.sample_mass, name="sample_mass", curie=COREMETA4CAT.curie('sample_mass'),
+ model_uri=COREMETA4CAT.sample_mass, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.sample_pretreatment = Slot(uri=VOC4CAT['0000122'], name="sample_pretreatment", curie=VOC4CAT.curie('0000122'),
+ model_uri=COREMETA4CAT.sample_pretreatment, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.stirring_speed = Slot(uri=COREMETA4CAT.stirring_speed, name="stirring_speed", curie=COREMETA4CAT.curie('stirring_speed'),
+ model_uri=COREMETA4CAT.stirring_speed, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.stirring_duration = Slot(uri=COREMETA4CAT.stirring_duration, name="stirring_duration", curie=COREMETA4CAT.curie('stirring_duration'),
+ model_uri=COREMETA4CAT.stirring_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.vessel_type = Slot(uri=COREMETA4CAT.vessel_type, name="vessel_type", curie=COREMETA4CAT.curie('vessel_type'),
+ model_uri=COREMETA4CAT.vessel_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.carrier_gas = Slot(uri=COREMETA4CAT.carrier_gas, name="carrier_gas", curie=COREMETA4CAT.curie('carrier_gas'),
+ model_uri=COREMETA4CAT.carrier_gas, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.dispersant = Slot(uri=COREMETA4CAT.dispersant, name="dispersant", curie=COREMETA4CAT.curie('dispersant'),
+ model_uri=COREMETA4CAT.dispersant, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.drying_device = Slot(uri=COREMETA4CAT.drying_device, name="drying_device", curie=COREMETA4CAT.curie('drying_device'),
+ model_uri=COREMETA4CAT.drying_device, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.drying_temperature = Slot(uri=COREMETA4CAT.drying_temperature, name="drying_temperature", curie=COREMETA4CAT.curie('drying_temperature'),
+ model_uri=COREMETA4CAT.drying_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.drying_time = Slot(uri=COREMETA4CAT.drying_time, name="drying_time", curie=COREMETA4CAT.curie('drying_time'),
+ model_uri=COREMETA4CAT.drying_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.drying_atmosphere = Slot(uri=COREMETA4CAT.drying_atmosphere, name="drying_atmosphere", curie=COREMETA4CAT.curie('drying_atmosphere'),
+ model_uri=COREMETA4CAT.drying_atmosphere, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.calcination_initial_temperature = Slot(uri=VOC4CAT['0000057'], name="calcination_initial_temperature", curie=VOC4CAT.curie('0000057'),
+ model_uri=COREMETA4CAT.calcination_initial_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.calcination_final_temperature = Slot(uri=VOC4CAT['0000058'], name="calcination_final_temperature", curie=VOC4CAT.curie('0000058'),
+ model_uri=COREMETA4CAT.calcination_final_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.calcination_dwelling_time = Slot(uri=VOC4CAT['0000060'], name="calcination_dwelling_time", curie=VOC4CAT.curie('0000060'),
+ model_uri=COREMETA4CAT.calcination_dwelling_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.calcination_gaseous_environment = Slot(uri=VOC4CAT['0000055'], name="calcination_gaseous_environment", curie=VOC4CAT.curie('0000055'),
+ model_uri=COREMETA4CAT.calcination_gaseous_environment, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.calcination_heating_rate = Slot(uri=VOC4CAT['0000059'], name="calcination_heating_rate", curie=VOC4CAT.curie('0000059'),
+ model_uri=COREMETA4CAT.calcination_heating_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.calcination_gas_flow_rate = Slot(uri=VOC4CAT['0000056'], name="calcination_gas_flow_rate", curie=VOC4CAT.curie('0000056'),
+ model_uri=COREMETA4CAT.calcination_gas_flow_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.step_size = Slot(uri=AFR['0000950'], name="step_size", curie=AFR.curie('0000950'),
+ model_uri=COREMETA4CAT.step_size, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.resolution = Slot(uri=COREMETA4CAT.resolution, name="resolution", curie=COREMETA4CAT.curie('resolution'),
+ model_uri=COREMETA4CAT.resolution, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.integration_time = Slot(uri=COREMETA4CAT.integration_time, name="integration_time", curie=COREMETA4CAT.curie('integration_time'),
+ model_uri=COREMETA4CAT.integration_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.number_of_scans = Slot(uri=COREMETA4CAT.number_of_scans, name="number_of_scans", curie=COREMETA4CAT.curie('number_of_scans'),
+ model_uri=COREMETA4CAT.number_of_scans, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.operation_mode = Slot(uri=VOC4CAT['0000108'], name="operation_mode", curie=VOC4CAT.curie('0000108'),
+ model_uri=COREMETA4CAT.operation_mode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.concentration = Slot(uri=COREMETA4CAT.concentration, name="concentration", curie=COREMETA4CAT.curie('concentration'),
+ model_uri=COREMETA4CAT.concentration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.solvent = Slot(uri=VOC4CAT['0007246'], name="solvent", curie=VOC4CAT.curie('0007246'),
+ model_uri=COREMETA4CAT.solvent, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.injection_volume = Slot(uri=COREMETA4CAT.injection_volume, name="injection_volume", curie=COREMETA4CAT.curie('injection_volume'),
+ model_uri=COREMETA4CAT.injection_volume, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.external_standard = Slot(uri=COREMETA4CAT.external_standard, name="external_standard", curie=COREMETA4CAT.curie('external_standard'),
+ model_uri=COREMETA4CAT.external_standard, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.internal_standard = Slot(uri=COREMETA4CAT.internal_standard, name="internal_standard", curie=COREMETA4CAT.curie('internal_standard'),
+ model_uri=COREMETA4CAT.internal_standard, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.calibration_method = Slot(uri=COREMETA4CAT.calibration_method, name="calibration_method", curie=COREMETA4CAT.curie('calibration_method'),
+ model_uri=COREMETA4CAT.calibration_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.column_type = Slot(uri=COREMETA4CAT.column_type, name="column_type", curie=COREMETA4CAT.curie('column_type'),
+ model_uri=COREMETA4CAT.column_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.experiment_duration = Slot(uri=AFR['0002455'], name="experiment_duration", curie=AFR.curie('0002455'),
+ model_uri=COREMETA4CAT.experiment_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.filtration_device = Slot(uri=COREMETA4CAT.filtration_device, name="filtration_device", curie=COREMETA4CAT.curie('filtration_device'),
+ model_uri=COREMETA4CAT.filtration_device, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.filter_type = Slot(uri=COREMETA4CAT.filter_type, name="filter_type", curie=COREMETA4CAT.curie('filter_type'),
+ model_uri=COREMETA4CAT.filter_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.nominal_composition = Slot(uri=COREMETA4CAT.nominal_composition, name="nominal_composition", curie=COREMETA4CAT.curie('nominal_composition'),
+ model_uri=COREMETA4CAT.nominal_composition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.catalyst_measured_properties = Slot(uri=COREMETA4CAT.catalyst_measured_properties, name="catalyst_measured_properties", curie=COREMETA4CAT.curie('catalyst_measured_properties'),
+ model_uri=COREMETA4CAT.catalyst_measured_properties, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.storage_conditions = Slot(uri=COREMETA4CAT.storage_conditions, name="storage_conditions", curie=COREMETA4CAT.curie('storage_conditions'),
+ model_uri=COREMETA4CAT.storage_conditions, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.support = Slot(uri=COREMETA4CAT.support, name="support", curie=COREMETA4CAT.curie('support'),
+ model_uri=COREMETA4CAT.support, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.precursor_quantity = Slot(uri=COREMETA4CAT.precursor_quantity, name="precursor_quantity", curie=COREMETA4CAT.curie('precursor_quantity'),
+ model_uri=COREMETA4CAT.precursor_quantity, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.impregnation_type = Slot(uri=COREMETA4CAT.impregnation_type, name="impregnation_type", curie=COREMETA4CAT.curie('impregnation_type'),
+ model_uri=COREMETA4CAT.impregnation_type, domain=None, range=Optional[Union[Union[str, "ImpregnationTypeEnum"], list[Union[str, "ImpregnationTypeEnum"]]]])
+
+slots.impregnation_duration = Slot(uri=COREMETA4CAT.impregnation_duration, name="impregnation_duration", curie=COREMETA4CAT.curie('impregnation_duration'),
+ model_uri=COREMETA4CAT.impregnation_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.impregnation_temperature = Slot(uri=COREMETA4CAT.impregnation_temperature, name="impregnation_temperature", curie=COREMETA4CAT.curie('impregnation_temperature'),
+ model_uri=COREMETA4CAT.impregnation_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.precipitating_agent = Slot(uri=COREMETA4CAT.precipitating_agent, name="precipitating_agent", curie=COREMETA4CAT.curie('precipitating_agent'),
+ model_uri=COREMETA4CAT.precipitating_agent, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.precipitating_concentration = Slot(uri=COREMETA4CAT.precipitating_concentration, name="precipitating_concentration", curie=COREMETA4CAT.curie('precipitating_concentration'),
+ model_uri=COREMETA4CAT.precipitating_concentration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.synthesis_ph = Slot(uri=VOC4CAT['0000052'], name="synthesis_ph", curie=VOC4CAT.curie('0000052'),
+ model_uri=COREMETA4CAT.synthesis_ph, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.mixing_rate = Slot(uri=COREMETA4CAT.mixing_rate, name="mixing_rate", curie=COREMETA4CAT.curie('mixing_rate'),
+ model_uri=COREMETA4CAT.mixing_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.mixing_time = Slot(uri=COREMETA4CAT.mixing_time, name="mixing_time", curie=COREMETA4CAT.curie('mixing_time'),
+ model_uri=COREMETA4CAT.mixing_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.mixing_temperature = Slot(uri=COREMETA4CAT.mixing_temperature, name="mixing_temperature", curie=COREMETA4CAT.curie('mixing_temperature'),
+ model_uri=COREMETA4CAT.mixing_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.order_of_addition = Slot(uri=COREMETA4CAT.order_of_addition, name="order_of_addition", curie=COREMETA4CAT.curie('order_of_addition'),
+ model_uri=COREMETA4CAT.order_of_addition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.filtration = Slot(uri=COREMETA4CAT.filtration, name="filtration", curie=COREMETA4CAT.curie('filtration'),
+ model_uri=COREMETA4CAT.filtration, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.purification = Slot(uri=COREMETA4CAT.purification, name="purification", curie=COREMETA4CAT.curie('purification'),
+ model_uri=COREMETA4CAT.purification, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.aging_temperature = Slot(uri=COREMETA4CAT.aging_temperature, name="aging_temperature", curie=COREMETA4CAT.curie('aging_temperature'),
+ model_uri=COREMETA4CAT.aging_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.aging_time = Slot(uri=COREMETA4CAT.aging_time, name="aging_time", curie=COREMETA4CAT.curie('aging_time'),
+ model_uri=COREMETA4CAT.aging_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.deposition_temperature = Slot(uri=COREMETA4CAT.deposition_temperature, name="deposition_temperature", curie=COREMETA4CAT.curie('deposition_temperature'),
+ model_uri=COREMETA4CAT.deposition_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.deposition_time = Slot(uri=COREMETA4CAT.deposition_time, name="deposition_time", curie=COREMETA4CAT.curie('deposition_time'),
+ model_uri=COREMETA4CAT.deposition_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.synthesis_temperature = Slot(uri=VOC4CAT['0000051'], name="synthesis_temperature", curie=VOC4CAT.curie('0000051'),
+ model_uri=COREMETA4CAT.synthesis_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.synthesis_duration = Slot(uri=VOC4CAT['0000050'], name="synthesis_duration", curie=VOC4CAT.curie('0000050'),
+ model_uri=COREMETA4CAT.synthesis_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.synthesis_pressure = Slot(uri=VOC4CAT['0000053'], name="synthesis_pressure", curie=VOC4CAT.curie('0000053'),
+ model_uri=COREMETA4CAT.synthesis_pressure, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.hydrolysis_ratio = Slot(uri=COREMETA4CAT.hydrolysis_ratio, name="hydrolysis_ratio", curie=COREMETA4CAT.curie('hydrolysis_ratio'),
+ model_uri=COREMETA4CAT.hydrolysis_ratio, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.drying = Slot(uri=COREMETA4CAT.drying, name="drying", curie=COREMETA4CAT.curie('drying'),
+ model_uri=COREMETA4CAT.drying, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.surfactant_template = Slot(uri=COREMETA4CAT.surfactant_template, name="surfactant_template", curie=COREMETA4CAT.curie('surfactant_template'),
+ model_uri=COREMETA4CAT.surfactant_template, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.filling_volume = Slot(uri=COREMETA4CAT.filling_volume, name="filling_volume", curie=COREMETA4CAT.curie('filling_volume'),
+ model_uri=COREMETA4CAT.filling_volume, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.stirrer_type = Slot(uri=COREMETA4CAT.stirrer_type, name="stirrer_type", curie=COREMETA4CAT.curie('stirrer_type'),
+ model_uri=COREMETA4CAT.stirrer_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.cooling_rate = Slot(uri=COREMETA4CAT.cooling_rate, name="cooling_rate", curie=COREMETA4CAT.curie('cooling_rate'),
+ model_uri=COREMETA4CAT.cooling_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.plasma_type = Slot(uri=COREMETA4CAT.plasma_type, name="plasma_type", curie=COREMETA4CAT.curie('plasma_type'),
+ model_uri=COREMETA4CAT.plasma_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.power_input = Slot(uri=COREMETA4CAT.power_input, name="power_input", curie=COREMETA4CAT.curie('power_input'),
+ model_uri=COREMETA4CAT.power_input, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.exposure_time = Slot(uri=COREMETA4CAT.exposure_time, name="exposure_time", curie=COREMETA4CAT.curie('exposure_time'),
+ model_uri=COREMETA4CAT.exposure_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.fuel = Slot(uri=COREMETA4CAT.fuel, name="fuel", curie=COREMETA4CAT.curie('fuel'),
+ model_uri=COREMETA4CAT.fuel, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.oxidizer = Slot(uri=COREMETA4CAT.oxidizer, name="oxidizer", curie=COREMETA4CAT.curie('oxidizer'),
+ model_uri=COREMETA4CAT.oxidizer, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.fuel_to_oxidizer_ratio = Slot(uri=COREMETA4CAT.fuel_to_oxidizer_ratio, name="fuel_to_oxidizer_ratio", curie=COREMETA4CAT.curie('fuel_to_oxidizer_ratio'),
+ model_uri=COREMETA4CAT.fuel_to_oxidizer_ratio, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.set_temperature = Slot(uri=COREMETA4CAT.set_temperature, name="set_temperature", curie=COREMETA4CAT.curie('set_temperature'),
+ model_uri=COREMETA4CAT.set_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.post_treatment = Slot(uri=COREMETA4CAT.post_treatment, name="post_treatment", curie=COREMETA4CAT.curie('post_treatment'),
+ model_uri=COREMETA4CAT.post_treatment, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.substrate = Slot(uri=VOC4CAT['0000024'], name="substrate", curie=VOC4CAT.curie('0000024'),
+ model_uri=COREMETA4CAT.substrate, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.pulse_time = Slot(uri=COREMETA4CAT.pulse_time, name="pulse_time", curie=COREMETA4CAT.curie('pulse_time'),
+ model_uri=COREMETA4CAT.pulse_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.purging_duration = Slot(uri=VOC4CAT['0000112'], name="purging_duration", curie=VOC4CAT.curie('0000112'),
+ model_uri=COREMETA4CAT.purging_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.power = Slot(uri=COREMETA4CAT.power, name="power", curie=COREMETA4CAT.curie('power'),
+ model_uri=COREMETA4CAT.power, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.microwave_frequency = Slot(uri=COREMETA4CAT.microwave_frequency, name="microwave_frequency", curie=COREMETA4CAT.curie('microwave_frequency'),
+ model_uri=COREMETA4CAT.microwave_frequency, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.sonication_power = Slot(uri=COREMETA4CAT.sonication_power, name="sonication_power", curie=COREMETA4CAT.curie('sonication_power'),
+ model_uri=COREMETA4CAT.sonication_power, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.sonication_duration = Slot(uri=COREMETA4CAT.sonication_duration, name="sonication_duration", curie=COREMETA4CAT.curie('sonication_duration'),
+ model_uri=COREMETA4CAT.sonication_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.flame_type = Slot(uri=COREMETA4CAT.flame_type, name="flame_type", curie=COREMETA4CAT.curie('flame_type'),
+ model_uri=COREMETA4CAT.flame_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.inlet_system = Slot(uri=COREMETA4CAT.inlet_system, name="inlet_system", curie=COREMETA4CAT.curie('inlet_system'),
+ model_uri=COREMETA4CAT.inlet_system, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.flame_ring = Slot(uri=COREMETA4CAT.flame_ring, name="flame_ring", curie=COREMETA4CAT.curie('flame_ring'),
+ model_uri=COREMETA4CAT.flame_ring, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.capillary_pressure = Slot(uri=COREMETA4CAT.capillary_pressure, name="capillary_pressure", curie=COREMETA4CAT.curie('capillary_pressure'),
+ model_uri=COREMETA4CAT.capillary_pressure, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.fuel_dispersant_ratio = Slot(uri=COREMETA4CAT.fuel_dispersant_ratio, name="fuel_dispersant_ratio", curie=COREMETA4CAT.curie('fuel_dispersant_ratio'),
+ model_uri=COREMETA4CAT.fuel_dispersant_ratio, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.vessel_volume = Slot(uri=COREMETA4CAT.vessel_volume, name="vessel_volume", curie=COREMETA4CAT.curie('vessel_volume'),
+ model_uri=COREMETA4CAT.vessel_volume, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.size_and_material = Slot(uri=COREMETA4CAT.size_and_material, name="size_and_material", curie=COREMETA4CAT.curie('size_and_material'),
+ model_uri=COREMETA4CAT.size_and_material, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.milling_speed = Slot(uri=COREMETA4CAT.milling_speed, name="milling_speed", curie=COREMETA4CAT.curie('milling_speed'),
+ model_uri=COREMETA4CAT.milling_speed, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.milling_duration = Slot(uri=COREMETA4CAT.milling_duration, name="milling_duration", curie=COREMETA4CAT.curie('milling_duration'),
+ model_uri=COREMETA4CAT.milling_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.ball_material = Slot(uri=COREMETA4CAT.ball_material, name="ball_material", curie=COREMETA4CAT.curie('ball_material'),
+ model_uri=COREMETA4CAT.ball_material, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.ball_size = Slot(uri=COREMETA4CAT.ball_size, name="ball_size", curie=COREMETA4CAT.curie('ball_size'),
+ model_uri=COREMETA4CAT.ball_size, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.ball_to_powder_ratio = Slot(uri=COREMETA4CAT.ball_to_powder_ratio, name="ball_to_powder_ratio", curie=COREMETA4CAT.curie('ball_to_powder_ratio'),
+ model_uri=COREMETA4CAT.ball_to_powder_ratio, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.reaction_vessel = Slot(uri=COREMETA4CAT.reaction_vessel, name="reaction_vessel", curie=COREMETA4CAT.curie('reaction_vessel'),
+ model_uri=COREMETA4CAT.reaction_vessel, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.mixing_device = Slot(uri=COREMETA4CAT.mixing_device, name="mixing_device", curie=COREMETA4CAT.curie('mixing_device'),
+ model_uri=COREMETA4CAT.mixing_device, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.crystallisation_solvents = Slot(uri=COREMETA4CAT.crystallisation_solvents, name="crystallisation_solvents", curie=COREMETA4CAT.curie('crystallisation_solvents'),
+ model_uri=COREMETA4CAT.crystallisation_solvents, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.precipitation_agent = Slot(uri=COREMETA4CAT.precipitation_agent, name="precipitation_agent", curie=COREMETA4CAT.curie('precipitation_agent'),
+ model_uri=COREMETA4CAT.precipitation_agent, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.crystallisation_duration = Slot(uri=COREMETA4CAT.crystallisation_duration, name="crystallisation_duration", curie=COREMETA4CAT.curie('crystallisation_duration'),
+ model_uri=COREMETA4CAT.crystallisation_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.purification_solvent = Slot(uri=COREMETA4CAT.purification_solvent, name="purification_solvent", curie=COREMETA4CAT.curie('purification_solvent'),
+ model_uri=COREMETA4CAT.purification_solvent, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.temperature_ramp = Slot(uri=COREMETA4CAT.temperature_ramp, name="temperature_ramp", curie=COREMETA4CAT.curie('temperature_ramp'),
+ model_uri=COREMETA4CAT.temperature_ramp, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.sample_state = Slot(uri=COREMETA4CAT.sample_state, name="sample_state", curie=COREMETA4CAT.curie('sample_state'),
+ model_uri=COREMETA4CAT.sample_state, domain=None, range=Optional[Union[Union[str, "SampleStateEnum"], list[Union[str, "SampleStateEnum"]]]])
+
+slots.sample_description = Slot(uri=COREMETA4CAT.sample_description, name="sample_description", curie=COREMETA4CAT.curie('sample_description'),
+ model_uri=COREMETA4CAT.sample_description, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.sample_preparation = Slot(uri=AFP['0001159'], name="sample_preparation", curie=AFP.curie('0001159'),
+ model_uri=COREMETA4CAT.sample_preparation, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.detector_type = Slot(uri=AFR['0000317'], name="detector_type", curie=AFR.curie('0000317'),
+ model_uri=COREMETA4CAT.detector_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.xray_source = Slot(uri=OBI['0001138'], name="xray_source", curie=OBI.curie('0001138'),
+ model_uri=COREMETA4CAT.xray_source, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.monochromator = Slot(uri=CHMO['0002120'], name="monochromator", curie=CHMO.curie('0002120'),
+ model_uri=COREMETA4CAT.monochromator, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.minimum_energy = Slot(uri=COREMETA4CAT.minimum_energy, name="minimum_energy", curie=COREMETA4CAT.curie('minimum_energy'),
+ model_uri=COREMETA4CAT.minimum_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_energy = Slot(uri=COREMETA4CAT.maximum_energy, name="maximum_energy", curie=COREMETA4CAT.curie('maximum_energy'),
+ model_uri=COREMETA4CAT.maximum_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.gun_type = Slot(uri=COREMETA4CAT.gun_type, name="gun_type", curie=COREMETA4CAT.curie('gun_type'),
+ model_uri=COREMETA4CAT.gun_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.acceleration_voltage = Slot(uri=COREMETA4CAT.acceleration_voltage, name="acceleration_voltage", curie=COREMETA4CAT.curie('acceleration_voltage'),
+ model_uri=COREMETA4CAT.acceleration_voltage, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.magnification_setting = Slot(uri=AFR['0002226'], name="magnification_setting", curie=AFR.curie('0002226'),
+ model_uri=COREMETA4CAT.magnification_setting, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.minimum_temperature = Slot(uri=COREMETA4CAT.minimum_temperature, name="minimum_temperature", curie=COREMETA4CAT.curie('minimum_temperature'),
+ model_uri=COREMETA4CAT.minimum_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_temperature = Slot(uri=COREMETA4CAT.maximum_temperature, name="maximum_temperature", curie=COREMETA4CAT.curie('maximum_temperature'),
+ model_uri=COREMETA4CAT.maximum_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.initial_temperature = Slot(uri=NCIT.C164644, name="initial_temperature", curie=NCIT.curie('C164644'),
+ model_uri=COREMETA4CAT.initial_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.final_temperature = Slot(uri=NCIT.C164644, name="final_temperature", curie=NCIT.curie('C164644'),
+ model_uri=COREMETA4CAT.final_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.mz_minimum = Slot(uri=AFR['0002652'], name="mz_minimum", curie=AFR.curie('0002652'),
+ model_uri=COREMETA4CAT.mz_minimum, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.mz_maximum = Slot(uri=AFR['0002653'], name="mz_maximum", curie=AFR.curie('0002653'),
+ model_uri=COREMETA4CAT.mz_maximum, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.excitation_wavelength = Slot(uri=AFR['0002479'], name="excitation_wavelength", curie=AFR.curie('0002479'),
+ model_uri=COREMETA4CAT.excitation_wavelength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.emission_wavelength = Slot(uri=NCIT.C204101, name="emission_wavelength", curie=NCIT.curie('C204101'),
+ model_uri=COREMETA4CAT.emission_wavelength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.optical_filter = Slot(uri=COREMETA4CAT.optical_filter, name="optical_filter", curie=COREMETA4CAT.curie('optical_filter'),
+ model_uri=COREMETA4CAT.optical_filter, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.reference_electrode = Slot(uri=VOC4CAT['0007204'], name="reference_electrode", curie=VOC4CAT.curie('0007204'),
+ model_uri=COREMETA4CAT.reference_electrode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.working_electrode = Slot(uri=VOC4CAT['0007202'], name="working_electrode", curie=VOC4CAT.curie('0007202'),
+ model_uri=COREMETA4CAT.working_electrode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.counter_electrode = Slot(uri=VOC4CAT['0007203'], name="counter_electrode", curie=VOC4CAT.curie('0007203'),
+ model_uri=COREMETA4CAT.counter_electrode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.electrolyte_composition = Slot(uri=COREMETA4CAT.electrolyte_composition, name="electrolyte_composition", curie=COREMETA4CAT.curie('electrolyte_composition'),
+ model_uri=COREMETA4CAT.electrolyte_composition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.electrolyte_concentration = Slot(uri=COREMETA4CAT.electrolyte_concentration, name="electrolyte_concentration", curie=COREMETA4CAT.curie('electrolyte_concentration'),
+ model_uri=COREMETA4CAT.electrolyte_concentration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.minimum_2theta = Slot(uri=COREMETA4CAT.minimum_2theta, name="minimum_2theta", curie=COREMETA4CAT.curie('minimum_2theta'),
+ model_uri=COREMETA4CAT.minimum_2theta, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_2theta = Slot(uri=COREMETA4CAT.maximum_2theta, name="maximum_2theta", curie=COREMETA4CAT.curie('maximum_2theta'),
+ model_uri=COREMETA4CAT.maximum_2theta, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.sample_spinning_speed = Slot(uri=COREMETA4CAT.sample_spinning_speed, name="sample_spinning_speed", curie=COREMETA4CAT.curie('sample_spinning_speed'),
+ model_uri=COREMETA4CAT.sample_spinning_speed, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.absorption_edge = Slot(uri=COREMETA4CAT.absorption_edge, name="absorption_edge", curie=COREMETA4CAT.curie('absorption_edge'),
+ model_uri=COREMETA4CAT.absorption_edge, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.element_analyzed = Slot(uri=COREMETA4CAT.element_analyzed, name="element_analyzed", curie=COREMETA4CAT.curie('element_analyzed'),
+ model_uri=COREMETA4CAT.element_analyzed, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.beamline_source = Slot(uri=COREMETA4CAT.beamline_source, name="beamline_source", curie=COREMETA4CAT.curie('beamline_source'),
+ model_uri=COREMETA4CAT.beamline_source, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.noise_of_measurement = Slot(uri=COREMETA4CAT.noise_of_measurement, name="noise_of_measurement", curie=COREMETA4CAT.curie('noise_of_measurement'),
+ model_uri=COREMETA4CAT.noise_of_measurement, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.energy_resolution = Slot(uri=AFR['0000950'], name="energy_resolution", curie=AFR.curie('0000950'),
+ model_uri=COREMETA4CAT.energy_resolution, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.total_acquisition_time = Slot(uri=COREMETA4CAT.total_acquisition_time, name="total_acquisition_time", curie=COREMETA4CAT.curie('total_acquisition_time'),
+ model_uri=COREMETA4CAT.total_acquisition_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.pass_energy = Slot(uri=COREMETA4CAT.pass_energy, name="pass_energy", curie=COREMETA4CAT.curie('pass_energy'),
+ model_uri=COREMETA4CAT.pass_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.spot_size = Slot(uri=COREMETA4CAT.spot_size, name="spot_size", curie=COREMETA4CAT.curie('spot_size'),
+ model_uri=COREMETA4CAT.spot_size, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.lense_mode = Slot(uri=VOC4CAT['0000108'], name="lense_mode", curie=VOC4CAT.curie('0000108'),
+ model_uri=COREMETA4CAT.lense_mode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.charge_compensation = Slot(uri=COREMETA4CAT.charge_compensation, name="charge_compensation", curie=COREMETA4CAT.curie('charge_compensation'),
+ model_uri=COREMETA4CAT.charge_compensation, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.primary_energy = Slot(uri=COREMETA4CAT.primary_energy, name="primary_energy", curie=COREMETA4CAT.curie('primary_energy'),
+ model_uri=COREMETA4CAT.primary_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.counting_time = Slot(uri=COREMETA4CAT.counting_time, name="counting_time", curie=COREMETA4CAT.curie('counting_time'),
+ model_uri=COREMETA4CAT.counting_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.minimum_wavenumber = Slot(uri=COREMETA4CAT.minimum_wavenumber, name="minimum_wavenumber", curie=COREMETA4CAT.curie('minimum_wavenumber'),
+ model_uri=COREMETA4CAT.minimum_wavenumber, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_wavenumber = Slot(uri=COREMETA4CAT.maximum_wavenumber, name="maximum_wavenumber", curie=COREMETA4CAT.curie('maximum_wavenumber'),
+ model_uri=COREMETA4CAT.maximum_wavenumber, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.background_correction = Slot(uri=AFP['0003721'], name="background_correction", curie=AFP.curie('0003721'),
+ model_uri=COREMETA4CAT.background_correction, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.adsorption_gas = Slot(uri=COREMETA4CAT.adsorption_gas, name="adsorption_gas", curie=COREMETA4CAT.curie('adsorption_gas'),
+ model_uri=COREMETA4CAT.adsorption_gas, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.diluting_reference = Slot(uri=COREMETA4CAT.diluting_reference, name="diluting_reference", curie=COREMETA4CAT.curie('diluting_reference'),
+ model_uri=COREMETA4CAT.diluting_reference, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.ratio_reference_sample = Slot(uri=COREMETA4CAT.ratio_reference_sample, name="ratio_reference_sample", curie=COREMETA4CAT.curie('ratio_reference_sample'),
+ model_uri=COREMETA4CAT.ratio_reference_sample, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.background_correction_method = Slot(uri=COREMETA4CAT.background_correction_method, name="background_correction_method", curie=COREMETA4CAT.curie('background_correction_method'),
+ model_uri=COREMETA4CAT.background_correction_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.excitation_laser_wavelength = Slot(uri=AFR['0001594'], name="excitation_laser_wavelength", curie=AFR.curie('0001594'),
+ model_uri=COREMETA4CAT.excitation_laser_wavelength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.excitation_laser_power = Slot(uri=AFR['0001595'], name="excitation_laser_power", curie=AFR.curie('0001595'),
+ model_uri=COREMETA4CAT.excitation_laser_power, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.filter_or_grating = Slot(uri=COREMETA4CAT.filter_or_grating, name="filter_or_grating", curie=COREMETA4CAT.curie('filter_or_grating'),
+ model_uri=COREMETA4CAT.filter_or_grating, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.nucleus = Slot(uri=COREMETA4CAT.nucleus, name="nucleus", curie=COREMETA4CAT.curie('nucleus'),
+ model_uri=COREMETA4CAT.nucleus, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.irradiation_frequency = Slot(uri=COREMETA4CAT.irradiation_frequency, name="irradiation_frequency", curie=COREMETA4CAT.curie('irradiation_frequency'),
+ model_uri=COREMETA4CAT.irradiation_frequency, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.nmr_pulse_sequence = Slot(uri=COREMETA4CAT.nmr_pulse_sequence, name="nmr_pulse_sequence", curie=COREMETA4CAT.curie('nmr_pulse_sequence'),
+ model_uri=COREMETA4CAT.nmr_pulse_sequence, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.nmr_sample_tube = Slot(uri=COREMETA4CAT.nmr_sample_tube, name="nmr_sample_tube", curie=COREMETA4CAT.curie('nmr_sample_tube'),
+ model_uri=COREMETA4CAT.nmr_sample_tube, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.image_resolution = Slot(uri=COREMETA4CAT.image_resolution, name="image_resolution", curie=COREMETA4CAT.curie('image_resolution'),
+ model_uri=COREMETA4CAT.image_resolution, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.field_emitter = Slot(uri=COREMETA4CAT.field_emitter, name="field_emitter", curie=COREMETA4CAT.curie('field_emitter'),
+ model_uri=COREMETA4CAT.field_emitter, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.reducing_gas_composition = Slot(uri=COREMETA4CAT.reducing_gas_composition, name="reducing_gas_composition", curie=COREMETA4CAT.curie('reducing_gas_composition'),
+ model_uri=COREMETA4CAT.reducing_gas_composition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.oxidizing_gas_composition = Slot(uri=COREMETA4CAT.oxidizing_gas_composition, name="oxidizing_gas_composition", curie=COREMETA4CAT.curie('oxidizing_gas_composition'),
+ model_uri=COREMETA4CAT.oxidizing_gas_composition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.adsorbate_gas = Slot(uri=COREMETA4CAT.adsorbate_gas, name="adsorbate_gas", curie=COREMETA4CAT.curie('adsorbate_gas'),
+ model_uri=COREMETA4CAT.adsorbate_gas, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.degassing_temperature = Slot(uri=COREMETA4CAT.degassing_temperature, name="degassing_temperature", curie=COREMETA4CAT.curie('degassing_temperature'),
+ model_uri=COREMETA4CAT.degassing_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.measurement_temperature = Slot(uri=COREMETA4CAT.measurement_temperature, name="measurement_temperature", curie=COREMETA4CAT.curie('measurement_temperature'),
+ model_uri=COREMETA4CAT.measurement_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.pore_size_distribution_method = Slot(uri=COREMETA4CAT.pore_size_distribution_method, name="pore_size_distribution_method", curie=COREMETA4CAT.curie('pore_size_distribution_method'),
+ model_uri=COREMETA4CAT.pore_size_distribution_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.elements_analyzed = Slot(uri=COREMETA4CAT.elements_analyzed, name="elements_analyzed", curie=COREMETA4CAT.curie('elements_analyzed'),
+ model_uri=COREMETA4CAT.elements_analyzed, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.combustion_temperature = Slot(uri=COREMETA4CAT.combustion_temperature, name="combustion_temperature", curie=COREMETA4CAT.curie('combustion_temperature'),
+ model_uri=COREMETA4CAT.combustion_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.detection_limit = Slot(uri=NCIT.C105701, name="detection_limit", curie=NCIT.curie('C105701'),
+ model_uri=COREMETA4CAT.detection_limit, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.matrix_effect_correction = Slot(uri=COREMETA4CAT.matrix_effect_correction, name="matrix_effect_correction", curie=COREMETA4CAT.curie('matrix_effect_correction'),
+ model_uri=COREMETA4CAT.matrix_effect_correction, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.minimum_wavelength = Slot(uri=COREMETA4CAT.minimum_wavelength, name="minimum_wavelength", curie=COREMETA4CAT.curie('minimum_wavelength'),
+ model_uri=COREMETA4CAT.minimum_wavelength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_wavelength = Slot(uri=COREMETA4CAT.maximum_wavelength, name="maximum_wavelength", curie=COREMETA4CAT.curie('maximum_wavelength'),
+ model_uri=COREMETA4CAT.maximum_wavelength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.path_length = Slot(uri=AFQ['0000268'], name="path_length", curie=AFQ.curie('0000268'),
+ model_uri=COREMETA4CAT.path_length, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.emission_range = Slot(uri=COREMETA4CAT.emission_range, name="emission_range", curie=COREMETA4CAT.curie('emission_range'),
+ model_uri=COREMETA4CAT.emission_range, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.slit_width = Slot(uri=COREMETA4CAT.slit_width, name="slit_width", curie=COREMETA4CAT.curie('slit_width'),
+ model_uri=COREMETA4CAT.slit_width, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.lifetime_fitting_model = Slot(uri=COREMETA4CAT.lifetime_fitting_model, name="lifetime_fitting_model", curie=COREMETA4CAT.curie('lifetime_fitting_model'),
+ model_uri=COREMETA4CAT.lifetime_fitting_model, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.number_of_shots = Slot(uri=COREMETA4CAT.number_of_shots, name="number_of_shots", curie=COREMETA4CAT.curie('number_of_shots'),
+ model_uri=COREMETA4CAT.number_of_shots, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.scan_rate = Slot(uri=VOC4CAT['0007213'], name="scan_rate", curie=VOC4CAT.curie('0007213'),
+ model_uri=COREMETA4CAT.scan_rate, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.minimum_potential = Slot(uri=COREMETA4CAT.minimum_potential, name="minimum_potential", curie=COREMETA4CAT.curie('minimum_potential'),
+ model_uri=COREMETA4CAT.minimum_potential, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_potential = Slot(uri=COREMETA4CAT.maximum_potential, name="maximum_potential", curie=COREMETA4CAT.curie('maximum_potential'),
+ model_uri=COREMETA4CAT.maximum_potential, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.step_size_potential = Slot(uri=VOC4CAT['0007218'], name="step_size_potential", curie=VOC4CAT.curie('0007218'),
+ model_uri=COREMETA4CAT.step_size_potential, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.electrode_configuration = Slot(uri=COREMETA4CAT.electrode_configuration, name="electrode_configuration", curie=COREMETA4CAT.curie('electrode_configuration'),
+ model_uri=COREMETA4CAT.electrode_configuration, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.ac_frequency = Slot(uri=VOC4CAT['0007239'], name="ac_frequency", curie=VOC4CAT.curie('0007239'),
+ model_uri=COREMETA4CAT.ac_frequency, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.ac_dc_mode = Slot(uri=COREMETA4CAT.ac_dc_mode, name="ac_dc_mode", curie=COREMETA4CAT.curie('ac_dc_mode'),
+ model_uri=COREMETA4CAT.ac_dc_mode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.sample_geometry = Slot(uri=COREMETA4CAT.sample_geometry, name="sample_geometry", curie=COREMETA4CAT.curie('sample_geometry'),
+ model_uri=COREMETA4CAT.sample_geometry, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.light_wavelength = Slot(uri=VOC4CAT['0000176'], name="light_wavelength", curie=VOC4CAT.curie('0000176'),
+ model_uri=COREMETA4CAT.light_wavelength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.scattering_angle = Slot(uri=COREMETA4CAT.scattering_angle, name="scattering_angle", curie=COREMETA4CAT.curie('scattering_angle'),
+ model_uri=COREMETA4CAT.scattering_angle, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.refractive_index = Slot(uri=COREMETA4CAT.refractive_index, name="refractive_index", curie=COREMETA4CAT.curie('refractive_index'),
+ model_uri=COREMETA4CAT.refractive_index, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.measurement_duration = Slot(uri=COREMETA4CAT.measurement_duration, name="measurement_duration", curie=COREMETA4CAT.curie('measurement_duration'),
+ model_uri=COREMETA4CAT.measurement_duration, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.spray_voltage = Slot(uri=CHMO['0002792'], name="spray_voltage", curie=CHMO.curie('0002792'),
+ model_uri=COREMETA4CAT.spray_voltage, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.capillary_temperature = Slot(uri=COREMETA4CAT.capillary_temperature, name="capillary_temperature", curie=COREMETA4CAT.curie('capillary_temperature'),
+ model_uri=COREMETA4CAT.capillary_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.solvent_composition = Slot(uri=VOC4CAT['0007246'], name="solvent_composition", curie=VOC4CAT.curie('0007246'),
+ model_uri=COREMETA4CAT.solvent_composition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.carrier_gas_purity = Slot(uri=COREMETA4CAT.carrier_gas_purity, name="carrier_gas_purity", curie=COREMETA4CAT.curie('carrier_gas_purity'),
+ model_uri=COREMETA4CAT.carrier_gas_purity, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.inlet_temperature = Slot(uri=COREMETA4CAT.inlet_temperature, name="inlet_temperature", curie=COREMETA4CAT.curie('inlet_temperature'),
+ model_uri=COREMETA4CAT.inlet_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.minimum_oven_temperature = Slot(uri=COREMETA4CAT.minimum_oven_temperature, name="minimum_oven_temperature", curie=COREMETA4CAT.curie('minimum_oven_temperature'),
+ model_uri=COREMETA4CAT.minimum_oven_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.maximum_oven_temperature = Slot(uri=COREMETA4CAT.maximum_oven_temperature, name="maximum_oven_temperature", curie=COREMETA4CAT.curie('maximum_oven_temperature'),
+ model_uri=COREMETA4CAT.maximum_oven_temperature, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.heating_ramp = Slot(uri=COREMETA4CAT.heating_ramp, name="heating_ramp", curie=COREMETA4CAT.curie('heating_ramp'),
+ model_uri=COREMETA4CAT.heating_ramp, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.acquisition_mode = Slot(uri=COREMETA4CAT.acquisition_mode, name="acquisition_mode", curie=COREMETA4CAT.curie('acquisition_mode'),
+ model_uri=COREMETA4CAT.acquisition_mode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.solvent_delay = Slot(uri=COREMETA4CAT.solvent_delay, name="solvent_delay", curie=COREMETA4CAT.curie('solvent_delay'),
+ model_uri=COREMETA4CAT.solvent_delay, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.trace_ion_detection = Slot(uri=COREMETA4CAT.trace_ion_detection, name="trace_ion_detection", curie=COREMETA4CAT.curie('trace_ion_detection'),
+ model_uri=COREMETA4CAT.trace_ion_detection, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.split_ratio = Slot(uri=COREMETA4CAT.split_ratio, name="split_ratio", curie=COREMETA4CAT.curie('split_ratio'),
+ model_uri=COREMETA4CAT.split_ratio, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.eluent = Slot(uri=AFRL['0000011'], name="eluent", curie=AFRL.curie('0000011'),
+ model_uri=COREMETA4CAT.eluent, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.calibration_standard = Slot(uri=COREMETA4CAT.calibration_standard, name="calibration_standard", curie=COREMETA4CAT.curie('calibration_standard'),
+ model_uri=COREMETA4CAT.calibration_standard, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.gradient_program = Slot(uri=COREMETA4CAT.gradient_program, name="gradient_program", curie=COREMETA4CAT.curie('gradient_program'),
+ model_uri=COREMETA4CAT.gradient_program, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.ionization_mode = Slot(uri=COREMETA4CAT.ionization_mode, name="ionization_mode", curie=COREMETA4CAT.curie('ionization_mode'),
+ model_uri=COREMETA4CAT.ionization_mode, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.catalyst_quantity = Slot(uri=COREMETA4CAT.catalyst_quantity, name="catalyst_quantity", curie=COREMETA4CAT.curie('catalyst_quantity'),
+ model_uri=COREMETA4CAT.catalyst_quantity, domain=None, range=Union[float, list[float]])
+
+slots.reactant = Slot(uri=VOC4CAT['0000101'], name="reactant", curie=VOC4CAT.curie('0000101'),
+ model_uri=COREMETA4CAT.reactant, domain=None, range=Union[str, list[str]])
+
+slots.catalyst_type = Slot(uri=VOC4CAT['0007014'], name="catalyst_type", curie=VOC4CAT.curie('0007014'),
+ model_uri=COREMETA4CAT.catalyst_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.reactor_temperature_range = Slot(uri=VOC4CAT['0007032'], name="reactor_temperature_range", curie=VOC4CAT.curie('0007032'),
+ model_uri=COREMETA4CAT.reactor_temperature_range, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.experiment_pressure = Slot(uri=VOC4CAT['0000118'], name="experiment_pressure", curie=VOC4CAT.curie('0000118'),
+ model_uri=COREMETA4CAT.experiment_pressure, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.feed_composition_range = Slot(uri=COREMETA4CAT.feed_composition_range, name="feed_composition_range", curie=COREMETA4CAT.curie('feed_composition_range'),
+ model_uri=COREMETA4CAT.feed_composition_range, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.gas_distributor_type = Slot(uri=COREMETA4CAT.gas_distributor_type, name="gas_distributor_type", curie=COREMETA4CAT.curie('gas_distributor_type'),
+ model_uri=COREMETA4CAT.gas_distributor_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.bed_expansion_height = Slot(uri=COREMETA4CAT.bed_expansion_height, name="bed_expansion_height", curie=COREMETA4CAT.curie('bed_expansion_height'),
+ model_uri=COREMETA4CAT.bed_expansion_height, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.bubble_size_distribution = Slot(uri=COREMETA4CAT.bubble_size_distribution, name="bubble_size_distribution", curie=COREMETA4CAT.curie('bubble_size_distribution'),
+ model_uri=COREMETA4CAT.bubble_size_distribution, domain=None, range=Optional[str])
+
+slots.software_package = Slot(uri=COREMETA4CAT.software_package, name="software_package", curie=COREMETA4CAT.curie('software_package'),
+ model_uri=COREMETA4CAT.software_package, domain=None, range=Union[str, list[str]])
+
+slots.calculated_property = Slot(uri=COREMETA4CAT.calculated_property, name="calculated_property", curie=COREMETA4CAT.curie('calculated_property'),
+ model_uri=COREMETA4CAT.calculated_property, domain=None, range=Union[Union[dict, CalculatedProperty], list[Union[dict, CalculatedProperty]]])
+
+slots.exchange_correlation_functional = Slot(uri=COREMETA4CAT.exchange_correlation_functional, name="exchange_correlation_functional", curie=COREMETA4CAT.curie('exchange_correlation_functional'),
+ model_uri=COREMETA4CAT.exchange_correlation_functional, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.energy_cutoff = Slot(uri=COREMETA4CAT.energy_cutoff, name="energy_cutoff", curie=COREMETA4CAT.curie('energy_cutoff'),
+ model_uri=COREMETA4CAT.energy_cutoff, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.convergence_criteria = Slot(uri=COREMETA4CAT.convergence_criteria, name="convergence_criteria", curie=COREMETA4CAT.curie('convergence_criteria'),
+ model_uri=COREMETA4CAT.convergence_criteria, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.dft_u_parameters = Slot(uri=COREMETA4CAT.dft_u_parameters, name="dft_u_parameters", curie=COREMETA4CAT.curie('dft_u_parameters'),
+ model_uri=COREMETA4CAT.dft_u_parameters, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.spin_polarization = Slot(uri=COREMETA4CAT.spin_polarization, name="spin_polarization", curie=COREMETA4CAT.curie('spin_polarization'),
+ model_uri=COREMETA4CAT.spin_polarization, domain=None, range=Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]])
+
+slots.total_energy_per_atom = Slot(uri=COREMETA4CAT.total_energy_per_atom, name="total_energy_per_atom", curie=COREMETA4CAT.curie('total_energy_per_atom'),
+ model_uri=COREMETA4CAT.total_energy_per_atom, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.force_field = Slot(uri=COREMETA4CAT.force_field, name="force_field", curie=COREMETA4CAT.curie('force_field'),
+ model_uri=COREMETA4CAT.force_field, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.simulation_timestep = Slot(uri=APOLLO_SV['00000012'], name="simulation_timestep", curie=APOLLO_SV.curie('00000012'),
+ model_uri=COREMETA4CAT.simulation_timestep, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.simulation_time = Slot(uri=COREMETA4CAT.simulation_time, name="simulation_time", curie=COREMETA4CAT.curie('simulation_time'),
+ model_uri=COREMETA4CAT.simulation_time, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.ensemble_type = Slot(uri=COREMETA4CAT.ensemble_type, name="ensemble_type", curie=COREMETA4CAT.curie('ensemble_type'),
+ model_uri=COREMETA4CAT.ensemble_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.number_of_atoms = Slot(uri=COREMETA4CAT.number_of_atoms, name="number_of_atoms", curie=COREMETA4CAT.curie('number_of_atoms'),
+ model_uri=COREMETA4CAT.number_of_atoms, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.rate_constants = Slot(uri=NCIT.C94967, name="rate_constants", curie=NCIT.curie('C94967'),
+ model_uri=COREMETA4CAT.rate_constants, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.solver_type = Slot(uri=COREMETA4CAT.solver_type, name="solver_type", curie=COREMETA4CAT.curie('solver_type'),
+ model_uri=COREMETA4CAT.solver_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.pressure = Slot(uri=COREMETA4CAT.pressure, name="pressure", curie=COREMETA4CAT.curie('pressure'),
+ model_uri=COREMETA4CAT.pressure, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.surface_coverage = Slot(uri=COREMETA4CAT.surface_coverage, name="surface_coverage", curie=COREMETA4CAT.curie('surface_coverage'),
+ model_uri=COREMETA4CAT.surface_coverage, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.activation_energy = Slot(uri=COREMETA4CAT.activation_energy, name="activation_energy", curie=COREMETA4CAT.curie('activation_energy'),
+ model_uri=COREMETA4CAT.activation_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.interaction_potential = Slot(uri=COREMETA4CAT.interaction_potential, name="interaction_potential", curie=COREMETA4CAT.curie('interaction_potential'),
+ model_uri=COREMETA4CAT.interaction_potential, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.number_of_steps = Slot(uri=COREMETA4CAT.number_of_steps, name="number_of_steps", curie=COREMETA4CAT.curie('number_of_steps'),
+ model_uri=COREMETA4CAT.number_of_steps, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.lattice_size_type = Slot(uri=COREMETA4CAT.lattice_size_type, name="lattice_size_type", curie=COREMETA4CAT.curie('lattice_size_type'),
+ model_uri=COREMETA4CAT.lattice_size_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.acceptance_criteria = Slot(uri=COREMETA4CAT.acceptance_criteria, name="acceptance_criteria", curie=COREMETA4CAT.curie('acceptance_criteria'),
+ model_uri=COREMETA4CAT.acceptance_criteria, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.equilibration_steps = Slot(uri=COREMETA4CAT.equilibration_steps, name="equilibration_steps", curie=COREMETA4CAT.curie('equilibration_steps'),
+ model_uri=COREMETA4CAT.equilibration_steps, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.sampling_interval = Slot(uri=COREMETA4CAT.sampling_interval, name="sampling_interval", curie=COREMETA4CAT.curie('sampling_interval'),
+ model_uri=COREMETA4CAT.sampling_interval, domain=None, range=Optional[Union[int, list[int]]])
+
+slots.material_composition = Slot(uri=COREMETA4CAT.material_composition, name="material_composition", curie=COREMETA4CAT.curie('material_composition'),
+ model_uri=COREMETA4CAT.material_composition, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.crystal_structure = Slot(uri=SIO['001100'], name="crystal_structure", curie=SIO.curie('001100'),
+ model_uri=COREMETA4CAT.crystal_structure, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.k_point_mesh = Slot(uri=COREMETA4CAT.k_point_mesh, name="k_point_mesh", curie=COREMETA4CAT.curie('k_point_mesh'),
+ model_uri=COREMETA4CAT.k_point_mesh, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.formation_energy = Slot(uri=COREMETA4CAT.formation_energy, name="formation_energy", curie=COREMETA4CAT.curie('formation_energy'),
+ model_uri=COREMETA4CAT.formation_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.reference_energies = Slot(uri=COREMETA4CAT.reference_energies, name="reference_energies", curie=COREMETA4CAT.curie('reference_energies'),
+ model_uri=COREMETA4CAT.reference_energies, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.energy_above_hull = Slot(uri=COREMETA4CAT.energy_above_hull, name="energy_above_hull", curie=COREMETA4CAT.curie('energy_above_hull'),
+ model_uri=COREMETA4CAT.energy_above_hull, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.phase_diagram_type = Slot(uri=COREMETA4CAT.phase_diagram_type, name="phase_diagram_type", curie=COREMETA4CAT.curie('phase_diagram_type'),
+ model_uri=COREMETA4CAT.phase_diagram_type, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.competing_phases = Slot(uri=COREMETA4CAT.competing_phases, name="competing_phases", curie=COREMETA4CAT.curie('competing_phases'),
+ model_uri=COREMETA4CAT.competing_phases, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.piezoelectric_tensor = Slot(uri=COREMETA4CAT.piezoelectric_tensor, name="piezoelectric_tensor", curie=COREMETA4CAT.curie('piezoelectric_tensor'),
+ model_uri=COREMETA4CAT.piezoelectric_tensor, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.crystal_symmetry = Slot(uri=COREMETA4CAT.crystal_symmetry, name="crystal_symmetry", curie=COREMETA4CAT.curie('crystal_symmetry'),
+ model_uri=COREMETA4CAT.crystal_symmetry, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.strain_applied = Slot(uri=COREMETA4CAT.strain_applied, name="strain_applied", curie=COREMETA4CAT.curie('strain_applied'),
+ model_uri=COREMETA4CAT.strain_applied, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.ionic_electronic_contributions = Slot(uri=COREMETA4CAT.ionic_electronic_contributions, name="ionic_electronic_contributions", curie=COREMETA4CAT.curie('ionic_electronic_contributions'),
+ model_uri=COREMETA4CAT.ionic_electronic_contributions, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.elastic_tensor = Slot(uri=COREMETA4CAT.elastic_tensor, name="elastic_tensor", curie=COREMETA4CAT.curie('elastic_tensor'),
+ model_uri=COREMETA4CAT.elastic_tensor, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.bulk_modulus = Slot(uri=COREMETA4CAT.bulk_modulus, name="bulk_modulus", curie=COREMETA4CAT.curie('bulk_modulus'),
+ model_uri=COREMETA4CAT.bulk_modulus, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.shear_modulus = Slot(uri=COREMETA4CAT.shear_modulus, name="shear_modulus", curie=COREMETA4CAT.curie('shear_modulus'),
+ model_uri=COREMETA4CAT.shear_modulus, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.poisson_ratio = Slot(uri=COREMETA4CAT.poisson_ratio, name="poisson_ratio", curie=COREMETA4CAT.curie('poisson_ratio'),
+ model_uri=COREMETA4CAT.poisson_ratio, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.young_modulus = Slot(uri=COREMETA4CAT.young_modulus, name="young_modulus", curie=COREMETA4CAT.curie('young_modulus'),
+ model_uri=COREMETA4CAT.young_modulus, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.surface_energy = Slot(uri=COREMETA4CAT.surface_energy, name="surface_energy", curie=COREMETA4CAT.curie('surface_energy'),
+ model_uri=COREMETA4CAT.surface_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.miller_indices = Slot(uri=COREMETA4CAT.miller_indices, name="miller_indices", curie=COREMETA4CAT.curie('miller_indices'),
+ model_uri=COREMETA4CAT.miller_indices, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.slab_thickness = Slot(uri=COREMETA4CAT.slab_thickness, name="slab_thickness", curie=COREMETA4CAT.curie('slab_thickness'),
+ model_uri=COREMETA4CAT.slab_thickness, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.vacuum_spacing = Slot(uri=COREMETA4CAT.vacuum_spacing, name="vacuum_spacing", curie=COREMETA4CAT.curie('vacuum_spacing'),
+ model_uri=COREMETA4CAT.vacuum_spacing, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.surface_termination_method = Slot(uri=COREMETA4CAT.surface_termination_method, name="surface_termination_method", curie=COREMETA4CAT.curie('surface_termination_method'),
+ model_uri=COREMETA4CAT.surface_termination_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.dielectric_tensor = Slot(uri=COREMETA4CAT.dielectric_tensor, name="dielectric_tensor", curie=COREMETA4CAT.curie('dielectric_tensor'),
+ model_uri=COREMETA4CAT.dielectric_tensor, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.born_effective_charges = Slot(uri=COREMETA4CAT.born_effective_charges, name="born_effective_charges", curie=COREMETA4CAT.curie('born_effective_charges'),
+ model_uri=COREMETA4CAT.born_effective_charges, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.force_constant_method = Slot(uri=COREMETA4CAT.force_constant_method, name="force_constant_method", curie=COREMETA4CAT.curie('force_constant_method'),
+ model_uri=COREMETA4CAT.force_constant_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.kq_point_mesh = Slot(uri=COREMETA4CAT.kq_point_mesh, name="kq_point_mesh", curie=COREMETA4CAT.curie('kq_point_mesh'),
+ model_uri=COREMETA4CAT.kq_point_mesh, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.smearing_parameter = Slot(uri=COREMETA4CAT.smearing_parameter, name="smearing_parameter", curie=COREMETA4CAT.curie('smearing_parameter'),
+ model_uri=COREMETA4CAT.smearing_parameter, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.imaginary_modes = Slot(uri=COREMETA4CAT.imaginary_modes, name="imaginary_modes", curie=COREMETA4CAT.curie('imaginary_modes'),
+ model_uri=COREMETA4CAT.imaginary_modes, domain=None, range=Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]])
+
+slots.fit_method = Slot(uri=COREMETA4CAT.fit_method, name="fit_method", curie=COREMETA4CAT.curie('fit_method'),
+ model_uri=COREMETA4CAT.fit_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.pressure_derivative = Slot(uri=COREMETA4CAT.pressure_derivative, name="pressure_derivative", curie=COREMETA4CAT.curie('pressure_derivative'),
+ model_uri=COREMETA4CAT.pressure_derivative, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.fit_residuals = Slot(uri=COREMETA4CAT.fit_residuals, name="fit_residuals", curie=COREMETA4CAT.curie('fit_residuals'),
+ model_uri=COREMETA4CAT.fit_residuals, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.ph_range = Slot(uri=COREMETA4CAT.ph_range, name="ph_range", curie=COREMETA4CAT.curie('ph_range'),
+ model_uri=COREMETA4CAT.ph_range, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.potential_range = Slot(uri=COREMETA4CAT.potential_range, name="potential_range", curie=COREMETA4CAT.curie('potential_range'),
+ model_uri=COREMETA4CAT.potential_range, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.solvation_model = Slot(uri=COREMETA4CAT.solvation_model, name="solvation_model", curie=COREMETA4CAT.curie('solvation_model'),
+ model_uri=COREMETA4CAT.solvation_model, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.ionic_strength = Slot(uri=COREMETA4CAT.ionic_strength, name="ionic_strength", curie=COREMETA4CAT.curie('ionic_strength'),
+ model_uri=COREMETA4CAT.ionic_strength, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.grain_boundary_plane = Slot(uri=COREMETA4CAT.grain_boundary_plane, name="grain_boundary_plane", curie=COREMETA4CAT.curie('grain_boundary_plane'),
+ model_uri=COREMETA4CAT.grain_boundary_plane, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.misorientation_angle = Slot(uri=COREMETA4CAT.misorientation_angle, name="misorientation_angle", curie=COREMETA4CAT.curie('misorientation_angle'),
+ model_uri=COREMETA4CAT.misorientation_angle, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.grain_boundary_energy = Slot(uri=COREMETA4CAT.grain_boundary_energy, name="grain_boundary_energy", curie=COREMETA4CAT.curie('grain_boundary_energy'),
+ model_uri=COREMETA4CAT.grain_boundary_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.simulation_cell_size = Slot(uri=COREMETA4CAT.simulation_cell_size, name="simulation_cell_size", curie=COREMETA4CAT.curie('simulation_cell_size'),
+ model_uri=COREMETA4CAT.simulation_cell_size, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.gb_excess_volume = Slot(uri=COREMETA4CAT.gb_excess_volume, name="gb_excess_volume", curie=COREMETA4CAT.curie('gb_excess_volume'),
+ model_uri=COREMETA4CAT.gb_excess_volume, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.gb_structural_units = Slot(uri=COREMETA4CAT.gb_structural_units, name="gb_structural_units", curie=COREMETA4CAT.curie('gb_structural_units'),
+ model_uri=COREMETA4CAT.gb_structural_units, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.charge_defect_segregation = Slot(uri=COREMETA4CAT.charge_defect_segregation, name="charge_defect_segregation", curie=COREMETA4CAT.curie('charge_defect_segregation'),
+ model_uri=COREMETA4CAT.charge_defect_segregation, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.smearing_method = Slot(uri=COREMETA4CAT.smearing_method, name="smearing_method", curie=COREMETA4CAT.curie('smearing_method'),
+ model_uri=COREMETA4CAT.smearing_method, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.spin_polarized = Slot(uri=COREMETA4CAT.spin_polarized, name="spin_polarized", curie=COREMETA4CAT.curie('spin_polarized'),
+ model_uri=COREMETA4CAT.spin_polarized, domain=None, range=Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]])
+
+slots.band_path = Slot(uri=COREMETA4CAT.band_path, name="band_path", curie=COREMETA4CAT.curie('band_path'),
+ model_uri=COREMETA4CAT.band_path, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.fermi_energy = Slot(uri=COREMETA4CAT.fermi_energy, name="fermi_energy", curie=COREMETA4CAT.curie('fermi_energy'),
+ model_uri=COREMETA4CAT.fermi_energy, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.polarization_direction = Slot(uri=COREMETA4CAT.polarization_direction, name="polarization_direction", curie=COREMETA4CAT.curie('polarization_direction'),
+ model_uri=COREMETA4CAT.polarization_direction, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.spontaneous_polarization = Slot(uri=COREMETA4CAT.spontaneous_polarization, name="spontaneous_polarization", curie=COREMETA4CAT.curie('spontaneous_polarization'),
+ model_uri=COREMETA4CAT.spontaneous_polarization, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.reference_structure = Slot(uri=COREMETA4CAT.reference_structure, name="reference_structure", curie=COREMETA4CAT.curie('reference_structure'),
+ model_uri=COREMETA4CAT.reference_structure, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.switching_barrier = Slot(uri=COREMETA4CAT.switching_barrier, name="switching_barrier", curie=COREMETA4CAT.curie('switching_barrier'),
+ model_uri=COREMETA4CAT.switching_barrier, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.coercive_field = Slot(uri=COREMETA4CAT.coercive_field, name="coercive_field", curie=COREMETA4CAT.curie('coercive_field'),
+ model_uri=COREMETA4CAT.coercive_field, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.temperature_dependence = Slot(uri=COREMETA4CAT.temperature_dependence, name="temperature_dependence", curie=COREMETA4CAT.curie('temperature_dependence'),
+ model_uri=COREMETA4CAT.temperature_dependence, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.material_sample = Slot(uri=VOC4CAT['0005056'], name="material_sample", curie=VOC4CAT.curie('0005056'),
+ model_uri=COREMETA4CAT.material_sample, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.structure_model = Slot(uri=COREMETA4CAT.structure_model, name="structure_model", curie=COREMETA4CAT.curie('structure_model'),
+ model_uri=COREMETA4CAT.structure_model, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.smearing_broadening = Slot(uri=COREMETA4CAT.smearing_broadening, name="smearing_broadening", curie=COREMETA4CAT.curie('smearing_broadening'),
+ model_uri=COREMETA4CAT.smearing_broadening, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.direct_indirect = Slot(uri=COREMETA4CAT.direct_indirect, name="direct_indirect", curie=COREMETA4CAT.curie('direct_indirect'),
+ model_uri=COREMETA4CAT.direct_indirect, domain=None, range=Optional[Union[str, list[str]]])
+
+slots.experimental_reference = Slot(uri=COREMETA4CAT.experimental_reference, name="experimental_reference", curie=COREMETA4CAT.curie('experimental_reference'),
+ model_uri=COREMETA4CAT.experimental_reference, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.gw_hybrid_correction = Slot(uri=COREMETA4CAT.gw_hybrid_correction, name="gw_hybrid_correction", curie=COREMETA4CAT.curie('gw_hybrid_correction'),
+ model_uri=COREMETA4CAT.gw_hybrid_correction, domain=None, range=Optional[Union[Union[bool, Bool], list[Union[bool, Bool]]]])
+
+slots.excitonic_correction = Slot(uri=COREMETA4CAT.excitonic_correction, name="excitonic_correction", curie=COREMETA4CAT.curie('excitonic_correction'),
+ model_uri=COREMETA4CAT.excitonic_correction, domain=None, range=Optional[Union[float, list[float]]])
+
+slots.access_URL = Slot(uri=DCAT.accessURL, name="access_URL", curie=DCAT.curie('accessURL'),
+ model_uri=COREMETA4CAT.access_URL, domain=None, range=Optional[str])
+
+slots.access_rights = Slot(uri=DCTERMS.accessRights, name="access_rights", curie=DCTERMS.curie('accessRights'),
+ model_uri=COREMETA4CAT.access_rights, domain=None, range=Optional[str])
+
+slots.access_service = Slot(uri=DCAT.accessService, name="access_service", curie=DCAT.curie('accessService'),
+ model_uri=COREMETA4CAT.access_service, domain=None, range=Optional[str])
+
+slots.algorithm = Slot(uri=SPDX.algorithm, name="algorithm", curie=SPDX.curie('algorithm'),
+ model_uri=COREMETA4CAT.algorithm, domain=None, range=Optional[str])
+
+slots.applicable_legislation = Slot(uri=DCATAP.applicableLegislation, name="applicable_legislation", curie=DCATAP.curie('applicableLegislation'),
+ model_uri=COREMETA4CAT.applicable_legislation, domain=None, range=Optional[str])
+
+slots.application_profile = Slot(uri=DCTERMS.conformsTo, name="application_profile", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.application_profile, domain=None, range=Optional[str])
+
+slots.availability = Slot(uri=DCATAP.availability, name="availability", curie=DCATAP.curie('availability'),
+ model_uri=COREMETA4CAT.availability, domain=None, range=Optional[str])
+
+slots.bbox = Slot(uri=DCAT.bbox, name="bbox", curie=DCAT.curie('bbox'),
+ model_uri=COREMETA4CAT.bbox, domain=None, range=Optional[str])
+
+slots.beginning = Slot(uri=TIME.hasBeginning, name="beginning", curie=TIME.curie('hasBeginning'),
+ model_uri=COREMETA4CAT.beginning, domain=None, range=Optional[str])
+
+slots.byte_size = Slot(uri=DCAT.byteSize, name="byte_size", curie=DCAT.curie('byteSize'),
+ model_uri=COREMETA4CAT.byte_size, domain=None, range=Optional[str])
+
+slots.carried_out_by = Slot(uri=PROV.wasAssociatedWith, name="carried_out_by", curie=PROV.curie('wasAssociatedWith'),
+ model_uri=COREMETA4CAT.carried_out_by, domain=None, range=Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, AgenticEntity]], list[Union[dict, AgenticEntity]]]])
+
+slots.catalogue = Slot(uri=DCAT.catalog, name="catalogue", curie=DCAT.curie('catalog'),
+ model_uri=COREMETA4CAT.catalogue, domain=None, range=Optional[str])
+
+slots.centroid = Slot(uri=DCAT.centroid, name="centroid", curie=DCAT.curie('centroid'),
+ model_uri=COREMETA4CAT.centroid, domain=None, range=Optional[str])
+
+slots.change_type = Slot(uri=ADMS.status, name="change_type", curie=ADMS.curie('status'),
+ model_uri=COREMETA4CAT.change_type, domain=None, range=Optional[str])
+
+slots.checksum = Slot(uri=SPDX.checksum, name="checksum", curie=SPDX.curie('checksum'),
+ model_uri=COREMETA4CAT.checksum, domain=None, range=Optional[str])
+
+slots.checksum_value = Slot(uri=SPDX.checksumValue, name="checksum_value", curie=SPDX.curie('checksumValue'),
+ model_uri=COREMETA4CAT.checksum_value, domain=None, range=Optional[str])
+
+slots.compression_format = Slot(uri=DCAT.compressFormat, name="compression_format", curie=DCAT.curie('compressFormat'),
+ model_uri=COREMETA4CAT.compression_format, domain=None, range=Optional[str])
+
+slots.conforms_to = Slot(uri=DCTERMS.conformsTo, name="conforms_to", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.conforms_to, domain=None, range=Optional[str])
+
+slots.contact_point = Slot(uri=DCAT.contactPoint, name="contact_point", curie=DCAT.curie('contactPoint'),
+ model_uri=COREMETA4CAT.contact_point, domain=None, range=Optional[str])
+
+slots.creator = Slot(uri=DCTERMS.creator, name="creator", curie=DCTERMS.curie('creator'),
+ model_uri=COREMETA4CAT.creator, domain=None, range=Optional[str])
+
+slots.dataset_distribution = Slot(uri=DCAT.distribution, name="dataset_distribution", curie=DCAT.curie('distribution'),
+ model_uri=COREMETA4CAT.dataset_distribution, domain=None, range=Optional[str])
+
+slots.description = Slot(uri=DCTERMS.description, name="description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.description, domain=None, range=Optional[str])
+
+slots.documentation = Slot(uri=FOAF.page, name="documentation", curie=FOAF.curie('page'),
+ model_uri=COREMETA4CAT.documentation, domain=None, range=Optional[str])
+
+slots.download_URL = Slot(uri=DCAT.downloadURL, name="download_URL", curie=DCAT.curie('downloadURL'),
+ model_uri=COREMETA4CAT.download_URL, domain=None, range=Optional[str])
+
+slots.end = Slot(uri=TIME.hasEnd, name="end", curie=TIME.curie('hasEnd'),
+ model_uri=COREMETA4CAT.end, domain=None, range=Optional[str])
+
+slots.end_date = Slot(uri=DCAT.endDate, name="end_date", curie=DCAT.curie('endDate'),
+ model_uri=COREMETA4CAT.end_date, domain=None, range=Optional[str])
+
+slots.endpoint_URL = Slot(uri=DCAT.endpointURL, name="endpoint_URL", curie=DCAT.curie('endpointURL'),
+ model_uri=COREMETA4CAT.endpoint_URL, domain=None, range=Optional[str])
+
+slots.endpoint_description = Slot(uri=DCAT.endpointDescription, name="endpoint_description", curie=DCAT.curie('endpointDescription'),
+ model_uri=COREMETA4CAT.endpoint_description, domain=None, range=Optional[str])
+
+slots.evaluated_activity = Slot(uri=PROV.wasInformedBy, name="evaluated_activity", curie=PROV.curie('wasInformedBy'),
+ model_uri=COREMETA4CAT.evaluated_activity, domain=None, range=Optional[Union[dict[Union[str, EvaluatedActivityId], Union[dict, EvaluatedActivity]], list[Union[dict, EvaluatedActivity]]]])
+
+slots.evaluated_entity = Slot(uri=PROV.used, name="evaluated_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.evaluated_entity, domain=None, range=Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, EvaluatedEntity]], list[Union[dict, EvaluatedEntity]]]])
+
+slots.format = Slot(uri=DCTERMS.format, name="format", curie=DCTERMS.curie('format'),
+ model_uri=COREMETA4CAT.format, domain=None, range=Optional[str])
+
+slots.frequency = Slot(uri=DCTERMS.accrualPeriodicity, name="frequency", curie=DCTERMS.curie('accrualPeriodicity'),
+ model_uri=COREMETA4CAT.frequency, domain=None, range=Optional[str])
+
+slots.geographical_coverage = Slot(uri=DCTERMS.spatial, name="geographical_coverage", curie=DCTERMS.curie('spatial'),
+ model_uri=COREMETA4CAT.geographical_coverage, domain=None, range=Optional[str])
+
+slots.geometry = Slot(uri=LOCN.geometry, name="geometry", curie=LOCN.curie('geometry'),
+ model_uri=COREMETA4CAT.geometry, domain=None, range=Optional[str])
+
+slots.had_input_activity = Slot(uri=PROV.wasInformedBy, name="had_input_activity", curie=PROV.curie('wasInformedBy'),
+ model_uri=COREMETA4CAT.had_input_activity, domain=None, range=Optional[Union[dict[Union[str, ActivityId], Union[dict, Activity]], list[Union[dict, Activity]]]])
+
+slots.had_input_entity = Slot(uri=PROV.used, name="had_input_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.had_input_entity, domain=None, range=Optional[Union[dict[Union[str, EntityId], Union[dict, Entity]], list[Union[dict, Entity]]]])
+
+slots.had_output_entity = Slot(uri=PROV.generated, name="had_output_entity", curie=PROV.curie('generated'),
+ model_uri=COREMETA4CAT.had_output_entity, domain=None, range=Optional[Union[dict[Union[str, EntityId], Union[dict, Entity]], list[Union[dict, Entity]]]])
+
+slots.had_role = Slot(uri=DCAT.hadRole, name="had_role", curie=DCAT.curie('hadRole'),
+ model_uri=COREMETA4CAT.had_role, domain=None, range=Optional[str])
+
+slots.has_dataset = Slot(uri=DCAT.dataset, name="has_dataset", curie=DCAT.curie('dataset'),
+ model_uri=COREMETA4CAT.has_dataset, domain=None, range=Optional[str])
+
+slots.has_part = Slot(uri=DCTERMS.hasPart, name="has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.has_part, domain=None, range=Optional[Union[str, ActivityId]])
+
+slots.has_policy = Slot(uri=ODRL.hasPolicy, name="has_policy", curie=ODRL.curie('hasPolicy'),
+ model_uri=COREMETA4CAT.has_policy, domain=None, range=Optional[str])
+
+slots.has_qualitative_attribute = Slot(uri=DCTERMS.relation, name="has_qualitative_attribute", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.has_qualitative_attribute, domain=None, range=Optional[Union[Union[dict, QualitativeAttribute], list[Union[dict, QualitativeAttribute]]]])
+
+slots.has_quantitative_attribute = Slot(uri=DCTERMS.relation, name="has_quantitative_attribute", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.has_quantitative_attribute, domain=None, range=Optional[Union[Union[dict, QuantitativeAttribute], list[Union[dict, QuantitativeAttribute]]]])
+
+slots.has_version = Slot(uri=DCAT.hasVersion, name="has_version", curie=DCAT.curie('hasVersion'),
+ model_uri=COREMETA4CAT.has_version, domain=None, range=Optional[str])
+
+slots.homepage = Slot(uri=FOAF.homepage, name="homepage", curie=FOAF.curie('homepage'),
+ model_uri=COREMETA4CAT.homepage, domain=None, range=Optional[str])
+
+slots.id = Slot(uri=DCATAPPLUS.id, name="id", curie=DCATAPPLUS.curie('id'),
+ model_uri=COREMETA4CAT.id, domain=None, range=URIRef)
+
+slots.identifier = Slot(uri=DCTERMS.identifier, name="identifier", curie=DCTERMS.curie('identifier'),
+ model_uri=COREMETA4CAT.identifier, domain=None, range=Optional[str])
+
+slots.in_series = Slot(uri=DCAT.inSeries, name="in_series", curie=DCAT.curie('inSeries'),
+ model_uri=COREMETA4CAT.in_series, domain=None, range=Optional[str])
+
+slots.is_about_activity = Slot(uri=DCTERMS.subject, name="is_about_activity", curie=DCTERMS.curie('subject'),
+ model_uri=COREMETA4CAT.is_about_activity, domain=None, range=Optional[Union[dict[Union[str, EvaluatedActivityId], Union[dict, EvaluatedActivity]], list[Union[dict, EvaluatedActivity]]]])
+
+slots.is_about_entity = Slot(uri=DCTERMS.subject, name="is_about_entity", curie=DCTERMS.curie('subject'),
+ model_uri=COREMETA4CAT.is_about_entity, domain=None, range=Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, EvaluatedEntity]], list[Union[dict, EvaluatedEntity]]]])
+
+slots.is_referenced_by = Slot(uri=DCTERMS.isReferencedBy, name="is_referenced_by", curie=DCTERMS.curie('isReferencedBy'),
+ model_uri=COREMETA4CAT.is_referenced_by, domain=None, range=Optional[str])
+
+slots.keyword = Slot(uri=DCAT.keyword, name="keyword", curie=DCAT.curie('keyword'),
+ model_uri=COREMETA4CAT.keyword, domain=None, range=Optional[str])
+
+slots.landing_page = Slot(uri=DCAT.landingPage, name="landing_page", curie=DCAT.curie('landingPage'),
+ model_uri=COREMETA4CAT.landing_page, domain=None, range=Optional[str])
+
+slots.language = Slot(uri=DCTERMS.language, name="language", curie=DCTERMS.curie('language'),
+ model_uri=COREMETA4CAT.language, domain=None, range=Optional[str])
+
+slots.licence = Slot(uri=DCTERMS.license, name="licence", curie=DCTERMS.curie('license'),
+ model_uri=COREMETA4CAT.licence, domain=None, range=Optional[str])
+
+slots.linked_schemas = Slot(uri=DCTERMS.conformsTo, name="linked_schemas", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.linked_schemas, domain=None, range=Optional[str])
+
+slots.listing_date = Slot(uri=DCTERMS.issued, name="listing_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.listing_date, domain=None, range=Optional[str])
+
+slots.media_type = Slot(uri=DCAT.mediaType, name="media_type", curie=DCAT.curie('mediaType'),
+ model_uri=COREMETA4CAT.media_type, domain=None, range=Optional[str])
+
+slots.modification_date = Slot(uri=DCTERMS.modified, name="modification_date", curie=DCTERMS.curie('modified'),
+ model_uri=COREMETA4CAT.modification_date, domain=None, range=Optional[str])
+
+slots.name = Slot(uri=FOAF.name, name="name", curie=FOAF.curie('name'),
+ model_uri=COREMETA4CAT.name, domain=None, range=Optional[str])
+
+slots.notation = Slot(uri=SKOS.notation, name="notation", curie=SKOS.curie('notation'),
+ model_uri=COREMETA4CAT.notation, domain=None, range=Optional[str])
+
+slots.occurred_in = Slot(uri=PROV.atLocation, name="occurred_in", curie=PROV.curie('atLocation'),
+ model_uri=COREMETA4CAT.occurred_in, domain=None, range=Optional[Union[dict, Surrounding]])
+
+slots.other_identifier = Slot(uri=ADMS.identifier, name="other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.other_identifier, domain=None, range=Optional[str])
+
+slots.packaging_format = Slot(uri=DCAT.packageFormat, name="packaging_format", curie=DCAT.curie('packageFormat'),
+ model_uri=COREMETA4CAT.packaging_format, domain=None, range=Optional[str])
+
+slots.part_of = Slot(uri=DCTERMS.isPartOf, name="part_of", curie=DCTERMS.curie('isPartOf'),
+ model_uri=COREMETA4CAT.part_of, domain=None, range=Optional[Union[str, ActivityId]])
+
+slots.preferred_label = Slot(uri=SKOS.prefLabel, name="preferred_label", curie=SKOS.curie('prefLabel'),
+ model_uri=COREMETA4CAT.preferred_label, domain=None, range=Optional[str])
+
+slots.primary_topic = Slot(uri=FOAF.primaryTopic, name="primary_topic", curie=FOAF.curie('primaryTopic'),
+ model_uri=COREMETA4CAT.primary_topic, domain=None, range=Optional[str])
+
+slots.provenance = Slot(uri=DCTERMS.provenance, name="provenance", curie=DCTERMS.curie('provenance'),
+ model_uri=COREMETA4CAT.provenance, domain=None, range=Optional[str])
+
+slots.publisher = Slot(uri=DCTERMS.publisher, name="publisher", curie=DCTERMS.curie('publisher'),
+ model_uri=COREMETA4CAT.publisher, domain=None, range=Optional[str])
+
+slots.qualified_attribution = Slot(uri=PROV.qualifiedAttribution, name="qualified_attribution", curie=PROV.curie('qualifiedAttribution'),
+ model_uri=COREMETA4CAT.qualified_attribution, domain=None, range=Optional[str])
+
+slots.qualified_relation = Slot(uri=DCAT.qualifiedRelation, name="qualified_relation", curie=DCAT.curie('qualifiedRelation'),
+ model_uri=COREMETA4CAT.qualified_relation, domain=None, range=Optional[str])
+
+slots.rdf_type = Slot(uri=RDF.type, name="rdf_type", curie=RDF.curie('type'),
+ model_uri=COREMETA4CAT.rdf_type, domain=None, range=Optional[Union[dict, DefinedTerm]])
+
+slots.realized_plan = Slot(uri=PROV.used, name="realized_plan", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.realized_plan, domain=None, range=Optional[Union[dict, Plan]])
+
+slots.record = Slot(uri=DCAT.record, name="record", curie=DCAT.curie('record'),
+ model_uri=COREMETA4CAT.record, domain=None, range=Optional[str])
+
+slots.related_resource = Slot(uri=DCTERMS.relation, name="related_resource", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.related_resource, domain=None, range=Optional[str])
+
+slots.relation = Slot(uri=DCTERMS.relation, name="relation", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.relation, domain=None, range=Optional[str])
+
+slots.release_date = Slot(uri=DCTERMS.issued, name="release_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.release_date, domain=None, range=Optional[str])
+
+slots.rights = Slot(uri=DCTERMS.rights, name="rights", curie=DCTERMS.curie('rights'),
+ model_uri=COREMETA4CAT.rights, domain=None, range=Optional[str])
+
+slots.sample = Slot(uri=ADMS.sample, name="sample", curie=ADMS.curie('sample'),
+ model_uri=COREMETA4CAT.sample, domain=None, range=Optional[str])
+
+slots.serves_dataset = Slot(uri=DCAT.servesDataset, name="serves_dataset", curie=DCAT.curie('servesDataset'),
+ model_uri=COREMETA4CAT.serves_dataset, domain=None, range=Optional[str])
+
+slots.service = Slot(uri=DCAT.service, name="service", curie=DCAT.curie('service'),
+ model_uri=COREMETA4CAT.service, domain=None, range=Optional[str])
+
+slots.source = Slot(uri=DCTERMS.source, name="source", curie=DCTERMS.curie('source'),
+ model_uri=COREMETA4CAT.source, domain=None, range=Optional[str])
+
+slots.source_metadata = Slot(uri=DCTERMS.source, name="source_metadata", curie=DCTERMS.curie('source'),
+ model_uri=COREMETA4CAT.source_metadata, domain=None, range=Optional[str])
+
+slots.spatial_resolution = Slot(uri=DCAT.spatialResolutionInMeters, name="spatial_resolution", curie=DCAT.curie('spatialResolutionInMeters'),
+ model_uri=COREMETA4CAT.spatial_resolution, domain=None, range=Optional[str])
+
+slots.start_date = Slot(uri=DCAT.startDate, name="start_date", curie=DCAT.curie('startDate'),
+ model_uri=COREMETA4CAT.start_date, domain=None, range=Optional[str])
+
+slots.status = Slot(uri=ADMS.status, name="status", curie=ADMS.curie('status'),
+ model_uri=COREMETA4CAT.status, domain=None, range=Optional[str])
+
+slots.temporal_coverage = Slot(uri=DCTERMS.temporal, name="temporal_coverage", curie=DCTERMS.curie('temporal'),
+ model_uri=COREMETA4CAT.temporal_coverage, domain=None, range=Optional[str])
+
+slots.temporal_resolution = Slot(uri=DCAT.temporalResolution, name="temporal_resolution", curie=DCAT.curie('temporalResolution'),
+ model_uri=COREMETA4CAT.temporal_resolution, domain=None, range=Optional[str])
+
+slots.theme = Slot(uri=DCAT.theme, name="theme", curie=DCAT.curie('theme'),
+ model_uri=COREMETA4CAT.theme, domain=None, range=Optional[str])
+
+slots.themes = Slot(uri=DCAT.themeTaxonomy, name="themes", curie=DCAT.curie('themeTaxonomy'),
+ model_uri=COREMETA4CAT.themes, domain=None, range=Optional[str])
+
+slots.title = Slot(uri=DCTERMS.title, name="title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.title, domain=None, range=Optional[str])
+
+slots.type = Slot(uri=DCTERMS.type, name="type", curie=DCTERMS.curie('type'),
+ model_uri=COREMETA4CAT.type, domain=None, range=Optional[str])
+
+slots.value = Slot(uri=PROV.value, name="value", curie=PROV.curie('value'),
+ model_uri=COREMETA4CAT.value, domain=None, range=Optional[str])
+
+slots.version = Slot(uri=DCAT.version, name="version", curie=DCAT.curie('version'),
+ model_uri=COREMETA4CAT.version, domain=None, range=Optional[str])
+
+slots.version_notes = Slot(uri=ADMS.versionNotes, name="version_notes", curie=ADMS.curie('versionNotes'),
+ model_uri=COREMETA4CAT.version_notes, domain=None, range=Optional[str])
+
+slots.was_generated_by = Slot(uri=PROV.wasGeneratedBy, name="was_generated_by", curie=PROV.curie('wasGeneratedBy'),
+ model_uri=COREMETA4CAT.was_generated_by, domain=None, range=Optional[str])
+
+slots.composed_of = Slot(uri=BFO['0000051'], name="composed_of", curie=BFO.curie('0000051'),
+ model_uri=COREMETA4CAT.composed_of, domain=None, range=Optional[Union[dict[Union[str, ChemicalEntityId], Union[dict, ChemicalEntity]], list[Union[dict, ChemicalEntity]]]])
+
+slots.has_concentration = Slot(uri=SIO['000008'], name="has_concentration", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_concentration, domain=None, range=Optional[Union[Union[dict, Concentration], list[Union[dict, Concentration]]]])
+
+slots.has_amount = Slot(uri=SIO['000008'], name="has_amount", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_amount, domain=None, range=Optional[Union[Union[dict, AmountOfSubstance], list[Union[dict, AmountOfSubstance]]]])
+
+slots.has_ph_value = Slot(uri=SIO['000008'], name="has_ph_value", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_ph_value, domain=None, range=Optional[Union[Union[dict, PHValue], list[Union[dict, PHValue]]]])
+
+slots.inchi = Slot(uri=SIO['000008'], name="inchi", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.inchi, domain=None, range=Optional[Union[Union[dict, InChi], list[Union[dict, InChi]]]])
+
+slots.inchikey = Slot(uri=SIO['000008'], name="inchikey", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.inchikey, domain=None, range=Optional[Union[Union[dict, InChIKey], list[Union[dict, InChIKey]]]])
+
+slots.smiles = Slot(uri=SIO['000008'], name="smiles", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.smiles, domain=None, range=Optional[Union[Union[dict, SMILES], list[Union[dict, SMILES]]]])
+
+slots.molecular_formula = Slot(uri=SIO['000008'], name="molecular_formula", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.molecular_formula, domain=None, range=Optional[Union[Union[dict, MolecularFormula], list[Union[dict, MolecularFormula]]]])
+
+slots.iupac_name = Slot(uri=SIO['000008'], name="iupac_name", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.iupac_name, domain=None, range=Optional[Union[Union[dict, IUPACName], list[Union[dict, IUPACName]]]])
+
+slots.has_molar_mass = Slot(uri=SIO['000008'], name="has_molar_mass", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_molar_mass, domain=None, range=Optional[Union[Union[dict, MolarMass], list[Union[dict, MolarMass]]]])
+
+slots.used_starting_material = Slot(uri=RO['0004009'], name="used_starting_material", curie=RO.curie('0004009'),
+ model_uri=COREMETA4CAT.used_starting_material, domain=None, range=Optional[Union[dict[Union[str, StartingMaterialId], Union[dict, StartingMaterial]], list[Union[dict, StartingMaterial]]]])
+
+slots.used_reactant = Slot(uri=RO['0004009'], name="used_reactant", curie=RO.curie('0004009'),
+ model_uri=COREMETA4CAT.used_reactant, domain=None, range=Optional[Union[dict[Union[str, ReagentId], Union[dict, Reagent]], list[Union[dict, Reagent]]]])
+
+slots.generated_product = Slot(uri=RO['0004008'], name="generated_product", curie=RO.curie('0004008'),
+ model_uri=COREMETA4CAT.generated_product, domain=None, range=Optional[Union[dict[Union[str, ChemicalProductId], Union[dict, ChemicalProduct]], list[Union[dict, ChemicalProduct]]]])
+
+slots.used_catalyst = Slot(uri=RXNO['0000425'], name="used_catalyst", curie=RXNO.curie('0000425'),
+ model_uri=COREMETA4CAT.used_catalyst, domain=None, range=Optional[Union[dict[Union[str, CatalystId], Union[dict, Catalyst]], list[Union[dict, Catalyst]]]])
+
+slots.used_solvent = Slot(uri=PROV.wasAssociatedWith, name="used_solvent", curie=PROV.curie('wasAssociatedWith'),
+ model_uri=COREMETA4CAT.used_solvent, domain=None, range=Optional[Union[dict[Union[str, DissolvingSubstanceId], Union[dict, DissolvingSubstance]], list[Union[dict, DissolvingSubstance]]]])
+
+slots.has_duration = Slot(uri=SCHEMA.duration, name="has_duration", curie=SCHEMA.curie('duration'),
+ model_uri=COREMETA4CAT.has_duration, domain=None, range=Optional[str])
+
+slots.used_reactor = Slot(uri=PROV.wasAssociatedWith, name="used_reactor", curie=PROV.curie('wasAssociatedWith'),
+ model_uri=COREMETA4CAT.used_reactor, domain=None, range=Optional[Union[dict[Union[str, ReactorId], Union[dict, Reactor]], list[Union[dict, Reactor]]]])
+
+slots.has_yield = Slot(uri=SIO['000008'], name="has_yield", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_yield, domain=None, range=Optional[Union[Union[dict, Yield], list[Union[dict, Yield]]]])
+
+slots.has_molar_equivalent = Slot(uri=SIO['000008'], name="has_molar_equivalent", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_molar_equivalent, domain=None, range=Optional[Union[Union[dict, MolarEquivalent], list[Union[dict, MolarEquivalent]]]])
+
+slots.has_percentage_of_total = Slot(uri=SIO['000008'], name="has_percentage_of_total", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_percentage_of_total, domain=None, range=Optional[Union[Union[dict, PercentageOfTotal], list[Union[dict, PercentageOfTotal]]]])
+
+slots.has_reaction_step = Slot(uri=BFO['0000051'], name="has_reaction_step", curie=BFO.curie('0000051'),
+ model_uri=COREMETA4CAT.has_reaction_step, domain=None, range=Optional[Union[str, ChemicalReactionId]])
+
+slots.alternative_label = Slot(uri=SKOS.altLabel, name="alternative_label", curie=SKOS.curie('altLabel'),
+ model_uri=COREMETA4CAT.alternative_label, domain=None, range=Optional[str])
+
+slots.has_physical_state = Slot(uri=SIO['000008'], name="has_physical_state", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_physical_state, domain=None, range=Optional[Union[str, "PhysicalStateEnum"]])
+
+slots.has_temperature = Slot(uri=SIO['000008'], name="has_temperature", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_temperature, domain=None, range=Optional[Union[Union[dict, Temperature], list[Union[dict, Temperature]]]])
+
+slots.has_mass = Slot(uri=SIO['000008'], name="has_mass", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_mass, domain=None, range=Optional[Union[Union[dict, Mass], list[Union[dict, Mass]]]])
+
+slots.has_volume = Slot(uri=SIO['000008'], name="has_volume", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_volume, domain=None, range=Optional[Union[Union[dict, Volume], list[Union[dict, Volume]]]])
+
+slots.has_density = Slot(uri=SIO['000008'], name="has_density", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_density, domain=None, range=Optional[Union[Union[dict, Density], list[Union[dict, Density]]]])
+
+slots.has_pressure = Slot(uri=SIO['000008'], name="has_pressure", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.has_pressure, domain=None, range=Optional[Union[Union[dict, Pressure], list[Union[dict, Pressure]]]])
+
+slots.derived_from = Slot(uri=PROV.wasDerivedFrom, name="derived_from", curie=PROV.curie('wasDerivedFrom'),
+ model_uri=COREMETA4CAT.derived_from, domain=None, range=Optional[Union[dict, Entity]])
+
+slots.definedTerm__from_CV = Slot(uri=SCHEMA.inDefinedTermSet, name="definedTerm__from_CV", curie=SCHEMA.curie('inDefinedTermSet'),
+ model_uri=COREMETA4CAT.definedTerm__from_CV, domain=None, range=Optional[Union[str, URIorCURIE]])
+
+slots.quantitativeAttribute__has_quantity_type = Slot(uri=QUDT.hasQuantityKind, name="quantitativeAttribute__has_quantity_type", curie=QUDT.curie('hasQuantityKind'),
+ model_uri=COREMETA4CAT.quantitativeAttribute__has_quantity_type, domain=None, range=Union[str, DefinedTermId])
+
+slots.quantitativeAttribute__unit = Slot(uri=QUDT.unit, name="quantitativeAttribute__unit", curie=QUDT.curie('unit'),
+ model_uri=COREMETA4CAT.quantitativeAttribute__unit, domain=None, range=Optional[Union[str, DefinedTermId]])
+
+slots.product_identification_method = Slot(uri=COREMETA4CAT.product_identification_method, name="product_identification_method", curie=COREMETA4CAT.curie('product_identification_method'),
+ model_uri=COREMETA4CAT.product_identification_method, domain=None, range=Union[Union[dict, ProductIdentificationMethod], list[Union[dict, ProductIdentificationMethod]]])
+
+slots.CatalysisDataset_rdf_type = Slot(uri=RDF.type, name="CatalysisDataset_rdf_type", curie=RDF.curie('type'),
+ model_uri=COREMETA4CAT.CatalysisDataset_rdf_type, domain=CatalysisDataset, range=Optional[Union[dict, "DefinedTerm"]])
+
+slots.CatalysisDataset_was_generated_by = Slot(uri=PROV.wasGeneratedBy, name="CatalysisDataset_was_generated_by", curie=PROV.curie('wasGeneratedBy'),
+ model_uri=COREMETA4CAT.CatalysisDataset_was_generated_by, domain=CatalysisDataset, range=Optional[Union[dict[Union[str, DataGeneratingActivityId], Union[dict, DataGeneratingActivity]], list[Union[dict, DataGeneratingActivity]]]])
+
+slots.CatalysisDataset_is_about_activity = Slot(uri=DCTERMS.subject, name="CatalysisDataset_is_about_activity", curie=DCTERMS.curie('subject'),
+ model_uri=COREMETA4CAT.CatalysisDataset_is_about_activity, domain=CatalysisDataset, range=Optional[Union[dict[Union[str, EvaluatedActivityId], Union[dict, "EvaluatedActivity"]], list[Union[dict, "EvaluatedActivity"]]]])
+
+slots.CatalysisDataset_is_about_entity = Slot(uri=DCTERMS.subject, name="CatalysisDataset_is_about_entity", curie=DCTERMS.curie('subject'),
+ model_uri=COREMETA4CAT.CatalysisDataset_is_about_entity, domain=CatalysisDataset, range=Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]])
+
+slots.Synthesis_nominal_composition = Slot(uri=COREMETA4CAT.nominal_composition, name="Synthesis_nominal_composition", curie=COREMETA4CAT.curie('nominal_composition'),
+ model_uri=COREMETA4CAT.Synthesis_nominal_composition, domain=Synthesis, range=Union[str, list[str]])
+
+slots.Synthesis_catalyst_measured_properties = Slot(uri=COREMETA4CAT.catalyst_measured_properties, name="Synthesis_catalyst_measured_properties", curie=COREMETA4CAT.curie('catalyst_measured_properties'),
+ model_uri=COREMETA4CAT.Synthesis_catalyst_measured_properties, domain=Synthesis, range=Union[str, list[str]])
+
+slots.Synthesis_had_input_entity = Slot(uri=PROV.used, name="Synthesis_had_input_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Synthesis_had_input_entity, domain=Synthesis, range=Union[dict[Union[str, PrecursorId], Union[dict, "Precursor"]], list[Union[dict, "Precursor"]]])
+
+slots.Synthesis_had_output_entity = Slot(uri=PROV.generated, name="Synthesis_had_output_entity", curie=PROV.curie('generated'),
+ model_uri=COREMETA4CAT.Synthesis_had_output_entity, domain=Synthesis, range=Optional[Union[dict[Union[str, CatalystSampleId], Union[dict, "CatalystSample"]], list[Union[dict, "CatalystSample"]]]])
+
+slots.Synthesis_realized_plan = Slot(uri=PROV.used, name="Synthesis_realized_plan", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Synthesis_realized_plan, domain=Synthesis, range=Union[dict, "PreparationMethod"])
+
+slots.Synthesis_storage_conditions = Slot(uri=COREMETA4CAT.storage_conditions, name="Synthesis_storage_conditions", curie=COREMETA4CAT.curie('storage_conditions'),
+ model_uri=COREMETA4CAT.Synthesis_storage_conditions, domain=Synthesis, range=Optional[Union[str, list[str]]])
+
+slots.Precursor_precursor_quantity = Slot(uri=COREMETA4CAT.precursor_quantity, name="Precursor_precursor_quantity", curie=COREMETA4CAT.curie('precursor_quantity'),
+ model_uri=COREMETA4CAT.Precursor_precursor_quantity, domain=Precursor, range=Union[float, list[float]])
+
+slots.CatalystSample_derived_from = Slot(uri=PROV.wasDerivedFrom, name="CatalystSample_derived_from", curie=PROV.curie('wasDerivedFrom'),
+ model_uri=COREMETA4CAT.CatalystSample_derived_from, domain=CatalystSample, range=Optional[Union[dict, MaterialSample]])
+
+slots.Characterization_equipment = Slot(uri=VOC4CAT['0000187'], name="Characterization_equipment", curie=VOC4CAT.curie('0000187'),
+ model_uri=COREMETA4CAT.Characterization_equipment, domain=Characterization, range=Union[str, list[str]])
+
+slots.Characterization_evaluated_entity = Slot(uri=PROV.used, name="Characterization_evaluated_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Characterization_evaluated_entity, domain=Characterization, range=Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]])
+
+slots.Characterization_realized_plan = Slot(uri=PROV.used, name="Characterization_realized_plan", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Characterization_realized_plan, domain=Characterization, range=Union[dict, "CharacterizationTechnique"])
+
+slots.Characterization_rdf_type = Slot(uri=RDF.type, name="Characterization_rdf_type", curie=RDF.curie('type'),
+ model_uri=COREMETA4CAT.Characterization_rdf_type, domain=Characterization, range=Optional[Union[dict, "DefinedTerm"]])
+
+slots.Reaction_rdf_type = Slot(uri=RDF.type, name="Reaction_rdf_type", curie=RDF.curie('type'),
+ model_uri=COREMETA4CAT.Reaction_rdf_type, domain=Reaction, range=Optional[Union[dict, DefinedTerm]])
+
+slots.Reaction_carried_out_by = Slot(uri=PROV.wasAssociatedWith, name="Reaction_carried_out_by", curie=PROV.curie('wasAssociatedWith'),
+ model_uri=COREMETA4CAT.Reaction_carried_out_by, domain=Reaction, range=Union[dict[Union[str, ReactorDesignTypeId], Union[dict, ReactorDesignType]], list[Union[dict, ReactorDesignType]]])
+
+slots.Reaction_had_input_entity = Slot(uri=PROV.used, name="Reaction_had_input_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Reaction_had_input_entity, domain=Reaction, range=Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]])
+
+slots.Reaction_product_identification_method = Slot(uri=COREMETA4CAT.product_identification_method, name="Reaction_product_identification_method", curie=COREMETA4CAT.curie('product_identification_method'),
+ model_uri=COREMETA4CAT.Reaction_product_identification_method, domain=Reaction, range=Union[Union[dict, "ProductIdentificationMethod"], list[Union[dict, "ProductIdentificationMethod"]]])
+
+slots.Simulation_rdf_type = Slot(uri=RDF.type, name="Simulation_rdf_type", curie=RDF.curie('type'),
+ model_uri=COREMETA4CAT.Simulation_rdf_type, domain=Simulation, range=Optional[Union[dict, "DefinedTerm"]])
+
+slots.Simulation_realized_plan = Slot(uri=PROV.used, name="Simulation_realized_plan", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Simulation_realized_plan, domain=Simulation, range=Union[Union[dict, "SimulationMethod"], list[Union[dict, "SimulationMethod"]]])
+
+slots.Simulation_carried_out_by = Slot(uri=PROV.wasAssociatedWith, name="Simulation_carried_out_by", curie=PROV.curie('wasAssociatedWith'),
+ model_uri=COREMETA4CAT.Simulation_carried_out_by, domain=Simulation, range=Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, AgenticEntity]], list[Union[dict, AgenticEntity]]]])
+
+slots.Simulation_evaluated_entity = Slot(uri=PROV.used, name="Simulation_evaluated_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Simulation_evaluated_entity, domain=Simulation, range=Optional[Union[dict[Union[str, EvaluatedEntityId], Union[dict, "EvaluatedEntity"]], list[Union[dict, "EvaluatedEntity"]]]])
+
+slots.Activity_title = Slot(uri=DCTERMS.title, name="Activity_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.Activity_title, domain=Activity, range=Optional[Union[str, list[str]]])
+
+slots.Activity_description = Slot(uri=DCTERMS.description, name="Activity_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.Activity_description, domain=Activity, range=Optional[Union[str, list[str]]])
+
+slots.Activity_has_part = Slot(uri=DCTERMS.hasPart, name="Activity_has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.Activity_has_part, domain=Activity, range=Optional[Union[dict[Union[str, ActivityId], Union[dict, "Activity"]], list[Union[dict, "Activity"]]]])
+
+slots.Activity_part_of = Slot(uri=DCTERMS.isPartOf, name="Activity_part_of", curie=DCTERMS.curie('isPartOf'),
+ model_uri=COREMETA4CAT.Activity_part_of, domain=Activity, range=Optional[Union[dict[Union[str, ActivityId], Union[dict, "Activity"]], list[Union[dict, "Activity"]]]])
+
+slots.Activity_other_identifier = Slot(uri=ADMS.identifier, name="Activity_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.Activity_other_identifier, domain=Activity, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.Activity_has_qualitative_attribute = Slot(uri=DCTERMS.relation, name="Activity_has_qualitative_attribute", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.Activity_has_qualitative_attribute, domain=Activity, range=Optional[Union[Union[dict, "QualitativeAttribute"], list[Union[dict, "QualitativeAttribute"]]]])
+
+slots.Activity_has_quantitative_attribute = Slot(uri=DCTERMS.relation, name="Activity_has_quantitative_attribute", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.Activity_has_quantitative_attribute, domain=Activity, range=Optional[Union[Union[dict, "QuantitativeAttribute"], list[Union[dict, "QuantitativeAttribute"]]]])
+
+slots.Activity_had_input_entity = Slot(uri=PROV.used, name="Activity_had_input_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.Activity_had_input_entity, domain=Activity, range=Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]])
+
+slots.Activity_had_output_entity = Slot(uri=PROV.generated, name="Activity_had_output_entity", curie=PROV.curie('generated'),
+ model_uri=COREMETA4CAT.Activity_had_output_entity, domain=Activity, range=Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]])
+
+slots.Activity_had_input_activity = Slot(uri=PROV.wasInformedBy, name="Activity_had_input_activity", curie=PROV.curie('wasInformedBy'),
+ model_uri=COREMETA4CAT.Activity_had_input_activity, domain=Activity, range=Optional[Union[dict[Union[str, ActivityId], Union[dict, "Activity"]], list[Union[dict, "Activity"]]]])
+
+slots.Activity_carried_out_by = Slot(uri=PROV.wasAssociatedWith, name="Activity_carried_out_by", curie=PROV.curie('wasAssociatedWith'),
+ model_uri=COREMETA4CAT.Activity_carried_out_by, domain=Activity, range=Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, "AgenticEntity"]], list[Union[dict, "AgenticEntity"]]]])
+
+slots.Agent_name = Slot(uri=FOAF.name, name="Agent_name", curie=FOAF.curie('name'),
+ model_uri=COREMETA4CAT.Agent_name, domain=Agent, range=Union[str, list[str]])
+
+slots.Agent_type = Slot(uri=DCTERMS.type, name="Agent_type", curie=DCTERMS.curie('type'),
+ model_uri=COREMETA4CAT.Agent_type, domain=Agent, range=Optional[Union[dict, "Concept"]])
+
+slots.AgenticEntity_has_part = Slot(uri=DCTERMS.hasPart, name="AgenticEntity_has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.AgenticEntity_has_part, domain=AgenticEntity, range=Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, "AgenticEntity"]], list[Union[dict, "AgenticEntity"]]]])
+
+slots.AgenticEntity_part_of = Slot(uri=DCTERMS.isPartOf, name="AgenticEntity_part_of", curie=DCTERMS.curie('isPartOf'),
+ model_uri=COREMETA4CAT.AgenticEntity_part_of, domain=AgenticEntity, range=Optional[Union[dict[Union[str, AgenticEntityId], Union[dict, "AgenticEntity"]], list[Union[dict, "AgenticEntity"]]]])
+
+slots.AgenticEntity_other_identifier = Slot(uri=ADMS.identifier, name="AgenticEntity_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.AgenticEntity_other_identifier, domain=AgenticEntity, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.AnalysisDataset_was_generated_by = Slot(uri=PROV.wasGeneratedBy, name="AnalysisDataset_was_generated_by", curie=PROV.curie('wasGeneratedBy'),
+ model_uri=COREMETA4CAT.AnalysisDataset_was_generated_by, domain=AnalysisDataset, range=Optional[Union[dict[Union[str, DataAnalysisId], Union[dict, DataAnalysis]], list[Union[dict, DataAnalysis]]]])
+
+slots.AnalysisSourceData_was_generated_by = Slot(uri=PROV.wasGeneratedBy, name="AnalysisSourceData_was_generated_by", curie=PROV.curie('wasGeneratedBy'),
+ model_uri=COREMETA4CAT.AnalysisSourceData_was_generated_by, domain=AnalysisSourceData, range=Optional[Union[dict[Union[str, DataGeneratingActivityId], Union[dict, DataGeneratingActivity]], list[Union[dict, DataGeneratingActivity]]]])
+
+slots.Catalogue_applicable_legislation = Slot(uri=DCATAP.applicableLegislation, name="Catalogue_applicable_legislation", curie=DCATAP.curie('applicableLegislation'),
+ model_uri=COREMETA4CAT.Catalogue_applicable_legislation, domain=Catalogue, range=Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]])
+
+slots.Catalogue_catalogue = Slot(uri=DCAT.catalog, name="Catalogue_catalogue", curie=DCAT.curie('catalog'),
+ model_uri=COREMETA4CAT.Catalogue_catalogue, domain=Catalogue, range=Optional[Union[Union[dict, "Catalogue"], list[Union[dict, "Catalogue"]]]])
+
+slots.Catalogue_creator = Slot(uri=DCTERMS.creator, name="Catalogue_creator", curie=DCTERMS.curie('creator'),
+ model_uri=COREMETA4CAT.Catalogue_creator, domain=Catalogue, range=Optional[Union[dict, Agent]])
+
+slots.Catalogue_description = Slot(uri=DCTERMS.description, name="Catalogue_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.Catalogue_description, domain=Catalogue, range=Union[str, list[str]])
+
+slots.Catalogue_geographical_coverage = Slot(uri=DCTERMS.spatial, name="Catalogue_geographical_coverage", curie=DCTERMS.curie('spatial'),
+ model_uri=COREMETA4CAT.Catalogue_geographical_coverage, domain=Catalogue, range=Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]])
+
+slots.Catalogue_has_dataset = Slot(uri=DCAT.dataset, name="Catalogue_has_dataset", curie=DCAT.curie('dataset'),
+ model_uri=COREMETA4CAT.Catalogue_has_dataset, domain=Catalogue, range=Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]])
+
+slots.Catalogue_has_part = Slot(uri=DCTERMS.hasPart, name="Catalogue_has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.Catalogue_has_part, domain=Catalogue, range=Optional[Union[Union[dict, "Catalogue"], list[Union[dict, "Catalogue"]]]])
+
+slots.Catalogue_homepage = Slot(uri=FOAF.homepage, name="Catalogue_homepage", curie=FOAF.curie('homepage'),
+ model_uri=COREMETA4CAT.Catalogue_homepage, domain=Catalogue, range=Optional[Union[dict, "Document"]])
+
+slots.Catalogue_language = Slot(uri=DCTERMS.language, name="Catalogue_language", curie=DCTERMS.curie('language'),
+ model_uri=COREMETA4CAT.Catalogue_language, domain=Catalogue, range=Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]])
+
+slots.Catalogue_licence = Slot(uri=DCTERMS.license, name="Catalogue_licence", curie=DCTERMS.curie('license'),
+ model_uri=COREMETA4CAT.Catalogue_licence, domain=Catalogue, range=Optional[Union[dict, "LicenseDocument"]])
+
+slots.Catalogue_modification_date = Slot(uri=DCTERMS.modified, name="Catalogue_modification_date", curie=DCTERMS.curie('modified'),
+ model_uri=COREMETA4CAT.Catalogue_modification_date, domain=Catalogue, range=Optional[Union[str, XSDDate]])
+
+slots.Catalogue_publisher = Slot(uri=DCTERMS.publisher, name="Catalogue_publisher", curie=DCTERMS.curie('publisher'),
+ model_uri=COREMETA4CAT.Catalogue_publisher, domain=Catalogue, range=Union[dict, Agent])
+
+slots.Catalogue_record = Slot(uri=DCAT.record, name="Catalogue_record", curie=DCAT.curie('record'),
+ model_uri=COREMETA4CAT.Catalogue_record, domain=Catalogue, range=Optional[Union[Union[dict, "CatalogueRecord"], list[Union[dict, "CatalogueRecord"]]]])
+
+slots.Catalogue_release_date = Slot(uri=DCTERMS.issued, name="Catalogue_release_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.Catalogue_release_date, domain=Catalogue, range=Optional[Union[str, XSDDate]])
+
+slots.Catalogue_rights = Slot(uri=DCTERMS.rights, name="Catalogue_rights", curie=DCTERMS.curie('rights'),
+ model_uri=COREMETA4CAT.Catalogue_rights, domain=Catalogue, range=Optional[Union[dict, "RightsStatement"]])
+
+slots.Catalogue_service = Slot(uri=DCAT.service, name="Catalogue_service", curie=DCAT.curie('service'),
+ model_uri=COREMETA4CAT.Catalogue_service, domain=Catalogue, range=Optional[Union[Union[dict, "DataService"], list[Union[dict, "DataService"]]]])
+
+slots.Catalogue_temporal_coverage = Slot(uri=DCTERMS.temporal, name="Catalogue_temporal_coverage", curie=DCTERMS.curie('temporal'),
+ model_uri=COREMETA4CAT.Catalogue_temporal_coverage, domain=Catalogue, range=Optional[Union[Union[dict, "PeriodOfTime"], list[Union[dict, "PeriodOfTime"]]]])
+
+slots.Catalogue_themes = Slot(uri=DCAT.themeTaxonomy, name="Catalogue_themes", curie=DCAT.curie('themeTaxonomy'),
+ model_uri=COREMETA4CAT.Catalogue_themes, domain=Catalogue, range=Optional[Union[Union[dict, "ConceptScheme"], list[Union[dict, "ConceptScheme"]]]])
+
+slots.Catalogue_title = Slot(uri=DCTERMS.title, name="Catalogue_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.Catalogue_title, domain=Catalogue, range=Union[str, list[str]])
+
+slots.CatalogueRecord_application_profile = Slot(uri=DCTERMS.conformsTo, name="CatalogueRecord_application_profile", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.CatalogueRecord_application_profile, domain=CatalogueRecord, range=Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]])
+
+slots.CatalogueRecord_change_type = Slot(uri=ADMS.status, name="CatalogueRecord_change_type", curie=ADMS.curie('status'),
+ model_uri=COREMETA4CAT.CatalogueRecord_change_type, domain=CatalogueRecord, range=Optional[Union[dict, "Concept"]])
+
+slots.CatalogueRecord_description = Slot(uri=DCTERMS.description, name="CatalogueRecord_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.CatalogueRecord_description, domain=CatalogueRecord, range=Optional[Union[str, list[str]]])
+
+slots.CatalogueRecord_language = Slot(uri=DCTERMS.language, name="CatalogueRecord_language", curie=DCTERMS.curie('language'),
+ model_uri=COREMETA4CAT.CatalogueRecord_language, domain=CatalogueRecord, range=Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]])
+
+slots.CatalogueRecord_listing_date = Slot(uri=DCTERMS.issued, name="CatalogueRecord_listing_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.CatalogueRecord_listing_date, domain=CatalogueRecord, range=Optional[Union[str, XSDDate]])
+
+slots.CatalogueRecord_modification_date = Slot(uri=DCTERMS.modified, name="CatalogueRecord_modification_date", curie=DCTERMS.curie('modified'),
+ model_uri=COREMETA4CAT.CatalogueRecord_modification_date, domain=CatalogueRecord, range=Union[str, XSDDate])
+
+slots.CatalogueRecord_primary_topic = Slot(uri=FOAF.primaryTopic, name="CatalogueRecord_primary_topic", curie=FOAF.curie('primaryTopic'),
+ model_uri=COREMETA4CAT.CatalogueRecord_primary_topic, domain=CatalogueRecord, range=Union[dict, Any])
+
+slots.CatalogueRecord_source_metadata = Slot(uri=DCTERMS.source, name="CatalogueRecord_source_metadata", curie=DCTERMS.curie('source'),
+ model_uri=COREMETA4CAT.CatalogueRecord_source_metadata, domain=CatalogueRecord, range=Optional[Union[dict, "CatalogueRecord"]])
+
+slots.CatalogueRecord_title = Slot(uri=DCTERMS.title, name="CatalogueRecord_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.CatalogueRecord_title, domain=CatalogueRecord, range=Optional[Union[str, list[str]]])
+
+slots.Checksum_algorithm = Slot(uri=SPDX.algorithm, name="Checksum_algorithm", curie=SPDX.curie('algorithm'),
+ model_uri=COREMETA4CAT.Checksum_algorithm, domain=Checksum, range=Union[dict, "ChecksumAlgorithm"])
+
+slots.Checksum_checksum_value = Slot(uri=SPDX.checksumValue, name="Checksum_checksum_value", curie=SPDX.curie('checksumValue'),
+ model_uri=COREMETA4CAT.Checksum_checksum_value, domain=Checksum, range=str)
+
+slots.ClassifierMixin_type = Slot(uri=DCTERMS.type, name="ClassifierMixin_type", curie=DCTERMS.curie('type'),
+ model_uri=COREMETA4CAT.ClassifierMixin_type, domain=None, range=Optional[Union[dict, "DefinedTerm"]])
+
+slots.Concept_preferred_label = Slot(uri=SKOS.prefLabel, name="Concept_preferred_label", curie=SKOS.curie('prefLabel'),
+ model_uri=COREMETA4CAT.Concept_preferred_label, domain=Concept, range=Union[str, list[str]])
+
+slots.ConceptScheme_title = Slot(uri=DCTERMS.title, name="ConceptScheme_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.ConceptScheme_title, domain=ConceptScheme, range=Union[str, list[str]])
+
+slots.DataAnalysis_evaluated_entity = Slot(uri=PROV.used, name="DataAnalysis_evaluated_entity", curie=PROV.curie('used'),
+ model_uri=COREMETA4CAT.DataAnalysis_evaluated_entity, domain=DataAnalysis, range=Optional[Union[dict[Union[str, AnalysisSourceDataId], Union[dict, "AnalysisSourceData"]], list[Union[dict, "AnalysisSourceData"]]]])
+
+slots.DataService_access_rights = Slot(uri=DCTERMS.accessRights, name="DataService_access_rights", curie=DCTERMS.curie('accessRights'),
+ model_uri=COREMETA4CAT.DataService_access_rights, domain=DataService, range=Optional[Union[dict, "RightsStatement"]])
+
+slots.DataService_applicable_legislation = Slot(uri=DCATAP.applicableLegislation, name="DataService_applicable_legislation", curie=DCATAP.curie('applicableLegislation'),
+ model_uri=COREMETA4CAT.DataService_applicable_legislation, domain=DataService, range=Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]])
+
+slots.DataService_conforms_to = Slot(uri=DCTERMS.conformsTo, name="DataService_conforms_to", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.DataService_conforms_to, domain=DataService, range=Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]])
+
+slots.DataService_contact_point = Slot(uri=DCAT.contactPoint, name="DataService_contact_point", curie=DCAT.curie('contactPoint'),
+ model_uri=COREMETA4CAT.DataService_contact_point, domain=DataService, range=Optional[Union[Union[dict, "Kind"], list[Union[dict, "Kind"]]]])
+
+slots.DataService_description = Slot(uri=DCTERMS.description, name="DataService_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.DataService_description, domain=DataService, range=Optional[Union[str, list[str]]])
+
+slots.DataService_documentation = Slot(uri=FOAF.page, name="DataService_documentation", curie=FOAF.curie('page'),
+ model_uri=COREMETA4CAT.DataService_documentation, domain=DataService, range=Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]])
+
+slots.DataService_endpoint_URL = Slot(uri=DCAT.endpointURL, name="DataService_endpoint_URL", curie=DCAT.curie('endpointURL'),
+ model_uri=COREMETA4CAT.DataService_endpoint_URL, domain=DataService, range=Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]])
+
+slots.DataService_endpoint_description = Slot(uri=DCAT.endpointDescription, name="DataService_endpoint_description", curie=DCAT.curie('endpointDescription'),
+ model_uri=COREMETA4CAT.DataService_endpoint_description, domain=DataService, range=Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]])
+
+slots.DataService_format = Slot(uri=DCTERMS.format, name="DataService_format", curie=DCTERMS.curie('format'),
+ model_uri=COREMETA4CAT.DataService_format, domain=DataService, range=Optional[Union[Union[dict, "MediaTypeOrExtent"], list[Union[dict, "MediaTypeOrExtent"]]]])
+
+slots.DataService_keyword = Slot(uri=DCAT.keyword, name="DataService_keyword", curie=DCAT.curie('keyword'),
+ model_uri=COREMETA4CAT.DataService_keyword, domain=DataService, range=Optional[Union[str, list[str]]])
+
+slots.DataService_landing_page = Slot(uri=DCAT.landingPage, name="DataService_landing_page", curie=DCAT.curie('landingPage'),
+ model_uri=COREMETA4CAT.DataService_landing_page, domain=DataService, range=Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]])
+
+slots.DataService_licence = Slot(uri=DCTERMS.license, name="DataService_licence", curie=DCTERMS.curie('license'),
+ model_uri=COREMETA4CAT.DataService_licence, domain=DataService, range=Optional[Union[dict, "LicenseDocument"]])
+
+slots.DataService_publisher = Slot(uri=DCTERMS.publisher, name="DataService_publisher", curie=DCTERMS.curie('publisher'),
+ model_uri=COREMETA4CAT.DataService_publisher, domain=DataService, range=Optional[Union[dict, Agent]])
+
+slots.DataService_serves_dataset = Slot(uri=DCAT.servesDataset, name="DataService_serves_dataset", curie=DCAT.curie('servesDataset'),
+ model_uri=COREMETA4CAT.DataService_serves_dataset, domain=DataService, range=Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]])
+
+slots.DataService_theme = Slot(uri=DCAT.theme, name="DataService_theme", curie=DCAT.curie('theme'),
+ model_uri=COREMETA4CAT.DataService_theme, domain=DataService, range=Optional[Union[Union[dict, "Concept"], list[Union[dict, "Concept"]]]])
+
+slots.DataService_title = Slot(uri=DCTERMS.title, name="DataService_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.DataService_title, domain=DataService, range=Union[str, list[str]])
+
+slots.Dataset_access_rights = Slot(uri=DCTERMS.accessRights, name="Dataset_access_rights", curie=DCTERMS.curie('accessRights'),
+ model_uri=COREMETA4CAT.Dataset_access_rights, domain=Dataset, range=Optional[Union[dict, "RightsStatement"]])
+
+slots.Dataset_applicable_legislation = Slot(uri=DCATAP.applicableLegislation, name="Dataset_applicable_legislation", curie=DCATAP.curie('applicableLegislation'),
+ model_uri=COREMETA4CAT.Dataset_applicable_legislation, domain=Dataset, range=Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]])
+
+slots.Dataset_conforms_to = Slot(uri=DCTERMS.conformsTo, name="Dataset_conforms_to", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.Dataset_conforms_to, domain=Dataset, range=Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]])
+
+slots.Dataset_contact_point = Slot(uri=DCAT.contactPoint, name="Dataset_contact_point", curie=DCAT.curie('contactPoint'),
+ model_uri=COREMETA4CAT.Dataset_contact_point, domain=Dataset, range=Optional[Union[Union[dict, "Kind"], list[Union[dict, "Kind"]]]])
+
+slots.Dataset_creator = Slot(uri=DCTERMS.creator, name="Dataset_creator", curie=DCTERMS.curie('creator'),
+ model_uri=COREMETA4CAT.Dataset_creator, domain=Dataset, range=Optional[Union[Union[dict, Agent], list[Union[dict, Agent]]]])
+
+slots.Dataset_dataset_distribution = Slot(uri=DCAT.distribution, name="Dataset_dataset_distribution", curie=DCAT.curie('distribution'),
+ model_uri=COREMETA4CAT.Dataset_dataset_distribution, domain=Dataset, range=Optional[Union[Union[dict, "Distribution"], list[Union[dict, "Distribution"]]]])
+
+slots.Dataset_description = Slot(uri=DCTERMS.description, name="Dataset_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.Dataset_description, domain=Dataset, range=Union[str, list[str]])
+
+slots.Dataset_documentation = Slot(uri=FOAF.page, name="Dataset_documentation", curie=FOAF.curie('page'),
+ model_uri=COREMETA4CAT.Dataset_documentation, domain=Dataset, range=Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]])
+
+slots.Dataset_frequency = Slot(uri=DCTERMS.accrualPeriodicity, name="Dataset_frequency", curie=DCTERMS.curie('accrualPeriodicity'),
+ model_uri=COREMETA4CAT.Dataset_frequency, domain=Dataset, range=Optional[Union[dict, "Frequency"]])
+
+slots.Dataset_geographical_coverage = Slot(uri=DCTERMS.spatial, name="Dataset_geographical_coverage", curie=DCTERMS.curie('spatial'),
+ model_uri=COREMETA4CAT.Dataset_geographical_coverage, domain=Dataset, range=Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]])
+
+slots.Dataset_has_version = Slot(uri=DCAT.hasVersion, name="Dataset_has_version", curie=DCAT.curie('hasVersion'),
+ model_uri=COREMETA4CAT.Dataset_has_version, domain=Dataset, range=Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]])
+
+slots.Dataset_identifier = Slot(uri=DCTERMS.identifier, name="Dataset_identifier", curie=DCTERMS.curie('identifier'),
+ model_uri=COREMETA4CAT.Dataset_identifier, domain=Dataset, range=Optional[Union[str, list[str]]])
+
+slots.Dataset_in_series = Slot(uri=DCAT.inSeries, name="Dataset_in_series", curie=DCAT.curie('inSeries'),
+ model_uri=COREMETA4CAT.Dataset_in_series, domain=Dataset, range=Optional[Union[Union[dict, "DatasetSeries"], list[Union[dict, "DatasetSeries"]]]])
+
+slots.Dataset_is_referenced_by = Slot(uri=DCTERMS.isReferencedBy, name="Dataset_is_referenced_by", curie=DCTERMS.curie('isReferencedBy'),
+ model_uri=COREMETA4CAT.Dataset_is_referenced_by, domain=Dataset, range=Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]])
+
+slots.Dataset_keyword = Slot(uri=DCAT.keyword, name="Dataset_keyword", curie=DCAT.curie('keyword'),
+ model_uri=COREMETA4CAT.Dataset_keyword, domain=Dataset, range=Optional[Union[str, list[str]]])
+
+slots.Dataset_landing_page = Slot(uri=DCAT.landingPage, name="Dataset_landing_page", curie=DCAT.curie('landingPage'),
+ model_uri=COREMETA4CAT.Dataset_landing_page, domain=Dataset, range=Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]])
+
+slots.Dataset_language = Slot(uri=DCTERMS.language, name="Dataset_language", curie=DCTERMS.curie('language'),
+ model_uri=COREMETA4CAT.Dataset_language, domain=Dataset, range=Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]])
+
+slots.Dataset_modification_date = Slot(uri=DCTERMS.modified, name="Dataset_modification_date", curie=DCTERMS.curie('modified'),
+ model_uri=COREMETA4CAT.Dataset_modification_date, domain=Dataset, range=Optional[Union[str, XSDDate]])
+
+slots.Dataset_other_identifier = Slot(uri=ADMS.identifier, name="Dataset_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.Dataset_other_identifier, domain=Dataset, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.Dataset_provenance = Slot(uri=DCTERMS.provenance, name="Dataset_provenance", curie=DCTERMS.curie('provenance'),
+ model_uri=COREMETA4CAT.Dataset_provenance, domain=Dataset, range=Optional[Union[Union[dict, "ProvenanceStatement"], list[Union[dict, "ProvenanceStatement"]]]])
+
+slots.Dataset_publisher = Slot(uri=DCTERMS.publisher, name="Dataset_publisher", curie=DCTERMS.curie('publisher'),
+ model_uri=COREMETA4CAT.Dataset_publisher, domain=Dataset, range=Optional[Union[dict, Agent]])
+
+slots.Dataset_qualified_attribution = Slot(uri=PROV.qualifiedAttribution, name="Dataset_qualified_attribution", curie=PROV.curie('qualifiedAttribution'),
+ model_uri=COREMETA4CAT.Dataset_qualified_attribution, domain=Dataset, range=Optional[Union[Union[dict, "Attribution"], list[Union[dict, "Attribution"]]]])
+
+slots.Dataset_qualified_relation = Slot(uri=DCAT.qualifiedRelation, name="Dataset_qualified_relation", curie=DCAT.curie('qualifiedRelation'),
+ model_uri=COREMETA4CAT.Dataset_qualified_relation, domain=Dataset, range=Optional[Union[Union[dict, "Relationship"], list[Union[dict, "Relationship"]]]])
+
+slots.Dataset_related_resource = Slot(uri=DCTERMS.relation, name="Dataset_related_resource", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.Dataset_related_resource, domain=Dataset, range=Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]])
+
+slots.Dataset_release_date = Slot(uri=DCTERMS.issued, name="Dataset_release_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.Dataset_release_date, domain=Dataset, range=Optional[Union[str, XSDDate]])
+
+slots.Dataset_sample = Slot(uri=ADMS.sample, name="Dataset_sample", curie=ADMS.curie('sample'),
+ model_uri=COREMETA4CAT.Dataset_sample, domain=Dataset, range=Optional[Union[Union[dict, "Distribution"], list[Union[dict, "Distribution"]]]])
+
+slots.Dataset_source = Slot(uri=DCTERMS.source, name="Dataset_source", curie=DCTERMS.curie('source'),
+ model_uri=COREMETA4CAT.Dataset_source, domain=Dataset, range=Optional[Union[dict[Union[str, DatasetId], Union[dict, "Dataset"]], list[Union[dict, "Dataset"]]]])
+
+slots.Dataset_spatial_resolution = Slot(uri=DCAT.spatialResolutionInMeters, name="Dataset_spatial_resolution", curie=DCAT.curie('spatialResolutionInMeters'),
+ model_uri=COREMETA4CAT.Dataset_spatial_resolution, domain=Dataset, range=Optional[Decimal])
+
+slots.Dataset_temporal_coverage = Slot(uri=DCTERMS.temporal, name="Dataset_temporal_coverage", curie=DCTERMS.curie('temporal'),
+ model_uri=COREMETA4CAT.Dataset_temporal_coverage, domain=Dataset, range=Optional[Union[Union[dict, "PeriodOfTime"], list[Union[dict, "PeriodOfTime"]]]])
+
+slots.Dataset_temporal_resolution = Slot(uri=DCAT.temporalResolution, name="Dataset_temporal_resolution", curie=DCAT.curie('temporalResolution'),
+ model_uri=COREMETA4CAT.Dataset_temporal_resolution, domain=Dataset, range=Optional[str])
+
+slots.Dataset_theme = Slot(uri=DCAT.theme, name="Dataset_theme", curie=DCAT.curie('theme'),
+ model_uri=COREMETA4CAT.Dataset_theme, domain=Dataset, range=Optional[Union[Union[dict, "Concept"], list[Union[dict, "Concept"]]]])
+
+slots.Dataset_title = Slot(uri=DCTERMS.title, name="Dataset_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.Dataset_title, domain=Dataset, range=Union[str, list[str]])
+
+slots.Dataset_type = Slot(uri=DCTERMS.type, name="Dataset_type", curie=DCTERMS.curie('type'),
+ model_uri=COREMETA4CAT.Dataset_type, domain=Dataset, range=Optional[Union[Union[dict, "Concept"], list[Union[dict, "Concept"]]]])
+
+slots.Dataset_version = Slot(uri=DCAT.version, name="Dataset_version", curie=DCAT.curie('version'),
+ model_uri=COREMETA4CAT.Dataset_version, domain=Dataset, range=Optional[str])
+
+slots.Dataset_version_notes = Slot(uri=ADMS.versionNotes, name="Dataset_version_notes", curie=ADMS.curie('versionNotes'),
+ model_uri=COREMETA4CAT.Dataset_version_notes, domain=Dataset, range=Optional[Union[str, list[str]]])
+
+slots.Dataset_was_generated_by = Slot(uri=PROV.wasGeneratedBy, name="Dataset_was_generated_by", curie=PROV.curie('wasGeneratedBy'),
+ model_uri=COREMETA4CAT.Dataset_was_generated_by, domain=Dataset, range=Union[dict[Union[str, DataGeneratingActivityId], Union[dict, DataGeneratingActivity]], list[Union[dict, DataGeneratingActivity]]])
+
+slots.DatasetSeries_applicable_legislation = Slot(uri=DCATAP.applicableLegislation, name="DatasetSeries_applicable_legislation", curie=DCATAP.curie('applicableLegislation'),
+ model_uri=COREMETA4CAT.DatasetSeries_applicable_legislation, domain=DatasetSeries, range=Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]])
+
+slots.DatasetSeries_contact_point = Slot(uri=DCAT.contactPoint, name="DatasetSeries_contact_point", curie=DCAT.curie('contactPoint'),
+ model_uri=COREMETA4CAT.DatasetSeries_contact_point, domain=DatasetSeries, range=Optional[Union[Union[dict, "Kind"], list[Union[dict, "Kind"]]]])
+
+slots.DatasetSeries_description = Slot(uri=DCTERMS.description, name="DatasetSeries_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.DatasetSeries_description, domain=DatasetSeries, range=Union[str, list[str]])
+
+slots.DatasetSeries_frequency = Slot(uri=DCTERMS.accrualPeriodicity, name="DatasetSeries_frequency", curie=DCTERMS.curie('accrualPeriodicity'),
+ model_uri=COREMETA4CAT.DatasetSeries_frequency, domain=DatasetSeries, range=Optional[Union[dict, "Frequency"]])
+
+slots.DatasetSeries_geographical_coverage = Slot(uri=DCTERMS.spatial, name="DatasetSeries_geographical_coverage", curie=DCTERMS.curie('spatial'),
+ model_uri=COREMETA4CAT.DatasetSeries_geographical_coverage, domain=DatasetSeries, range=Optional[Union[Union[dict, "Location"], list[Union[dict, "Location"]]]])
+
+slots.DatasetSeries_modification_date = Slot(uri=DCTERMS.modified, name="DatasetSeries_modification_date", curie=DCTERMS.curie('modified'),
+ model_uri=COREMETA4CAT.DatasetSeries_modification_date, domain=DatasetSeries, range=Optional[Union[str, XSDDate]])
+
+slots.DatasetSeries_publisher = Slot(uri=DCTERMS.publisher, name="DatasetSeries_publisher", curie=DCTERMS.curie('publisher'),
+ model_uri=COREMETA4CAT.DatasetSeries_publisher, domain=DatasetSeries, range=Optional[Union[dict, Agent]])
+
+slots.DatasetSeries_release_date = Slot(uri=DCTERMS.issued, name="DatasetSeries_release_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.DatasetSeries_release_date, domain=DatasetSeries, range=Optional[Union[str, XSDDate]])
+
+slots.DatasetSeries_temporal_coverage = Slot(uri=DCTERMS.temporal, name="DatasetSeries_temporal_coverage", curie=DCTERMS.curie('temporal'),
+ model_uri=COREMETA4CAT.DatasetSeries_temporal_coverage, domain=DatasetSeries, range=Optional[Union[Union[dict, "PeriodOfTime"], list[Union[dict, "PeriodOfTime"]]]])
+
+slots.DatasetSeries_title = Slot(uri=DCTERMS.title, name="DatasetSeries_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.DatasetSeries_title, domain=DatasetSeries, range=Union[str, list[str]])
+
+slots.DefinedTerm_title = Slot(uri=SCHEMA.name, name="DefinedTerm_title", curie=SCHEMA.curie('name'),
+ model_uri=COREMETA4CAT.DefinedTerm_title, domain=DefinedTerm, range=Optional[str])
+
+slots.Device_has_part = Slot(uri=DCTERMS.hasPart, name="Device_has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.Device_has_part, domain=Device, range=Optional[Union[dict[Union[str, DeviceId], Union[dict, "Device"]], list[Union[dict, "Device"]]]])
+
+slots.Device_other_identifier = Slot(uri=ADMS.identifier, name="Device_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.Device_other_identifier, domain=Device, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.Distribution_access_URL = Slot(uri=DCAT.accessURL, name="Distribution_access_URL", curie=DCAT.curie('accessURL'),
+ model_uri=COREMETA4CAT.Distribution_access_URL, domain=Distribution, range=Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]])
+
+slots.Distribution_access_service = Slot(uri=DCAT.accessService, name="Distribution_access_service", curie=DCAT.curie('accessService'),
+ model_uri=COREMETA4CAT.Distribution_access_service, domain=Distribution, range=Optional[Union[Union[dict, DataService], list[Union[dict, DataService]]]])
+
+slots.Distribution_applicable_legislation = Slot(uri=DCATAP.applicableLegislation, name="Distribution_applicable_legislation", curie=DCATAP.curie('applicableLegislation'),
+ model_uri=COREMETA4CAT.Distribution_applicable_legislation, domain=Distribution, range=Optional[Union[dict[Union[str, LegalResourceId], Union[dict, "LegalResource"]], list[Union[dict, "LegalResource"]]]])
+
+slots.Distribution_availability = Slot(uri=DCATAP.availability, name="Distribution_availability", curie=DCATAP.curie('availability'),
+ model_uri=COREMETA4CAT.Distribution_availability, domain=Distribution, range=Optional[Union[dict, "Concept"]])
+
+slots.Distribution_byte_size = Slot(uri=DCAT.byteSize, name="Distribution_byte_size", curie=DCAT.curie('byteSize'),
+ model_uri=COREMETA4CAT.Distribution_byte_size, domain=Distribution, range=Optional[int])
+
+slots.Distribution_checksum = Slot(uri=SPDX.checksum, name="Distribution_checksum", curie=SPDX.curie('checksum'),
+ model_uri=COREMETA4CAT.Distribution_checksum, domain=Distribution, range=Optional[Union[dict, Checksum]])
+
+slots.Distribution_compression_format = Slot(uri=DCAT.compressFormat, name="Distribution_compression_format", curie=DCAT.curie('compressFormat'),
+ model_uri=COREMETA4CAT.Distribution_compression_format, domain=Distribution, range=Optional[Union[dict, "MediaType"]])
+
+slots.Distribution_description = Slot(uri=DCTERMS.description, name="Distribution_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.Distribution_description, domain=Distribution, range=Optional[Union[str, list[str]]])
+
+slots.Distribution_documentation = Slot(uri=FOAF.page, name="Distribution_documentation", curie=FOAF.curie('page'),
+ model_uri=COREMETA4CAT.Distribution_documentation, domain=Distribution, range=Optional[Union[dict[Union[str, DocumentId], Union[dict, "Document"]], list[Union[dict, "Document"]]]])
+
+slots.Distribution_download_URL = Slot(uri=DCAT.downloadURL, name="Distribution_download_URL", curie=DCAT.curie('downloadURL'),
+ model_uri=COREMETA4CAT.Distribution_download_URL, domain=Distribution, range=Optional[Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]]])
+
+slots.Distribution_format = Slot(uri=DCTERMS.format, name="Distribution_format", curie=DCTERMS.curie('format'),
+ model_uri=COREMETA4CAT.Distribution_format, domain=Distribution, range=Optional[Union[dict, "MediaTypeOrExtent"]])
+
+slots.Distribution_has_policy = Slot(uri=ODRL.hasPolicy, name="Distribution_has_policy", curie=ODRL.curie('hasPolicy'),
+ model_uri=COREMETA4CAT.Distribution_has_policy, domain=Distribution, range=Optional[Union[dict, "Policy"]])
+
+slots.Distribution_language = Slot(uri=DCTERMS.language, name="Distribution_language", curie=DCTERMS.curie('language'),
+ model_uri=COREMETA4CAT.Distribution_language, domain=Distribution, range=Optional[Union[Union[dict, "LinguisticSystem"], list[Union[dict, "LinguisticSystem"]]]])
+
+slots.Distribution_licence = Slot(uri=DCTERMS.license, name="Distribution_licence", curie=DCTERMS.curie('license'),
+ model_uri=COREMETA4CAT.Distribution_licence, domain=Distribution, range=Optional[Union[dict, "LicenseDocument"]])
+
+slots.Distribution_linked_schemas = Slot(uri=DCTERMS.conformsTo, name="Distribution_linked_schemas", curie=DCTERMS.curie('conformsTo'),
+ model_uri=COREMETA4CAT.Distribution_linked_schemas, domain=Distribution, range=Optional[Union[Union[dict, "Standard"], list[Union[dict, "Standard"]]]])
+
+slots.Distribution_media_type = Slot(uri=DCAT.mediaType, name="Distribution_media_type", curie=DCAT.curie('mediaType'),
+ model_uri=COREMETA4CAT.Distribution_media_type, domain=Distribution, range=Optional[Union[dict, "MediaType"]])
+
+slots.Distribution_modification_date = Slot(uri=DCTERMS.modified, name="Distribution_modification_date", curie=DCTERMS.curie('modified'),
+ model_uri=COREMETA4CAT.Distribution_modification_date, domain=Distribution, range=Optional[Union[str, XSDDate]])
+
+slots.Distribution_packaging_format = Slot(uri=DCAT.packageFormat, name="Distribution_packaging_format", curie=DCAT.curie('packageFormat'),
+ model_uri=COREMETA4CAT.Distribution_packaging_format, domain=Distribution, range=Optional[Union[dict, "MediaType"]])
+
+slots.Distribution_release_date = Slot(uri=DCTERMS.issued, name="Distribution_release_date", curie=DCTERMS.curie('issued'),
+ model_uri=COREMETA4CAT.Distribution_release_date, domain=Distribution, range=Optional[Union[str, XSDDate]])
+
+slots.Distribution_rights = Slot(uri=DCTERMS.rights, name="Distribution_rights", curie=DCTERMS.curie('rights'),
+ model_uri=COREMETA4CAT.Distribution_rights, domain=Distribution, range=Optional[Union[dict, "RightsStatement"]])
+
+slots.Distribution_spatial_resolution = Slot(uri=DCAT.spatialResolutionInMeters, name="Distribution_spatial_resolution", curie=DCAT.curie('spatialResolutionInMeters'),
+ model_uri=COREMETA4CAT.Distribution_spatial_resolution, domain=Distribution, range=Optional[Decimal])
+
+slots.Distribution_status = Slot(uri=ADMS.status, name="Distribution_status", curie=ADMS.curie('status'),
+ model_uri=COREMETA4CAT.Distribution_status, domain=Distribution, range=Optional[Union[dict, "Concept"]])
+
+slots.Distribution_temporal_resolution = Slot(uri=DCAT.temporalResolution, name="Distribution_temporal_resolution", curie=DCAT.curie('temporalResolution'),
+ model_uri=COREMETA4CAT.Distribution_temporal_resolution, domain=Distribution, range=Optional[str])
+
+slots.Distribution_title = Slot(uri=DCTERMS.title, name="Distribution_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.Distribution_title, domain=Distribution, range=Optional[Union[str, list[str]]])
+
+slots.Entity_title = Slot(uri=DCTERMS.title, name="Entity_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.Entity_title, domain=Entity, range=Optional[str])
+
+slots.Entity_description = Slot(uri=DCTERMS.description, name="Entity_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.Entity_description, domain=Entity, range=Optional[str])
+
+slots.Entity_other_identifier = Slot(uri=ADMS.identifier, name="Entity_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.Entity_other_identifier, domain=Entity, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.Entity_has_part = Slot(uri=DCTERMS.hasPart, name="Entity_has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.Entity_has_part, domain=Entity, range=Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]])
+
+slots.Entity_part_of = Slot(uri=DCTERMS.isPartOf, name="Entity_part_of", curie=DCTERMS.curie('isPartOf'),
+ model_uri=COREMETA4CAT.Entity_part_of, domain=Entity, range=Optional[Union[dict[Union[str, EntityId], Union[dict, "Entity"]], list[Union[dict, "Entity"]]]])
+
+slots.EvaluatedActivity_other_identifier = Slot(uri=ADMS.identifier, name="EvaluatedActivity_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.EvaluatedActivity_other_identifier, domain=EvaluatedActivity, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.EvaluatedEntity_title = Slot(uri=DCTERMS.title, name="EvaluatedEntity_title", curie=DCTERMS.curie('title'),
+ model_uri=COREMETA4CAT.EvaluatedEntity_title, domain=EvaluatedEntity, range=Optional[str])
+
+slots.EvaluatedEntity_description = Slot(uri=DCTERMS.description, name="EvaluatedEntity_description", curie=DCTERMS.curie('description'),
+ model_uri=COREMETA4CAT.EvaluatedEntity_description, domain=EvaluatedEntity, range=Optional[str])
+
+slots.EvaluatedEntity_was_generated_by = Slot(uri=PROV.wasGeneratedBy, name="EvaluatedEntity_was_generated_by", curie=PROV.curie('wasGeneratedBy'),
+ model_uri=COREMETA4CAT.EvaluatedEntity_was_generated_by, domain=EvaluatedEntity, range=Optional[Union[dict[Union[str, ActivityId], Union[dict, Activity]], list[Union[dict, Activity]]]])
+
+slots.EvaluatedEntity_other_identifier = Slot(uri=ADMS.identifier, name="EvaluatedEntity_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.EvaluatedEntity_other_identifier, domain=EvaluatedEntity, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.Identifier_notation = Slot(uri=SKOS.notation, name="Identifier_notation", curie=SKOS.curie('notation'),
+ model_uri=COREMETA4CAT.Identifier_notation, domain=Identifier, range=str)
+
+slots.LicenseDocument_type = Slot(uri=DCTERMS.type, name="LicenseDocument_type", curie=DCTERMS.curie('type'),
+ model_uri=COREMETA4CAT.LicenseDocument_type, domain=LicenseDocument, range=Optional[Union[Union[dict, Concept], list[Union[dict, Concept]]]])
+
+slots.Location_bbox = Slot(uri=DCAT.bbox, name="Location_bbox", curie=DCAT.curie('bbox'),
+ model_uri=COREMETA4CAT.Location_bbox, domain=Location, range=Optional[str])
+
+slots.Location_centroid = Slot(uri=DCAT.centroid, name="Location_centroid", curie=DCAT.curie('centroid'),
+ model_uri=COREMETA4CAT.Location_centroid, domain=Location, range=Optional[str])
+
+slots.Location_geometry = Slot(uri=LOCN.geometry, name="Location_geometry", curie=LOCN.curie('geometry'),
+ model_uri=COREMETA4CAT.Location_geometry, domain=Location, range=Optional[Union[dict, "Geometry"]])
+
+slots.PeriodOfTime_beginning = Slot(uri=TIME.hasBeginning, name="PeriodOfTime_beginning", curie=TIME.curie('hasBeginning'),
+ model_uri=COREMETA4CAT.PeriodOfTime_beginning, domain=PeriodOfTime, range=Optional[Union[dict, "TimeInstant"]])
+
+slots.PeriodOfTime_end = Slot(uri=TIME.hasEnd, name="PeriodOfTime_end", curie=TIME.curie('hasEnd'),
+ model_uri=COREMETA4CAT.PeriodOfTime_end, domain=PeriodOfTime, range=Optional[Union[dict, "TimeInstant"]])
+
+slots.PeriodOfTime_end_date = Slot(uri=DCAT.endDate, name="PeriodOfTime_end_date", curie=DCAT.curie('endDate'),
+ model_uri=COREMETA4CAT.PeriodOfTime_end_date, domain=PeriodOfTime, range=Optional[Union[str, XSDDate]])
+
+slots.PeriodOfTime_start_date = Slot(uri=DCAT.startDate, name="PeriodOfTime_start_date", curie=DCAT.curie('startDate'),
+ model_uri=COREMETA4CAT.PeriodOfTime_start_date, domain=PeriodOfTime, range=Optional[Union[str, XSDDate]])
+
+slots.QualitativeAttribute_value = Slot(uri=PROV.value, name="QualitativeAttribute_value", curie=PROV.curie('value'),
+ model_uri=COREMETA4CAT.QualitativeAttribute_value, domain=QualitativeAttribute, range=str)
+
+slots.QuantitativeAttribute_value = Slot(uri=PROV.value, name="QuantitativeAttribute_value", curie=PROV.curie('value'),
+ model_uri=COREMETA4CAT.QuantitativeAttribute_value, domain=QuantitativeAttribute, range=float)
+
+slots.Relationship_had_role = Slot(uri=DCAT.hadRole, name="Relationship_had_role", curie=DCAT.curie('hadRole'),
+ model_uri=COREMETA4CAT.Relationship_had_role, domain=Relationship, range=Union[Union[dict, "Role"], list[Union[dict, "Role"]]])
+
+slots.Relationship_relation = Slot(uri=DCTERMS.relation, name="Relationship_relation", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.Relationship_relation, domain=Relationship, range=Union[dict[Union[str, ResourceId], Union[dict, "Resource"]], list[Union[dict, "Resource"]]])
+
+slots.Software_has_part = Slot(uri=DCTERMS.hasPart, name="Software_has_part", curie=DCTERMS.curie('hasPart'),
+ model_uri=COREMETA4CAT.Software_has_part, domain=Software, range=Optional[Union[dict[Union[str, SoftwareId], Union[dict, "Software"]], list[Union[dict, "Software"]]]])
+
+slots.Software_other_identifier = Slot(uri=ADMS.identifier, name="Software_other_identifier", curie=ADMS.curie('identifier'),
+ model_uri=COREMETA4CAT.Software_other_identifier, domain=Software, range=Optional[Union[Union[dict, "Identifier"], list[Union[dict, "Identifier"]]]])
+
+slots.Atom_rdf_type = Slot(uri=RDF.type, name="Atom_rdf_type", curie=RDF.curie('type'),
+ model_uri=COREMETA4CAT.Atom_rdf_type, domain=Atom, range=Union[dict, DefinedTerm])
+
+slots.ChemicalReaction_has_temperature = Slot(uri=SIO['000008'], name="ChemicalReaction_has_temperature", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.ChemicalReaction_has_temperature, domain=ChemicalReaction, range=Optional[Union[Union[dict, "Temperature"], list[Union[dict, "Temperature"]]]])
+
+slots.ChemicalReaction_has_pressure = Slot(uri=SIO['000008'], name="ChemicalReaction_has_pressure", curie=SIO.curie('000008'),
+ model_uri=COREMETA4CAT.ChemicalReaction_has_pressure, domain=ChemicalReaction, range=Optional[Union[Union[dict, "Pressure"], list[Union[dict, "Pressure"]]]])
+
+slots.ChemicalReaction_related_resource = Slot(uri=DCTERMS.relation, name="ChemicalReaction_related_resource", curie=DCTERMS.curie('relation'),
+ model_uri=COREMETA4CAT.ChemicalReaction_related_resource, domain=ChemicalReaction, range=Optional[Union[dict[Union[str, ResourceId], Union[dict, Resource]], list[Union[dict, Resource]]]])
+
+slots.MaterialEntity_has_part = Slot(uri=BFO['0000051'], name="MaterialEntity_has_part", curie=BFO.curie('0000051'),
+ model_uri=COREMETA4CAT.MaterialEntity_has_part, domain=MaterialEntity, range=Optional[Union[dict[Union[str, MaterialEntityId], Union[dict, "MaterialEntity"]], list[Union[dict, "MaterialEntity"]]]])
+
+slots.MaterialSample_derived_from = Slot(uri=PROV.wasDerivedFrom, name="MaterialSample_derived_from", curie=PROV.curie('wasDerivedFrom'),
+ model_uri=COREMETA4CAT.MaterialSample_derived_from, domain=MaterialSample, range=Optional[Union[dict, Entity]])
diff --git a/src/coremeta4cat/datamodel/coremeta4cat_pydantic.py b/src/coremeta4cat/datamodel/coremeta4cat_pydantic.py
new file mode 100644
index 000000000..7e2f9d091
--- /dev/null
+++ b/src/coremeta4cat/datamodel/coremeta4cat_pydantic.py
@@ -0,0 +1,21518 @@
+from __future__ import annotations
+
+import re
+import sys
+from datetime import (
+ date,
+ datetime,
+ time
+)
+from decimal import Decimal
+from enum import Enum
+from typing import (
+ Any,
+ ClassVar,
+ Literal,
+ Optional,
+ Union
+)
+
+from pydantic import (
+ BaseModel,
+ ConfigDict,
+ Field,
+ RootModel,
+ SerializationInfo,
+ SerializerFunctionWrapHandler,
+ field_validator,
+ model_serializer
+)
+
+
+metamodel_version = "None"
+version = "1.0.0"
+
+
+class ConfiguredBaseModel(BaseModel):
+ model_config = ConfigDict(
+ serialize_by_alias = True,
+ validate_by_name = True,
+ validate_assignment = True,
+ validate_default = True,
+ extra = "forbid",
+ arbitrary_types_allowed = True,
+ use_enum_values = True,
+ strict = False,
+ )
+
+ @model_serializer(mode='wrap', when_used='unless-none')
+ def treat_empty_lists_as_none(
+ self, handler: SerializerFunctionWrapHandler,
+ info: SerializationInfo) -> dict[str, Any]:
+ if info.exclude_none:
+ _instance = self.model_copy()
+ for field, field_info in type(_instance).model_fields.items():
+ if getattr(_instance, field) == [] and not(
+ field_info.is_required()):
+ setattr(_instance, field, None)
+ else:
+ _instance = self
+ return handler(_instance, info)
+
+
+
+class LinkMLMeta(RootModel):
+ root: dict[str, Any] = {}
+ model_config = ConfigDict(frozen=True)
+
+ def __getattr__(self, key:str):
+ return getattr(self.root, key)
+
+ def __getitem__(self, key:str):
+ return self.root[key]
+
+ def __setitem__(self, key:str, value):
+ self.root[key] = value
+
+ def __contains__(self, key:str) -> bool:
+ return key in self.root
+
+
+linkml_meta = LinkMLMeta({'default_prefix': 'coremeta4cat',
+ 'default_range': 'string',
+ 'description': 'The CoreMeta4Cat describes the minimum information which must '
+ 'be reported with research\n'
+ 'data concerning the field of catalysis. This guideline helps '
+ 'to handle and\n'
+ 'standardize data based on the FAIR principle (Findable, '
+ 'Accessible, Interoperable,\n'
+ 'Reusable).\n'
+ '\n'
+ 'Architecture\n'
+ '------------\n'
+ 'CoreMeta4Cat follows the DCAT-AP-PLUS design patterns (see '
+ 'design-patterns.md):\n'
+ '\n'
+ '- The entry point is the dcat:Dataset, extended here as '
+ 'CatalysisDataset.\n'
+ ' The catalysis research field is expressed via rdf_type '
+ '(ClassifierMixin,\n'
+ ' Pattern 3) using voc4cat terms � analogous to how '
+ 'NMRSpectroscopy uses\n'
+ ' rdf_type: CHMO:0000613 to classify the measurement type.\n'
+ '\n'
+ '- The four CoreMeta4Cat pillars are modelled as DCAT-AP-PLUS '
+ 'Activity subclasses,\n'
+ ' following the same pattern as NMRSpectroscopy (is_a: '
+ 'DataGeneratingActivity):\n'
+ '\n'
+ ' Synthesis --> is_a: DataGeneratingActivity\n'
+ ' Produces a catalyst (MaterialSample) as '
+ 'had_output_entity.\n'
+ ' The PreparationMethod (protocol) is '
+ 'linked via realized_plan.\n'
+ '\n'
+ ' Characterization --> is_a: DataGeneratingActivity\n'
+ ' Produces measurement data about a '
+ 'catalyst or reaction.\n'
+ ' The catalyst/sample is the '
+ 'evaluated_entity.\n'
+ ' The CharacterizationTechnique is '
+ 'linked via realized_plan.\n'
+ '\n'
+ ' Reaction --> is_a: EvaluatedActivity\n'
+ ' The catalytic process being studied, NOT '
+ 'a data-generating\n'
+ ' activity itself. Characterization '
+ 'datasets are about this.\n'
+ ' Analogous to the reaction being observed '
+ 'in a reaction\n'
+ ' monitoring dataset.\n'
+ '\n'
+ ' Simulation --> is_a: DataGeneratingActivity\n'
+ ' Generates computational data about a '
+ 'catalyst or reaction.\n'
+ ' The SimulationMethod (protocol) is '
+ 'linked via realized_plan.\n'
+ ' The simulation software is '
+ 'carried_out_by: Software.\n'
+ '\n'
+ '- Catalyst samples and precursor materials are modelled as '
+ 'MaterialSample\n'
+ ' (from material_entities_ap), which is an EvaluatedEntity.\n'
+ '\n'
+ '- Reactors and instruments are modelled as Device (from '
+ 'dcat_ap_plus), which\n'
+ ' is an AgenticEntity carried_out_by the relevant Activity.\n'
+ '\n'
+ '- PreparationMethod, CharacterizationTechnique, and '
+ 'SimulationMethod are\n'
+ ' modelled as Plan (from dcat_ap_plus), the protocol realized '
+ 'by the Activity.\n'
+ '\n'
+ 'This file is the top-level aggregator. It imports '
+ 'coremeta4cat_common (shared\n'
+ 'slots and enums) and the four subprofile modules.\n'
+ '\n'
+ 'Full import hierarchy:\n'
+ ' coremeta4cat.yaml (this file � aggregator + '
+ 'CatalysisDataset entry point)\n'
+ ' +-- coremeta4cat_common.yaml (shared slots, '
+ 'enums)\n'
+ ' +-- chem_dcat_ap (SubstanceSample, '
+ 'ChemicalSubstance, �)\n'
+ ' +-- chemical_reaction_ap\n'
+ ' +-- chemical_entities_ap\n'
+ ' +-- material_entities_ap\n'
+ ' +-- dcat_ap_plus '
+ '(DCAT-AP-PLUS base)\n'
+ ' +-- coremeta4cat_synthesis_ap (Step 3 � '
+ 'Synthesis, PreparationMethod, mixins)\n'
+ ' +-- coremeta4cat_characterization_ap (Step 4 � '
+ 'Characterization, 24 techniques, mixins)\n'
+ ' +-- coremeta4cat_reaction_ap (Step 5 � Reaction, '
+ '8 ReactorDesignTypes)\n'
+ ' +-- coremeta4cat_simulation_ap (Step 6 � '
+ 'Simulation, 4 methods, 12 properties, mixins)',
+ 'id': 'https://w3id.org/nfdi4cat/coremeta4cat',
+ 'imports': ['linkml:types',
+ 'coremeta4cat_common',
+ 'coremeta4cat_synthesis_ap',
+ 'coremeta4cat_characterization_ap',
+ 'coremeta4cat_reaction_ap',
+ 'coremeta4cat_simulation_ap'],
+ 'license': 'CC-BY-4.0',
+ 'name': 'coremeta4cat-metadata',
+ 'prefixes': {'IAO': {'prefix_prefix': 'IAO',
+ 'prefix_reference': 'http://purl.obolibrary.org/obo/IAO_'},
+ 'NCIT': {'prefix_prefix': 'NCIT',
+ 'prefix_reference': 'http://purl.obolibrary.org/obo/NCIT_'},
+ 'OBI': {'prefix_prefix': 'OBI',
+ 'prefix_reference': 'http://purl.obolibrary.org/obo/OBI_'},
+ 'SIO': {'prefix_prefix': 'SIO',
+ 'prefix_reference': 'http://semanticscience.org/resource/SIO_'},
+ 'VOC4CAT': {'prefix_prefix': 'VOC4CAT',
+ 'prefix_reference': 'https://w3id.org/nfdi4cat/voc4cat_'},
+ 'chemdcatap': {'prefix_prefix': 'chemdcatap',
+ 'prefix_reference': 'https://nfdi-de.github.io/chem-dcat-ap/'},
+ 'coremeta4cat': {'prefix_prefix': 'coremeta4cat',
+ 'prefix_reference': 'https://w3id.org/nfdi4cat/coremeta4cat/'},
+ 'dcat': {'prefix_prefix': 'dcat',
+ 'prefix_reference': 'http://www.w3.org/ns/dcat#'},
+ 'dcatapplus': {'prefix_prefix': 'dcatapplus',
+ 'prefix_reference': 'https://w3id.org/nfdi-de/dcat-ap-plus/'},
+ 'dcterms': {'prefix_prefix': 'dcterms',
+ 'prefix_reference': 'http://purl.org/dc/terms/'},
+ 'linkml': {'prefix_prefix': 'linkml',
+ 'prefix_reference': 'https://w3id.org/linkml/'},
+ 'prov': {'prefix_prefix': 'prov',
+ 'prefix_reference': 'http://www.w3.org/ns/prov#'},
+ 'rdf': {'prefix_prefix': 'rdf',
+ 'prefix_reference': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'}},
+ 'source_file': 'src/coremeta4cat/schema/coremeta4cat.yaml',
+ 'title': 'CoreMeta4cat Metadata Reference Model'} )
+
+class CatalysisResearchFieldEnum(str, Enum):
+ """
+ Enumeration of catalysis research fields.
+Intended for use via rdf_type on a dcat:Dataset (via ClassifierMixin)
+to classify which field of catalysis the dataset belongs to,
+following DCAT-AP-PLUS Pattern 3 (Flexible classification).
+ """
+ heterogeneous_catalysis = "heterogeneous_catalysis"
+ """
+ Heterogeneous catalysis � catalyst and reactants are in different phases.
+ """
+ homogeneous_catalysis = "homogeneous_catalysis"
+ """
+ Homogeneous catalysis � catalyst and reactants are in the same phase.
+ """
+ biocatalysis = "biocatalysis"
+ """
+ Biocatalysis � use of enzymes or whole cells as catalysts.
+ """
+ electrocatalysis = "electrocatalysis"
+ """
+ Electrocatalysis � catalysis of electrochemical reactions.
+ """
+ hybrid_catalysis = "hybrid_catalysis"
+ """
+ Hybrid catalysis � combination of two or more catalytic approaches.
+ """
+ other = "other"
+ """
+ Other catalysis research field not covered by the above terms.
+ """
+
+
+class ImpregnationTypeEnum(str, Enum):
+ """
+ Enumeration of impregnation types used in catalyst synthesis.
+ """
+ wet_impregnation = "wet_impregnation"
+ """
+ Wet impregnation � excess solution is used to impregnate the support.
+ """
+ dry_impregnation = "dry_impregnation"
+ """
+ Dry impregnation � solution volume equals the pore volume of the support.
+ """
+ incipient_wetness = "incipient_wetness"
+ """
+ Incipient wetness impregnation � synonym for dry impregnation.
+ """
+ other = "other"
+ """
+ Other impregnation type.
+ """
+
+
+class SampleStateEnum(str, Enum):
+ """
+ Enumeration of physical states in which a catalyst sample may be present.
+ """
+ solid = "solid"
+ """
+ Solid state.
+ """
+ liquid = "liquid"
+ """
+ Liquid state.
+ """
+ gas = "gas"
+ """
+ Gas state.
+ """
+ solution = "solution"
+ """
+ Dissolved in solvent.
+ """
+ powder = "powder"
+ """
+ Powder form.
+ """
+ pellet = "pellet"
+ """
+ Pellet form (pressed powder).
+ """
+ thin_film = "thin_film"
+ """
+ Thin film deposited on a substrate.
+ """
+ other = "other"
+ """
+ Other sample state.
+ """
+
+
+class DatasetThemes(str, Enum):
+ AGRI = "AGRI"
+ """
+ Agriculture, fisheries, forestry and food
+ """
+ ECON = "ECON"
+ """
+ Economy and finance
+ """
+ EDUC = "EDUC"
+ """
+ Education, culture and sport
+ """
+ ENER = "ENER"
+ """
+ Energy
+ """
+ ENVI = "ENVI"
+ """
+ Environment
+ """
+ GOVE = "GOVE"
+ """
+ Government and public sector
+ """
+ HEAL = "HEAL"
+ """
+ Health
+ """
+ INTR = "INTR"
+ """
+ International issues
+ """
+ JUST = "JUST"
+ """
+ Justice, legal system and public safety
+ """
+ OP_DATPRO = "OP_DATPRO"
+ """
+ Provisional data
+ """
+ REGI = "REGI"
+ """
+ Regions and cities
+ """
+ SOCI = "SOCI"
+ """
+ Population and society
+ """
+ TECH = "TECH"
+ """
+ Science and technology
+ """
+ TRAN = "TRAN"
+ """
+ Transport
+ """
+
+
+class TopLevelMediaTypes(str, Enum):
+ application = "application"
+ audio = "audio"
+ example = "example"
+ font = "font"
+ haptics = "haptics"
+ image = "image"
+ message = "message"
+ model = "model"
+ multipart = "multipart"
+ text = "text"
+ video = "video"
+
+
+class QUDTQuantityKindEnum(str):
+ """
+ Possible kinds of quantifiable attribute types provided as QUDT QualityKind instances.
+ """
+ pass
+
+
+class QUDTUnitEnum(str):
+ """
+ Possible kinds of QUDT unit instances.
+ """
+ pass
+
+
+class PhysicalStateEnum(str, Enum):
+ SOLID = "SOLID"
+ """
+ A state of matter in which molecules are closely packed and cannot move past each other.
+ """
+ CRYSTAL = "CRYSTAL"
+ """
+ A solid state of matter whose constituents (such as atoms, molecules, or ions) are arranged in a highly ordered microscopic structure, forming a crystal lattice that extends in all directions.
+ """
+ LIQUID = "LIQUID"
+ """
+ A state of matter with a definite volume but no fixed shape. Liquids adapt to the shape of their container and are nearly incompressible, maintaining their volume even under pressure.
+ """
+ GASEOUS = "GASEOUS"
+ """
+ A state of matter with neither fixed volume nor fixed shape.
+ """
+
+
+
+class DryingMixin(ConfiguredBaseModel):
+ """
+ Mixin providing drying step parameters. Used by preparation methods that
+ include a drying step after synthesis or precipitation
+ (Impregnation, CoPrecipitation, DepositionPrecipitation,
+ SonochemicalSynthesis, MolecularSynthesis).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixin': True})
+
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+
+
+class CalcinationMixin(ConfiguredBaseModel):
+ """
+ Mixin providing calcination step parameters. Used by preparation methods
+ that include a thermal calcination step
+ (Impregnation, CoPrecipitation, DepositionPrecipitation,
+ SonochemicalSynthesis, ExsolutionSynthesis).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixin': True})
+
+ calcination_initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000057',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_final_temperature: Optional[list[float]] = Field(default=[], description="""Final (target) temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000058',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_dwelling_time: Optional[list[float]] = Field(default=[], description="""Time held at the final calcination temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000060',
+ 'unit': {'ucum_code': 'h'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ calcination_gaseous_environment: Optional[list[str]] = Field(default=[], description="""Gaseous environment maintained during calcination (e.g. air, H2/N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'], 'slot_uri': 'VOC4CAT:0000055'} })
+ calcination_heating_rate: Optional[list[float]] = Field(default=[], description="""Heating rate during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000059',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ calcination_gas_flow_rate: Optional[list[float]] = Field(default=[], description="""Gas flow rate maintained during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000056',
+ 'unit': {'ucum_code': 'mL/min'}} })
+
+
+class PrecipitationMixin(ConfiguredBaseModel):
+ """
+ Mixin providing precipitation and wet-chemistry step parameters. Used by
+ preparation methods based on precipitation from solution
+ (CoPrecipitation, DepositionPrecipitation).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixin': True})
+
+ precipitating_agent: Optional[list[str]] = Field(default=[], description="""Chemical agent used to induce precipitation (e.g. NaOH, NH3).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:precipitating_agent'} })
+ precipitating_concentration: Optional[list[float]] = Field(default=[], description="""Concentration of the precipitating agent.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:precipitating_concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ synthesis_ph: Optional[list[float]] = Field(default=[], description="""pH value maintained or targeted during synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'VOC4CAT:0000052'} })
+ mixing_rate: Optional[list[float]] = Field(default=[], description="""Stirring rate during mixing of synthesis components.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:mixing_rate',
+ 'unit': {'ucum_code': 'rpm'}} })
+ mixing_time: Optional[list[float]] = Field(default=[], description="""Duration of the mixing step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:mixing_time',
+ 'unit': {'ucum_code': 'h'}} })
+ mixing_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during mixing.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:mixing_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ order_of_addition: Optional[list[str]] = Field(default=[], description="""Order in which reagents or components are combined.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:order_of_addition'} })
+ filtration: Optional[list[str]] = Field(default=[], description="""Filtration method used to separate the precipitate (e.g. vacuum filtration).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'coremeta4cat:filtration'} })
+ purification: Optional[list[str]] = Field(default=[], description="""Purification method applied after synthesis (e.g. washing, dialysis).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'coremeta4cat:purification'} })
+ aging_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during aging of the precipitate or gel.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:aging_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ aging_time: Optional[list[float]] = Field(default=[], description="""Duration of the aging step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'SolGel'],
+ 'slot_uri': 'coremeta4cat:aging_time',
+ 'unit': {'ucum_code': 'h'}} })
+
+
+class ThermalSynthesisMixin(ConfiguredBaseModel):
+ """
+ Mixin providing thermal process parameters common to synthesis methods
+ carried out at elevated temperature in a closed vessel or reactor
+ (Solvothermal, PlasmaAssisted, CombustionSynthesis,
+ MicrowaveAssisted, MechanochemicalSynthesis, Sublimation).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixin': True})
+
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+
+
+class XRaySourceMixin(ConfiguredBaseModel):
+ """
+ Mixin providing X-ray source and monochromator slots, shared by all
+ X-ray based techniques (PowderXRD, XRayAbsorptionSpectroscopy, XPS,
+ SingleCrystalXRD).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ xray_source: Optional[list[str]] = Field(default=[], description="""X-ray source used (e.g. Cu K-alpha, Mo K-alpha, synchrotron).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'OBI:0001138'} })
+ monochromator: Optional[list[str]] = Field(default=[], description="""Monochromator type or configuration used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'CHMO:0002120'} })
+
+
+class EnergyRangeMixin(ConfiguredBaseModel):
+ """
+ Mixin providing energy scan range slots, shared by X-ray spectroscopy
+ techniques that scan over an energy range (XRayAbsorptionSpectroscopy, XPS).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ minimum_energy: Optional[list[float]] = Field(default=[], description="""Minimum energy of the scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EnergyRangeMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ maximum_energy: Optional[list[float]] = Field(default=[], description="""Maximum energy of the scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EnergyRangeMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+
+
+class ElectronMicroscopyMixin(ConfiguredBaseModel):
+ """
+ Mixin providing electron gun and image parameters shared by electron
+ microscopy techniques (TransmissionElectronMicroscopy,
+ ScanningElectronMicroscopy).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ gun_type: Optional[list[str]] = Field(default=[], description="""Type of electron gun (e.g. FEG, thermionic LaB6).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin'], 'slot_uri': 'coremeta4cat:gun_type'} })
+ acceleration_voltage: Optional[list[float]] = Field(default=[], description="""Acceleration voltage applied to the electron beam.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin'],
+ 'slot_uri': 'coremeta4cat:acceleration_voltage',
+ 'unit': {'ucum_code': 'kV'}} })
+ magnification_setting: Optional[list[float]] = Field(default=[], description="""Magnification setting used for imaging.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin', 'RamanSpectroscopy'],
+ 'slot_uri': 'AFR:0002226'} })
+
+
+class TemperatureProgramMixin(ConfiguredBaseModel):
+ """
+ Mixin providing temperature-programme parameters shared by thermal
+ analysis and temperature-programmed reaction techniques
+ (Thermogravimetry, TPO, TPR).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ minimum_temperature: Optional[list[float]] = Field(default=[], description="""Minimum (start) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ maximum_temperature: Optional[list[float]] = Field(default=[], description="""Maximum (final) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ heating_rate: Optional[list[float]] = Field(default=[], description="""Rate at which temperature is increased during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:heating_rate',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ heating_procedure: Optional[list[str]] = Field(default=[], description="""Description of the heating procedure applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin', 'GCMS'],
+ 'slot_uri': 'coremeta4cat:heating_procedure'} })
+
+
+class ChromatographyMixin(ConfiguredBaseModel):
+ """
+ Mixin providing chromatographic separation parameters shared by
+ separation techniques (GCMS, SizeExclusionChromatography, HPLC_MS).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ column_type: Optional[list[str]] = Field(default=[], description="""Type of chromatographic column used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'coremeta4cat:column_type'} })
+ eluent: Optional[list[str]] = Field(default=[], description="""Eluent or mobile phase used in chromatography.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'AFRL:0000011'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ injection_volume: Optional[list[float]] = Field(default=[], description="""Volume injected in a chromatographic or mass spectrometric experiment.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:injection_volume',
+ 'unit': {'ucum_code': 'uL'}} })
+ external_standard: Optional[list[str]] = Field(default=[], description="""External standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:external_standard'} })
+ internal_standard: Optional[list[str]] = Field(default=[], description="""Internal standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:internal_standard'} })
+
+
+class MassRangeMixin(ConfiguredBaseModel):
+ """
+ Mixin providing mass-to-charge scan range slots shared by mass
+ spectrometry techniques (GCMS, ESI_MS).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ mz_minimum: Optional[list[float]] = Field(default=[], description="""Minimum m/z value in the mass scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MassRangeMixin'], 'slot_uri': 'AFR:0002652'} })
+ mz_maximum: Optional[list[float]] = Field(default=[], description="""Maximum m/z value in the mass scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MassRangeMixin'], 'slot_uri': 'AFR:0002653'} })
+
+
+class PhotoluminescenceMixin(ConfiguredBaseModel):
+ """
+ Mixin providing optical excitation/emission parameters shared by
+ photoluminescence techniques (PhotoluminescenceSpectroscopy,
+ PhotoluminescenceLifetime).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ excitation_wavelength: Optional[list[float]] = Field(default=[], description="""Excitation wavelength used in photoluminescence measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'AFR:0002479',
+ 'unit': {'ucum_code': 'nm'}} })
+ emission_wavelength: Optional[list[float]] = Field(default=[], description="""Emission wavelength detected in photoluminescence measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'NCIT:C204101',
+ 'unit': {'ucum_code': 'nm'}} })
+ optical_filter: Optional[list[str]] = Field(default=[], description="""Optical filter used in the emission or excitation path.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'coremeta4cat:optical_filter'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+
+
+class ElectrochemistryMixin(ConfiguredBaseModel):
+ """
+ Mixin providing electrochemical cell parameters shared by
+ electrochemical characterization techniques (CyclicVoltammetry,
+ ConductivityMeasurement).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixin': True})
+
+ reference_electrode: Optional[list[str]] = Field(default=[], description="""Reference electrode used in electrochemical cell (e.g. Ag/AgCl, RHE).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007204'} })
+ working_electrode: Optional[list[str]] = Field(default=[], description="""Working electrode used in electrochemical cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007202'} })
+ counter_electrode: Optional[list[str]] = Field(default=[], description="""Counter electrode used in electrochemical cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007203'} })
+ electrolyte_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the electrolyte solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'],
+ 'slot_uri': 'coremeta4cat:electrolyte_composition'} })
+ electrolyte_concentration: Optional[list[float]] = Field(default=[], description="""Concentration of the electrolyte.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'],
+ 'slot_uri': 'coremeta4cat:electrolyte_concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+
+
+class Agent(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Agent](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Agent)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'foaf:Agent',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'name': {'description': 'A name of the agent.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'name',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'foaf:name'},
+ 'type': {'description': 'The nature of the agent.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'type',
+ 'range': 'Concept',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:type'}}})
+
+ name: list[str] = Field(default=..., description="""A name of the agent.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent'], 'slot_uri': 'foaf:name'} })
+ type: Optional[Concept] = Field(default=None, description="""The nature of the agent.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:type'} })
+
+
+class Catalogue(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Catalogue](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Catalogue)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Catalog',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'applicable_legislation': {'description': 'The legislation '
+ 'that mandates the '
+ 'creation or '
+ 'management of the '
+ 'Catalog.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'applicable_legislation',
+ 'range': 'LegalResource',
+ 'required': False,
+ 'slot_uri': 'dcatap:applicableLegislation'},
+ 'catalogue': {'description': 'A catalogue whose contents are '
+ 'of interest in the context of '
+ 'this catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'catalogue',
+ 'range': 'Catalogue',
+ 'required': False,
+ 'slot_uri': 'dcat:catalog'},
+ 'creator': {'description': 'An entity responsible for the '
+ 'creation of the catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'creator',
+ 'range': 'Agent',
+ 'required': False,
+ 'slot_uri': 'dcterms:creator'},
+ 'description': {'description': 'A free-text account of the '
+ 'Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:description'},
+ 'geographical_coverage': {'description': 'A geographical area '
+ 'covered by the '
+ 'Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'geographical_coverage',
+ 'range': 'Location',
+ 'required': False,
+ 'slot_uri': 'dcterms:spatial'},
+ 'has_dataset': {'description': 'A Dataset that is part of the '
+ 'Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_dataset',
+ 'range': 'Dataset',
+ 'required': False,
+ 'slot_uri': 'dcat:dataset'},
+ 'has_part': {'description': 'A related Catalogue that is part '
+ 'of the described Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'range': 'Catalogue',
+ 'required': False,
+ 'slot_uri': 'dcterms:hasPart'},
+ 'homepage': {'description': 'A web page that acts as the main '
+ 'page for the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'homepage',
+ 'range': 'Document',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'foaf:homepage'},
+ 'language': {'description': 'A language used in the textual '
+ 'metadata describing titles, '
+ 'descriptions, etc. of the '
+ 'Datasets in the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'language',
+ 'range': 'LinguisticSystem',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:language'},
+ 'licence': {'description': 'A licence under which the '
+ 'Catalogue can be used or reused.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'licence',
+ 'range': 'LicenseDocument',
+ 'required': False,
+ 'slot_uri': 'dcterms:license'},
+ 'modification_date': {'description': 'The most recent date on '
+ 'which the Catalogue was '
+ 'modified.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'modification_date',
+ 'range': 'date',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:modified'},
+ 'publisher': {'description': 'An entity (organisation) '
+ 'responsible for making the '
+ 'Catalogue available.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'publisher',
+ 'range': 'Agent',
+ 'required': True,
+ 'slot_uri': 'dcterms:publisher'},
+ 'record': {'description': 'A Catalogue Record that is part of '
+ 'the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'record',
+ 'range': 'CatalogueRecord',
+ 'required': False,
+ 'slot_uri': 'dcat:record'},
+ 'release_date': {'description': 'The date of formal issuance '
+ '(e.g., publication) of the '
+ 'Catalogue.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'release_date',
+ 'range': 'date',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:issued'},
+ 'rights': {'description': 'A statement that specifies rights '
+ 'associated with the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'rights',
+ 'range': 'RightsStatement',
+ 'required': False,
+ 'slot_uri': 'dcterms:rights'},
+ 'service': {'description': 'A site or end-point (Data Service) '
+ 'that is listed in the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'service',
+ 'range': 'DataService',
+ 'required': False,
+ 'slot_uri': 'dcat:service'},
+ 'temporal_coverage': {'description': 'A temporal period that '
+ 'the Catalogue covers.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'temporal_coverage',
+ 'range': 'PeriodOfTime',
+ 'required': False,
+ 'slot_uri': 'dcterms:temporal'},
+ 'themes': {'description': 'A knowledge organization system '
+ 'used to classify the Resources that '
+ 'are in the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'themes',
+ 'range': 'ConceptScheme',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:themeTaxonomy'},
+ 'title': {'description': 'A name given to the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:title'}}})
+
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Catalog.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ catalogue: Optional[list[Catalogue]] = Field(default=[], description="""A catalogue whose contents are of interest in the context of this catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue'], 'slot_uri': 'dcat:catalog'} })
+ creator: Optional[Agent] = Field(default=None, description="""An entity responsible for the creation of the catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset'], 'slot_uri': 'dcterms:creator'} })
+ description: list[str] = Field(default=..., description="""A free-text account of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ geographical_coverage: Optional[list[Location]] = Field(default=[], description="""A geographical area covered by the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:spatial'} })
+ has_dataset: Optional[list[Dataset]] = Field(default=[], description="""A Dataset that is part of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue'], 'slot_uri': 'dcat:dataset'} })
+ has_part: Optional[list[Catalogue]] = Field(default=[], description="""A related Catalogue that is part of the described Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ homepage: Optional[Document] = Field(default=None, description="""A web page that acts as the main page for the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue'], 'recommended': True, 'slot_uri': 'foaf:homepage'} })
+ language: Optional[list[LinguisticSystem]] = Field(default=[], description="""A language used in the textual metadata describing titles, descriptions, etc. of the Datasets in the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'CatalogueRecord', 'Dataset', 'Distribution'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:language'} })
+ licence: Optional[LicenseDocument] = Field(default=None, description="""A licence under which the Catalogue can be used or reused.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Distribution'],
+ 'slot_uri': 'dcterms:license'} })
+ modification_date: Optional[date] = Field(default=None, description="""The most recent date on which the Catalogue was modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:modified'} })
+ publisher: Agent = Field(default=..., description="""An entity (organisation) responsible for making the Catalogue available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:publisher'} })
+ record: Optional[list[CatalogueRecord]] = Field(default=[], description="""A Catalogue Record that is part of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue'], 'slot_uri': 'dcat:record'} })
+ release_date: Optional[date] = Field(default=None, description="""The date of formal issuance (e.g., publication) of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries', 'Distribution'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:issued'} })
+ rights: Optional[RightsStatement] = Field(default=None, description="""A statement that specifies rights associated with the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Distribution'], 'slot_uri': 'dcterms:rights'} })
+ service: Optional[list[DataService]] = Field(default=[], description="""A site or end-point (Data Service) that is listed in the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue'], 'slot_uri': 'dcat:service'} })
+ temporal_coverage: Optional[list[PeriodOfTime]] = Field(default=[], description="""A temporal period that the Catalogue covers.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:temporal'} })
+ themes: Optional[list[ConceptScheme]] = Field(default=[], description="""A knowledge organization system used to classify the Resources that are in the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:themeTaxonomy'} })
+ title: list[str] = Field(default=..., description="""A name given to the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+
+
+class CatalogueRecord(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:CatalogueRecord](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#CatalogueRecord)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:CatalogRecord',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'application_profile': {'description': 'An Application Profile '
+ 'that the Catalogued '
+ 'Resource's '
+ 'metadata conforms to.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'application_profile',
+ 'range': 'Standard',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:conformsTo'},
+ 'change_type': {'description': 'The status of the catalogue '
+ 'record in the context of '
+ 'editorial flow of the dataset '
+ 'and data service descriptions.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'change_type',
+ 'range': 'Concept',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'adms:status'},
+ 'description': {'description': 'A free-text account of the '
+ 'record. This property can be '
+ 'repeated for parallel language '
+ 'versions of the description.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'dcterms:description'},
+ 'language': {'description': 'A language used in the textual '
+ 'metadata describing titles, '
+ 'descriptions, etc. of the '
+ 'Catalogued Resource.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'language',
+ 'range': 'LinguisticSystem',
+ 'required': False,
+ 'slot_uri': 'dcterms:language'},
+ 'listing_date': {'description': 'The date on which the '
+ 'description of the Resource '
+ 'was included in the '
+ 'Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'listing_date',
+ 'range': 'date',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:issued'},
+ 'modification_date': {'description': 'The most recent date on '
+ 'which the Catalogue '
+ 'entry was changed or '
+ 'modified.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'modification_date',
+ 'range': 'date',
+ 'required': True,
+ 'slot_uri': 'dcterms:modified'},
+ 'primary_topic': {'any_of': [{'range': 'Catalogue'},
+ {'range': 'Dataset'},
+ {'range': 'DatasetSeries'},
+ {'range': 'DataService'}],
+ 'description': 'A link to the Dataset, Data '
+ 'service or Catalog described '
+ 'in the record.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'primary_topic',
+ 'range': 'Any',
+ 'required': True,
+ 'slot_uri': 'foaf:primaryTopic'},
+ 'source_metadata': {'description': 'The original metadata that '
+ 'was used in creating '
+ 'metadata for the Dataset, '
+ 'Data Service or Dataset '
+ 'Series.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'source_metadata',
+ 'range': 'CatalogueRecord',
+ 'required': False,
+ 'slot_uri': 'dcterms:source'},
+ 'title': {'description': 'A name given to the Catalogue '
+ 'Record.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'dcterms:title'}}})
+
+ application_profile: Optional[list[Standard]] = Field(default=[], description="""An Application Profile that the Catalogued Resource's metadata conforms to.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CatalogueRecord'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:conformsTo'} })
+ change_type: Optional[Concept] = Field(default=None, description="""The status of the catalogue record in the context of editorial flow of the dataset and data service descriptions.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CatalogueRecord'],
+ 'recommended': True,
+ 'slot_uri': 'adms:status'} })
+ description: Optional[list[str]] = Field(default=[], description="""A free-text account of the record. This property can be repeated for parallel language versions of the description.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ language: Optional[list[LinguisticSystem]] = Field(default=[], description="""A language used in the textual metadata describing titles, descriptions, etc. of the Catalogued Resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'CatalogueRecord', 'Dataset', 'Distribution'],
+ 'slot_uri': 'dcterms:language'} })
+ listing_date: Optional[date] = Field(default=None, description="""The date on which the description of the Resource was included in the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CatalogueRecord'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:issued'} })
+ modification_date: date = Field(default=..., description="""The most recent date on which the Catalogue entry was changed or modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcterms:modified'} })
+ primary_topic: Union[Catalogue, DataService, DatasetSeries, str] = Field(default=..., description="""A link to the Dataset, Data service or Catalog described in the record.""", json_schema_extra = { "linkml_meta": {'any_of': [{'range': 'Catalogue'},
+ {'range': 'Dataset'},
+ {'range': 'DatasetSeries'},
+ {'range': 'DataService'}],
+ 'domain_of': ['CatalogueRecord'],
+ 'slot_uri': 'foaf:primaryTopic'} })
+ source_metadata: Optional[CatalogueRecord] = Field(default=None, description="""The original metadata that was used in creating metadata for the Dataset, Data Service or Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CatalogueRecord'], 'slot_uri': 'dcterms:source'} })
+ title: Optional[list[str]] = Field(default=[], description="""A name given to the Catalogue Record.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+
+
+class Checksum(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Checksum](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Checksum)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'spdx:Checksum',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'algorithm': {'description': 'The algorithm used to produce '
+ 'the subject Checksum.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'algorithm',
+ 'range': 'ChecksumAlgorithm',
+ 'required': True,
+ 'slot_uri': 'spdx:algorithm'},
+ 'checksum_value': {'description': 'A lower case hexadecimal '
+ 'encoded digest value '
+ 'produced using a specific '
+ 'algorithm.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'checksum_value',
+ 'range': 'hexBinary',
+ 'required': True,
+ 'slot_uri': 'spdx:checksumValue'}}})
+
+ algorithm: ChecksumAlgorithm = Field(default=..., description="""The algorithm used to produce the subject Checksum.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Checksum'], 'slot_uri': 'spdx:algorithm'} })
+ checksum_value: str = Field(default=..., description="""A lower case hexadecimal encoded digest value produced using a specific algorithm.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Checksum'], 'slot_uri': 'spdx:checksumValue'} })
+
+
+class ClassifierMixin(ConfiguredBaseModel):
+ """
+ A mixin with which an entity of this schema can be classified via an additional rdf:type or dcterms:type assertion.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixin': True,
+ 'slot_usage': {'type': {'inlined': True,
+ 'name': 'type',
+ 'range': 'DefinedTerm'}}})
+
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Activity(ClassifierMixin):
+ """
+ See [DCAT-AP specs:Activity](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Activity)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Activity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin'],
+ 'notes': ['The specified properties (slots) of this class are part of our '
+ 'extension of the DCAT-AP.'],
+ 'slot_usage': {'carried_out_by': {'name': 'carried_out_by',
+ 'notes': ['not in DCAT-AP']},
+ 'description': {'description': 'The slot to provide a '
+ 'description for the Activity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'notes': ['not in DCAT-AP']},
+ 'had_input_activity': {'name': 'had_input_activity',
+ 'notes': ['not in DCAT-AP']},
+ 'had_input_entity': {'name': 'had_input_entity',
+ 'notes': ['not in DCAT-AP']},
+ 'had_output_entity': {'name': 'had_output_entity',
+ 'notes': ['not in DCAT-AP']},
+ 'has_part': {'description': 'The slot to provide an Activity '
+ 'that is part of the Activity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'range': 'Activity'},
+ 'has_qualitative_attribute': {'name': 'has_qualitative_attribute',
+ 'notes': ['not in DCAT-AP']},
+ 'has_quantitative_attribute': {'name': 'has_quantitative_attribute',
+ 'notes': ['not in DCAT-AP']},
+ 'other_identifier': {'description': 'The slot to provide a '
+ 'secondary identifier of '
+ 'the Activity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'notes': ['not in DCAT-AP'],
+ 'range': 'Identifier'},
+ 'part_of': {'description': 'The slot to provide an Activity of '
+ 'which the Activity is a part.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'part_of',
+ 'notes': ['not in DCAT-AP'],
+ 'range': 'Activity'},
+ 'title': {'description': 'The slot to provide a title for the '
+ 'Activity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'notes': ['not in DCAT-AP']}}})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class AgenticEntity(ClassifierMixin):
+ """
+ An entity that is somehow responsible for an Activity to take place.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Agent',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin'],
+ 'slot_usage': {'has_part': {'description': 'The slot to specify parts of an '
+ 'AgenticEntity that are themselves '
+ 'AgenticEntities.',
+ 'inlined': True,
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'range': 'AgenticEntity'},
+ 'other_identifier': {'description': 'A slot to provide a '
+ 'secondary identifier for '
+ 'an Instrument.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False},
+ 'part_of': {'description': 'The slot to provide the '
+ 'AgenticEntity of which '
+ 'theAgenticEntity is a part.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'part_of',
+ 'notes': ['not in DCAT-AP'],
+ 'range': 'AgenticEntity'}}})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for an Instrument.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify parts of an AgenticEntity that are themselves AgenticEntities.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DataGeneratingActivity(Activity):
+ """
+ An Activity (process) that has the objective to produce information (in form of a dataset) about another Activity or Entity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Activity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core']})
+
+ evaluated_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""The slot to specify the Entity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ evaluated_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""The slot to specify the Activity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_activity',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ realized_plan: Optional[Plan] = Field(default=None, description="""The slot to specify the Plan (i.e. directive information or procedure) that was realized by an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:used'} })
+ occurred_in: Optional[Surrounding] = Field(default=None, description="""The slot to specify the Surrounding in which an Activity took place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:atLocation'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Synthesis(DataGeneratingActivity):
+ """
+ A DataGeneratingActivity in which a catalyst is prepared.
+
+ The preparation protocol is linked via realized_plan using a
+ PreparationMethod instance. Input materials (Precursors) are linked via
+ had_input_entity. The resulting catalyst (CatalystSample) is linked via
+ had_output_entity.
+
+ The type of synthesis is further specified via rdf_type using an ontology
+ term (e.g. a voc4cat preparation method term), following DCAT-AP-PLUS
+ Pattern 3.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'OBI:0000070',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'slot_usage': {'catalyst_measured_properties': {'name': 'catalyst_measured_properties',
+ 'required': True},
+ 'had_input_entity': {'description': 'The Precursor(s) consumed '
+ 'during this Synthesis.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'had_input_entity',
+ 'range': 'Precursor',
+ 'required': True},
+ 'had_output_entity': {'description': 'The CatalystSample '
+ 'produced by this '
+ 'Synthesis.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'had_output_entity',
+ 'range': 'CatalystSample',
+ 'recommended': True},
+ 'nominal_composition': {'name': 'nominal_composition',
+ 'required': True},
+ 'realized_plan': {'description': 'The PreparationMethod '
+ '(protocol) realized in this '
+ 'Synthesis.',
+ 'name': 'realized_plan',
+ 'range': 'PreparationMethod',
+ 'required': True},
+ 'storage_conditions': {'name': 'storage_conditions',
+ 'recommended': True}}})
+
+ nominal_composition: list[str] = Field(default=..., description="""Nominal elemental or chemical composition of the catalyst (e.g. 5wt% Pt/Al2O3).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis'], 'slot_uri': 'coremeta4cat:nominal_composition'} })
+ catalyst_measured_properties: list[str] = Field(default=..., description="""Key measured properties of the resulting catalyst
+(e.g. BET surface area, sieve fraction, molar ratio).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis'],
+ 'slot_uri': 'coremeta4cat:catalyst_measured_properties'} })
+ storage_conditions: Optional[list[str]] = Field(default=[], description="""Conditions under which the catalyst is stored (e.g. inert atmosphere, 4�C).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis'],
+ 'recommended': True,
+ 'slot_uri': 'coremeta4cat:storage_conditions'} })
+ support: Optional[list[str]] = Field(default=[], description="""Support material on which the active phase is deposited (e.g. Al2O3, SiO2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis'], 'slot_uri': 'coremeta4cat:support'} })
+ solvent: Optional[list[str]] = Field(default=[], description="""Solvent used in a process or sample preparation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis',
+ 'NMRSpectroscopy',
+ 'UVVisSpectroscopy',
+ 'DynamicLightScattering'],
+ 'slot_uri': 'VOC4CAT:0007246'} })
+ sample_pretreatment: Optional[list[str]] = Field(default=[], description="""Pre-treatment applied to the sample before a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis', 'Characterization'], 'slot_uri': 'VOC4CAT:0000122'} })
+ evaluated_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""The slot to specify the Entity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ evaluated_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""The slot to specify the Activity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_activity',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ realized_plan: PreparationMethod = Field(default=..., description="""The PreparationMethod (protocol) realized in this Synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:used'} })
+ occurred_in: Optional[Surrounding] = Field(default=None, description="""The slot to specify the Surrounding in which an Activity took place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:atLocation'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: list[Precursor] = Field(default=..., description="""The Precursor(s) consumed during this Synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[CatalystSample]] = Field(default=[], description="""The CatalystSample produced by this Synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Characterization(DataGeneratingActivity):
+ """
+ A DataGeneratingActivity in which a catalyst sample or catalytic material
+ is characterized using an analytical technique.
+
+ The catalyst sample being characterized is linked via evaluated_entity.
+ The analytical protocol is linked via realized_plan using a
+ CharacterizationTechnique instance. The instrument used is linked via
+ carried_out_by as a Device.
+
+ The specific technique type is expressed via rdf_type using an ontology
+ term (e.g. CHMO:0000158 for powder XRD, CHMO:0000404 for XPS),
+ following DCAT-AP-PLUS Pattern 3 � exactly as NMRSpectroscopy uses
+ rdf_type: CHMO:0000613.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'OBI:0000070',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'slot_usage': {'equipment': {'description': 'Instrument or equipment used for '
+ 'characterization.',
+ 'name': 'equipment',
+ 'required': True},
+ 'evaluated_entity': {'description': 'The catalyst sample or '
+ 'material being '
+ 'characterized.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'evaluated_entity',
+ 'range': 'EvaluatedEntity',
+ 'recommended': True},
+ 'rdf_type': {'description': 'The type of characterization '
+ 'technique as an ontology term, '
+ 'e.g.\n'
+ 'CHMO:0000158 (powder XRD), '
+ 'CHMO:0000404 (XPS), '
+ 'VOC4CAT:0000075 (SEM).',
+ 'name': 'rdf_type',
+ 'recommended': True},
+ 'realized_plan': {'description': 'The '
+ 'CharacterizationTechnique '
+ '(protocol) realized in this '
+ 'Characterization.',
+ 'name': 'realized_plan',
+ 'range': 'CharacterizationTechnique',
+ 'required': True}}})
+
+ sample_state: Optional[list[SampleStateEnum]] = Field(default=[], description="""Physical state of the sample during characterization.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Characterization'], 'slot_uri': 'coremeta4cat:sample_state'} })
+ sample_description: Optional[list[str]] = Field(default=[], description="""Free-text description of the sample used in this characterization.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Characterization'],
+ 'slot_uri': 'coremeta4cat:sample_description'} })
+ sample_preparation: Optional[list[str]] = Field(default=[], description="""Sample preparation steps applied immediately before measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Characterization'], 'slot_uri': 'AFP:0001159'} })
+ sample_pretreatment: Optional[list[str]] = Field(default=[], description="""Pre-treatment applied to the sample before a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis', 'Characterization'], 'slot_uri': 'VOC4CAT:0000122'} })
+ detector_type: Optional[list[str]] = Field(default=[], description="""Type of detector used in the measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Characterization'], 'slot_uri': 'AFR:0000317'} })
+ evaluated_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""The catalyst sample or material being characterized.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ evaluated_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""The slot to specify the Activity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_activity',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ realized_plan: CharacterizationTechnique = Field(default=..., description="""The CharacterizationTechnique (protocol) realized in this Characterization.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:used'} })
+ occurred_in: Optional[Surrounding] = Field(default=None, description="""The slot to specify the Surrounding in which an Activity took place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:atLocation'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The type of characterization technique as an ontology term, e.g.
+CHMO:0000158 (powder XRD), CHMO:0000404 (XPS), VOC4CAT:0000075 (SEM).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DataAnalysis(DataGeneratingActivity):
+ """
+ An Activity that evaluates the data produced by another Activity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Activity',
+ 'close_mappings': ['NCIT:C25391'],
+ 'exact_mappings': ['OBI:0200000'],
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'evaluated_entity': {'description': 'A slot to provide the '
+ 'data that was analysed by '
+ 'the DataAnalysis.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'evaluated_entity',
+ 'range': 'AnalysisSourceData'}}})
+
+ evaluated_entity: Optional[list[AnalysisSourceData]] = Field(default=[], description="""A slot to provide the data that was analysed by the DataAnalysis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ evaluated_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""The slot to specify the Activity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_activity',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ realized_plan: Optional[Plan] = Field(default=None, description="""The slot to specify the Plan (i.e. directive information or procedure) that was realized by an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:used'} })
+ occurred_in: Optional[Surrounding] = Field(default=None, description="""The slot to specify the Surrounding in which an Activity took place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:atLocation'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DataService(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:DataService](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#DataService)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:DataService',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'access_rights': {'description': 'Information regarding access '
+ 'or restrictions based on '
+ 'privacy, security, or other '
+ 'policies.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'access_rights',
+ 'range': 'RightsStatement',
+ 'required': False,
+ 'slot_uri': 'dcterms:accessRights'},
+ 'applicable_legislation': {'description': 'The legislation '
+ 'that mandates the '
+ 'creation or '
+ 'management of the '
+ 'Data Service.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'applicable_legislation',
+ 'range': 'LegalResource',
+ 'required': False,
+ 'slot_uri': 'dcatap:applicableLegislation'},
+ 'conforms_to': {'description': 'An established (technical) '
+ 'standard to which the Data '
+ 'Service conforms.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'conforms_to',
+ 'range': 'Standard',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:conformsTo'},
+ 'contact_point': {'description': 'Contact information that can '
+ 'be used for sending comments '
+ 'about the Data Service.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'contact_point',
+ 'range': 'Kind',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:contactPoint'},
+ 'description': {'description': 'A free-text account of the '
+ 'Data Service.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'dcterms:description'},
+ 'documentation': {'description': 'A page or document about '
+ 'this Data Service',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'documentation',
+ 'range': 'Document',
+ 'required': False,
+ 'slot_uri': 'foaf:page'},
+ 'endpoint_URL': {'description': 'The root location or primary '
+ 'endpoint of the service (an '
+ 'IRI).',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'endpoint_URL',
+ 'range': 'Resource',
+ 'required': True,
+ 'slot_uri': 'dcat:endpointURL'},
+ 'endpoint_description': {'description': 'A description of the '
+ 'services available '
+ 'via the end-points, '
+ 'including their '
+ 'operations, '
+ 'parameters etc.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'endpoint_description',
+ 'range': 'Resource',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:endpointDescription'},
+ 'format': {'description': 'The structure that can be returned '
+ 'by querying the endpointURL.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'format',
+ 'range': 'MediaTypeOrExtent',
+ 'required': False,
+ 'slot_uri': 'dcterms:format'},
+ 'keyword': {'description': 'A keyword or tag describing the '
+ 'Data Service.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'keyword',
+ 'range': 'string',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:keyword'},
+ 'landing_page': {'description': 'A web page that provides '
+ 'access to the Data Service '
+ 'and/or additional '
+ 'information.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'landing_page',
+ 'range': 'Document',
+ 'required': False,
+ 'slot_uri': 'dcat:landingPage'},
+ 'licence': {'description': 'A licence under which the Data '
+ 'service is made available.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'licence',
+ 'range': 'LicenseDocument',
+ 'required': False,
+ 'slot_uri': 'dcterms:license'},
+ 'publisher': {'description': 'An entity (organisation) '
+ 'responsible for making the Data '
+ 'Service available.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'publisher',
+ 'range': 'Agent',
+ 'required': False,
+ 'slot_uri': 'dcterms:publisher'},
+ 'serves_dataset': {'description': 'This property refers to a '
+ 'collection of data that '
+ 'this data service can '
+ 'distribute.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'serves_dataset',
+ 'range': 'Dataset',
+ 'required': False,
+ 'slot_uri': 'dcat:servesDataset'},
+ 'theme': {'description': 'A category of the Data Service.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'theme',
+ 'range': 'Concept',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:theme'},
+ 'title': {'description': 'A name given to the Data Service.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:title'}}})
+
+ access_rights: Optional[RightsStatement] = Field(default=None, description="""Information regarding access or restrictions based on privacy, security, or other policies.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:accessRights'} })
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Data Service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ conforms_to: Optional[list[Standard]] = Field(default=[], description="""An established (technical) standard to which the Data Service conforms.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:conformsTo'} })
+ contact_point: Optional[list[Kind]] = Field(default=[], description="""Contact information that can be used for sending comments about the Data Service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'DatasetSeries'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:contactPoint'} })
+ description: Optional[list[str]] = Field(default=[], description="""A free-text account of the Data Service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ documentation: Optional[list[Document]] = Field(default=[], description="""A page or document about this Data Service""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'Distribution'],
+ 'slot_uri': 'foaf:page'} })
+ endpoint_URL: list[Resource] = Field(default=..., description="""The root location or primary endpoint of the service (an IRI).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService'], 'slot_uri': 'dcat:endpointURL'} })
+ endpoint_description: Optional[list[Resource]] = Field(default=[], description="""A description of the services available via the end-points, including their operations, parameters etc.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:endpointDescription'} })
+ format: Optional[list[MediaTypeOrExtent]] = Field(default=[], description="""The structure that can be returned by querying the endpointURL.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Distribution'], 'slot_uri': 'dcterms:format'} })
+ keyword: Optional[list[str]] = Field(default=[], description="""A keyword or tag describing the Data Service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:keyword'} })
+ landing_page: Optional[list[Document]] = Field(default=[], description="""A web page that provides access to the Data Service and/or additional information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcat:landingPage'} })
+ licence: Optional[LicenseDocument] = Field(default=None, description="""A licence under which the Data service is made available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Distribution'],
+ 'slot_uri': 'dcterms:license'} })
+ publisher: Optional[Agent] = Field(default=None, description="""An entity (organisation) responsible for making the Data Service available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:publisher'} })
+ serves_dataset: Optional[list[Dataset]] = Field(default=[], description="""This property refers to a collection of data that this data service can distribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService'], 'slot_uri': 'dcat:servesDataset'} })
+ theme: Optional[list[Concept]] = Field(default=[], description="""A category of the Data Service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:theme'} })
+ title: list[str] = Field(default=..., description="""A name given to the Data Service.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+
+
+class Dataset(ConfiguredBaseModel):
+ """
+ A collection of data, published or curated by a single agent, and available for access or download in one or more representations.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Dataset',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'access_rights': {'description': 'Information that indicates '
+ 'whether the Dataset is '
+ 'publicly accessible, has '
+ 'access restrictions or is '
+ 'not public.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'access_rights',
+ 'range': 'RightsStatement',
+ 'required': False,
+ 'slot_uri': 'dcterms:accessRights'},
+ 'applicable_legislation': {'description': 'The legislation '
+ 'that mandates the '
+ 'creation or '
+ 'management of the '
+ 'Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'applicable_legislation',
+ 'range': 'LegalResource',
+ 'required': False,
+ 'slot_uri': 'dcatap:applicableLegislation'},
+ 'conforms_to': {'description': 'An implementing rule or other '
+ 'specification.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'conforms_to',
+ 'range': 'Standard',
+ 'required': False,
+ 'slot_uri': 'dcterms:conformsTo'},
+ 'contact_point': {'description': 'Contact information that can '
+ 'be used for sending comments '
+ 'about the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'contact_point',
+ 'range': 'Kind',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:contactPoint'},
+ 'creator': {'description': 'An entity responsible for '
+ 'producing the dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'creator',
+ 'range': 'Agent',
+ 'required': False,
+ 'slot_uri': 'dcterms:creator'},
+ 'dataset_distribution': {'description': 'An available '
+ 'Distribution for the '
+ 'Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'dataset_distribution',
+ 'range': 'Distribution',
+ 'required': False,
+ 'slot_uri': 'dcat:distribution'},
+ 'description': {'description': 'A free-text account of the '
+ 'Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:description'},
+ 'documentation': {'description': 'A page or document about '
+ 'this Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'documentation',
+ 'range': 'Document',
+ 'required': False,
+ 'slot_uri': 'foaf:page'},
+ 'frequency': {'description': 'The frequency at which the '
+ 'Dataset is updated.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'frequency',
+ 'range': 'Frequency',
+ 'required': False,
+ 'slot_uri': 'dcterms:accrualPeriodicity'},
+ 'geographical_coverage': {'description': 'A geographic region '
+ 'that is covered by '
+ 'the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'geographical_coverage',
+ 'range': 'Location',
+ 'required': False,
+ 'slot_uri': 'dcterms:spatial'},
+ 'has_version': {'description': 'A related Dataset that is a '
+ 'version, edition, or '
+ 'adaptation of the described '
+ 'Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_version',
+ 'range': 'Dataset',
+ 'required': False,
+ 'slot_uri': 'dcat:hasVersion'},
+ 'identifier': {'description': 'The main identifier for the '
+ 'Dataset, e.g. the URI or other '
+ 'unique identifier in the '
+ 'context of the Catalogue.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'identifier',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'dcterms:identifier'},
+ 'in_series': {'description': 'A dataset series of which the '
+ 'dataset is part.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'in_series',
+ 'range': 'DatasetSeries',
+ 'required': False,
+ 'slot_uri': 'dcat:inSeries'},
+ 'is_referenced_by': {'description': 'A related resource, such '
+ 'as a publication, that '
+ 'references, cites, or '
+ 'otherwise points to the '
+ 'dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'is_referenced_by',
+ 'range': 'Resource',
+ 'required': False,
+ 'slot_uri': 'dcterms:isReferencedBy'},
+ 'keyword': {'description': 'A keyword or tag describing the '
+ 'Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'keyword',
+ 'range': 'string',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:keyword'},
+ 'landing_page': {'description': 'A web page that provides '
+ 'access to the Dataset, its '
+ 'Distributions and/or '
+ 'additional information.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'landing_page',
+ 'range': 'Document',
+ 'required': False,
+ 'slot_uri': 'dcat:landingPage'},
+ 'language': {'description': 'A language of the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'language',
+ 'range': 'LinguisticSystem',
+ 'required': False,
+ 'slot_uri': 'dcterms:language'},
+ 'modification_date': {'description': 'The most recent date on '
+ 'which the Dataset was '
+ 'changed or modified.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'modification_date',
+ 'range': 'date',
+ 'required': False,
+ 'slot_uri': 'dcterms:modified'},
+ 'other_identifier': {'description': 'A secondary identifier of '
+ 'the Dataset',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False,
+ 'slot_uri': 'adms:identifier'},
+ 'provenance': {'description': 'A statement about the lineage '
+ 'of a Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'provenance',
+ 'range': 'ProvenanceStatement',
+ 'required': False,
+ 'slot_uri': 'dcterms:provenance'},
+ 'publisher': {'description': 'An entity (organisation) '
+ 'responsible for making the '
+ 'Dataset available.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'publisher',
+ 'range': 'Agent',
+ 'required': False,
+ 'slot_uri': 'dcterms:publisher'},
+ 'qualified_attribution': {'description': 'An Agent having some '
+ 'form of '
+ 'responsibility for '
+ 'the resource.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'qualified_attribution',
+ 'range': 'Attribution',
+ 'required': False,
+ 'slot_uri': 'prov:qualifiedAttribution'},
+ 'qualified_relation': {'description': 'A description of a '
+ 'relationship with '
+ 'another resource.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'qualified_relation',
+ 'range': 'Relationship',
+ 'required': False,
+ 'slot_uri': 'dcat:qualifiedRelation'},
+ 'related_resource': {'description': 'A related resource.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'related_resource',
+ 'range': 'Resource',
+ 'required': False,
+ 'slot_uri': 'dcterms:relation'},
+ 'release_date': {'description': 'The date of formal issuance '
+ '(e.g., publication) of the '
+ 'Dataset.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'release_date',
+ 'range': 'date',
+ 'required': False,
+ 'slot_uri': 'dcterms:issued'},
+ 'sample': {'description': 'A sample distribution of the '
+ 'dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'sample',
+ 'range': 'Distribution',
+ 'required': False,
+ 'slot_uri': 'adms:sample'},
+ 'source': {'description': 'A related Dataset from which the '
+ 'described Dataset is derived.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'source',
+ 'range': 'Dataset',
+ 'required': False,
+ 'slot_uri': 'dcterms:source'},
+ 'spatial_resolution': {'description': 'The minimum spatial '
+ 'separation resolvable '
+ 'in a dataset, measured '
+ 'in meters.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'spatial_resolution',
+ 'range': 'decimal',
+ 'required': False,
+ 'slot_uri': 'dcat:spatialResolutionInMeters'},
+ 'temporal_coverage': {'description': 'A temporal period that '
+ 'the Dataset covers.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'temporal_coverage',
+ 'range': 'PeriodOfTime',
+ 'required': False,
+ 'slot_uri': 'dcterms:temporal'},
+ 'temporal_resolution': {'description': 'The minimum time '
+ 'period resolvable in '
+ 'the dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'temporal_resolution',
+ 'range': 'duration',
+ 'required': False,
+ 'slot_uri': 'dcat:temporalResolution'},
+ 'theme': {'description': 'A category of the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'theme',
+ 'range': 'Concept',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:theme'},
+ 'title': {'description': 'A name given to the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:title'},
+ 'type': {'description': 'A type of the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'type',
+ 'range': 'Concept',
+ 'required': False,
+ 'slot_uri': 'dcterms:type'},
+ 'version': {'description': 'The version indicator (name or '
+ 'identifier) of a resource.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'version',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'dcat:version'},
+ 'version_notes': {'description': 'A description of the '
+ 'differences between this '
+ 'version and a previous '
+ 'version of the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'version_notes',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'adms:versionNotes'},
+ 'was_generated_by': {'description': 'An activity that '
+ 'generated, or provides '
+ 'the business context for, '
+ 'the creation of the '
+ 'dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'was_generated_by',
+ 'notes': ['stricter than DCAT-AP'],
+ 'range': 'DataGeneratingActivity',
+ 'required': True,
+ 'slot_uri': 'prov:wasGeneratedBy'}}})
+
+ access_rights: Optional[RightsStatement] = Field(default=None, description="""Information that indicates whether the Dataset is publicly accessible, has access restrictions or is not public.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:accessRights'} })
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ conforms_to: Optional[list[Standard]] = Field(default=[], description="""An implementing rule or other specification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:conformsTo'} })
+ contact_point: Optional[list[Kind]] = Field(default=[], description="""Contact information that can be used for sending comments about the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'DatasetSeries'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:contactPoint'} })
+ creator: Optional[list[Agent]] = Field(default=[], description="""An entity responsible for producing the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset'], 'slot_uri': 'dcterms:creator'} })
+ dataset_distribution: Optional[list[Distribution]] = Field(default=[], description="""An available Distribution for the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:distribution'} })
+ description: list[str] = Field(default=..., description="""A free-text account of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ documentation: Optional[list[Document]] = Field(default=[], description="""A page or document about this Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'Distribution'],
+ 'slot_uri': 'foaf:page'} })
+ frequency: Optional[Frequency] = Field(default=None, description="""The frequency at which the Dataset is updated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:accrualPeriodicity'} })
+ geographical_coverage: Optional[list[Location]] = Field(default=[], description="""A geographic region that is covered by the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:spatial'} })
+ has_version: Optional[list[Dataset]] = Field(default=[], description="""A related Dataset that is a version, edition, or adaptation of the described Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:hasVersion'} })
+ identifier: Optional[list[str]] = Field(default=[], description="""The main identifier for the Dataset, e.g. the URI or other unique identifier in the context of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:identifier'} })
+ in_series: Optional[list[DatasetSeries]] = Field(default=[], description="""A dataset series of which the dataset is part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:inSeries'} })
+ is_referenced_by: Optional[list[Resource]] = Field(default=[], description="""A related resource, such as a publication, that references, cites, or otherwise points to the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:isReferencedBy'} })
+ keyword: Optional[list[str]] = Field(default=[], description="""A keyword or tag describing the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:keyword'} })
+ landing_page: Optional[list[Document]] = Field(default=[], description="""A web page that provides access to the Dataset, its Distributions and/or additional information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcat:landingPage'} })
+ language: Optional[list[LinguisticSystem]] = Field(default=[], description="""A language of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'CatalogueRecord', 'Dataset', 'Distribution'],
+ 'slot_uri': 'dcterms:language'} })
+ modification_date: Optional[date] = Field(default=None, description="""The most recent date on which the Dataset was changed or modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcterms:modified'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A secondary identifier of the Dataset""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ provenance: Optional[list[ProvenanceStatement]] = Field(default=[], description="""A statement about the lineage of a Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:provenance'} })
+ publisher: Optional[Agent] = Field(default=None, description="""An entity (organisation) responsible for making the Dataset available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:publisher'} })
+ qualified_attribution: Optional[list[Attribution]] = Field(default=[], description="""An Agent having some form of responsibility for the resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'prov:qualifiedAttribution'} })
+ qualified_relation: Optional[list[Relationship]] = Field(default=[], description="""A description of a relationship with another resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:qualifiedRelation'} })
+ related_resource: Optional[list[Resource]] = Field(default=[], description="""A related resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'ChemicalReaction'], 'slot_uri': 'dcterms:relation'} })
+ release_date: Optional[date] = Field(default=None, description="""The date of formal issuance (e.g., publication) of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries', 'Distribution'],
+ 'slot_uri': 'dcterms:issued'} })
+ sample: Optional[list[Distribution]] = Field(default=[], description="""A sample distribution of the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'adms:sample'} })
+ source: Optional[list[Dataset]] = Field(default=[], description="""A related Dataset from which the described Dataset is derived.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:source'} })
+ spatial_resolution: Optional[Decimal] = Field(default=None, description="""The minimum spatial separation resolvable in a dataset, measured in meters.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:spatialResolutionInMeters'} })
+ temporal_coverage: Optional[list[PeriodOfTime]] = Field(default=[], description="""A temporal period that the Dataset covers.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:temporal'} })
+ temporal_resolution: Optional[str] = Field(default=None, description="""The minimum time period resolvable in the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:temporalResolution'} })
+ theme: Optional[list[Concept]] = Field(default=[], description="""A category of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:theme'} })
+ title: list[str] = Field(default=..., description="""A name given to the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ type: Optional[list[Concept]] = Field(default=[], description="""A type of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ version: Optional[str] = Field(default=None, description="""The version indicator (name or identifier) of a resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:version'} })
+ version_notes: Optional[list[str]] = Field(default=[], description="""A description of the differences between this version and a previous version of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'adms:versionNotes'} })
+ was_generated_by: list[DataGeneratingActivity] = Field(default=..., description="""An activity that generated, or provides the business context for, the creation of the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'],
+ 'notes': ['stricter than DCAT-AP'],
+ 'slot_uri': 'prov:wasGeneratedBy'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ is_about_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""A slot to provide the EvaluatedEntity a Dataset is about.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'],
+ 'exact_mappings': ['IAO:0000136'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:subject'} })
+ is_about_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""A slot to provide the EvaluatedActivity a Dataset is about.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'],
+ 'exact_mappings': ['IAO:0000136'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:subject'} })
+
+
+class AnalysisDataset(Dataset):
+ """
+ A Dataset that was generated by an analysis of some previously generated data. For example, a dataset that contains the data of an assignment of a chemical structure to a sample based on the spectral data obtained from the sample is an AnalyticalDataset.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Dataset',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'was_generated_by': {'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'was_generated_by',
+ 'range': 'DataAnalysis'}}})
+
+ access_rights: Optional[RightsStatement] = Field(default=None, description="""Information that indicates whether the Dataset is publicly accessible, has access restrictions or is not public.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:accessRights'} })
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ conforms_to: Optional[list[Standard]] = Field(default=[], description="""An implementing rule or other specification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:conformsTo'} })
+ contact_point: Optional[list[Kind]] = Field(default=[], description="""Contact information that can be used for sending comments about the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'DatasetSeries'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:contactPoint'} })
+ creator: Optional[list[Agent]] = Field(default=[], description="""An entity responsible for producing the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset'], 'slot_uri': 'dcterms:creator'} })
+ dataset_distribution: Optional[list[Distribution]] = Field(default=[], description="""An available Distribution for the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:distribution'} })
+ description: list[str] = Field(default=..., description="""A free-text account of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ documentation: Optional[list[Document]] = Field(default=[], description="""A page or document about this Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'Distribution'],
+ 'slot_uri': 'foaf:page'} })
+ frequency: Optional[Frequency] = Field(default=None, description="""The frequency at which the Dataset is updated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:accrualPeriodicity'} })
+ geographical_coverage: Optional[list[Location]] = Field(default=[], description="""A geographic region that is covered by the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:spatial'} })
+ has_version: Optional[list[Dataset]] = Field(default=[], description="""A related Dataset that is a version, edition, or adaptation of the described Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:hasVersion'} })
+ identifier: Optional[list[str]] = Field(default=[], description="""The main identifier for the Dataset, e.g. the URI or other unique identifier in the context of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:identifier'} })
+ in_series: Optional[list[DatasetSeries]] = Field(default=[], description="""A dataset series of which the dataset is part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:inSeries'} })
+ is_referenced_by: Optional[list[Resource]] = Field(default=[], description="""A related resource, such as a publication, that references, cites, or otherwise points to the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:isReferencedBy'} })
+ keyword: Optional[list[str]] = Field(default=[], description="""A keyword or tag describing the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:keyword'} })
+ landing_page: Optional[list[Document]] = Field(default=[], description="""A web page that provides access to the Dataset, its Distributions and/or additional information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcat:landingPage'} })
+ language: Optional[list[LinguisticSystem]] = Field(default=[], description="""A language of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'CatalogueRecord', 'Dataset', 'Distribution'],
+ 'slot_uri': 'dcterms:language'} })
+ modification_date: Optional[date] = Field(default=None, description="""The most recent date on which the Dataset was changed or modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcterms:modified'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A secondary identifier of the Dataset""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ provenance: Optional[list[ProvenanceStatement]] = Field(default=[], description="""A statement about the lineage of a Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:provenance'} })
+ publisher: Optional[Agent] = Field(default=None, description="""An entity (organisation) responsible for making the Dataset available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:publisher'} })
+ qualified_attribution: Optional[list[Attribution]] = Field(default=[], description="""An Agent having some form of responsibility for the resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'prov:qualifiedAttribution'} })
+ qualified_relation: Optional[list[Relationship]] = Field(default=[], description="""A description of a relationship with another resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:qualifiedRelation'} })
+ related_resource: Optional[list[Resource]] = Field(default=[], description="""A related resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'ChemicalReaction'], 'slot_uri': 'dcterms:relation'} })
+ release_date: Optional[date] = Field(default=None, description="""The date of formal issuance (e.g., publication) of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries', 'Distribution'],
+ 'slot_uri': 'dcterms:issued'} })
+ sample: Optional[list[Distribution]] = Field(default=[], description="""A sample distribution of the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'adms:sample'} })
+ source: Optional[list[Dataset]] = Field(default=[], description="""A related Dataset from which the described Dataset is derived.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:source'} })
+ spatial_resolution: Optional[Decimal] = Field(default=None, description="""The minimum spatial separation resolvable in a dataset, measured in meters.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:spatialResolutionInMeters'} })
+ temporal_coverage: Optional[list[PeriodOfTime]] = Field(default=[], description="""A temporal period that the Dataset covers.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:temporal'} })
+ temporal_resolution: Optional[str] = Field(default=None, description="""The minimum time period resolvable in the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:temporalResolution'} })
+ theme: Optional[list[Concept]] = Field(default=[], description="""A category of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:theme'} })
+ title: list[str] = Field(default=..., description="""A name given to the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ type: Optional[list[Concept]] = Field(default=[], description="""A type of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ version: Optional[str] = Field(default=None, description="""The version indicator (name or identifier) of a resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:version'} })
+ version_notes: Optional[list[str]] = Field(default=[], description="""A description of the differences between this version and a previous version of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'adms:versionNotes'} })
+ was_generated_by: list[DataAnalysis] = Field(default=..., description="""An activity that generated, or provides the business context for, the creation of the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'],
+ 'notes': ['stricter than DCAT-AP'],
+ 'slot_uri': 'prov:wasGeneratedBy'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ is_about_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""A slot to provide the EvaluatedEntity a Dataset is about.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'],
+ 'exact_mappings': ['IAO:0000136'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:subject'} })
+ is_about_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""A slot to provide the EvaluatedActivity a Dataset is about.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'],
+ 'exact_mappings': ['IAO:0000136'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:subject'} })
+
+
+class DatasetSeries(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:DatasetSeries](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#DatasetSeries)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:DatasetSeries',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'applicable_legislation': {'description': 'The legislation '
+ 'that mandates the '
+ 'creation or '
+ 'management of the '
+ 'Dataset Series.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'applicable_legislation',
+ 'range': 'LegalResource',
+ 'required': False,
+ 'slot_uri': 'dcatap:applicableLegislation'},
+ 'contact_point': {'description': 'Contact information that can '
+ 'be used for sending comments '
+ 'about the Dataset Series.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'contact_point',
+ 'range': 'Kind',
+ 'required': False,
+ 'slot_uri': 'dcat:contactPoint'},
+ 'description': {'description': 'A free-text account of the '
+ 'Dataset Series.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:description'},
+ 'frequency': {'description': 'The frequency at which the '
+ 'Dataset Series is updated.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'frequency',
+ 'range': 'Frequency',
+ 'required': False,
+ 'slot_uri': 'dcterms:accrualPeriodicity'},
+ 'geographical_coverage': {'description': 'A geographic region '
+ 'that is covered by '
+ 'the Dataset Series.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'geographical_coverage',
+ 'range': 'Location',
+ 'required': False,
+ 'slot_uri': 'dcterms:spatial'},
+ 'modification_date': {'description': 'The most recent date on '
+ 'which the Dataset Series '
+ 'was changed or modified.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'modification_date',
+ 'range': 'date',
+ 'required': False,
+ 'slot_uri': 'dcterms:modified'},
+ 'publisher': {'description': 'An entity (organisation) '
+ 'responsible for ensuring the '
+ 'coherency of the Dataset Series ',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'publisher',
+ 'range': 'Agent',
+ 'required': False,
+ 'slot_uri': 'dcterms:publisher'},
+ 'release_date': {'description': 'The date of formal issuance '
+ '(e.g., publication) of the '
+ 'Dataset Series.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'release_date',
+ 'range': 'date',
+ 'required': False,
+ 'slot_uri': 'dcterms:issued'},
+ 'temporal_coverage': {'description': 'A temporal period that '
+ 'the Dataset Series '
+ 'covers.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'temporal_coverage',
+ 'range': 'PeriodOfTime',
+ 'required': False,
+ 'slot_uri': 'dcterms:temporal'},
+ 'title': {'description': 'A name given to the Dataset Series.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:title'}}})
+
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ contact_point: Optional[list[Kind]] = Field(default=[], description="""Contact information that can be used for sending comments about the Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcat:contactPoint'} })
+ description: list[str] = Field(default=..., description="""A free-text account of the Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ frequency: Optional[Frequency] = Field(default=None, description="""The frequency at which the Dataset Series is updated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:accrualPeriodicity'} })
+ geographical_coverage: Optional[list[Location]] = Field(default=[], description="""A geographic region that is covered by the Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:spatial'} })
+ modification_date: Optional[date] = Field(default=None, description="""The most recent date on which the Dataset Series was changed or modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcterms:modified'} })
+ publisher: Optional[Agent] = Field(default=None, description="""An entity (organisation) responsible for ensuring the coherency of the Dataset Series """, json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:publisher'} })
+ release_date: Optional[date] = Field(default=None, description="""The date of formal issuance (e.g., publication) of the Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries', 'Distribution'],
+ 'slot_uri': 'dcterms:issued'} })
+ temporal_coverage: Optional[list[PeriodOfTime]] = Field(default=[], description="""A temporal period that the Dataset Series covers.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:temporal'} })
+ title: list[str] = Field(default=..., description="""A name given to the Dataset Series.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+
+
+class DefinedTerm(ConfiguredBaseModel):
+ """
+ A word, name, acronym or phrase that is defined in a controlled vocabulary (CV) and that is used to provide an additional rdf:type or dcterms:type of a class within this schema.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'schema:DefinedTerm',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'title': {'name': 'title', 'slot_uri': 'schema:name'}}})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'schema:name'} })
+ from_CV: Optional[str] = Field(default=None, description="""The URL of the controlled vocabulary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DefinedTerm'], 'slot_uri': 'schema:inDefinedTermSet'} })
+
+
+class Device(AgenticEntity):
+ """
+ A material instrument that is designed to perform a function primarily by means of its mechanical or electrical nature.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['hardware instrument'],
+ 'class_uri': 'prov:Agent',
+ 'exact_mappings': ['epos:Equipment',
+ 'OBI:0000968',
+ 'http://purl.obolibrary.org/obo/NCIT_C62103',
+ 'http://semanticscience.org/resource/SIO_000956',
+ 'http://purl.allotrope.org/ontologies/equipment#AFE_0000354'],
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'has_part': {'description': 'The slot to specify parts of a '
+ 'Device that are themselves '
+ 'Devices.',
+ 'inlined': True,
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'range': 'Device'},
+ 'other_identifier': {'description': 'A slot to provide a '
+ 'secondary identifier for '
+ 'a Device.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False}}})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ReactorDesignType(Device):
+ """
+ Abstract Device representing the type of reactor used in a catalytic experiment.
+ Concrete subclasses specify the reactor geometry and operating mode.
+ Linked from Reaction via carried_out_by.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'class_uri': 'VOC4CAT:0007018',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ElectrochemicalReactor(ReactorDesignType):
+ """
+ Electrochemical reactor used in electrocatalytic experiments, including
+ H-cells, flow cells, and membrane electrode assemblies.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000193',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CSTR(ReactorDesignType):
+ """
+ Continuous stirred tank reactor (CSTR) � a well-mixed, continuous-flow
+ reactor operating at steady state.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0007019',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PlugFlowReactor(ReactorDesignType):
+ """
+ Plug flow reactor (PFR) � a tubular reactor in which reactant composition
+ varies along the axis with no axial mixing.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0007102',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Autoclave(ReactorDesignType):
+ """
+ Autoclave reactor � a sealed pressure vessel for batch reactions at
+ elevated temperature and/or pressure.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'NCIT:C93052',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SlurryReactor(ReactorDesignType):
+ """
+ Slurry reactor � a three-phase reactor in which catalyst particles are
+ suspended in a liquid phase through which gas is bubbled.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:SlurryReactor',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Microreactor(ReactorDesignType):
+ """
+ Microreactor � a miniaturised flow reactor with characteristic dimensions
+ in the sub-millimetre range, enabling precise thermal control and rapid
+ screening.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000234',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class FixedBedReactor(ReactorDesignType):
+ """
+ Fixed bed reactor � a tubular reactor packed with a stationary catalyst bed.
+ The most common reactor type in heterogeneous catalysis testing.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:FixedBedReactor',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class FluidizedBedReactor(ReactorDesignType):
+ """
+ Fluidized bed reactor � a reactor in which the catalyst particles are
+ suspended in an upward-flowing gas or liquid stream.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:FluidizedBedReactor',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ gas_distributor_type: Optional[list[str]] = Field(default=[], description="""Type or design of the gas distributor plate in a fluidized bed reactor.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FluidizedBedReactor'],
+ 'slot_uri': 'coremeta4cat:gas_distributor_type'} })
+ bed_expansion_height: Optional[list[float]] = Field(default=[], description="""Height of bed expansion above the settled bed height under operating conditions.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FluidizedBedReactor'],
+ 'slot_uri': 'coremeta4cat:bed_expansion_height',
+ 'unit': {'ucum_code': 'cm'}} })
+ bubble_size_distribution: Optional[str] = Field(default=None, description="""Description or characterization of bubble size distribution in the fluidized bed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FluidizedBedReactor'],
+ 'slot_uri': 'coremeta4cat:bubble_size_distribution'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Distribution(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Distribution](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Distribution)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Distribution',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'access_URL': {'description': 'A URL that gives access to a '
+ 'Distribution of the Dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'access_URL',
+ 'range': 'Resource',
+ 'required': True,
+ 'slot_uri': 'dcat:accessURL'},
+ 'access_service': {'description': 'A data service that gives '
+ 'access to the distribution '
+ 'of the dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'access_service',
+ 'range': 'DataService',
+ 'required': False,
+ 'slot_uri': 'dcat:accessService'},
+ 'applicable_legislation': {'description': 'The legislation '
+ 'that mandates the '
+ 'creation or '
+ 'management of the '
+ 'Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'applicable_legislation',
+ 'range': 'LegalResource',
+ 'required': False,
+ 'slot_uri': 'dcatap:applicableLegislation'},
+ 'availability': {'description': 'An indication how long it is '
+ 'planned to keep the '
+ 'Distribution of the Dataset '
+ 'available.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'availability',
+ 'range': 'Concept',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcatap:availability'},
+ 'byte_size': {'description': 'The size of a Distribution in '
+ 'bytes.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'byte_size',
+ 'range': 'nonNegativeInteger',
+ 'required': False,
+ 'slot_uri': 'dcat:byteSize'},
+ 'checksum': {'description': 'A mechanism that can be used to '
+ 'verify that the contents of a '
+ 'distribution have not changed.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'checksum',
+ 'range': 'Checksum',
+ 'required': False,
+ 'slot_uri': 'spdx:checksum'},
+ 'compression_format': {'description': 'The format of the file '
+ 'in which the data is '
+ 'contained in a '
+ 'compressed form, e.g. '
+ 'to reduce the size of '
+ 'the downloadable file.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'compression_format',
+ 'range': 'MediaType',
+ 'required': False,
+ 'slot_uri': 'dcat:compressFormat'},
+ 'description': {'description': 'A free-text account of the '
+ 'Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'description',
+ 'range': 'string',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:description'},
+ 'documentation': {'description': 'A page or document about '
+ 'this Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'documentation',
+ 'range': 'Document',
+ 'required': False,
+ 'slot_uri': 'foaf:page'},
+ 'download_URL': {'description': 'A URL that is a direct link '
+ 'to a downloadable file in a '
+ 'given format.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'download_URL',
+ 'range': 'Resource',
+ 'required': False,
+ 'slot_uri': 'dcat:downloadURL'},
+ 'format': {'description': 'The file format of the '
+ 'Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'format',
+ 'range': 'MediaTypeOrExtent',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:format'},
+ 'has_policy': {'description': 'The policy expressing the '
+ 'rights associated with the '
+ 'distribution if using the '
+ '[[ODRL]] vocabulary.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'has_policy',
+ 'range': 'Policy',
+ 'required': False,
+ 'slot_uri': 'odrl:hasPolicy'},
+ 'language': {'description': 'A language used in the '
+ 'Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'language',
+ 'range': 'LinguisticSystem',
+ 'required': False,
+ 'slot_uri': 'dcterms:language'},
+ 'licence': {'description': 'A licence under which the '
+ 'Distribution is made available.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'licence',
+ 'range': 'LicenseDocument',
+ 'required': False,
+ 'slot_uri': 'dcterms:license'},
+ 'linked_schemas': {'description': 'An established schema to '
+ 'which the described '
+ 'Distribution conforms.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'linked_schemas',
+ 'range': 'Standard',
+ 'required': False,
+ 'slot_uri': 'dcterms:conformsTo'},
+ 'media_type': {'description': 'The media type of the '
+ 'Distribution as defined in the '
+ 'official register of media '
+ 'types managed by IANA.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'media_type',
+ 'range': 'MediaType',
+ 'required': False,
+ 'slot_uri': 'dcat:mediaType'},
+ 'modification_date': {'description': 'The most recent date on '
+ 'which the Distribution '
+ 'was changed or modified.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'modification_date',
+ 'range': 'date',
+ 'required': False,
+ 'slot_uri': 'dcterms:modified'},
+ 'packaging_format': {'description': 'The format of the file in '
+ 'which one or more data '
+ 'files are grouped '
+ 'together, e.g. to enable '
+ 'a set of related files to '
+ 'be downloaded together.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'packaging_format',
+ 'range': 'MediaType',
+ 'required': False,
+ 'slot_uri': 'dcat:packageFormat'},
+ 'release_date': {'description': 'The date of formal issuance '
+ '(e.g., publication) of the '
+ 'Distribution.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'release_date',
+ 'range': 'date',
+ 'required': False,
+ 'slot_uri': 'dcterms:issued'},
+ 'rights': {'description': 'A statement that specifies rights '
+ 'associated with the Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'rights',
+ 'range': 'RightsStatement',
+ 'required': False,
+ 'slot_uri': 'dcterms:rights'},
+ 'spatial_resolution': {'description': 'The minimum spatial '
+ 'separation resolvable '
+ 'in a dataset '
+ 'distribution, measured '
+ 'in meters.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'spatial_resolution',
+ 'range': 'decimal',
+ 'required': False,
+ 'slot_uri': 'dcat:spatialResolutionInMeters'},
+ 'status': {'description': 'The status of the distribution in '
+ 'the context of maturity lifecycle.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'status',
+ 'range': 'Concept',
+ 'required': False,
+ 'slot_uri': 'adms:status'},
+ 'temporal_resolution': {'description': 'The minimum time '
+ 'period resolvable in '
+ 'the dataset '
+ 'distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'temporal_resolution',
+ 'range': 'duration',
+ 'required': False,
+ 'slot_uri': 'dcat:temporalResolution'},
+ 'title': {'description': 'A name given to the Distribution.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': False,
+ 'slot_uri': 'dcterms:title'}}})
+
+ access_URL: list[Resource] = Field(default=..., description="""A URL that gives access to a Distribution of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:accessURL'} })
+ access_service: Optional[list[DataService]] = Field(default=[], description="""A data service that gives access to the distribution of the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:accessService'} })
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ availability: Optional[Concept] = Field(default=None, description="""An indication how long it is planned to keep the Distribution of the Dataset available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'],
+ 'recommended': True,
+ 'slot_uri': 'dcatap:availability'} })
+ byte_size: Optional[int] = Field(default=None, description="""The size of a Distribution in bytes.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:byteSize'} })
+ checksum: Optional[Checksum] = Field(default=None, description="""A mechanism that can be used to verify that the contents of a distribution have not changed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'spdx:checksum'} })
+ compression_format: Optional[MediaType] = Field(default=None, description="""The format of the file in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:compressFormat'} })
+ description: Optional[list[str]] = Field(default=[], description="""A free-text account of the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:description'} })
+ documentation: Optional[list[Document]] = Field(default=[], description="""A page or document about this Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'Distribution'],
+ 'slot_uri': 'foaf:page'} })
+ download_URL: Optional[list[Resource]] = Field(default=[], description="""A URL that is a direct link to a downloadable file in a given format.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:downloadURL'} })
+ format: Optional[MediaTypeOrExtent] = Field(default=None, description="""The file format of the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Distribution'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:format'} })
+ has_policy: Optional[Policy] = Field(default=None, description="""The policy expressing the rights associated with the distribution if using the [[ODRL]] vocabulary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'odrl:hasPolicy'} })
+ language: Optional[list[LinguisticSystem]] = Field(default=[], description="""A language used in the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'CatalogueRecord', 'Dataset', 'Distribution'],
+ 'slot_uri': 'dcterms:language'} })
+ licence: Optional[LicenseDocument] = Field(default=None, description="""A licence under which the Distribution is made available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Distribution'],
+ 'slot_uri': 'dcterms:license'} })
+ linked_schemas: Optional[list[Standard]] = Field(default=[], description="""An established schema to which the described Distribution conforms.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcterms:conformsTo'} })
+ media_type: Optional[MediaType] = Field(default=None, description="""The media type of the Distribution as defined in the official register of media types managed by IANA.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:mediaType'} })
+ modification_date: Optional[date] = Field(default=None, description="""The most recent date on which the Distribution was changed or modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcterms:modified'} })
+ packaging_format: Optional[MediaType] = Field(default=None, description="""The format of the file in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'dcat:packageFormat'} })
+ release_date: Optional[date] = Field(default=None, description="""The date of formal issuance (e.g., publication) of the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries', 'Distribution'],
+ 'slot_uri': 'dcterms:issued'} })
+ rights: Optional[RightsStatement] = Field(default=None, description="""A statement that specifies rights associated with the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Distribution'], 'slot_uri': 'dcterms:rights'} })
+ spatial_resolution: Optional[Decimal] = Field(default=None, description="""The minimum spatial separation resolvable in a dataset distribution, measured in meters.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:spatialResolutionInMeters'} })
+ status: Optional[Concept] = Field(default=None, description="""The status of the distribution in the context of maturity lifecycle.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Distribution'], 'slot_uri': 'adms:status'} })
+ temporal_resolution: Optional[str] = Field(default=None, description="""The minimum time period resolvable in the dataset distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:temporalResolution'} })
+ title: Optional[list[str]] = Field(default=[], description="""A name given to the Distribution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+
+
+class Entity(ClassifierMixin):
+ """
+ A physical, digital, conceptual, or other kind of thing with some fixed aspects; entities may be real or imaginary.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Entity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin'],
+ 'slot_usage': {'description': {'description': 'The slot to provide a '
+ 'description for the Entity.',
+ 'name': 'description'},
+ 'has_part': {'description': 'A slot to provide a part of the '
+ 'Entity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'range': 'Entity'},
+ 'other_identifier': {'description': 'A slot to provide a '
+ 'secondary identifier of '
+ 'the Entity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False},
+ 'part_of': {'description': 'The slot to specify an Entity of '
+ 'which the Entity is a part.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'part_of',
+ 'notes': ['not in DCAT-AP'],
+ 'range': 'Entity'},
+ 'title': {'description': 'The slot to provide a title for the '
+ 'Entity.',
+ 'name': 'title'}}})
+
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class EvaluatedActivity(Activity):
+ """
+ An activity or process that is being evaluated in a DataGeneratingActivity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Activity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'other_identifier': {'description': 'A slot to provide a '
+ 'secondary identifier of '
+ 'the EvaluatedActivity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False}}})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedActivity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Reaction(EvaluatedActivity):
+ """
+ An EvaluatedActivity representing the catalytic reaction being studied.
+
+ Reaction is NOT a DataGeneratingActivity � it is the catalytic process
+ being observed, not the process that generates the dataset. A CatalysisDataset
+ is linked to the Reaction it is about via is_about_activity.
+
+ For operando experiments (e.g. in-situ XRD during a reaction), the dataset
+ carries both:
+ was_generated_by: Characterization (the measurement producing data)
+ is_about_activity: Reaction (the catalytic process being monitored)
+
+ The reactor is linked via carried_out_by as a ReactorDesignType (Device).
+ Reactants are linked via had_input_entity. The type of catalytic reaction
+ (e.g. ammonia synthesis, CO oxidation) is expressed via rdf_type using a
+ voc4cat or ChemO term.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:010345',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/',
+ 'slot_usage': {'carried_out_by': {'description': 'The reactor in which the '
+ 'Reaction takes place, '
+ 'provided as a\n'
+ 'ReactorDesignType (Device) '
+ 'instance.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'carried_out_by',
+ 'range': 'ReactorDesignType',
+ 'required': True},
+ 'had_input_entity': {'description': 'The reactant chemicals or '
+ 'feeds entering the '
+ 'reactor.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'had_input_entity',
+ 'range': 'EvaluatedEntity',
+ 'recommended': True},
+ 'product_identification_method': {'description': 'The '
+ 'analytical '
+ 'method used '
+ 'to identify '
+ 'and/or '
+ 'quantify '
+ 'reaction '
+ 'products.\n'
+ 'Should '
+ 'reference a '
+ 'CharacterizationTechnique '
+ 'instance '
+ '(e.g. a GCMS '
+ 'or\n'
+ 'HPLC_MS '
+ 'object from '
+ 'coremeta4cat_characterization_ap). '
+ 'The abstract '
+ 'stub\n'
+ 'ProductIdentificationMethod '
+ 'is retained '
+ 'for backward '
+ 'compatibility.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'product_identification_method',
+ 'range': 'ProductIdentificationMethod',
+ 'required': True},
+ 'rdf_type': {'description': 'The type of catalytic reaction as '
+ 'an ontology term (e.g. '
+ 'VOC4CAT:0007010\n'
+ 'for a specific reaction type, or '
+ 'a ChemO/RXNO term).',
+ 'name': 'rdf_type',
+ 'recommended': True}}})
+
+ catalyst_quantity: list[float] = Field(default=..., description="""Mass of catalyst loaded into the reactor.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Reaction'],
+ 'slot_uri': 'coremeta4cat:catalyst_quantity',
+ 'unit': {'ucum_code': 'g'}} })
+ reactant: list[str] = Field(default=..., description="""Reactant(s) used in the reaction. Provide compound name, CAS number,
+or SMILES. For feeds, include composition and flow rate where known.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Reaction'], 'slot_uri': 'VOC4CAT:0000101'} })
+ catalyst_type: Optional[list[str]] = Field(default=[], description="""Type of catalyst used (e.g. heterogeneous, homogeneous, biocatalyst).
+For heterogeneous catalysts, use voc4cat terms where available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Reaction'], 'recommended': True, 'slot_uri': 'VOC4CAT:0007014'} })
+ reactor_temperature_range: Optional[list[str]] = Field(default=[], description="""Temperature range used in the reactor during the reaction, expressed
+as a string range (e.g. \"200�400 �C\") or a single set-point.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Reaction'], 'slot_uri': 'VOC4CAT:0007032'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ experiment_pressure: Optional[list[float]] = Field(default=[], description="""Total pressure in the reactor during the experiment.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Reaction'],
+ 'slot_uri': 'VOC4CAT:0000118',
+ 'unit': {'ucum_code': 'bar'}} })
+ feed_composition_range: Optional[list[str]] = Field(default=[], description="""Feed gas or liquid composition range studied (e.g. \"1�10 vol% CO in N2\").
+Record as a string; for individual component concentrations use reactant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Reaction'], 'slot_uri': 'coremeta4cat:feed_composition_range'} })
+ experiment_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the experiment or measurement run.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD', 'Reaction'],
+ 'slot_uri': 'AFR:0002455',
+ 'unit': {'ucum_code': 'h'}} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedActivity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""The reactant chemicals or feeds entering the reactor.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: list[ReactorDesignType] = Field(default=..., description="""The reactor in which the Reaction takes place, provided as a
+ReactorDesignType (Device) instance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The type of catalytic reaction as an ontology term (e.g. VOC4CAT:0007010
+for a specific reaction type, or a ChemO/RXNO term).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class EvaluatedEntity(Entity):
+ """
+ An Entity that is being evaluated in a DataGeneratingActivity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Entity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'description': {'description': 'The slot to provide a '
+ 'description for the '
+ 'EvaluatedEntity.',
+ 'name': 'description'},
+ 'other_identifier': {'description': 'A slot to provide a '
+ 'secondary identifier of '
+ 'the EvaluatedEntity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False},
+ 'title': {'description': 'The slot to provide a title for the '
+ 'EvaluatedEntity.',
+ 'name': 'title'},
+ 'was_generated_by': {'description': 'A slot to provide the '
+ 'Activity which created '
+ 'the EvaluatedEntity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'was_generated_by',
+ 'range': 'Activity'}}})
+
+ was_generated_by: Optional[list[Activity]] = Field(default=[], description="""A slot to provide the Activity which created the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class AnalysisSourceData(EvaluatedEntity):
+ """
+ Information that was evaluated within a DataAnalysis.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Entity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'was_generated_by': {'description': 'A slot to provide the '
+ 'Activity which created '
+ 'the AnalysisSourceData.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'was_generated_by',
+ 'range': 'DataGeneratingActivity'}}})
+
+ was_generated_by: Optional[list[DataGeneratingActivity]] = Field(default=[], description="""A slot to provide the Activity which created the AnalysisSourceData.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Kind(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Kind](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Kind)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'vcard:Kind',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ pass
+
+
+class Location(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Location](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Location)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:Location',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'bbox': {'description': 'The geographic bounding box of a '
+ 'resource.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'bbox',
+ 'range': 'string',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:bbox'},
+ 'centroid': {'description': 'The geographic center (centroid) '
+ 'of a resource.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'centroid',
+ 'range': 'string',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:centroid'},
+ 'geometry': {'description': 'The corresponding geometry for a '
+ 'resource.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'geometry',
+ 'range': 'Geometry',
+ 'required': False,
+ 'slot_uri': 'locn:geometry'}}})
+
+ bbox: Optional[str] = Field(default=None, description="""The geographic bounding box of a resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Location'], 'recommended': True, 'slot_uri': 'dcat:bbox'} })
+ centroid: Optional[str] = Field(default=None, description="""The geographic center (centroid) of a resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Location'], 'recommended': True, 'slot_uri': 'dcat:centroid'} })
+ geometry: Optional[Geometry] = Field(default=None, description="""The corresponding geometry for a resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Location'], 'slot_uri': 'locn:geometry'} })
+
+
+class Plan(ClassifierMixin):
+ """
+ A piece of information that specifies how an activity has to be carried out by its agents including what kind of steps have to be taken and what kind of parameters have to be met/set.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['Plan Specification', 'Method', 'Procedure'],
+ 'class_uri': 'prov:Plan',
+ 'examples': [{'description': 'We assigned the structure of sample CRS-37013 '
+ 'using a 13C NMR (CHMO:0000595) and the '
+ 'settings: pulse sequence: zgpg30, temperature: '
+ '298.0 K, number of scans: 1024, Solvent : '
+ 'chloroform-D1 (CDCl3).'}],
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin']})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PreparationMethod(Plan):
+ """
+ An abstract Plan describing the protocol used to prepare a catalyst.
+ Concrete subclasses (Impregnation, CoPrecipitation, �) specify the
+ method-specific parameters. Linked from Synthesis via realized_plan.
+
+ The specific preparation method type should additionally be expressed
+ via rdf_type on the Synthesis activity using a voc4cat term
+ (e.g. VOC4CAT:0007016 for preparation method).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'class_uri': 'OBI:0000272',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Impregnation(PreparationMethod, CalcinationMixin, DryingMixin):
+ """
+ Catalyst preparation by impregnation: a solution of the active phase
+ precursor is brought into contact with the support material.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Impregnation',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['DryingMixin', 'CalcinationMixin']})
+
+ impregnation_type: Optional[list[ImpregnationTypeEnum]] = Field(default=[], description="""Type of impregnation used (wet, dry, incipient wetness).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Impregnation'], 'slot_uri': 'coremeta4cat:impregnation_type'} })
+ impregnation_duration: Optional[list[float]] = Field(default=[], description="""Duration of the impregnation step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Impregnation'],
+ 'slot_uri': 'coremeta4cat:impregnation_duration',
+ 'unit': {'ucum_code': 'h'}} })
+ impregnation_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during the impregnation step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Impregnation'],
+ 'slot_uri': 'coremeta4cat:impregnation_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+ calcination_initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000057',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_final_temperature: Optional[list[float]] = Field(default=[], description="""Final (target) temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000058',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_dwelling_time: Optional[list[float]] = Field(default=[], description="""Time held at the final calcination temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000060',
+ 'unit': {'ucum_code': 'h'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ calcination_gaseous_environment: Optional[list[str]] = Field(default=[], description="""Gaseous environment maintained during calcination (e.g. air, H2/N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'], 'slot_uri': 'VOC4CAT:0000055'} })
+ calcination_heating_rate: Optional[list[float]] = Field(default=[], description="""Heating rate during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000059',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ calcination_gas_flow_rate: Optional[list[float]] = Field(default=[], description="""Gas flow rate maintained during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000056',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CoPrecipitation(PreparationMethod, PrecipitationMixin, CalcinationMixin, DryingMixin):
+ """
+ Catalyst preparation by co-precipitation: precursor salts are
+ simultaneously precipitated from solution by a precipitating agent.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:CoPrecipitation',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['PrecipitationMixin', 'DryingMixin', 'CalcinationMixin']})
+
+ precipitating_agent: Optional[list[str]] = Field(default=[], description="""Chemical agent used to induce precipitation (e.g. NaOH, NH3).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:precipitating_agent'} })
+ precipitating_concentration: Optional[list[float]] = Field(default=[], description="""Concentration of the precipitating agent.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:precipitating_concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ synthesis_ph: Optional[list[float]] = Field(default=[], description="""pH value maintained or targeted during synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'VOC4CAT:0000052'} })
+ mixing_rate: Optional[list[float]] = Field(default=[], description="""Stirring rate during mixing of synthesis components.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:mixing_rate',
+ 'unit': {'ucum_code': 'rpm'}} })
+ mixing_time: Optional[list[float]] = Field(default=[], description="""Duration of the mixing step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:mixing_time',
+ 'unit': {'ucum_code': 'h'}} })
+ mixing_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during mixing.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:mixing_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ order_of_addition: Optional[list[str]] = Field(default=[], description="""Order in which reagents or components are combined.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:order_of_addition'} })
+ filtration: Optional[list[str]] = Field(default=[], description="""Filtration method used to separate the precipitate (e.g. vacuum filtration).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'coremeta4cat:filtration'} })
+ purification: Optional[list[str]] = Field(default=[], description="""Purification method applied after synthesis (e.g. washing, dialysis).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'coremeta4cat:purification'} })
+ aging_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during aging of the precipitate or gel.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:aging_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ aging_time: Optional[list[float]] = Field(default=[], description="""Duration of the aging step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'SolGel'],
+ 'slot_uri': 'coremeta4cat:aging_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+ calcination_initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000057',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_final_temperature: Optional[list[float]] = Field(default=[], description="""Final (target) temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000058',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_dwelling_time: Optional[list[float]] = Field(default=[], description="""Time held at the final calcination temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000060',
+ 'unit': {'ucum_code': 'h'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ calcination_gaseous_environment: Optional[list[str]] = Field(default=[], description="""Gaseous environment maintained during calcination (e.g. air, H2/N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'], 'slot_uri': 'VOC4CAT:0000055'} })
+ calcination_heating_rate: Optional[list[float]] = Field(default=[], description="""Heating rate during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000059',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ calcination_gas_flow_rate: Optional[list[float]] = Field(default=[], description="""Gas flow rate maintained during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000056',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SolGel(PreparationMethod, DryingMixin):
+ """
+ Catalyst preparation by the sol-gel process: hydrolysis and condensation
+ of precursor molecules to form a colloidal network (gel).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:SolGel',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['DryingMixin']})
+
+ hydrolysis_ratio: Optional[list[float]] = Field(default=[], description="""Molar ratio of water to alkoxide precursor used in hydrolysis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SolGel'], 'slot_uri': 'coremeta4cat:hydrolysis_ratio'} })
+ aging_time: Optional[list[float]] = Field(default=[], description="""Duration of the aging step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'SolGel'],
+ 'slot_uri': 'coremeta4cat:aging_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying: Optional[list[str]] = Field(default=[], description="""Drying method used for the gel (e.g. supercritical drying, freeze drying).""", json_schema_extra = { "linkml_meta": {'domain_of': ['SolGel'], 'slot_uri': 'coremeta4cat:drying'} })
+ surfactant_template: Optional[list[str]] = Field(default=[], description="""Surfactant or structure-directing agent used as a template.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SolGel'], 'slot_uri': 'coremeta4cat:surfactant_template'} })
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Solvothermal(PreparationMethod, ThermalSynthesisMixin):
+ """
+ Catalyst preparation under elevated temperature and pressure in a
+ sealed vessel using a non-aqueous solvent.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Solvothermal',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['ThermalSynthesisMixin']})
+
+ filling_volume: Optional[list[float]] = Field(default=[], description="""Volume of solution relative to autoclave volume (filling degree).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Solvothermal'],
+ 'slot_uri': 'coremeta4cat:filling_volume',
+ 'unit': {'ucum_code': 'mL'}} })
+ stirrer_type: Optional[list[str]] = Field(default=[], description="""Type of stirrer used (e.g. magnetic, mechanical, none).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Solvothermal'], 'slot_uri': 'coremeta4cat:stirrer_type'} })
+ cooling_rate: Optional[list[float]] = Field(default=[], description="""Rate at which the reactor is cooled after synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Solvothermal'],
+ 'slot_uri': 'coremeta4cat:cooling_rate',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PlasmaAssisted(PreparationMethod, ThermalSynthesisMixin):
+ """
+ Catalyst preparation using plasma treatment to modify surface
+ properties or deposit active components.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:PlasmaAssisted',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['ThermalSynthesisMixin']})
+
+ plasma_type: Optional[list[str]] = Field(default=[], description="""Type of plasma used (e.g. DBD, microwave, RF plasma).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PlasmaAssisted'], 'slot_uri': 'coremeta4cat:plasma_type'} })
+ power_input: Optional[list[float]] = Field(default=[], description="""Power input to the plasma reactor or other energy source.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PlasmaAssisted'],
+ 'slot_uri': 'coremeta4cat:power_input',
+ 'unit': {'ucum_code': 'W'}} })
+ exposure_time: Optional[list[float]] = Field(default=[], description="""Duration of plasma or other energy exposure.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PlasmaAssisted'],
+ 'slot_uri': 'coremeta4cat:exposure_time',
+ 'unit': {'ucum_code': 'min'}} })
+ synthesis_pressure: Optional[list[float]] = Field(default=[], description="""Pressure applied during synthesis (e.g. in autoclave or plasma reactor).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PlasmaAssisted', 'Sublimation'],
+ 'slot_uri': 'VOC4CAT:0000053',
+ 'unit': {'ucum_code': 'bar'}} })
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CombustionSynthesis(PreparationMethod, ThermalSynthesisMixin):
+ """
+ Catalyst preparation by combustion of a fuel/oxidizer mixture,
+ producing metal oxide catalysts in a single rapid step.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:CombustionSynthesis',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['ThermalSynthesisMixin']})
+
+ fuel: Optional[list[str]] = Field(default=[], description="""Organic fuel used in combustion synthesis (e.g. urea, glycine).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CombustionSynthesis'], 'slot_uri': 'coremeta4cat:fuel'} })
+ oxidizer: Optional[list[str]] = Field(default=[], description="""Oxidizer used in combustion synthesis (e.g. metal nitrates).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CombustionSynthesis'], 'slot_uri': 'coremeta4cat:oxidizer'} })
+ fuel_to_oxidizer_ratio: Optional[list[float]] = Field(default=[], description="""Molar ratio of fuel to oxidizer.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CombustionSynthesis'],
+ 'slot_uri': 'coremeta4cat:fuel_to_oxidizer_ratio'} })
+ set_temperature: Optional[list[float]] = Field(default=[], description="""Target temperature set for the combustion reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CombustionSynthesis'],
+ 'slot_uri': 'coremeta4cat:set_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ post_treatment: Optional[list[str]] = Field(default=[], description="""Post-synthesis treatment applied to the combustion product.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CombustionSynthesis'],
+ 'slot_uri': 'coremeta4cat:post_treatment'} })
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class AtomicLayerDeposition(PreparationMethod):
+ """
+ Catalyst preparation by atomic layer deposition (ALD): sequential
+ self-limiting surface reactions deposit a conformal thin film
+ of active phase onto a substrate.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:AtomicLayerDeposition',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/'})
+
+ substrate: Optional[list[str]] = Field(default=[], description="""Substrate material on which the ALD film is deposited.""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition'], 'slot_uri': 'VOC4CAT:0000024'} })
+ pulse_time: Optional[list[float]] = Field(default=[], description="""Duration of the precursor pulse in each ALD cycle.""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition'],
+ 'slot_uri': 'coremeta4cat:pulse_time',
+ 'unit': {'ucum_code': 's'}} })
+ purging_duration: Optional[list[float]] = Field(default=[], description="""Duration of the purge step between ALD pulses.""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition'],
+ 'slot_uri': 'VOC4CAT:0000112',
+ 'unit': {'ucum_code': 's'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ deposition_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during the deposition step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition', 'DepositionPrecipitation'],
+ 'slot_uri': 'coremeta4cat:deposition_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ carrier_gas: Optional[list[str]] = Field(default=[], description="""Carrier gas used in a process (e.g. in GC analysis or ALD deposition).""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition',
+ 'ElementalAnalysis',
+ 'ElectroSprayIonizationMassSpectrometry',
+ 'GCMS'],
+ 'slot_uri': 'coremeta4cat:carrier_gas'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DepositionPrecipitation(PreparationMethod, PrecipitationMixin, CalcinationMixin, DryingMixin):
+ """
+ Catalyst preparation by deposition-precipitation: the active phase
+ is precipitated directly onto the support surface.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:DepositionPrecipitation',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['PrecipitationMixin', 'DryingMixin', 'CalcinationMixin']})
+
+ deposition_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during the deposition step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition', 'DepositionPrecipitation'],
+ 'slot_uri': 'coremeta4cat:deposition_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ deposition_time: Optional[list[float]] = Field(default=[], description="""Duration of the deposition step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DepositionPrecipitation'],
+ 'slot_uri': 'coremeta4cat:deposition_time',
+ 'unit': {'ucum_code': 'h'}} })
+ precipitating_agent: Optional[list[str]] = Field(default=[], description="""Chemical agent used to induce precipitation (e.g. NaOH, NH3).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:precipitating_agent'} })
+ precipitating_concentration: Optional[list[float]] = Field(default=[], description="""Concentration of the precipitating agent.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:precipitating_concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ synthesis_ph: Optional[list[float]] = Field(default=[], description="""pH value maintained or targeted during synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'VOC4CAT:0000052'} })
+ mixing_rate: Optional[list[float]] = Field(default=[], description="""Stirring rate during mixing of synthesis components.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:mixing_rate',
+ 'unit': {'ucum_code': 'rpm'}} })
+ mixing_time: Optional[list[float]] = Field(default=[], description="""Duration of the mixing step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:mixing_time',
+ 'unit': {'ucum_code': 'h'}} })
+ mixing_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during mixing.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:mixing_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ order_of_addition: Optional[list[str]] = Field(default=[], description="""Order in which reagents or components are combined.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:order_of_addition'} })
+ filtration: Optional[list[str]] = Field(default=[], description="""Filtration method used to separate the precipitate (e.g. vacuum filtration).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'coremeta4cat:filtration'} })
+ purification: Optional[list[str]] = Field(default=[], description="""Purification method applied after synthesis (e.g. washing, dialysis).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'], 'slot_uri': 'coremeta4cat:purification'} })
+ aging_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during aging of the precipitate or gel.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin'],
+ 'slot_uri': 'coremeta4cat:aging_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ aging_time: Optional[list[float]] = Field(default=[], description="""Duration of the aging step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'SolGel'],
+ 'slot_uri': 'coremeta4cat:aging_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+ calcination_initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000057',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_final_temperature: Optional[list[float]] = Field(default=[], description="""Final (target) temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000058',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_dwelling_time: Optional[list[float]] = Field(default=[], description="""Time held at the final calcination temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000060',
+ 'unit': {'ucum_code': 'h'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ calcination_gaseous_environment: Optional[list[str]] = Field(default=[], description="""Gaseous environment maintained during calcination (e.g. air, H2/N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'], 'slot_uri': 'VOC4CAT:0000055'} })
+ calcination_heating_rate: Optional[list[float]] = Field(default=[], description="""Heating rate during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000059',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ calcination_gas_flow_rate: Optional[list[float]] = Field(default=[], description="""Gas flow rate maintained during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000056',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MicrowaveAssisted(PreparationMethod, ThermalSynthesisMixin):
+ """
+ Catalyst preparation using microwave irradiation to rapidly and
+ uniformly heat the reaction mixture.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:MicrowaveAssisted',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['ThermalSynthesisMixin']})
+
+ power: Optional[list[float]] = Field(default=[], description="""Microwave power applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MicrowaveAssisted'],
+ 'slot_uri': 'coremeta4cat:power',
+ 'unit': {'ucum_code': 'W'}} })
+ microwave_frequency: Optional[list[float]] = Field(default=[], description="""Frequency of microwave irradiation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MicrowaveAssisted'],
+ 'slot_uri': 'coremeta4cat:microwave_frequency',
+ 'unit': {'ucum_code': 'GHz'}} })
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SonochemicalSynthesis(PreparationMethod, CalcinationMixin, DryingMixin):
+ """
+ Catalyst preparation using ultrasonic irradiation to drive chemical
+ reactions via acoustic cavitation.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:SonochemicalSynthesis',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['DryingMixin', 'CalcinationMixin']})
+
+ sonication_power: Optional[list[float]] = Field(default=[], description="""Acoustic power applied during sonication.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:sonication_power',
+ 'unit': {'ucum_code': 'W'}} })
+ sonication_duration: Optional[list[float]] = Field(default=[], description="""Duration of ultrasonic irradiation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:sonication_duration',
+ 'unit': {'ucum_code': 'min'}} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+ calcination_initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000057',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_final_temperature: Optional[list[float]] = Field(default=[], description="""Final (target) temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000058',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_dwelling_time: Optional[list[float]] = Field(default=[], description="""Time held at the final calcination temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000060',
+ 'unit': {'ucum_code': 'h'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ calcination_gaseous_environment: Optional[list[str]] = Field(default=[], description="""Gaseous environment maintained during calcination (e.g. air, H2/N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'], 'slot_uri': 'VOC4CAT:0000055'} })
+ calcination_heating_rate: Optional[list[float]] = Field(default=[], description="""Heating rate during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000059',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ calcination_gas_flow_rate: Optional[list[float]] = Field(default=[], description="""Gas flow rate maintained during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000056',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class FlameSprayPyrolysis(PreparationMethod):
+ """
+ Catalyst preparation by flame spray pyrolysis (FSP): a liquid precursor
+ solution is atomised and combusted in a flame to produce nanoparticles.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0007031',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/'})
+
+ flame_type: Optional[list[str]] = Field(default=[], description="""Type of flame used in FSP (e.g. methane/oxygen, H2/O2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis'], 'slot_uri': 'coremeta4cat:flame_type'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ inlet_system: Optional[list[str]] = Field(default=[], description="""Configuration of the precursor inlet system.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis'], 'slot_uri': 'coremeta4cat:inlet_system'} })
+ flame_ring: Optional[list[str]] = Field(default=[], description="""Configuration of the supporting flame ring.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis'], 'slot_uri': 'coremeta4cat:flame_ring'} })
+ dispersant: Optional[list[str]] = Field(default=[], description="""Dispersant used (e.g. in DLS measurement or flame spray pyrolysis).""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis', 'DynamicLightScattering'],
+ 'slot_uri': 'coremeta4cat:dispersant'} })
+ capillary_pressure: Optional[list[float]] = Field(default=[], description="""Pressure applied at the capillary nozzle during FSP.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis'],
+ 'slot_uri': 'coremeta4cat:capillary_pressure',
+ 'unit': {'ucum_code': 'bar'}} })
+ fuel_dispersant_ratio: Optional[list[float]] = Field(default=[], description="""Volume ratio of fuel to dispersant used in FSP.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis'],
+ 'slot_uri': 'coremeta4cat:fuel_dispersant_ratio'} })
+ filtration_device: Optional[list[str]] = Field(default=[], description="""Device used for filtration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:filtration_device'} })
+ filter_type: Optional[list[str]] = Field(default=[], description="""Type of filter membrane or medium used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:filter_type'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MechanochemicalSynthesis(PreparationMethod, ThermalSynthesisMixin):
+ """
+ Catalyst preparation by mechanical milling or grinding, optionally
+ combined with thermal treatment.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:MechanochemicalSynthesis',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['ThermalSynthesisMixin']})
+
+ vessel_volume: Optional[list[float]] = Field(default=[], description="""Volume of the milling vessel.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:vessel_volume',
+ 'unit': {'ucum_code': 'mL'}} })
+ size_and_material: Optional[list[str]] = Field(default=[], description="""Size and material of the milling vessel and components.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:size_and_material'} })
+ milling_speed: Optional[list[float]] = Field(default=[], description="""Rotational speed during milling.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:milling_speed',
+ 'unit': {'ucum_code': 'rpm'}} })
+ milling_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the milling process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:milling_duration',
+ 'unit': {'ucum_code': 'h'}} })
+ ball_material: Optional[list[str]] = Field(default=[], description="""Material of the milling balls (e.g. zirconia, stainless steel).""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:ball_material'} })
+ ball_size: Optional[list[float]] = Field(default=[], description="""Diameter of the milling balls.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:ball_size',
+ 'unit': {'ucum_code': 'mm'}} })
+ ball_to_powder_ratio: Optional[list[float]] = Field(default=[], description="""Mass ratio of milling balls to powder charge.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MechanochemicalSynthesis'],
+ 'slot_uri': 'coremeta4cat:ball_to_powder_ratio'} })
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Sublimation(PreparationMethod, ThermalSynthesisMixin):
+ """
+ Catalyst preparation by sublimation: a solid precursor is vaporised
+ and deposited onto a substrate without passing through a liquid phase.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Sublimation',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['ThermalSynthesisMixin']})
+
+ synthesis_pressure: Optional[list[float]] = Field(default=[], description="""Pressure applied during synthesis (e.g. in autoclave or plasma reactor).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PlasmaAssisted', 'Sublimation'],
+ 'slot_uri': 'VOC4CAT:0000053',
+ 'unit': {'ucum_code': 'bar'}} })
+ synthesis_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000051',
+ 'unit': {'ucum_code': 'Cel'}} })
+ synthesis_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the synthesis step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'],
+ 'slot_uri': 'VOC4CAT:0000050',
+ 'unit': {'ucum_code': 'h'}} })
+ equipment: Optional[list[str]] = Field(default=[], description="""Equipment or instrument used in a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'VOC4CAT:0000187'} })
+ vessel_type: Optional[list[str]] = Field(default=[], description="""Type of reaction or synthesis vessel used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin'], 'slot_uri': 'coremeta4cat:vessel_type'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MolecularSynthesis(PreparationMethod, DryingMixin):
+ """
+ Catalyst preparation by molecular (organometallic or coordination)
+ chemistry routes, including crystallisation and purification steps.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:MolecularSynthesis',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['DryingMixin']})
+
+ reaction_vessel: Optional[list[str]] = Field(default=[], description="""Type of reaction vessel used (e.g. Schlenk flask, round-bottom flask).""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:reaction_vessel'} })
+ mixing_device: Optional[list[str]] = Field(default=[], description="""Device used for mixing (e.g. magnetic stirrer, vortex mixer).""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'], 'slot_uri': 'coremeta4cat:mixing_device'} })
+ stirring_duration: Optional[list[float]] = Field(default=[], description="""Duration of stirring or agitation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:stirring_duration',
+ 'unit': {'ucum_code': 'h'}} })
+ stirring_speed: Optional[list[float]] = Field(default=[], description="""Rotational speed of stirring or agitation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:stirring_speed',
+ 'unit': {'ucum_code': 'rpm'}} })
+ mixing_temperature: Optional[list[float]] = Field(default=[], description="""Temperature during mixing.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PrecipitationMixin', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:mixing_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ filtration_device: Optional[list[str]] = Field(default=[], description="""Device used for filtration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:filtration_device'} })
+ filter_type: Optional[list[str]] = Field(default=[], description="""Type of filter membrane or medium used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis', 'MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:filter_type'} })
+ crystallisation_solvents: Optional[list[str]] = Field(default=[], description="""Solvent(s) used for crystallisation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:crystallisation_solvents'} })
+ precipitation_agent: Optional[list[str]] = Field(default=[], description="""Agent used to induce precipitation in molecular synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:precipitation_agent'} })
+ crystallisation_duration: Optional[list[float]] = Field(default=[], description="""Duration of the crystallisation step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:crystallisation_duration',
+ 'unit': {'ucum_code': 'h'}} })
+ purification_solvent: Optional[list[str]] = Field(default=[], description="""Solvent used for washing or recrystallisation during purification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:purification_solvent'} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ temperature_ramp: Optional[list[float]] = Field(default=[], description="""Temperature ramp rate applied during drying or activation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularSynthesis'],
+ 'slot_uri': 'coremeta4cat:temperature_ramp',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ drying_device: Optional[list[str]] = Field(default=[], description="""Device used for drying (e.g. oven, rotary evaporator).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_device'} })
+ drying_temperature: Optional[list[float]] = Field(default=[], description="""Temperature applied during drying.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ drying_time: Optional[list[float]] = Field(default=[], description="""Duration of the drying step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'],
+ 'slot_uri': 'coremeta4cat:drying_time',
+ 'unit': {'ucum_code': 'h'}} })
+ drying_atmosphere: Optional[list[str]] = Field(default=[], description="""Atmosphere maintained during drying (e.g. air, N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DryingMixin'], 'slot_uri': 'coremeta4cat:drying_atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ExsolutionSynthesis(PreparationMethod, CalcinationMixin):
+ """
+ Catalyst preparation by exsolution: metal nanoparticles are grown on
+ a perovskite oxide surface by reduction/oxidation cycling.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:ExsolutionSynthesis',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'mixins': ['CalcinationMixin']})
+
+ calcination_initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000057',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_final_temperature: Optional[list[float]] = Field(default=[], description="""Final (target) temperature for calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000058',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calcination_dwelling_time: Optional[list[float]] = Field(default=[], description="""Time held at the final calcination temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000060',
+ 'unit': {'ucum_code': 'h'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ calcination_gaseous_environment: Optional[list[str]] = Field(default=[], description="""Gaseous environment maintained during calcination (e.g. air, H2/N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'], 'slot_uri': 'VOC4CAT:0000055'} })
+ calcination_heating_rate: Optional[list[float]] = Field(default=[], description="""Heating rate during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000059',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ calcination_gas_flow_rate: Optional[list[float]] = Field(default=[], description="""Gas flow rate maintained during calcination.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin'],
+ 'slot_uri': 'VOC4CAT:0000056',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CharacterizationTechnique(Plan):
+ """
+ An abstract Plan describing the analytical protocol used to characterize
+ a catalyst. Concrete subclasses specify technique-specific parameters.
+ Linked from Characterization via realized_plan.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'class_uri': 'OBI:0000272',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PowderXRD(CharacterizationTechnique, XRaySourceMixin):
+ """
+ Powder X-ray diffraction for phase identification and structural analysis.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000158',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['XRaySourceMixin']})
+
+ minimum_2theta: Optional[list[float]] = Field(default=[], description="""Minimum 2theta angle in the diffraction scan.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD'],
+ 'slot_uri': 'coremeta4cat:minimum_2theta',
+ 'unit': {'ucum_code': 'deg'}} })
+ maximum_2theta: Optional[list[float]] = Field(default=[], description="""Maximum 2theta angle in the diffraction scan.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD'],
+ 'slot_uri': 'coremeta4cat:maximum_2theta',
+ 'unit': {'ucum_code': 'deg'}} })
+ step_size: Optional[list[float]] = Field(default=[], description="""Step size for a scan (angle, wavelength, energy, or potential).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'AFR:0000950'} })
+ operation_mode: Optional[list[str]] = Field(default=[], description="""Operation mode of an instrument (e.g. transmission, reflection, AC, DC).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'TransmissionElectronMicroscopy',
+ 'Thermogravimetry',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0000108'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ sample_spinning_speed: Optional[list[float]] = Field(default=[], description="""Sample spinning speed during XRD measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD'],
+ 'slot_uri': 'coremeta4cat:sample_spinning_speed',
+ 'unit': {'ucum_code': 'rpm'}} })
+ experiment_duration: Optional[list[float]] = Field(default=[], description="""Total duration of the experiment or measurement run.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD', 'Reaction'],
+ 'slot_uri': 'AFR:0002455',
+ 'unit': {'ucum_code': 'h'}} })
+ xray_source: Optional[list[str]] = Field(default=[], description="""X-ray source used (e.g. Cu K-alpha, Mo K-alpha, synchrotron).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'OBI:0001138'} })
+ monochromator: Optional[list[str]] = Field(default=[], description="""Monochromator type or configuration used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'CHMO:0002120'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SingleCrystalXRD(CharacterizationTechnique, XRaySourceMixin):
+ """
+ Single crystal X-ray diffraction for structure determination.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000852',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['XRaySourceMixin']})
+
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ xray_source: Optional[list[str]] = Field(default=[], description="""X-ray source used (e.g. Cu K-alpha, Mo K-alpha, synchrotron).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'OBI:0001138'} })
+ monochromator: Optional[list[str]] = Field(default=[], description="""Monochromator type or configuration used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'CHMO:0002120'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class XRayAbsorptionSpectroscopy(CharacterizationTechnique, EnergyRangeMixin, XRaySourceMixin):
+ """
+ X-ray absorption spectroscopy (XAS/XANES/EXAFS) for electronic and local structure analysis.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000286',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['XRaySourceMixin', 'EnergyRangeMixin']})
+
+ operation_mode: Optional[list[str]] = Field(default=[], description="""Operation mode of an instrument (e.g. transmission, reflection, AC, DC).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'TransmissionElectronMicroscopy',
+ 'Thermogravimetry',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0000108'} })
+ element_analyzed: Optional[list[str]] = Field(default=[], description="""Chemical element analysed (e.g. Fe, Cu, Pt).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRayAbsorptionSpectroscopy', 'ICPAES'],
+ 'slot_uri': 'coremeta4cat:element_analyzed'} })
+ absorption_edge: Optional[list[str]] = Field(default=[], description="""X-ray absorption edge measured (e.g. K-edge, L3-edge).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRayAbsorptionSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:absorption_edge'} })
+ energy_resolution: Optional[list[float]] = Field(default=[], description="""Energy resolution of the spectrometer or monochromator.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRayAbsorptionSpectroscopy'],
+ 'slot_uri': 'AFR:0000950',
+ 'unit': {'ucum_code': 'eV'}} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ beamline_source: Optional[list[str]] = Field(default=[], description="""Synchrotron beamline or X-ray source identifier.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRayAbsorptionSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:beamline_source'} })
+ noise_of_measurement: Optional[list[float]] = Field(default=[], description="""Noise level of the XAS measurement (signal-to-noise ratio).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRayAbsorptionSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:noise_of_measurement'} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ xray_source: Optional[list[str]] = Field(default=[], description="""X-ray source used (e.g. Cu K-alpha, Mo K-alpha, synchrotron).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'OBI:0001138'} })
+ monochromator: Optional[list[str]] = Field(default=[], description="""Monochromator type or configuration used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'CHMO:0002120'} })
+ minimum_energy: Optional[list[float]] = Field(default=[], description="""Minimum energy of the scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EnergyRangeMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ maximum_energy: Optional[list[float]] = Field(default=[], description="""Maximum energy of the scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EnergyRangeMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class XPS(CharacterizationTechnique, EnergyRangeMixin, XRaySourceMixin):
+ """
+ X-ray photoelectron spectroscopy for surface elemental and chemical state analysis.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000404',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['XRaySourceMixin', 'EnergyRangeMixin']})
+
+ total_acquisition_time: Optional[list[float]] = Field(default=[], description="""Total time for XPS spectrum acquisition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS'],
+ 'slot_uri': 'coremeta4cat:total_acquisition_time',
+ 'unit': {'ucum_code': 's'}} })
+ number_of_scans: Optional[list[int]] = Field(default=[], description="""Number of scans or accumulations recorded.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:number_of_scans'} })
+ step_size: Optional[list[float]] = Field(default=[], description="""Step size for a scan (angle, wavelength, energy, or potential).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'AFR:0000950'} })
+ pass_energy: Optional[list[float]] = Field(default=[], description="""Analyser pass energy setting in XPS.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS'],
+ 'slot_uri': 'coremeta4cat:pass_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ spot_size: Optional[list[float]] = Field(default=[], description="""X-ray spot size on the sample surface.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS'],
+ 'slot_uri': 'coremeta4cat:spot_size',
+ 'unit': {'ucum_code': 'mm'}} })
+ lense_mode: Optional[list[str]] = Field(default=[], description="""Electron lens mode setting in XPS analyser.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS'], 'slot_uri': 'VOC4CAT:0000108'} })
+ charge_compensation: Optional[list[str]] = Field(default=[], description="""Charge compensation method applied during XPS measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS'], 'slot_uri': 'coremeta4cat:charge_compensation'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ xray_source: Optional[list[str]] = Field(default=[], description="""X-ray source used (e.g. Cu K-alpha, Mo K-alpha, synchrotron).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'OBI:0001138'} })
+ monochromator: Optional[list[str]] = Field(default=[], description="""Monochromator type or configuration used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRaySourceMixin'], 'slot_uri': 'CHMO:0002120'} })
+ minimum_energy: Optional[list[float]] = Field(default=[], description="""Minimum energy of the scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EnergyRangeMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ maximum_energy: Optional[list[float]] = Field(default=[], description="""Maximum energy of the scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EnergyRangeMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class EDX(CharacterizationTechnique):
+ """
+ Energy-dispersive X-ray spectroscopy for elemental mapping and quantification.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000309',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ primary_energy: Optional[list[float]] = Field(default=[], description="""Primary electron beam energy for EDX excitation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EDX'],
+ 'slot_uri': 'coremeta4cat:primary_energy',
+ 'unit': {'ucum_code': 'keV'}} })
+ counting_time: Optional[list[float]] = Field(default=[], description="""X-ray counting time per point or spectrum.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EDX'],
+ 'slot_uri': 'coremeta4cat:counting_time',
+ 'unit': {'ucum_code': 's'}} })
+ resolution: Optional[list[float]] = Field(default=[], description="""Resolution of a measurement or detector.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EDX', 'DRIFTS'], 'slot_uri': 'coremeta4cat:resolution'} })
+ calibration_method: Optional[list[str]] = Field(default=[], description="""Calibration method applied during a measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EDX', 'ICPAES'], 'slot_uri': 'coremeta4cat:calibration_method'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class InfraredSpectroscopy(CharacterizationTechnique):
+ """
+ Infrared spectroscopy (FTIR/ATR) for functional group and surface species identification.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:InfraredSpectroscopy',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ operation_mode: Optional[list[str]] = Field(default=[], description="""Operation mode of an instrument (e.g. transmission, reflection, AC, DC).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'TransmissionElectronMicroscopy',
+ 'Thermogravimetry',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0000108'} })
+ minimum_wavenumber: Optional[list[float]] = Field(default=[], description="""Minimum wavenumber of the IR scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['InfraredSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:minimum_wavenumber',
+ 'unit': {'ucum_code': 'cm-1'}} })
+ maximum_wavenumber: Optional[list[float]] = Field(default=[], description="""Maximum wavenumber of the IR scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['InfraredSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:maximum_wavenumber',
+ 'unit': {'ucum_code': 'cm-1'}} })
+ step_size: Optional[list[float]] = Field(default=[], description="""Step size for a scan (angle, wavelength, energy, or potential).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'AFR:0000950'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ background_correction: Optional[list[str]] = Field(default=[], description="""Background correction method applied to IR spectra.""", json_schema_extra = { "linkml_meta": {'domain_of': ['InfraredSpectroscopy'], 'slot_uri': 'AFP:0003721'} })
+ number_of_scans: Optional[list[int]] = Field(default=[], description="""Number of scans or accumulations recorded.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:number_of_scans'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DRIFTS(CharacterizationTechnique):
+ """
+ Diffuse reflectance infrared Fourier transform spectroscopy for in-situ
+ surface species identification under reactive gas conditions.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000645',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ adsorption_gas: Optional[list[str]] = Field(default=[], description="""Probe gas adsorbed during in-situ DRIFTS measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DRIFTS'], 'slot_uri': 'coremeta4cat:adsorption_gas'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ diluting_reference: Optional[list[str]] = Field(default=[], description="""Reference material used to dilute the DRIFTS sample (e.g. KBr).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DRIFTS'], 'slot_uri': 'coremeta4cat:diluting_reference'} })
+ ratio_reference_sample: Optional[list[float]] = Field(default=[], description="""Mass ratio of reference material to catalyst sample in DRIFTS cup.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DRIFTS'], 'slot_uri': 'coremeta4cat:ratio_reference_sample'} })
+ step_size: Optional[list[float]] = Field(default=[], description="""Step size for a scan (angle, wavelength, energy, or potential).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'AFR:0000950'} })
+ resolution: Optional[list[float]] = Field(default=[], description="""Resolution of a measurement or detector.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EDX', 'DRIFTS'], 'slot_uri': 'coremeta4cat:resolution'} })
+ background_correction_method: Optional[list[str]] = Field(default=[], description="""Specific background correction method used in DRIFTS.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DRIFTS'],
+ 'slot_uri': 'coremeta4cat:background_correction_method'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ number_of_scans: Optional[list[int]] = Field(default=[], description="""Number of scans or accumulations recorded.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:number_of_scans'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class RamanSpectroscopy(CharacterizationTechnique):
+ """
+ Raman spectroscopy for vibrational and structural characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000069',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ excitation_laser_wavelength: Optional[list[float]] = Field(default=[], description="""Wavelength of excitation laser used in Raman spectroscopy.""", json_schema_extra = { "linkml_meta": {'domain_of': ['RamanSpectroscopy'],
+ 'slot_uri': 'AFR:0001594',
+ 'unit': {'ucum_code': 'nm'}} })
+ excitation_laser_power: Optional[list[float]] = Field(default=[], description="""Power of the excitation laser at the sample.""", json_schema_extra = { "linkml_meta": {'domain_of': ['RamanSpectroscopy'],
+ 'slot_uri': 'AFR:0001595',
+ 'unit': {'ucum_code': 'mW'}} })
+ magnification_setting: Optional[list[float]] = Field(default=[], description="""Magnification setting used for imaging.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin', 'RamanSpectroscopy'],
+ 'slot_uri': 'AFR:0002226'} })
+ integration_time: Optional[list[float]] = Field(default=[], description="""Integration or acquisition time per measurement step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['RamanSpectroscopy', 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:integration_time',
+ 'unit': {'ucum_code': 's'}} })
+ number_of_scans: Optional[list[int]] = Field(default=[], description="""Number of scans or accumulations recorded.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:number_of_scans'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ filter_or_grating: Optional[list[str]] = Field(default=[], description="""Optical filter or grating used in Raman spectrometer.""", json_schema_extra = { "linkml_meta": {'domain_of': ['RamanSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:filter_or_grating'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class NMRSpectroscopy(CharacterizationTechnique):
+ """
+ Nuclear magnetic resonance spectroscopy for structure elucidation.
+ Note: for detailed liquid-state NMR minimum information, the dedicated
+ nmr_dcat_ap profile (MARGARITAS) should be used in combination with
+ this subprofile.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000073',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ nucleus: Optional[list[str]] = Field(default=[], description="""NMR-active nucleus observed (e.g. 1H, 13C, 31P).""", json_schema_extra = { "linkml_meta": {'domain_of': ['NMRSpectroscopy'], 'slot_uri': 'coremeta4cat:nucleus'} })
+ solvent: Optional[list[str]] = Field(default=[], description="""Solvent used in a process or sample preparation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis',
+ 'NMRSpectroscopy',
+ 'UVVisSpectroscopy',
+ 'DynamicLightScattering'],
+ 'slot_uri': 'VOC4CAT:0007246'} })
+ irradiation_frequency: Optional[list[float]] = Field(default=[], description="""Irradiation frequency of the NMR spectrometer.""", json_schema_extra = { "linkml_meta": {'domain_of': ['NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:irradiation_frequency',
+ 'unit': {'ucum_code': 'MHz'}} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ nmr_pulse_sequence: Optional[list[str]] = Field(default=[], description="""NMR pulse sequence used (e.g. zgpg30, dept).""", json_schema_extra = { "linkml_meta": {'domain_of': ['NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:nmr_pulse_sequence'} })
+ nmr_sample_tube: Optional[list[str]] = Field(default=[], description="""NMR sample tube type (e.g. 5mm standard, Shigemi tube).""", json_schema_extra = { "linkml_meta": {'domain_of': ['NMRSpectroscopy'], 'slot_uri': 'coremeta4cat:nmr_sample_tube'} })
+ number_of_scans: Optional[list[int]] = Field(default=[], description="""Number of scans or accumulations recorded.""", json_schema_extra = { "linkml_meta": {'domain_of': ['XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:number_of_scans'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class TransmissionElectronMicroscopy(CharacterizationTechnique, ElectronMicroscopyMixin):
+ """
+ TEM for atomic-resolution imaging and diffraction of catalyst particles.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000078',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ElectronMicroscopyMixin']})
+
+ operation_mode: Optional[list[str]] = Field(default=[], description="""Operation mode of an instrument (e.g. transmission, reflection, AC, DC).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'TransmissionElectronMicroscopy',
+ 'Thermogravimetry',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0000108'} })
+ gun_type: Optional[list[str]] = Field(default=[], description="""Type of electron gun (e.g. FEG, thermionic LaB6).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin'], 'slot_uri': 'coremeta4cat:gun_type'} })
+ acceleration_voltage: Optional[list[float]] = Field(default=[], description="""Acceleration voltage applied to the electron beam.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin'],
+ 'slot_uri': 'coremeta4cat:acceleration_voltage',
+ 'unit': {'ucum_code': 'kV'}} })
+ magnification_setting: Optional[list[float]] = Field(default=[], description="""Magnification setting used for imaging.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin', 'RamanSpectroscopy'],
+ 'slot_uri': 'AFR:0002226'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ScanningElectronMicroscopy(CharacterizationTechnique, ElectronMicroscopyMixin):
+ """
+ SEM for surface morphology and particle size/shape imaging.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000075',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ElectronMicroscopyMixin']})
+
+ image_resolution: Optional[list[float]] = Field(default=[], description="""Spatial resolution of SEM images.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ScanningElectronMicroscopy'],
+ 'slot_uri': 'coremeta4cat:image_resolution',
+ 'unit': {'ucum_code': 'nm'}} })
+ field_emitter: Optional[list[str]] = Field(default=[], description="""Type of field emitter used in FE-SEM instrument.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ScanningElectronMicroscopy'],
+ 'slot_uri': 'coremeta4cat:field_emitter'} })
+ gun_type: Optional[list[str]] = Field(default=[], description="""Type of electron gun (e.g. FEG, thermionic LaB6).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin'], 'slot_uri': 'coremeta4cat:gun_type'} })
+ acceleration_voltage: Optional[list[float]] = Field(default=[], description="""Acceleration voltage applied to the electron beam.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin'],
+ 'slot_uri': 'coremeta4cat:acceleration_voltage',
+ 'unit': {'ucum_code': 'kV'}} })
+ magnification_setting: Optional[list[float]] = Field(default=[], description="""Magnification setting used for imaging.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronMicroscopyMixin', 'RamanSpectroscopy'],
+ 'slot_uri': 'AFR:0002226'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Thermogravimetry(CharacterizationTechnique, TemperatureProgramMixin):
+ """
+ Thermogravimetric analysis (TGA/DTG) for mass loss, decomposition, and oxidation state characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000690',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['TemperatureProgramMixin']})
+
+ operation_mode: Optional[list[str]] = Field(default=[], description="""Operation mode of an instrument (e.g. transmission, reflection, AC, DC).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'TransmissionElectronMicroscopy',
+ 'Thermogravimetry',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0000108'} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ initial_temperature: Optional[list[float]] = Field(default=[], description="""Initial temperature at the start of a thermal analysis run.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Thermogravimetry'],
+ 'slot_uri': 'NCIT:C164644',
+ 'unit': {'ucum_code': 'Cel'}} })
+ final_temperature: Optional[list[float]] = Field(default=[], description="""Final temperature at the end of a thermal analysis run.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Thermogravimetry'],
+ 'slot_uri': 'NCIT:C164644',
+ 'unit': {'ucum_code': 'Cel'}} })
+ sample_mass: Optional[list[float]] = Field(default=[], description="""Mass of the sample used in a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Thermogravimetry', 'BET'],
+ 'slot_uri': 'coremeta4cat:sample_mass',
+ 'unit': {'ucum_code': 'mg'}} })
+ minimum_temperature: Optional[list[float]] = Field(default=[], description="""Minimum (start) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ maximum_temperature: Optional[list[float]] = Field(default=[], description="""Maximum (final) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ heating_rate: Optional[list[float]] = Field(default=[], description="""Rate at which temperature is increased during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:heating_rate',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ heating_procedure: Optional[list[str]] = Field(default=[], description="""Description of the heating procedure applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin', 'GCMS'],
+ 'slot_uri': 'coremeta4cat:heating_procedure'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class TPR(CharacterizationTechnique, TemperatureProgramMixin):
+ """
+ Temperature-programmed reduction for reducibility and metal-support interaction characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0002908',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['TemperatureProgramMixin']})
+
+ reducing_gas_composition: Optional[list[str]] = Field(default=[], description="""Composition of reducing gas used in TPR (e.g. 5% H2/Ar).""", json_schema_extra = { "linkml_meta": {'domain_of': ['TPR'], 'slot_uri': 'coremeta4cat:reducing_gas_composition'} })
+ minimum_temperature: Optional[list[float]] = Field(default=[], description="""Minimum (start) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ maximum_temperature: Optional[list[float]] = Field(default=[], description="""Maximum (final) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ heating_rate: Optional[list[float]] = Field(default=[], description="""Rate at which temperature is increased during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:heating_rate',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ heating_procedure: Optional[list[str]] = Field(default=[], description="""Description of the heating procedure applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin', 'GCMS'],
+ 'slot_uri': 'coremeta4cat:heating_procedure'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class TPO(CharacterizationTechnique, TemperatureProgramMixin):
+ """
+ Temperature-programmed oxidation for coke quantification and reoxidation characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0002907',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['TemperatureProgramMixin']})
+
+ oxidizing_gas_composition: Optional[list[str]] = Field(default=[], description="""Composition of oxidising gas used in TPO (e.g. 5% O2/Ar).""", json_schema_extra = { "linkml_meta": {'domain_of': ['TPO'], 'slot_uri': 'coremeta4cat:oxidizing_gas_composition'} })
+ minimum_temperature: Optional[list[float]] = Field(default=[], description="""Minimum (start) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:minimum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ maximum_temperature: Optional[list[float]] = Field(default=[], description="""Maximum (final) temperature in a temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:maximum_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ heating_rate: Optional[list[float]] = Field(default=[], description="""Rate at which temperature is increased during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin'],
+ 'slot_uri': 'coremeta4cat:heating_rate',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ heating_procedure: Optional[list[str]] = Field(default=[], description="""Description of the heating procedure applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin', 'GCMS'],
+ 'slot_uri': 'coremeta4cat:heating_procedure'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class BET(CharacterizationTechnique):
+ """
+ Brunauer-Emmett-Teller analysis for specific surface area and pore size distribution.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:BET',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ adsorbate_gas: Optional[list[str]] = Field(default=[], description="""Adsorbate gas used in BET surface area measurement (e.g. N2, Ar).""", json_schema_extra = { "linkml_meta": {'domain_of': ['BET'], 'slot_uri': 'coremeta4cat:adsorbate_gas'} })
+ degassing_temperature: Optional[list[float]] = Field(default=[], description="""Temperature at which sample is degassed before BET measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BET'],
+ 'slot_uri': 'coremeta4cat:degassing_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ measurement_temperature: Optional[list[float]] = Field(default=[], description="""Temperature at which BET adsorption isotherm is measured (e.g. 77 K for N2).""", json_schema_extra = { "linkml_meta": {'domain_of': ['BET'],
+ 'slot_uri': 'coremeta4cat:measurement_temperature',
+ 'unit': {'ucum_code': 'K'}} })
+ pore_size_distribution_method: Optional[list[str]] = Field(default=[], description="""Method used for pore size distribution calculation (e.g. BJH, DFT, HK).""", json_schema_extra = { "linkml_meta": {'domain_of': ['BET'], 'slot_uri': 'coremeta4cat:pore_size_distribution_method'} })
+ sample_mass: Optional[list[float]] = Field(default=[], description="""Mass of the sample used in a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Thermogravimetry', 'BET'],
+ 'slot_uri': 'coremeta4cat:sample_mass',
+ 'unit': {'ucum_code': 'mg'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ICPAES(CharacterizationTechnique):
+ """
+ Inductively coupled plasma atomic emission spectroscopy for bulk elemental composition.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000267',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ element_analyzed: Optional[list[str]] = Field(default=[], description="""Chemical element analysed (e.g. Fe, Cu, Pt).""", json_schema_extra = { "linkml_meta": {'domain_of': ['XRayAbsorptionSpectroscopy', 'ICPAES'],
+ 'slot_uri': 'coremeta4cat:element_analyzed'} })
+ calibration_method: Optional[list[str]] = Field(default=[], description="""Calibration method applied during a measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EDX', 'ICPAES'], 'slot_uri': 'coremeta4cat:calibration_method'} })
+ detection_limit: Optional[list[float]] = Field(default=[], description="""Detection limit of the analytical method.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ICPAES'], 'slot_uri': 'NCIT:C105701'} })
+ matrix_effect_correction: Optional[list[str]] = Field(default=[], description="""Method used to correct for matrix effects in ICP-AES.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ICPAES'], 'slot_uri': 'coremeta4cat:matrix_effect_correction'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ElementalAnalysis(CharacterizationTechnique):
+ """
+ Combustion elemental analysis (CHNS/O) for carbon, hydrogen, nitrogen, sulfur content.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0001075',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ elements_analyzed: Optional[list[str]] = Field(default=[], description="""List of elements analysed by combustion elemental analysis (e.g. C, H, N, S).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElementalAnalysis'],
+ 'slot_uri': 'coremeta4cat:elements_analyzed'} })
+ combustion_temperature: Optional[list[float]] = Field(default=[], description="""Combustion furnace temperature for elemental analysis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElementalAnalysis'],
+ 'slot_uri': 'coremeta4cat:combustion_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ carrier_gas: Optional[list[str]] = Field(default=[], description="""Carrier gas used in a process (e.g. in GC analysis or ALD deposition).""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition',
+ 'ElementalAnalysis',
+ 'ElectroSprayIonizationMassSpectrometry',
+ 'GCMS'],
+ 'slot_uri': 'coremeta4cat:carrier_gas'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class UVVisSpectroscopy(CharacterizationTechnique):
+ """
+ UV-Vis spectroscopy for electronic transitions, band gap, and concentration determination.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'VOC4CAT:0000079',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ minimum_wavelength: Optional[list[float]] = Field(default=[], description="""Minimum wavelength of the UV-Vis scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['UVVisSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:minimum_wavelength',
+ 'unit': {'ucum_code': 'nm'}} })
+ maximum_wavelength: Optional[list[float]] = Field(default=[], description="""Maximum wavelength of the UV-Vis scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['UVVisSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:maximum_wavelength',
+ 'unit': {'ucum_code': 'nm'}} })
+ path_length: Optional[list[float]] = Field(default=[], description="""Optical path length of the measurement cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['UVVisSpectroscopy'],
+ 'slot_uri': 'AFQ:0000268',
+ 'unit': {'ucum_code': 'cm'}} })
+ solvent: Optional[list[str]] = Field(default=[], description="""Solvent used in a process or sample preparation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis',
+ 'NMRSpectroscopy',
+ 'UVVisSpectroscopy',
+ 'DynamicLightScattering'],
+ 'slot_uri': 'VOC4CAT:0007246'} })
+ concentration: Optional[list[float]] = Field(default=[], description="""Concentration of a substance in a sample or solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['UVVisSpectroscopy',
+ 'DynamicLightScattering',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PhotoluminescenceSpectroscopy(CharacterizationTechnique, PhotoluminescenceMixin):
+ """
+ Photoluminescence spectroscopy for defect and charge carrier characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:PhotoluminescenceSpectroscopy',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['PhotoluminescenceMixin']})
+
+ emission_range: Optional[list[str]] = Field(default=[], description="""Wavelength range over which emission is detected.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:emission_range'} })
+ slit_width: Optional[list[float]] = Field(default=[], description="""Spectrometer entrance or exit slit width.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:slit_width',
+ 'unit': {'ucum_code': 'nm'}} })
+ step_size: Optional[list[float]] = Field(default=[], description="""Step size for a scan (angle, wavelength, energy, or potential).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'AFR:0000950'} })
+ integration_time: Optional[list[float]] = Field(default=[], description="""Integration or acquisition time per measurement step.""", json_schema_extra = { "linkml_meta": {'domain_of': ['RamanSpectroscopy', 'PhotoluminescenceSpectroscopy'],
+ 'slot_uri': 'coremeta4cat:integration_time',
+ 'unit': {'ucum_code': 's'}} })
+ excitation_wavelength: Optional[list[float]] = Field(default=[], description="""Excitation wavelength used in photoluminescence measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'AFR:0002479',
+ 'unit': {'ucum_code': 'nm'}} })
+ emission_wavelength: Optional[list[float]] = Field(default=[], description="""Emission wavelength detected in photoluminescence measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'NCIT:C204101',
+ 'unit': {'ucum_code': 'nm'}} })
+ optical_filter: Optional[list[str]] = Field(default=[], description="""Optical filter used in the emission or excitation path.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'coremeta4cat:optical_filter'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PhotoluminescenceLifetime(CharacterizationTechnique, PhotoluminescenceMixin):
+ """
+ Time-resolved photoluminescence for charge carrier lifetime and recombination dynamics.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:PhotoluminescenceLifetime',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['PhotoluminescenceMixin']})
+
+ lifetime_fitting_model: Optional[list[str]] = Field(default=[], description="""Mathematical model used for fluorescence lifetime fitting (e.g. mono-exponential, bi-exponential).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceLifetime'],
+ 'slot_uri': 'coremeta4cat:lifetime_fitting_model'} })
+ number_of_shots: Optional[list[int]] = Field(default=[], description="""Number of laser shots accumulated per measurement point.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceLifetime'],
+ 'slot_uri': 'coremeta4cat:number_of_shots'} })
+ excitation_wavelength: Optional[list[float]] = Field(default=[], description="""Excitation wavelength used in photoluminescence measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'AFR:0002479',
+ 'unit': {'ucum_code': 'nm'}} })
+ emission_wavelength: Optional[list[float]] = Field(default=[], description="""Emission wavelength detected in photoluminescence measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'NCIT:C204101',
+ 'unit': {'ucum_code': 'nm'}} })
+ optical_filter: Optional[list[str]] = Field(default=[], description="""Optical filter used in the emission or excitation path.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhotoluminescenceMixin'],
+ 'slot_uri': 'coremeta4cat:optical_filter'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CyclicVoltammetry(CharacterizationTechnique, ElectrochemistryMixin):
+ """
+ Cyclic voltammetry for electrochemical activity, redox potential, and capacitance characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000025',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ElectrochemistryMixin']})
+
+ scan_rate: Optional[list[float]] = Field(default=[], description="""Potential scan rate in cyclic voltammetry.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CyclicVoltammetry'],
+ 'slot_uri': 'VOC4CAT:0007213',
+ 'unit': {'ucum_code': 'mV/s'}} })
+ minimum_potential: Optional[list[float]] = Field(default=[], description="""Lower potential limit in cyclic voltammetry.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:minimum_potential',
+ 'unit': {'ucum_code': 'V'}} })
+ maximum_potential: Optional[list[float]] = Field(default=[], description="""Upper potential limit in cyclic voltammetry.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:maximum_potential',
+ 'unit': {'ucum_code': 'V'}} })
+ step_size_potential: Optional[list[float]] = Field(default=[], description="""Potential step size in cyclic voltammetry.""", json_schema_extra = { "linkml_meta": {'domain_of': ['CyclicVoltammetry'],
+ 'slot_uri': 'VOC4CAT:0007218',
+ 'unit': {'ucum_code': 'mV'}} })
+ number_of_cycles: Optional[list[int]] = Field(default=[], description="""Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).""", json_schema_extra = { "linkml_meta": {'domain_of': ['CalcinationMixin',
+ 'AtomicLayerDeposition',
+ 'MolecularSynthesis',
+ 'XRayAbsorptionSpectroscopy',
+ 'CyclicVoltammetry'],
+ 'slot_uri': 'coremeta4cat:number_of_cycles'} })
+ reference_electrode: Optional[list[str]] = Field(default=[], description="""Reference electrode used in electrochemical cell (e.g. Ag/AgCl, RHE).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007204'} })
+ working_electrode: Optional[list[str]] = Field(default=[], description="""Working electrode used in electrochemical cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007202'} })
+ counter_electrode: Optional[list[str]] = Field(default=[], description="""Counter electrode used in electrochemical cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007203'} })
+ electrolyte_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the electrolyte solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'],
+ 'slot_uri': 'coremeta4cat:electrolyte_composition'} })
+ electrolyte_concentration: Optional[list[float]] = Field(default=[], description="""Concentration of the electrolyte.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'],
+ 'slot_uri': 'coremeta4cat:electrolyte_concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ConductivityMeasurement(CharacterizationTechnique, ElectrochemistryMixin):
+ """
+ Electrical conductivity measurement for ionic and electronic transport characterization.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:ConductivityMeasurement',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ElectrochemistryMixin']})
+
+ electrode_configuration: Optional[list[str]] = Field(default=[], description="""Configuration of electrodes used in conductivity measurement (e.g. 2-probe, 4-probe).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ConductivityMeasurement'],
+ 'slot_uri': 'coremeta4cat:electrode_configuration'} })
+ ac_frequency: Optional[list[float]] = Field(default=[], description="""Frequency of AC signal applied in impedance or conductivity measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ConductivityMeasurement'],
+ 'slot_uri': 'VOC4CAT:0007239',
+ 'unit': {'ucum_code': 'Hz'}} })
+ ac_dc_mode: Optional[list[str]] = Field(default=[], description="""AC or DC measurement mode used in conductivity measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ConductivityMeasurement'],
+ 'slot_uri': 'coremeta4cat:ac_dc_mode'} })
+ sample_geometry: Optional[list[str]] = Field(default=[], description="""Geometry of the sample used in conductivity measurement (e.g. pellet, thin film).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ConductivityMeasurement'],
+ 'slot_uri': 'coremeta4cat:sample_geometry'} })
+ reference_electrode: Optional[list[str]] = Field(default=[], description="""Reference electrode used in electrochemical cell (e.g. Ag/AgCl, RHE).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007204'} })
+ working_electrode: Optional[list[str]] = Field(default=[], description="""Working electrode used in electrochemical cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007202'} })
+ counter_electrode: Optional[list[str]] = Field(default=[], description="""Counter electrode used in electrochemical cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'], 'slot_uri': 'VOC4CAT:0007203'} })
+ electrolyte_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the electrolyte solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'],
+ 'slot_uri': 'coremeta4cat:electrolyte_composition'} })
+ electrolyte_concentration: Optional[list[float]] = Field(default=[], description="""Concentration of the electrolyte.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectrochemistryMixin'],
+ 'slot_uri': 'coremeta4cat:electrolyte_concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ atmosphere: Optional[list[str]] = Field(default=[], description="""Gaseous environment or atmospheric conditions during a process.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermalSynthesisMixin',
+ 'MolecularSynthesis',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'XPS',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'Thermogravimetry',
+ 'Reaction'],
+ 'slot_uri': 'coremeta4cat:atmosphere'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DynamicLightScattering(CharacterizationTechnique):
+ """
+ Dynamic light scattering for hydrodynamic particle size distribution in suspension.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000167',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/'})
+
+ solvent: Optional[list[str]] = Field(default=[], description="""Solvent used in a process or sample preparation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Synthesis',
+ 'NMRSpectroscopy',
+ 'UVVisSpectroscopy',
+ 'DynamicLightScattering'],
+ 'slot_uri': 'VOC4CAT:0007246'} })
+ concentration: Optional[list[float]] = Field(default=[], description="""Concentration of a substance in a sample or solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['UVVisSpectroscopy',
+ 'DynamicLightScattering',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ light_wavelength: Optional[list[float]] = Field(default=[], description="""Wavelength of the laser used in DLS measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DynamicLightScattering'],
+ 'slot_uri': 'VOC4CAT:0000176',
+ 'unit': {'ucum_code': 'nm'}} })
+ scattering_angle: Optional[list[float]] = Field(default=[], description="""Scattering angle at which intensity is detected in DLS.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DynamicLightScattering'],
+ 'slot_uri': 'coremeta4cat:scattering_angle',
+ 'unit': {'ucum_code': 'deg'}} })
+ refractive_index: Optional[list[float]] = Field(default=[], description="""Refractive index of the solvent used in DLS measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DynamicLightScattering'],
+ 'slot_uri': 'coremeta4cat:refractive_index'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ dispersant: Optional[list[str]] = Field(default=[], description="""Dispersant used (e.g. in DLS measurement or flame spray pyrolysis).""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis', 'DynamicLightScattering'],
+ 'slot_uri': 'coremeta4cat:dispersant'} })
+ measurement_duration: Optional[list[float]] = Field(default=[], description="""Duration of a single DLS acquisition.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DynamicLightScattering'],
+ 'slot_uri': 'coremeta4cat:measurement_duration',
+ 'unit': {'ucum_code': 's'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ElectroSprayIonizationMassSpectrometry(CharacterizationTechnique, MassRangeMixin):
+ """
+ Electrospray ionisation mass spectrometry for molecular mass and identity determination.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000482',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['MassRangeMixin']})
+
+ operation_mode: Optional[list[str]] = Field(default=[], description="""Operation mode of an instrument (e.g. transmission, reflection, AC, DC).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PowderXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'TransmissionElectronMicroscopy',
+ 'Thermogravimetry',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0000108'} })
+ spray_voltage: Optional[list[float]] = Field(default=[], description="""Spray voltage applied in electrospray ionisation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'CHMO:0002792',
+ 'unit': {'ucum_code': 'kV'}} })
+ capillary_temperature: Optional[list[float]] = Field(default=[], description="""Capillary or desolvation temperature in ESI source.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:capillary_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ solvent_composition: Optional[list[str]] = Field(default=[], description="""Solvent composition used for ESI spray solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'VOC4CAT:0007246'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ carrier_gas: Optional[list[str]] = Field(default=[], description="""Carrier gas used in a process (e.g. in GC analysis or ALD deposition).""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition',
+ 'ElementalAnalysis',
+ 'ElectroSprayIonizationMassSpectrometry',
+ 'GCMS'],
+ 'slot_uri': 'coremeta4cat:carrier_gas'} })
+ concentration: Optional[list[float]] = Field(default=[], description="""Concentration of a substance in a sample or solution.""", json_schema_extra = { "linkml_meta": {'domain_of': ['UVVisSpectroscopy',
+ 'DynamicLightScattering',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:concentration',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ mz_minimum: Optional[list[float]] = Field(default=[], description="""Minimum m/z value in the mass scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MassRangeMixin'], 'slot_uri': 'AFR:0002652'} })
+ mz_maximum: Optional[list[float]] = Field(default=[], description="""Maximum m/z value in the mass scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MassRangeMixin'], 'slot_uri': 'AFR:0002653'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class GCMS(CharacterizationTechnique, MassRangeMixin, ChromatographyMixin):
+ """
+ Gas chromatography-mass spectrometry for volatile compound identification and quantification.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000497',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ChromatographyMixin', 'MassRangeMixin']})
+
+ carrier_gas: Optional[list[str]] = Field(default=[], description="""Carrier gas used in a process (e.g. in GC analysis or ALD deposition).""", json_schema_extra = { "linkml_meta": {'domain_of': ['AtomicLayerDeposition',
+ 'ElementalAnalysis',
+ 'ElectroSprayIonizationMassSpectrometry',
+ 'GCMS'],
+ 'slot_uri': 'coremeta4cat:carrier_gas'} })
+ carrier_gas_purity: Optional[list[str]] = Field(default=[], description="""Purity grade of the carrier gas used in GC.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'], 'slot_uri': 'coremeta4cat:carrier_gas_purity'} })
+ inlet_temperature: Optional[list[float]] = Field(default=[], description="""GC inlet temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'],
+ 'slot_uri': 'coremeta4cat:inlet_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ minimum_oven_temperature: Optional[list[float]] = Field(default=[], description="""Minimum oven temperature in GC temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'],
+ 'slot_uri': 'coremeta4cat:minimum_oven_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ maximum_oven_temperature: Optional[list[float]] = Field(default=[], description="""Maximum oven temperature in GC temperature programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'],
+ 'slot_uri': 'coremeta4cat:maximum_oven_temperature',
+ 'unit': {'ucum_code': 'Cel'}} })
+ heating_ramp: Optional[list[float]] = Field(default=[], description="""Temperature ramp rate in GC oven programme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'],
+ 'slot_uri': 'coremeta4cat:heating_ramp',
+ 'unit': {'ucum_code': 'Cel/min'}} })
+ heating_procedure: Optional[list[str]] = Field(default=[], description="""Description of the heating procedure applied.""", json_schema_extra = { "linkml_meta": {'domain_of': ['TemperatureProgramMixin', 'GCMS'],
+ 'slot_uri': 'coremeta4cat:heating_procedure'} })
+ acquisition_mode: Optional[list[str]] = Field(default=[], description="""Mass spectrometer acquisition mode (e.g. full scan, SIM, SRM).""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'], 'slot_uri': 'coremeta4cat:acquisition_mode'} })
+ solvent_delay: Optional[list[float]] = Field(default=[], description="""Solvent delay time before MS acquisition begins.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'],
+ 'slot_uri': 'coremeta4cat:solvent_delay',
+ 'unit': {'ucum_code': 'min'}} })
+ trace_ion_detection: Optional[list[str]] = Field(default=[], description="""Trace ion detection setting or threshold.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'], 'slot_uri': 'coremeta4cat:trace_ion_detection'} })
+ split_ratio: Optional[list[float]] = Field(default=[], description="""Split ratio at the GC injector.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GCMS'], 'slot_uri': 'coremeta4cat:split_ratio'} })
+ column_type: Optional[list[str]] = Field(default=[], description="""Type of chromatographic column used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'coremeta4cat:column_type'} })
+ eluent: Optional[list[str]] = Field(default=[], description="""Eluent or mobile phase used in chromatography.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'AFRL:0000011'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ injection_volume: Optional[list[float]] = Field(default=[], description="""Volume injected in a chromatographic or mass spectrometric experiment.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:injection_volume',
+ 'unit': {'ucum_code': 'uL'}} })
+ external_standard: Optional[list[str]] = Field(default=[], description="""External standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:external_standard'} })
+ internal_standard: Optional[list[str]] = Field(default=[], description="""Internal standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:internal_standard'} })
+ mz_minimum: Optional[list[float]] = Field(default=[], description="""Minimum m/z value in the mass scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MassRangeMixin'], 'slot_uri': 'AFR:0002652'} })
+ mz_maximum: Optional[list[float]] = Field(default=[], description="""Maximum m/z value in the mass scan range.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MassRangeMixin'], 'slot_uri': 'AFR:0002653'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SizeExclusionChromatography(CharacterizationTechnique, ChromatographyMixin):
+ """
+ Size exclusion chromatography for molecular weight distribution determination.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'AFP:0000843',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ChromatographyMixin']})
+
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ calibration_standard: Optional[list[str]] = Field(default=[], description="""Calibration standard used for molecular weight or retention time calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SizeExclusionChromatography'],
+ 'slot_uri': 'coremeta4cat:calibration_standard'} })
+ column_type: Optional[list[str]] = Field(default=[], description="""Type of chromatographic column used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'coremeta4cat:column_type'} })
+ eluent: Optional[list[str]] = Field(default=[], description="""Eluent or mobile phase used in chromatography.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'AFRL:0000011'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ injection_volume: Optional[list[float]] = Field(default=[], description="""Volume injected in a chromatographic or mass spectrometric experiment.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:injection_volume',
+ 'unit': {'ucum_code': 'uL'}} })
+ external_standard: Optional[list[str]] = Field(default=[], description="""External standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:external_standard'} })
+ internal_standard: Optional[list[str]] = Field(default=[], description="""Internal standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:internal_standard'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class HighPerformanceLiquidChromatographyMassSpectrometry(CharacterizationTechnique, ChromatographyMixin):
+ """
+ High-performance liquid chromatography-mass spectrometry for compound identification and quantification.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0000796',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/characterization/',
+ 'mixins': ['ChromatographyMixin']})
+
+ gradient_program: Optional[list[str]] = Field(default=[], description="""Gradient elution programme used in HPLC-MS.""", json_schema_extra = { "linkml_meta": {'domain_of': ['HighPerformanceLiquidChromatographyMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:gradient_program'} })
+ ionization_mode: Optional[list[str]] = Field(default=[], description="""Ionisation mode used in HPLC-MS (e.g. positive, negative, APCI, ESI).""", json_schema_extra = { "linkml_meta": {'domain_of': ['HighPerformanceLiquidChromatographyMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:ionization_mode'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ column_type: Optional[list[str]] = Field(default=[], description="""Type of chromatographic column used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'coremeta4cat:column_type'} })
+ eluent: Optional[list[str]] = Field(default=[], description="""Eluent or mobile phase used in chromatography.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'], 'slot_uri': 'AFRL:0000011'} })
+ flow_rate: Optional[list[float]] = Field(default=[], description="""Flow rate of a fluid or gas.""", json_schema_extra = { "linkml_meta": {'domain_of': ['FlameSprayPyrolysis',
+ 'ChromatographyMixin',
+ 'DRIFTS',
+ 'ElectroSprayIonizationMassSpectrometry'],
+ 'slot_uri': 'coremeta4cat:flow_rate',
+ 'unit': {'ucum_code': 'mL/min'}} })
+ injection_volume: Optional[list[float]] = Field(default=[], description="""Volume injected in a chromatographic or mass spectrometric experiment.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:injection_volume',
+ 'unit': {'ucum_code': 'uL'}} })
+ external_standard: Optional[list[str]] = Field(default=[], description="""External standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:external_standard'} })
+ internal_standard: Optional[list[str]] = Field(default=[], description="""Internal standard used for quantification or calibration.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChromatographyMixin'],
+ 'slot_uri': 'coremeta4cat:internal_standard'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ProductIdentificationMethod(Plan):
+ """
+ Abstract Plan representing the method used to identify and quantify reaction
+ products. In practice, users should reference a concrete CharacterizationTechnique
+ subclass from coremeta4cat_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
+
+ This abstract class is retained for backward compatibility with the original
+ CoreMeta4Cat monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
+ it can participate in the realized_plan slot if needed.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'class_uri': 'OBI:0000272',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/reaction/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class QualitativeAttribute(ClassifierMixin):
+ """
+ A piece of information that is attributed to an Entity, Activity or AgenticEntity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Entity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin'],
+ 'slot_usage': {'value': {'description': 'The slot to provide the literal '
+ 'value of the QualitativeAttribute.',
+ 'name': 'value',
+ 'required': True}}})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class QuantitativeAttribute(ClassifierMixin):
+ """
+ A quantifiable piece of information that is attributed to an Entity, Activity or AgenticEntity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin'],
+ 'slot_usage': {'value': {'description': 'The slot to provide the literal '
+ 'value of the QuantitativeAttribute.',
+ 'name': 'value',
+ 'range': 'float',
+ 'required': True}}})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Relationship(ConfiguredBaseModel):
+ """
+ See [DCAT-AP specs:Relationship](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Relationship)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Relationship',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'had_role': {'description': 'A function of an entity or agent '
+ 'with respect to another entity or '
+ 'resource.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'had_role',
+ 'range': 'Role',
+ 'required': True,
+ 'slot_uri': 'dcat:hadRole'},
+ 'relation': {'description': 'A resource related to the source '
+ 'resource.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'relation',
+ 'range': 'Resource',
+ 'required': True,
+ 'slot_uri': 'dcterms:relation'}}})
+
+ had_role: list[Role] = Field(default=..., description="""A function of an entity or agent with respect to another entity or resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Relationship'], 'slot_uri': 'dcat:hadRole'} })
+ relation: list[Resource] = Field(default=..., description="""A resource related to the source resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Relationship'], 'slot_uri': 'dcterms:relation'} })
+
+
+class Software(AgenticEntity):
+ """
+ An instrument composed of a series of instructions that can be interpreted by or directly executed by a computer.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:SoftwareAgent',
+ 'exact_mappings': ['schema:SoftwareApplication'],
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_usage': {'has_part': {'description': 'The slot to specify parts of a '
+ 'Software that are themselves '
+ 'Software.',
+ 'inlined': True,
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'range': 'Software'},
+ 'other_identifier': {'description': 'A slot to provide a '
+ 'secondary identifier for '
+ 'a Software.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'other_identifier',
+ 'range': 'Identifier',
+ 'required': False}}})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Software.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Software]] = Field(default=[], description="""The slot to specify parts of a Software that are themselves Software.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SupportiveEntity(ConfiguredBaseModel):
+ """
+ The supportive entities are supporting the main entities in the Application Profile. They are included in the Application Profile because they form the range of properties.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Attribution(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Attribution](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Attribution)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Attribution',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class ChecksumAlgorithm(SupportiveEntity):
+ """
+ See [DCAT-AP specs:ChecksumAlgorithm](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#ChecksumAlgorithm)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'spdx:ChecksumAlgorithm',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Concept(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Concept](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Concept)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'skos:Concept',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'preferred_label': {'description': 'A preferred label of the '
+ 'concept.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'preferred_label',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'skos:prefLabel'}}})
+
+ preferred_label: list[str] = Field(default=..., description="""A preferred label of the concept.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Concept'], 'slot_uri': 'skos:prefLabel'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class ConceptScheme(SupportiveEntity):
+ """
+ See [DCAT-AP specs:ConceptScheme](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#ConceptScheme)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'skos:ConceptScheme',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'title': {'description': 'A name of the concept scheme.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'title',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'dcterms:title'}}})
+
+ title: list[str] = Field(default=..., description="""A name of the concept scheme.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Document(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Document](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Document)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'foaf:Document',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Frequency(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Frequency](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Frequency)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:Frequency',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Geometry(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Geometry](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Geometry)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'locn:Geometry',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Identifier(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Identifier](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Identifier)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'adms:Identifier',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'notation': {'description': 'A string that is an identifier in '
+ 'the context of the identifier '
+ 'scheme referenced by its '
+ 'datatype.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'notation',
+ 'range': 'string',
+ 'required': True,
+ 'slot_uri': 'skos:notation'}}})
+
+ notation: str = Field(default=..., description="""A string that is an identifier in the context of the identifier scheme referenced by its datatype.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Identifier'], 'slot_uri': 'skos:notation'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class LegalResource(SupportiveEntity):
+ """
+ See [DCAT-AP specs:LegalResource](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#LegalResource)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'eli:LegalResource',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class LicenseDocument(SupportiveEntity):
+ """
+ See [DCAT-AP specs:LicenseDocument](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#LicenseDocument)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:LicenseDocument',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'type': {'description': 'A type of licence, e.g. indicating '
+ "'public domain' or 'royalties "
+ "required'.",
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'type',
+ 'range': 'Concept',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcterms:type'}}})
+
+ type: Optional[list[Concept]] = Field(default=[], description="""A type of licence, e.g. indicating 'public domain' or 'royalties required'.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:type'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class LinguisticSystem(SupportiveEntity):
+ """
+ See [DCAT-AP specs:LinguisticSystem](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#LinguisticSystem)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:LinguisticSystem',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class MediaType(SupportiveEntity):
+ """
+ See [DCAT-AP specs:MediaType](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#MediaType)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:MediaType',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class MediaTypeOrExtent(SupportiveEntity):
+ """
+ See [DCAT-AP specs:MediaTypeOrExtent](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#MediaTypeOrExtent)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:MediaTypeOrExtent',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class PeriodOfTime(SupportiveEntity):
+ """
+ See [DCAT-AP specs:PeriodOfTime](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#PeriodOfTime)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:PeriodOfTime',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'slot_usage': {'beginning': {'description': 'The beginning of a period or '
+ 'interval.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'beginning',
+ 'range': 'TimeInstant',
+ 'required': False,
+ 'slot_uri': 'time:hasBeginning'},
+ 'end': {'description': 'The end of a period or interval.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'end',
+ 'range': 'TimeInstant',
+ 'required': False,
+ 'slot_uri': 'time:hasEnd'},
+ 'end_date': {'description': 'The end of the period.',
+ 'inlined_as_list': True,
+ 'multivalued': False,
+ 'name': 'end_date',
+ 'range': 'date',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:endDate'},
+ 'start_date': {'description': 'The start of the period.',
+ 'inlined_as_list': False,
+ 'multivalued': False,
+ 'name': 'start_date',
+ 'range': 'date',
+ 'recommended': True,
+ 'required': False,
+ 'slot_uri': 'dcat:startDate'}}})
+
+ beginning: Optional[TimeInstant] = Field(default=None, description="""The beginning of a period or interval.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PeriodOfTime'], 'slot_uri': 'time:hasBeginning'} })
+ end: Optional[TimeInstant] = Field(default=None, description="""The end of a period or interval.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PeriodOfTime'], 'slot_uri': 'time:hasEnd'} })
+ end_date: Optional[date] = Field(default=None, description="""The end of the period.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PeriodOfTime'], 'recommended': True, 'slot_uri': 'dcat:endDate'} })
+ start_date: Optional[date] = Field(default=None, description="""The start of the period.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PeriodOfTime'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:startDate'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Policy(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Policy](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Policy)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'odrl:Policy',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class ProvenanceStatement(SupportiveEntity):
+ """
+ See [DCAT-AP specs:ProvenanceStatement](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#ProvenanceStatement)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:ProvenanceStatement',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Resource(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Resource](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Resource)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'rdfs:Resource',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class RightsStatement(SupportiveEntity):
+ """
+ See [DCAT-AP specs:RightsStatement](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#RightsStatement)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:RightsStatement',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Role(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Role](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Role)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Role',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Standard(SupportiveEntity):
+ """
+ See [DCAT-AP specs:Standard](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#Standard)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcterms:Standard',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class Surrounding(ClassifierMixin):
+ """
+ The surrounding in which the dataset creating activity took place (e.g. a lab).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'prov:Location',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/',
+ 'in_subset': ['domain_agnostic_core'],
+ 'mixins': ['ClassifierMixin']})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class TimeInstant(SupportiveEntity):
+ """
+ See [DCAT-AP specs:TimeInstant](https://semiceu.github.io/DCAT-AP/releases/3.0.0/#TimeInstant)
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'time:Instant',
+ 'from_schema': 'https://w3id.org/nfdi-de/dcat-ap-plus/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+
+
+class InChIKey(QualitativeAttribute):
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEMINF:000059',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class InChi(QualitativeAttribute):
+ """
+ A structure descriptor which conforms to the InChI format specification.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEMINF:000113',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MolecularFormula(QualitativeAttribute):
+ """
+ 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.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEMINF:000042',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class IUPACName(QualitativeAttribute):
+ """
+ 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).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEMINF:000107',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SMILES(QualitativeAttribute):
+ """
+ A structure descriptor that denotes a molecular structure as a graph and conforms to the SMILES format specification.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEMINF:000018',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Concentration(QuantitativeAttribute):
+ """
+ A QuantitativeAttribute of a ChemicalSubstance that represents the amount of a constituent divided by the volume of the mixture.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHMO:0002820',
+ 'close_mappings': ['PATO:0000033'],
+ 'exact_mappings': ['EDAM:2140',
+ 'NCIT:C41185',
+ 'VOC4CAT:0007244',
+ 'AFR:0002036'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml',
+ 'narrow_mappings': ['CHMO:0002822']})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class AmountOfSubstance(QuantitativeAttribute):
+ """
+ The total amount of substance used in a ChemicalReaction.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['SubstanceAmount'],
+ 'class_uri': 'qudt:Quantity',
+ 'close_mappings': ['PATO:0000070'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PHValue(QuantitativeAttribute):
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:001089',
+ 'close_mappings': ['PATO:0001842'],
+ 'exact_mappings': ['NCIT:C45997', 'AFR:0001142'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Materialistic(ConfiguredBaseModel):
+ """
+ A LinkML mixin used to pass down properties common to all material entities. It is needed for example to have MaterialSample have the same properties as MaterialEntity, although it is defined as a subclass of EvaluatedEntity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml',
+ 'mixin': True})
+
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+
+
+class MaterialEntity(Materialistic, Entity):
+ """
+ A material is an Entity that has some portion of matter as proper part.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'BFO:0000040',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml',
+ 'mixins': ['Materialistic'],
+ 'slot_usage': {'has_part': {'description': 'The slot to provide the parts of '
+ 'a MaterialEntity.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'has_part',
+ 'range': 'MaterialEntity',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'}}})
+
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ChemicalEntity(MaterialEntity):
+ """
+ Any constitutionally or isotopically distinct atom, molecule, ion, ion pair, radical, radical ion, complex, conformer etc., identifiable as a separately distinguishable entity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEBI:23367',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ inchi: Optional[list[InChi]] = Field(default=[], description="""The slot to provide the InChi descriptor of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ inchikey: Optional[list[InChIKey]] = Field(default=[], description="""The slot to provide the InChiKey of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ smiles: Optional[list[SMILES]] = Field(default=[], description="""The slot to provide the canonical SMILES descriptor of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ molecular_formula: Optional[list[MolecularFormula]] = Field(default=[], description="""The slot to provide the IUPAC formula of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ iupac_name: Optional[list[IUPACName]] = Field(default=[], description="""The slot to provide the IUPAC name of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_molar_mass: Optional[list[MolarMass]] = Field(default=[], description="""The slot to provide the MolarMass of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_mass',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Atom(ChemicalEntity):
+ """
+ A MaterialEntity constituting the smallest component of an element having the chemical properties of the element.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEBI:33250',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml',
+ 'slot_usage': {'rdf_type': {'description': 'The slot to provide the Atom as a '
+ 'ChEBI ID from the atom '
+ '(CHEBI:33250) branch.',
+ 'name': 'rdf_type',
+ 'required': True}}})
+
+ inchi: Optional[list[InChi]] = Field(default=[], description="""The slot to provide the InChi descriptor of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ inchikey: Optional[list[InChIKey]] = Field(default=[], description="""The slot to provide the InChiKey of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ smiles: Optional[list[SMILES]] = Field(default=[], description="""The slot to provide the canonical SMILES descriptor of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ molecular_formula: Optional[list[MolecularFormula]] = Field(default=[], description="""The slot to provide the IUPAC formula of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ iupac_name: Optional[list[IUPACName]] = Field(default=[], description="""The slot to provide the IUPAC name of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_qualitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_molar_mass: Optional[list[MolarMass]] = Field(default=[], description="""The slot to provide the MolarMass of a ChemicalEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalEntity'],
+ 'is_a': 'has_mass',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: DefinedTerm = Field(default=..., description="""The slot to provide the Atom as a ChEBI ID from the atom (CHEBI:33250) branch.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ChemicalSubstance(MaterialEntity):
+ """
+ A MaterialEntity of constant composition, composed of chemical entities of the same type or of different types.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEBI:59999',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml',
+ 'mixin': True})
+
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Polymer(ChemicalSubstance):
+ """
+ A ChemicalSubstance that is composed of macromolecules of different kinds and which may be differentiated by composition, length, degree of branching etc..
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEBI:60027',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml',
+ 'mixin': True})
+
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MaterialSample(Materialistic, EvaluatedEntity):
+ """
+ A Sample that was derived from a previous MaterialSample or some other kind of MaterialEntity.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'OBI:0000747',
+ 'exact_mappings': ['SIO:001050', 'VOC4CAT:0005056'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml',
+ 'mixins': ['Materialistic'],
+ 'slot_usage': {'derived_from': {'description': 'The slot to specify the '
+ 'MaterialEntity or '
+ 'MaterialSample from which the '
+ 'MaterialSample was created.',
+ 'name': 'derived_from'}}})
+
+ derived_from: Optional[Entity] = Field(default=None, description="""The slot to specify the MaterialEntity or MaterialSample from which the MaterialSample was created.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['BFO:0000050', 'dcterms:partOf'],
+ 'domain_of': ['MaterialSample'],
+ 'exact_mappings': ['SIO:000244'],
+ 'slot_uri': 'prov:wasDerivedFrom'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ was_generated_by: Optional[list[Activity]] = Field(default=[], description="""A slot to provide the Activity which created the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Precursor(MaterialSample):
+ """
+ A MaterialSample that serves as input material in a catalyst Synthesis.
+ Precursors are consumed or transformed during the preparation process.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'CHEBI:52717',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'slot_usage': {'precursor_quantity': {'name': 'precursor_quantity',
+ 'required': True}}})
+
+ precursor_quantity: list[float] = Field(default=..., description="""Quantity of precursor used in synthesis.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Precursor'],
+ 'slot_uri': 'coremeta4cat:precursor_quantity',
+ 'unit': {'ucum_code': 'g'}} })
+ derived_from: Optional[Entity] = Field(default=None, description="""The slot to specify the MaterialEntity or MaterialSample from which the MaterialSample was created.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['BFO:0000050', 'dcterms:partOf'],
+ 'domain_of': ['MaterialSample'],
+ 'exact_mappings': ['SIO:000244'],
+ 'slot_uri': 'prov:wasDerivedFrom'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ was_generated_by: Optional[list[Activity]] = Field(default=[], description="""A slot to provide the Activity which created the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CatalystSample(MaterialSample):
+ """
+ A MaterialSample that is the product of a catalyst Synthesis.
+ The specific type of catalyst (e.g. heterogeneous, supported metal)
+ is expressed via rdf_type using a voc4cat term.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'OBI:0000747',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/synthesis/',
+ 'slot_usage': {'derived_from': {'description': 'The Precursor(s) or other '
+ 'MaterialSample from which '
+ 'this\n'
+ 'CatalystSample was produced.',
+ 'name': 'derived_from',
+ 'range': 'MaterialSample'}}})
+
+ derived_from: Optional[MaterialSample] = Field(default=None, description="""The Precursor(s) or other MaterialSample from which this
+CatalystSample was produced.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['BFO:0000050', 'dcterms:partOf'],
+ 'domain_of': ['MaterialSample'],
+ 'exact_mappings': ['SIO:000244'],
+ 'slot_uri': 'prov:wasDerivedFrom'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ was_generated_by: Optional[list[Activity]] = Field(default=[], description="""A slot to provide the Activity which created the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Temperature(QuantitativeAttribute):
+ """
+ A physical quantity that quantitatively expresses the attribute of hotness or coldness.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'close_mappings': ['PATO:0000146'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Mass(QuantitativeAttribute):
+ """
+ The strength of a body's gravitational attraction to other bodies.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'close_mappings': ['PATO:0000125'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MolarMass(Mass):
+ """
+ A Mass (physical quality) that quantifies the mass of a homogeneous ChemicalSubstance containing 6.02 x 10^23 atoms or molecules.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'AFR:0002409',
+ 'close_mappings': ['PATO:0001681'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Volume(QuantitativeAttribute):
+ """
+ A measure of regions in three-dimensional space.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'close_mappings': ['PATO:0000918'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Density(QuantitativeAttribute):
+ """
+ A measure of the mass per unit volume of a substance.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:001406',
+ 'close_mappings': ['PATO:0001019'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Pressure(QuantitativeAttribute):
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'close_mappings': ['PATO:0001025'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ChemicalReaction(Activity):
+ """
+ A process that leads to the transformation of one set of chemical substances to another.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:010345',
+ 'exact_mappings': ['MOP:0000543', 'REX:0000002', 'AFP:0003711'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml',
+ 'narrow_mappings': ['RXNO:0000329'],
+ 'slot_usage': {'has_pressure': {'description': 'The slot to specify the '
+ 'Pressure at which a '
+ 'ChemicalReaction takes place.',
+ 'name': 'has_pressure'},
+ 'has_temperature': {'description': 'The slot to specify the '
+ 'Temperature at which a '
+ 'ChemicalReaction takes '
+ 'place.',
+ 'inlined_as_list': True,
+ 'name': 'has_temperature'},
+ 'related_resource': {'description': 'The slot to specify any '
+ 'Documents related to a '
+ 'ChemicalReaction.',
+ 'inlined': True,
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'related_resource',
+ 'range': 'Resource'}}})
+
+ used_starting_material: Optional[list[StartingMaterial]] = Field(default=[], description="""The slot to specify the Reagent(s) of a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'RO:0004009'} })
+ used_reactant: Optional[list[Reagent]] = Field(default=[], description="""The slot to specify the Reagent(s) of a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'RO:0004009'} })
+ generated_product: Optional[list[ChemicalProduct]] = Field(default=[], description="""The slot to specify the Product of a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'had_output_entity',
+ 'recommended': True,
+ 'slot_uri': 'RO:0004008'} })
+ used_catalyst: Optional[list[Catalyst]] = Field(default=[], description="""The slot to specify the Catalyst of a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'carried_out_by',
+ 'recommended': True,
+ 'slot_uri': 'RXNO:0000425'} })
+ used_solvent: Optional[list[DissolvingSubstance]] = Field(default=[], description="""The slot to specify the chemical substance that had a solvent role (CHEBI:35223) in a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'carried_out_by',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_duration: Optional[str] = Field(default=None, description="""A slot to provide the duration of a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'], 'slot_uri': 'schema:duration'} })
+ used_reactor: Optional[list[Reactor]] = Field(default=[], description="""The slot to specify the reactor used in a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'carried_out_by',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to specify the Temperature at which a ChemicalReaction takes place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to specify the Pressure at which a ChemicalReaction takes place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_yield: Optional[list[Yield]] = Field(default=[], description="""A slot to provide the percentage of how much of the ChemicalProduct was produced by a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_reaction_step: Optional[str] = Field(default=None, description="""A slot to specify a step (part) of a ChemicalReaction that is itself a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalReaction'],
+ 'is_a': 'has_part',
+ 'slot_uri': 'BFO:0000051'} })
+ related_resource: Optional[list[Resource]] = Field(default=[], description="""The slot to specify any Documents related to a ChemicalReaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'ChemicalReaction'], 'slot_uri': 'dcterms:relation'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify the AgenticEntity that played a certain part in carrying out the Activity, either via having a specific role, function or disposition that was realized in the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class StartingMaterial(ChemicalSubstance):
+ """
+ A ChemicalSubstance with that has a starting material role in a synthesis.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'PROCO:0000029',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml'})
+
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DissolvingSubstance(ChemicalSubstance, Materialistic, AgenticEntity):
+ """
+ A liquid ChemicalSubstance that dissolves or that is capable of dissolving a ChemicalSubstance.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['solvent'],
+ 'class_uri': 'SIO:010417',
+ 'exact_mappings': ['VOC4CAT:0007246', 'NCIT:C45790'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml',
+ 'mixins': ['ChemicalSubstance', 'Materialistic']})
+
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for an Instrument.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify parts of an AgenticEntity that are themselves AgenticEntities.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Reagent(ChemicalSubstance):
+ """
+ A ChemicalSubstance that is consumed or transformed in a ChemicalReaction.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:010411',
+ 'close_mappings': ['OBI:0001879', 'PROCO:0000029'],
+ 'exact_mappings': ['NCIT:C802', 'VOC4CAT:0000101'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml'})
+
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ChemicalProduct(ChemicalSubstance):
+ """
+ A chemical substance that is produced by a ChemicalReaction.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'NCIT:C48810',
+ 'close_mappings': ['ENVO:2000000'],
+ 'exact_mappings': ['VOC4CAT:0000194'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml'})
+
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[MaterialEntity]] = Field(default=[], description="""The slot to provide the parts of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Catalyst(ChemicalSubstance, Materialistic, AgenticEntity):
+ """
+ A ChemicalSubstance or MaterialEntity that initiates or accelerates a ChemicalReaction without itself being affected.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:010344',
+ 'close_mappings': ['CHEBI:35223'],
+ 'exact_mappings': ['VOC4CAT:0000194', 'NCIT:C48810'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml',
+ 'mixins': ['ChemicalSubstance', 'Materialistic']})
+
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for an Instrument.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to specify parts of an AgenticEntity that are themselves AgenticEntities.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Reactor(Materialistic, Device):
+ """
+ A reactor is a container for controlling a biological or chemical reaction or process.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'AFE:0000153',
+ 'exact_mappings': ['VOC4CAT:0007017'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml',
+ 'mixins': ['Materialistic']})
+
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier for a Device.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Device]] = Field(default=[], description="""The slot to specify parts of a Device that are themselves Devices.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ part_of: Optional[list[AgenticEntity]] = Field(default=[], description="""The slot to provide the AgenticEntity of which theAgenticEntity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Yield(QuantitativeAttribute):
+ """
+ A dimensionless physical quantity describing the fraction of a product B that is formed from a reactant A taking into account the stoichiometry. If A fully reacts to B without side-reactions, the yield of product B is 1 (or 100 %).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'exact_mappings': ['VOC4CAT:0005005'],
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MolarEquivalent(QuantitativeAttribute):
+ """
+ A dimensionless ratio that quantifies the stoichiometric proportion of a chemical substance relative to a reference substance in a chemical reaction.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PercentageOfTotal(QuantitativeAttribute):
+ """
+ A dimensionless ratio that quantifies the stoichiometric proportion of a chemical substance relative to a reference substance in a chemical reaction.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'qudt:Quantity',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: float = Field(default=..., description="""The slot to provide the literal value of the QuantitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ has_quantity_type: str = Field(default=..., description="""The type of quality that is quantifiable according to the QUDT ontology.""", json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Binds the type of a quantifiable attribute to a '
+ 'QUDT Quantity Kind instance from the QUDT '
+ 'Quantity Kind vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTQuantityKindEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'slot_uri': 'qudt:hasQuantityKind'} })
+ unit: Optional[str] = Field(default=None, json_schema_extra = { "linkml_meta": {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Restricts the allowable defined terms to the '
+ 'QUDT Unit vocabulary.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'QUDTUnitEnum'}],
+ 'domain_of': ['QuantitativeAttribute'],
+ 'recommended': True,
+ 'slot_uri': 'qudt:unit'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SubstanceSample(MaterialSample, ChemicalSubstance):
+ """
+ A MaterialSample derived from a ChemicalSubstance that is of interest in an analytical procedure.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'aliases': ['analyte'],
+ 'class_uri': 'SIO:001378',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/dcat_4c_ap.yaml',
+ 'mixins': ['ChemicalSubstance']})
+
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ derived_from: Optional[Entity] = Field(default=None, description="""The slot to specify the MaterialEntity or MaterialSample from which the MaterialSample was created.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['BFO:0000050', 'dcterms:partOf'],
+ 'domain_of': ['MaterialSample'],
+ 'exact_mappings': ['SIO:000244'],
+ 'slot_uri': 'prov:wasDerivedFrom'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ was_generated_by: Optional[list[Activity]] = Field(default=[], description="""A slot to provide the Activity which created the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PolymerSample(SubstanceSample, Polymer):
+ """
+ A SubstanceSample derived from a Polymer.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'SIO:001378',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/dcat_4c_ap.yaml',
+ 'mixins': ['Polymer'],
+ 'todos': ['Find a better mapping, as it is currently mapped to same ontology '
+ 'class as its parent.']})
+
+ has_concentration: Optional[list[Concentration]] = Field(default=[], description="""The slot to provide the Concentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_ph_value: Optional[list[PHValue]] = Field(default=[], description="""The slot to provide the PHValue of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ composed_of: Optional[list[ChemicalEntity]] = Field(default=[], description="""The slot to provide the chemical entities of which a ChemicalSubstance is composed of.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['AFX:0000940'],
+ 'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_part',
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ has_molar_equivalent: Optional[list[MolarEquivalent]] = Field(default=[], description="""A slot to provide the MolarEquivalent of a ChemicalSubstance, such as the DissolvingSubstance, Starting Material or Reactant, within the context of a chemical reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'StartingMaterial', 'Reagent', 'Catalyst'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_amount: Optional[list[AmountOfSubstance]] = Field(default=[], description="""The slot to provide the AmountConcentration of a ChemicalSubstance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_percentage_of_total: Optional[list[PercentageOfTotal]] = Field(default=[], description="""A slot to specify the percentage of a specific ChemicalSubstance in relation to the total amount of that same substance used across a multi-step reaction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ChemicalSubstance', 'DissolvingSubstance'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ derived_from: Optional[Entity] = Field(default=None, description="""The slot to specify the MaterialEntity or MaterialSample from which the MaterialSample was created.""", json_schema_extra = { "linkml_meta": {'close_mappings': ['BFO:0000050', 'dcterms:partOf'],
+ 'domain_of': ['MaterialSample'],
+ 'exact_mappings': ['SIO:000244'],
+ 'slot_uri': 'prov:wasDerivedFrom'} })
+ alternative_label: Optional[str] = Field(default=None, description="""The slot to specify an alternative label, name or title for a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'skos:altLabel',
+ 'todos': ['Should probably rather declared on Entity or in some common '
+ 'metadata mixin instead.']} })
+ has_physical_state: Optional[PhysicalStateEnum] = Field(default=None, description="""The slot to specify the physical state of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'slot_uri': 'SIO:000008',
+ 'todos': ['Find out how to make this a subproperty of '
+ 'has_qualitative_attribute, as it currently throws the error '
+ "'physical_state enumerations cannot be inlined' due to the fact "
+ 'that we are using an enum here.']} })
+ has_temperature: Optional[list[Temperature]] = Field(default=[], description="""The slot to provide the Temperature of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_mass: Optional[list[Mass]] = Field(default=[], description="""The slot to provide the Mass of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_volume: Optional[list[Volume]] = Field(default=[], description="""The slot to provide the Volume of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_density: Optional[list[Density]] = Field(default=[], description="""The slot to provide the Density of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ has_pressure: Optional[list[Pressure]] = Field(default=[], description="""The slot to provide the Pressure of a MaterialEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Materialistic', 'ChemicalReaction'],
+ 'is_a': 'has_quantitative_attribute',
+ 'recommended': True,
+ 'slot_uri': 'SIO:000008'} })
+ was_generated_by: Optional[list[Activity]] = Field(default=[], description="""A slot to provide the Activity which created the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'], 'slot_uri': 'prov:wasGeneratedBy'} })
+ title: Optional[str] = Field(default=None, description="""The slot to provide a title for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""The slot to provide a description for the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A slot to provide a secondary identifier of the EvaluatedEntity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_part: Optional[list[Entity]] = Field(default=[], description="""A slot to provide a part of the Entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'recommended': True,
+ 'slot_uri': 'BFO:0000051'} })
+ part_of: Optional[list[Entity]] = Field(default=[], description="""The slot to specify an Entity of which the Entity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Laboratory(Surrounding):
+ """
+ A facility that provides controlled conditions in which scientific or technological research, experiments, and measurement may be performed.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'ENVO:01001405',
+ 'from_schema': 'https://nfdi-de.github.io/chem-dcat-ap/dcat_4c_ap.yaml'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MaterialDescriptorMixin(ConfiguredBaseModel):
+ """
+ Mixin providing material identity slots shared by CalculatedProperty
+ subclasses that target a specific material composition and crystal
+ structure (DielectricTensors, PhononDispersion, EquationsOfState,
+ AqueousStability, GrainBoundaries, ElectronicStructure, Ferroelectrics,
+ BandGap).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixin': True})
+
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+
+
+class DFTSettingsMixin(ConfiguredBaseModel):
+ """
+ Mixin providing plane-wave DFT numerical settings shared by CalculatedProperty
+ subclasses that are computed with periodic DFT (DielectricTensors,
+ EquationsOfState, ElectronicStructure, BandGap).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixin': True})
+
+ energy_cutoff: Optional[list[float]] = Field(default=[], description="""Plane-wave kinetic energy cutoff for the basis set expansion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:energy_cutoff',
+ 'unit': {'ucum_code': 'eV'}} })
+ convergence_criteria: Optional[list[str]] = Field(default=[], description="""Convergence thresholds applied during self-consistent field (SCF) and/or
+geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/�).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:convergence_criteria'} })
+ k_point_mesh: Optional[list[str]] = Field(default=[], description="""Monkhorst-Pack k-point mesh used for Brillouin zone sampling
+(e.g. \"4�4�1\" for a surface slab, \"8�8�8\" for a bulk cell).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin'], 'slot_uri': 'coremeta4cat:k_point_mesh'} })
+
+
+class Simulation(DataGeneratingActivity):
+ """
+ A DataGeneratingActivity in which a catalyst, catalytic material, or
+ catalytic process is modelled computationally.
+
+ The simulation software is linked via carried_out_by as a Software agent.
+ The simulation method (protocol) is linked via realized_plan using a
+ SimulationMethod instance. The catalyst model or reaction being simulated
+ is linked via evaluated_entity or evaluated_activity.
+
+ The specific simulation type is expressed via rdf_type (e.g. coremeta4cat:DFT,
+ NCIT:C18097 for molecular dynamics), following DCAT-AP-PLUS Pattern 3.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'NCIT:C48936',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'slot_usage': {'carried_out_by': {'description': 'The simulation software '
+ 'used, provided as a '
+ 'Software agent instance.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'carried_out_by',
+ 'range': 'AgenticEntity',
+ 'recommended': True},
+ 'evaluated_entity': {'description': 'The catalyst model, '
+ 'surface slab, or molecule '
+ 'being simulated.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'evaluated_entity',
+ 'range': 'EvaluatedEntity',
+ 'recommended': True},
+ 'rdf_type': {'description': 'The type of simulation method as '
+ 'an ontology term (e.g. '
+ 'coremeta4cat:DFT,\n'
+ 'NCIT:C18097 for MD, '
+ 'coremeta4cat:Microkinetics). This '
+ 'is the primary\n'
+ 'machine-actionable classification '
+ 'of the simulation type.',
+ 'name': 'rdf_type',
+ 'recommended': True},
+ 'realized_plan': {'description': 'The SimulationMethod '
+ '(protocol) realized in this '
+ 'Simulation.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'realized_plan',
+ 'range': 'SimulationMethod',
+ 'required': True}}})
+
+ software_package: list[str] = Field(default=..., description="""Software package or code used for the simulation (e.g. VASP, Quantum ESPRESSO,
+LAMMPS, CP2K, ORCA, Zacros). Include version number where possible.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Simulation'], 'slot_uri': 'coremeta4cat:software_package'} })
+ calculated_property: list[CalculatedProperty] = Field(default=..., description="""A property computed by this Simulation, provided as a CalculatedProperty
+instance. Multiple properties may be computed in a single simulation run.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Simulation'], 'slot_uri': 'coremeta4cat:calculated_property'} })
+ evaluated_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""The catalyst model, surface slab, or molecule being simulated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_entity',
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ evaluated_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""The slot to specify the Activity about which the DataGeneratingActivity produced information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'is_a': 'had_input_activity',
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ realized_plan: list[SimulationMethod] = Field(default=..., description="""The SimulationMethod (protocol) realized in this Simulation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:used'} })
+ occurred_in: Optional[Surrounding] = Field(default=None, description="""The slot to specify the Surrounding in which an Activity took place.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataGeneratingActivity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:atLocation'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ title: Optional[list[str]] = Field(default=[], description="""The slot to provide a title for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[list[str]] = Field(default=[], description="""The slot to provide a description for the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:description'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""The slot to provide a secondary identifier of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'adms:identifier'} })
+ has_part: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity that is part of the Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Catalogue', 'Entity'],
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:hasPart'} })
+ had_input_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was used as an input of an Activity that is to be changed, consumed or transformed.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:used'} })
+ had_output_entity: Optional[list[Entity]] = Field(default=[], description="""The slot to specify the Entity that was generated as an output of an Activity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:generated'} })
+ had_input_activity: Optional[list[Activity]] = Field(default=[], description="""The slot to provide a previous Activity that informed the Activity by being causally via a shared participant.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasInformedBy'} })
+ carried_out_by: Optional[list[AgenticEntity]] = Field(default=[], description="""The simulation software used, provided as a Software agent instance.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasAssociatedWith'} })
+ has_qualitative_attribute: Optional[list[QualitativeAttribute]] = Field(default=[], description="""The slot to relate a qualitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ has_quantitative_attribute: Optional[list[QuantitativeAttribute]] = Field(default=[], description="""The slot to relate a quantitative attribute to an EvaluatedEntity, EvaluatedActivity or AgenticEntity""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'notes': ['not in DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:relation'} })
+ part_of: Optional[list[Activity]] = Field(default=[], description="""The slot to provide an Activity of which the Activity is a part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Entity'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'inverse': 'has_part',
+ 'notes': ['not in DCAT-AP'],
+ 'slot_uri': 'dcterms:isPartOf'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The type of simulation method as an ontology term (e.g. coremeta4cat:DFT,
+NCIT:C18097 for MD, coremeta4cat:Microkinetics). This is the primary
+machine-actionable classification of the simulation type.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class SimulationMethod(Plan):
+ """
+ Abstract Plan describing the computational method (protocol) used in a
+ Simulation. Concrete subclasses carry method-specific parameter slots.
+ Linked from Simulation via realized_plan.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'class_uri': 'OBI:0000272',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DFT(SimulationMethod):
+ """
+ Density functional theory � a quantum mechanical method for calculating
+ the electronic structure of atoms, molecules, and periodic solids.
+ The most widely used ab initio method in computational catalysis.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:DFT',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ exchange_correlation_functional: Optional[list[str]] = Field(default=[], description="""Exchange-correlation functional used (e.g. PBE, PBEsol, RPBE, B3LYP,
+HSE06). The choice of functional directly affects accuracy.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFT'],
+ 'slot_uri': 'coremeta4cat:exchange_correlation_functional'} })
+ energy_cutoff: Optional[list[float]] = Field(default=[], description="""Plane-wave kinetic energy cutoff for the basis set expansion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:energy_cutoff',
+ 'unit': {'ucum_code': 'eV'}} })
+ convergence_criteria: Optional[list[str]] = Field(default=[], description="""Convergence thresholds applied during self-consistent field (SCF) and/or
+geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/�).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:convergence_criteria'} })
+ dft_u_parameters: Optional[list[str]] = Field(default=[], description="""Hubbard U correction parameters (DFT+U). Specify element, orbital, and
+U value (e.g. \"Fe d: U=4.0 eV, J=0.0 eV\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFT'], 'slot_uri': 'coremeta4cat:dft_u_parameters'} })
+ spin_polarization: Optional[list[bool]] = Field(default=[], description="""Whether spin polarization (collinear magnetism) is included in the DFT
+calculation. Set to true for systems containing magnetic elements.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFT'], 'slot_uri': 'coremeta4cat:spin_polarization'} })
+ total_energy_per_atom: Optional[list[float]] = Field(default=[], description="""Total DFT ground-state energy divided by number of atoms in the unit cell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFT'],
+ 'slot_uri': 'coremeta4cat:total_energy_per_atom',
+ 'unit': {'ucum_code': 'eV'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MolecularDynamics(SimulationMethod):
+ """
+ Molecular dynamics simulation � a method for computing the time evolution
+ of a system of interacting particles by integrating the equations of motion.
+ Used to study diffusion, reaction kinetics, and thermal properties.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'NCIT:C18097',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ force_field: Optional[list[str]] = Field(default=[], description="""Force field or interatomic potential used (e.g. ReaxFF, CHARMM, Tersoff,
+EAM). Include parametrisation source or reference.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularDynamics'], 'slot_uri': 'coremeta4cat:force_field'} })
+ simulation_timestep: Optional[list[float]] = Field(default=[], description="""Integration timestep used in molecular dynamics.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularDynamics'],
+ 'slot_uri': 'APOLLO_SV:00000012',
+ 'unit': {'ucum_code': 'fs'}} })
+ simulation_time: Optional[list[float]] = Field(default=[], description="""Total simulated physical time of the MD trajectory.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularDynamics'],
+ 'slot_uri': 'coremeta4cat:simulation_time',
+ 'unit': {'ucum_code': 'ps'}} })
+ ensemble_type: Optional[list[str]] = Field(default=[], description="""Statistical ensemble used in MD (e.g. NVE, NVT, NPT). Determines which
+thermodynamic quantities are conserved.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularDynamics'], 'slot_uri': 'coremeta4cat:ensemble_type'} })
+ number_of_atoms: Optional[list[int]] = Field(default=[], description="""Number of atoms in the simulation cell or supercell.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MolecularDynamics'], 'slot_uri': 'coremeta4cat:number_of_atoms'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Microkinetics(SimulationMethod):
+ """
+ Microkinetic modelling � a mean-field kinetic approach that integrates
+ elementary reaction steps and their rate constants to predict catalytic
+ activity and selectivity under reaction conditions.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Microkinetics',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ rate_constants: Optional[list[str]] = Field(default=[], description="""Rate constants or Arrhenius parameters (pre-exponential factor and
+activation energy) for each elementary step in the reaction network.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Microkinetics'], 'slot_uri': 'NCIT:C94967'} })
+ solver_type: Optional[list[str]] = Field(default=[], description="""Numerical solver used for the microkinetic rate equations (e.g. LSODA,
+stiff ODE solver, steady-state Newton method).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Microkinetics'], 'slot_uri': 'coremeta4cat:solver_type'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ pressure: Optional[list[float]] = Field(default=[], description="""Total pressure used in microkinetic or Monte Carlo simulation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Microkinetics'],
+ 'slot_uri': 'coremeta4cat:pressure',
+ 'unit': {'ucum_code': 'bar'}} })
+ surface_coverage: Optional[list[float]] = Field(default=[], description="""Surface coverage of adsorbed species (fraction of surface sites occupied).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Microkinetics'], 'slot_uri': 'coremeta4cat:surface_coverage'} })
+ activation_energy: Optional[list[float]] = Field(default=[], description="""Activation energy for each elementary step in the reaction mechanism.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Microkinetics'],
+ 'slot_uri': 'coremeta4cat:activation_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class MonteCarlo(SimulationMethod):
+ """
+ Monte Carlo simulation � a stochastic method that samples configuration
+ space using random moves accepted or rejected according to a statistical
+ criterion (e.g. Metropolis). Used for adsorption isotherms, phase diagrams,
+ and lattice-based kinetics.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:MonteCarlo',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ interaction_potential: Optional[list[str]] = Field(default=[], description="""Interaction potential or Hamiltonian used to compute energies in MC moves.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MonteCarlo'], 'slot_uri': 'coremeta4cat:interaction_potential'} })
+ number_of_steps: Optional[list[int]] = Field(default=[], description="""Total number of Monte Carlo moves or trial configurations generated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MonteCarlo'], 'slot_uri': 'coremeta4cat:number_of_steps'} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ lattice_size_type: Optional[list[str]] = Field(default=[], description="""Lattice geometry and dimensions used in lattice-based MC (e.g.
+\"100�100 square lattice\", \"hexagonal 50�50\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MonteCarlo'], 'slot_uri': 'coremeta4cat:lattice_size_type'} })
+ acceptance_criteria: Optional[list[str]] = Field(default=[], description="""Criterion for accepting or rejecting MC moves (e.g. Metropolis,
+Kawasaki, heat-bath algorithm).""", json_schema_extra = { "linkml_meta": {'domain_of': ['MonteCarlo'], 'slot_uri': 'coremeta4cat:acceptance_criteria'} })
+ equilibration_steps: Optional[list[int]] = Field(default=[], description="""Number of MC steps used for equilibration before data collection begins.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MonteCarlo'], 'slot_uri': 'coremeta4cat:equilibration_steps'} })
+ sampling_interval: Optional[list[int]] = Field(default=[], description="""Interval between successive MC snapshots used for property averaging.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MonteCarlo'], 'slot_uri': 'coremeta4cat:sampling_interval'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CalculatedProperty(QualitativeAttribute):
+ """
+ Abstract QualitativeAttribute representing a property computed by a
+ Simulation. Concrete subclasses carry the property-specific output
+ values and the computational settings used to produce them.
+ Linked from Simulation via the calculated_property slot.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'abstract': True,
+ 'class_uri': 'coremeta4cat:CalculatedProperty',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ThermodynamicStability(CalculatedProperty):
+ """
+ Thermodynamic stability of a material or phase, characterised by formation
+ energy, convex hull distance, and competing phases. Used to screen catalyst
+ stability and predict synthesis feasibility.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:ThermodynamicStability',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ formation_energy: Optional[list[float]] = Field(default=[], description="""Formation energy per atom relative to elemental reference states.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermodynamicStability'],
+ 'slot_uri': 'coremeta4cat:formation_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ reference_energies: Optional[list[str]] = Field(default=[], description="""Elemental reference energies used to compute formation energies
+(e.g. DFT total energies of elemental ground-state structures).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermodynamicStability'],
+ 'slot_uri': 'coremeta4cat:reference_energies'} })
+ energy_above_hull: Optional[list[float]] = Field(default=[], description="""Distance above the convex hull of stable phases (thermodynamic stability
+metric). Zero for phases on the hull; positive values indicate metastability.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermodynamicStability'],
+ 'slot_uri': 'coremeta4cat:energy_above_hull',
+ 'unit': {'ucum_code': 'eV'}} })
+ phase_diagram_type: Optional[list[str]] = Field(default=[], description="""Type of phase diagram constructed (e.g. binary, ternary, quaternary).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermodynamicStability'],
+ 'slot_uri': 'coremeta4cat:phase_diagram_type'} })
+ competing_phases: Optional[list[str]] = Field(default=[], description="""List of stable competing phases used in convex hull construction
+(e.g. \"Fe2O3, Fe3O4, FeO, Fe\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['ThermodynamicStability'],
+ 'slot_uri': 'coremeta4cat:competing_phases'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Piezoelectricity(CalculatedProperty):
+ """
+ Piezoelectric response of a non-centrosymmetric material, described by the
+ piezoelectric tensor. Relevant for piezocatalysis applications.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Piezoelectricity',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ piezoelectric_tensor: Optional[list[str]] = Field(default=[], description="""Components of the piezoelectric tensor e_ij (C/m�) or d_ij (pC/N),
+describing the coupling between stress and electric polarization.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Piezoelectricity'],
+ 'slot_uri': 'coremeta4cat:piezoelectric_tensor'} })
+ crystal_symmetry: Optional[list[str]] = Field(default=[], description="""Point group or space group symmetry of the crystal structure.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Piezoelectricity'], 'slot_uri': 'coremeta4cat:crystal_symmetry'} })
+ strain_applied: Optional[list[float]] = Field(default=[], description="""Magnitude of applied strain in the piezoelectric calculation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Piezoelectricity'], 'slot_uri': 'coremeta4cat:strain_applied'} })
+ ionic_electronic_contributions: Optional[list[str]] = Field(default=[], description="""Decomposition of the piezoelectric or dielectric response into ionic
+(nuclear) and electronic contributions.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Piezoelectricity'],
+ 'slot_uri': 'coremeta4cat:ionic_electronic_contributions'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ElasticConstants(CalculatedProperty):
+ """
+ Elastic mechanical properties of a material derived from the elastic tensor,
+ including bulk modulus, shear modulus, and Young's modulus.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:ElasticConstants',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ elastic_tensor: Optional[list[str]] = Field(default=[], description="""Full Voigt-notation elastic tensor C_ij (GPa) describing the linear
+elastic response of the material.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElasticConstants'], 'slot_uri': 'coremeta4cat:elastic_tensor'} })
+ bulk_modulus: Optional[list[float]] = Field(default=[], description="""Bulk modulus (resistance to uniform compression).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElasticConstants', 'EquationsOfState'],
+ 'slot_uri': 'coremeta4cat:bulk_modulus',
+ 'unit': {'ucum_code': 'GPa'}} })
+ shear_modulus: Optional[list[float]] = Field(default=[], description="""Shear modulus (resistance to shear deformation).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElasticConstants'],
+ 'slot_uri': 'coremeta4cat:shear_modulus',
+ 'unit': {'ucum_code': 'GPa'}} })
+ poisson_ratio: Optional[list[float]] = Field(default=[], description="""Poisson's ratio (ratio of transverse to axial strain under uniaxial load).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElasticConstants'], 'slot_uri': 'coremeta4cat:poisson_ratio'} })
+ young_modulus: Optional[list[float]] = Field(default=[], description="""Young's modulus (stiffness under uniaxial tension or compression).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElasticConstants'],
+ 'slot_uri': 'coremeta4cat:young_modulus',
+ 'unit': {'ucum_code': 'GPa'}} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Surfaces(CalculatedProperty):
+ """
+ Surface properties of a catalyst computed from a periodic slab model,
+ including surface energy, Miller index, slab thickness, and vacuum spacing.
+ Central to heterogeneous catalysis modelling.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Surfaces',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/'})
+
+ surface_energy: Optional[list[float]] = Field(default=[], description="""Cleavage energy per unit area required to create the surface from the bulk.
+A lower value indicates a more stable surface facet.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Surfaces'],
+ 'slot_uri': 'coremeta4cat:surface_energy',
+ 'unit': {'ucum_code': 'J/m2'}} })
+ miller_indices: Optional[list[str]] = Field(default=[], description="""Miller indices of the modelled surface facet (e.g. \"(111)\", \"(110)\", \"(100)\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['Surfaces'], 'slot_uri': 'coremeta4cat:miller_indices'} })
+ slab_thickness: Optional[list[float]] = Field(default=[], description="""Thickness of the periodic slab model used to represent the surface.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Surfaces'],
+ 'slot_uri': 'coremeta4cat:slab_thickness',
+ 'unit': {'ucum_code': 'Ao'}} })
+ vacuum_spacing: Optional[list[float]] = Field(default=[], description="""Vacuum layer thickness added above the slab to prevent spurious
+periodic interactions between slab images.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Surfaces'],
+ 'slot_uri': 'coremeta4cat:vacuum_spacing',
+ 'unit': {'ucum_code': 'Ao'}} })
+ surface_termination_method: Optional[list[str]] = Field(default=[], description="""Method used to terminate the slab and handle dangling bonds
+(e.g. H-passivation, OH-termination, dipole correction).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Surfaces'],
+ 'slot_uri': 'coremeta4cat:surface_termination_method'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class DielectricTensors(CalculatedProperty, DFTSettingsMixin, MaterialDescriptorMixin):
+ """
+ Dielectric tensor computed from density functional perturbation theory (DFPT).
+ Characterises the optical and static dielectric response of a material.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:DielectricTensors',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin', 'DFTSettingsMixin']})
+
+ dielectric_tensor: Optional[list[str]] = Field(default=[], description="""Components of the static and/or high-frequency dielectric tensor epsilon_ij,
+computed from DFPT.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DielectricTensors'],
+ 'slot_uri': 'coremeta4cat:dielectric_tensor'} })
+ born_effective_charges: Optional[list[str]] = Field(default=[], description="""Born effective charge tensors Z*_ij for each atom, describing how
+the polarization changes with atomic displacements.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DielectricTensors'],
+ 'slot_uri': 'coremeta4cat:born_effective_charges'} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ energy_cutoff: Optional[list[float]] = Field(default=[], description="""Plane-wave kinetic energy cutoff for the basis set expansion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:energy_cutoff',
+ 'unit': {'ucum_code': 'eV'}} })
+ convergence_criteria: Optional[list[str]] = Field(default=[], description="""Convergence thresholds applied during self-consistent field (SCF) and/or
+geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/�).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:convergence_criteria'} })
+ k_point_mesh: Optional[list[str]] = Field(default=[], description="""Monkhorst-Pack k-point mesh used for Brillouin zone sampling
+(e.g. \"4�4�1\" for a surface slab, \"8�8�8\" for a bulk cell).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin'], 'slot_uri': 'coremeta4cat:k_point_mesh'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class PhononDispersion(CalculatedProperty, MaterialDescriptorMixin):
+ """
+ Phonon dispersion relations computed from interatomic force constants,
+ providing access to vibrational frequencies, thermodynamic quantities,
+ and dynamical stability (imaginary modes).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:PhononDispersion',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin']})
+
+ force_constant_method: Optional[list[str]] = Field(default=[], description="""Method used to compute the interatomic force constants (e.g. finite
+differences / supercell method, DFPT/linear response).""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhononDispersion'],
+ 'slot_uri': 'coremeta4cat:force_constant_method'} })
+ kq_point_mesh: Optional[list[str]] = Field(default=[], description="""k/q-point mesh for phonon Brillouin zone sampling (e.g. \"8�8�8\").
+Distinct from the electronic k-point mesh.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhononDispersion'], 'slot_uri': 'coremeta4cat:kq_point_mesh'} })
+ smearing_parameter: Optional[list[float]] = Field(default=[], description="""Smearing or broadening parameter applied to the phonon density of states.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhononDispersion'],
+ 'slot_uri': 'coremeta4cat:smearing_parameter',
+ 'unit': {'ucum_code': 'eV'}} })
+ imaginary_modes: Optional[list[bool]] = Field(default=[], description="""Whether imaginary (soft) phonon modes are present in the dispersion.
+Imaginary modes indicate dynamical instability of the structure.""", json_schema_extra = { "linkml_meta": {'domain_of': ['PhononDispersion'], 'slot_uri': 'coremeta4cat:imaginary_modes'} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class EquationsOfState(CalculatedProperty, DFTSettingsMixin, MaterialDescriptorMixin):
+ """
+ Equation of state relating energy (or enthalpy) to volume, fitted to a
+ parametric model (e.g. Birch-Murnaghan). Used to extract equilibrium
+ volume, bulk modulus, and its pressure derivative.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:EquationsOfState',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin', 'DFTSettingsMixin']})
+
+ fit_method: Optional[list[str]] = Field(default=[], description="""Parametric model used to fit the energy-volume curve
+(e.g. Birch-Murnaghan 3rd order, Vinet, Murnaghan).""", json_schema_extra = { "linkml_meta": {'domain_of': ['EquationsOfState'], 'slot_uri': 'coremeta4cat:fit_method'} })
+ bulk_modulus: Optional[list[float]] = Field(default=[], description="""Bulk modulus (resistance to uniform compression).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElasticConstants', 'EquationsOfState'],
+ 'slot_uri': 'coremeta4cat:bulk_modulus',
+ 'unit': {'ucum_code': 'GPa'}} })
+ pressure_derivative: Optional[list[float]] = Field(default=[], description="""Pressure derivative of the bulk modulus B' (dimensionless).""", json_schema_extra = { "linkml_meta": {'domain_of': ['EquationsOfState'],
+ 'slot_uri': 'coremeta4cat:pressure_derivative'} })
+ fit_residuals: Optional[list[float]] = Field(default=[], description="""Root-mean-square residuals of the energy-volume fit.""", json_schema_extra = { "linkml_meta": {'domain_of': ['EquationsOfState'], 'slot_uri': 'coremeta4cat:fit_residuals'} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ energy_cutoff: Optional[list[float]] = Field(default=[], description="""Plane-wave kinetic energy cutoff for the basis set expansion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:energy_cutoff',
+ 'unit': {'ucum_code': 'eV'}} })
+ convergence_criteria: Optional[list[str]] = Field(default=[], description="""Convergence thresholds applied during self-consistent field (SCF) and/or
+geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/�).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:convergence_criteria'} })
+ k_point_mesh: Optional[list[str]] = Field(default=[], description="""Monkhorst-Pack k-point mesh used for Brillouin zone sampling
+(e.g. \"4�4�1\" for a surface slab, \"8�8�8\" for a bulk cell).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin'], 'slot_uri': 'coremeta4cat:k_point_mesh'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class AqueousStability(CalculatedProperty, MaterialDescriptorMixin):
+ """
+ Electrochemical (Pourbaix) stability of a catalyst in aqueous solution as
+ a function of pH and electrode potential. Critical for electrocatalyst
+ stability screening.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:AqueousStability',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin']})
+
+ ph_range: Optional[list[str]] = Field(default=[], description="""pH range covered in the Pourbaix stability diagram (e.g. \"0�14\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['AqueousStability'], 'slot_uri': 'coremeta4cat:ph_range'} })
+ potential_range: Optional[list[str]] = Field(default=[], description="""Electrode potential range covered in the Pourbaix diagram
+(e.g. \"-2 to +2 V vs SHE\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['AqueousStability'], 'slot_uri': 'coremeta4cat:potential_range'} })
+ solvation_model: Optional[list[str]] = Field(default=[], description="""Implicit solvation model used to account for aqueous environment
+(e.g. VASPsol, SCCS/Environ, COSMO).""", json_schema_extra = { "linkml_meta": {'domain_of': ['AqueousStability'], 'slot_uri': 'coremeta4cat:solvation_model'} })
+ ionic_strength: Optional[list[float]] = Field(default=[], description="""Ionic strength of the electrolyte solution modelled.""", json_schema_extra = { "linkml_meta": {'domain_of': ['AqueousStability'],
+ 'slot_uri': 'coremeta4cat:ionic_strength',
+ 'unit': {'ucum_code': 'mol/L'}} })
+ temperature: Optional[list[float]] = Field(default=[], description="""Temperature during a process or measurement.""", json_schema_extra = { "linkml_meta": {'domain_of': ['SonochemicalSynthesis',
+ 'PhotoluminescenceMixin',
+ 'ElectrochemistryMixin',
+ 'PowderXRD',
+ 'SingleCrystalXRD',
+ 'XRayAbsorptionSpectroscopy',
+ 'InfraredSpectroscopy',
+ 'DRIFTS',
+ 'RamanSpectroscopy',
+ 'NMRSpectroscopy',
+ 'DynamicLightScattering',
+ 'SizeExclusionChromatography',
+ 'HighPerformanceLiquidChromatographyMassSpectrometry',
+ 'Microkinetics',
+ 'MonteCarlo',
+ 'AqueousStability'],
+ 'slot_uri': 'AFR:0001584',
+ 'unit': {'ucum_code': 'Cel'}} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class GrainBoundaries(CalculatedProperty, MaterialDescriptorMixin):
+ """
+ Grain boundary structure and energetics from atomistic simulation.
+ Relevant for understanding polycrystalline catalyst behaviour,
+ sintering, and charge/defect segregation.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:GrainBoundaries',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin']})
+
+ grain_boundary_plane: Optional[list[str]] = Field(default=[], description="""Crystallographic plane of the grain boundary, expressed using
+Miller indices (e.g. \"Sigma5 (310)[001]\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'],
+ 'slot_uri': 'coremeta4cat:grain_boundary_plane'} })
+ misorientation_angle: Optional[list[float]] = Field(default=[], description="""Misorientation angle between adjacent grains at the boundary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'],
+ 'slot_uri': 'coremeta4cat:misorientation_angle',
+ 'unit': {'ucum_code': 'deg'}} })
+ grain_boundary_energy: Optional[list[float]] = Field(default=[], description="""Excess energy per unit area of the grain boundary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'],
+ 'slot_uri': 'coremeta4cat:grain_boundary_energy',
+ 'unit': {'ucum_code': 'J/m2'}} })
+ simulation_cell_size: Optional[list[str]] = Field(default=[], description="""Dimensions of the simulation cell used to model the grain boundary
+(e.g. \"10�10�30 nm\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'],
+ 'slot_uri': 'coremeta4cat:simulation_cell_size'} })
+ gb_excess_volume: Optional[list[float]] = Field(default=[], description="""Excess volume per unit area associated with the grain boundary.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'], 'slot_uri': 'coremeta4cat:gb_excess_volume'} })
+ gb_structural_units: Optional[list[str]] = Field(default=[], description="""Description of the structural units (repeating atomic motifs) that
+constitute the grain boundary structure.""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'],
+ 'slot_uri': 'coremeta4cat:gb_structural_units'} })
+ charge_defect_segregation: Optional[list[str]] = Field(default=[], description="""Data describing charge carrier or point defect segregation behaviour
+at the grain boundary (e.g. segregation energy per defect type).""", json_schema_extra = { "linkml_meta": {'domain_of': ['GrainBoundaries'],
+ 'slot_uri': 'coremeta4cat:charge_defect_segregation'} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class ElectronicStructure(CalculatedProperty, DFTSettingsMixin, MaterialDescriptorMixin):
+ """
+ Electronic band structure and density of states, characterising the
+ electronic properties of a catalyst relevant to activity descriptors
+ (d-band centre, band gap, Fermi energy).
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:ElectronicStructure',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin', 'DFTSettingsMixin']})
+
+ smearing_method: Optional[list[str]] = Field(default=[], description="""Electronic smearing scheme and width used in the SCF calculation
+(e.g. Methfessel-Paxton order 1 with sigma=0.2 eV, Gaussian with sigma=0.05 eV).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronicStructure'],
+ 'slot_uri': 'coremeta4cat:smearing_method'} })
+ spin_polarized: Optional[list[bool]] = Field(default=[], description="""Whether the electronic structure calculation is spin-polarized
+(accounts for spin-up and spin-down electrons separately).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronicStructure'],
+ 'slot_uri': 'coremeta4cat:spin_polarized'} })
+ band_path: Optional[list[str]] = Field(default=[], description="""High-symmetry k-path through the Brillouin zone used to plot the
+band structure (e.g. \"Gamma-X-M-Gamma-R\" for cubic, following SeeK-path convention).""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronicStructure'], 'slot_uri': 'coremeta4cat:band_path'} })
+ fermi_energy: Optional[list[float]] = Field(default=[], description="""Fermi energy (chemical potential of electrons) in the calculated system.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ElectronicStructure'],
+ 'slot_uri': 'coremeta4cat:fermi_energy',
+ 'unit': {'ucum_code': 'eV'}} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ energy_cutoff: Optional[list[float]] = Field(default=[], description="""Plane-wave kinetic energy cutoff for the basis set expansion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:energy_cutoff',
+ 'unit': {'ucum_code': 'eV'}} })
+ convergence_criteria: Optional[list[str]] = Field(default=[], description="""Convergence thresholds applied during self-consistent field (SCF) and/or
+geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/�).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:convergence_criteria'} })
+ k_point_mesh: Optional[list[str]] = Field(default=[], description="""Monkhorst-Pack k-point mesh used for Brillouin zone sampling
+(e.g. \"4�4�1\" for a surface slab, \"8�8�8\" for a bulk cell).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin'], 'slot_uri': 'coremeta4cat:k_point_mesh'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class Ferroelectrics(CalculatedProperty, MaterialDescriptorMixin):
+ """
+ Ferroelectric properties computed from DFT, including spontaneous
+ polarization, switching barrier, and coercive field. Relevant for
+ ferroelectric-photocatalyst design.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:Ferroelectrics',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin']})
+
+ polarization_direction: Optional[list[str]] = Field(default=[], description="""Crystallographic direction of the spontaneous electric polarization
+(e.g. \"[001]\" for tetragonal BaTiO_3).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Ferroelectrics'],
+ 'slot_uri': 'coremeta4cat:polarization_direction'} })
+ spontaneous_polarization: Optional[list[float]] = Field(default=[], description="""Magnitude of the spontaneous electric polarization.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Ferroelectrics'],
+ 'slot_uri': 'coremeta4cat:spontaneous_polarization',
+ 'unit': {'ucum_code': 'uC/cm2'}} })
+ reference_structure: Optional[list[str]] = Field(default=[], description="""Reference (paraelectric/centrosymmetric) structure used as the zero-
+polarization endpoint in the Berry-phase polarization calculation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Ferroelectrics'],
+ 'slot_uri': 'coremeta4cat:reference_structure'} })
+ switching_barrier: Optional[list[float]] = Field(default=[], description="""Energy barrier for polarization switching between equivalent states.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Ferroelectrics'],
+ 'slot_uri': 'coremeta4cat:switching_barrier',
+ 'unit': {'ucum_code': 'eV'}} })
+ coercive_field: Optional[list[float]] = Field(default=[], description="""Electric field required to reverse the polarization direction.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Ferroelectrics'],
+ 'slot_uri': 'coremeta4cat:coercive_field',
+ 'unit': {'ucum_code': 'kV/cm'}} })
+ temperature_dependence: Optional[list[str]] = Field(default=[], description="""Description of how the ferroelectric properties vary with temperature.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Ferroelectrics'],
+ 'slot_uri': 'coremeta4cat:temperature_dependence'} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class BandGap(CalculatedProperty, DFTSettingsMixin, MaterialDescriptorMixin):
+ """
+ Electronic band gap and its character (direct/indirect), with optional
+ many-body (GW) or excitonic corrections. Critical for photocatalyst
+ and semiconductor catalyst screening.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'coremeta4cat:BandGap',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat/simulation/',
+ 'mixins': ['MaterialDescriptorMixin', 'DFTSettingsMixin']})
+
+ material_sample: Optional[list[str]] = Field(default=[], description="""Reference to the material or MaterialSample being characterised by this
+calculated band gap.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'], 'slot_uri': 'VOC4CAT:0005056'} })
+ structure_model: Optional[list[str]] = Field(default=[], description="""Model structure used in the band gap calculation (e.g. bulk unit cell,
+surface slab, defect supercell).""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'], 'slot_uri': 'coremeta4cat:structure_model'} })
+ smearing_broadening: Optional[list[float]] = Field(default=[], description="""Gaussian or Lorentzian broadening applied to the simulated spectrum.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'],
+ 'slot_uri': 'coremeta4cat:smearing_broadening',
+ 'unit': {'ucum_code': 'eV'}} })
+ direct_indirect: Optional[list[str]] = Field(default=[], description="""Band gap character: \"direct\" (VBM and CBM at same k-point) or
+\"indirect\" (VBM and CBM at different k-points).""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'], 'slot_uri': 'coremeta4cat:direct_indirect'} })
+ experimental_reference: Optional[list[float]] = Field(default=[], description="""Experimental band gap value used for benchmarking the calculation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'],
+ 'slot_uri': 'coremeta4cat:experimental_reference',
+ 'unit': {'ucum_code': 'eV'}} })
+ gw_hybrid_correction: Optional[list[bool]] = Field(default=[], description="""Whether a many-body GW correction or hybrid functional (e.g. HSE06)
+was applied to correct the DFT band gap underestimation.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'], 'slot_uri': 'coremeta4cat:gw_hybrid_correction'} })
+ excitonic_correction: Optional[list[float]] = Field(default=[], description="""Excitonic correction (from Bethe-Salpeter equation) applied to the
+optical band gap.""", json_schema_extra = { "linkml_meta": {'domain_of': ['BandGap'],
+ 'slot_uri': 'coremeta4cat:excitonic_correction',
+ 'unit': {'ucum_code': 'eV'}} })
+ material_composition: Optional[list[str]] = Field(default=[], description="""Chemical composition of the simulated material (e.g. \"Fe2O3\", \"Pt/CeO2\").
+Use empirical formula or SMILES for molecular systems.""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'],
+ 'slot_uri': 'coremeta4cat:material_composition'} })
+ crystal_structure: Optional[list[str]] = Field(default=[], description="""Crystal structure of the simulated material, including space group and
+lattice parameters (e.g. \"Fm-3m, a=3.92 � for Pt\").""", json_schema_extra = { "linkml_meta": {'domain_of': ['MaterialDescriptorMixin'], 'slot_uri': 'SIO:001100'} })
+ energy_cutoff: Optional[list[float]] = Field(default=[], description="""Plane-wave kinetic energy cutoff for the basis set expansion.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:energy_cutoff',
+ 'unit': {'ucum_code': 'eV'}} })
+ convergence_criteria: Optional[list[str]] = Field(default=[], description="""Convergence thresholds applied during self-consistent field (SCF) and/or
+geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/�).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin', 'DFT'],
+ 'slot_uri': 'coremeta4cat:convergence_criteria'} })
+ k_point_mesh: Optional[list[str]] = Field(default=[], description="""Monkhorst-Pack k-point mesh used for Brillouin zone sampling
+(e.g. \"4�4�1\" for a surface slab, \"8�8�8\" for a bulk cell).""", json_schema_extra = { "linkml_meta": {'domain_of': ['DFTSettingsMixin'], 'slot_uri': 'coremeta4cat:k_point_mesh'} })
+ title: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ description: Optional[str] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ value: str = Field(default=..., description="""The slot to provide the literal value of the QualitativeAttribute.""", json_schema_extra = { "linkml_meta": {'domain_of': ['QualitativeAttribute', 'QuantitativeAttribute'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'slot_uri': 'prov:value'} })
+ type: Optional[DefinedTerm] = Field(default=None, description="""This slot is described in more detail within the class in which it is used.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ rdf_type: Optional[DefinedTerm] = Field(default=None, description="""The slot to specify the ontology class that is instantiated by an entity.""", json_schema_extra = { "linkml_meta": {'domain_of': ['ClassifierMixin'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'rdf:type'} })
+
+
+class CatalysisDataset(Dataset):
+ """
+ A dcat:Dataset that contains research data in the field of catalysis.
+
+ The catalysis research field is expressed via rdf_type using a voc4cat
+ term from CatalysisResearchFieldEnum (following DCAT-AP-PLUS Pattern 3).
+ For example, a dataset from heterogeneous catalysis research would carry:
+ rdf_type:
+ id: VOC4CAT:0007001
+ title: \"heterogeneous catalysis\"
+
+ The four CoreMeta4Cat minimum information pillars are linked via the slots
+ below, each pointing to the corresponding DataGeneratingActivity or
+ EvaluatedActivity subclass defined in the CoreMeta4Cat subprofile modules.
+ """
+ linkml_meta: ClassVar[LinkMLMeta] = LinkMLMeta({'class_uri': 'dcat:Dataset',
+ 'from_schema': 'https://w3id.org/nfdi4cat/coremeta4cat',
+ 'slot_usage': {'is_about_activity': {'description': 'The catalytic Reaction '
+ 'that this dataset is '
+ 'about (e.g. a dataset '
+ 'of\n'
+ 'catalytic performance '
+ 'measurements is about '
+ 'the Reaction being '
+ 'studied).',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'is_about_activity',
+ 'range': 'EvaluatedActivity',
+ 'recommended': True},
+ 'is_about_entity': {'description': 'The catalyst sample, '
+ 'material, or other Entity '
+ 'that this dataset is '
+ 'about.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'is_about_entity',
+ 'range': 'EvaluatedEntity',
+ 'recommended': True},
+ 'rdf_type': {'bindings': [{'binds_value_of': 'id',
+ 'description': 'Classify the '
+ 'dataset by '
+ 'catalysis research '
+ 'field using '
+ 'voc4cat.',
+ 'obligation_level': 'RECOMMENDED',
+ 'range': 'CatalysisResearchFieldEnum'}],
+ 'description': 'The catalysis research field, '
+ 'provided as a voc4cat term from\n'
+ 'CatalysisResearchFieldEnum. This '
+ 'is the primary '
+ 'machine-actionable\n'
+ "classification of the dataset's "
+ 'domain.',
+ 'name': 'rdf_type',
+ 'recommended': True},
+ 'was_generated_by': {'description': 'The '
+ 'DataGeneratingActivity '
+ '(Synthesis, '
+ 'Characterization, or '
+ 'Simulation)\n'
+ 'that produced this '
+ 'dataset.',
+ 'inlined_as_list': True,
+ 'multivalued': True,
+ 'name': 'was_generated_by',
+ 'range': 'DataGeneratingActivity',
+ 'recommended': True}}})
+
+ access_rights: Optional[RightsStatement] = Field(default=None, description="""Information that indicates whether the Dataset is publicly accessible, has access restrictions or is not public.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:accessRights'} })
+ applicable_legislation: Optional[list[LegalResource]] = Field(default=[], description="""The legislation that mandates the creation or management of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcatap:applicableLegislation'} })
+ conforms_to: Optional[list[Standard]] = Field(default=[], description="""An implementing rule or other specification.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcterms:conformsTo'} })
+ contact_point: Optional[list[Kind]] = Field(default=[], description="""Contact information that can be used for sending comments about the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'DatasetSeries'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:contactPoint'} })
+ creator: Optional[list[Agent]] = Field(default=[], description="""An entity responsible for producing the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset'], 'slot_uri': 'dcterms:creator'} })
+ dataset_distribution: Optional[list[Distribution]] = Field(default=[], description="""An available Distribution for the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:distribution'} })
+ description: list[str] = Field(default=..., description="""A free-text account of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:description'} })
+ documentation: Optional[list[Document]] = Field(default=[], description="""A page or document about this Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset', 'Distribution'],
+ 'slot_uri': 'foaf:page'} })
+ frequency: Optional[Frequency] = Field(default=None, description="""The frequency at which the Dataset is updated.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:accrualPeriodicity'} })
+ geographical_coverage: Optional[list[Location]] = Field(default=[], description="""A geographic region that is covered by the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:spatial'} })
+ has_version: Optional[list[Dataset]] = Field(default=[], description="""A related Dataset that is a version, edition, or adaptation of the described Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:hasVersion'} })
+ identifier: Optional[list[str]] = Field(default=[], description="""The main identifier for the Dataset, e.g. the URI or other unique identifier in the context of the Catalogue.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:identifier'} })
+ in_series: Optional[list[DatasetSeries]] = Field(default=[], description="""A dataset series of which the dataset is part.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:inSeries'} })
+ is_referenced_by: Optional[list[Resource]] = Field(default=[], description="""A related resource, such as a publication, that references, cites, or otherwise points to the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:isReferencedBy'} })
+ keyword: Optional[list[str]] = Field(default=[], description="""A keyword or tag describing the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:keyword'} })
+ landing_page: Optional[list[Document]] = Field(default=[], description="""A web page that provides access to the Dataset, its Distributions and/or additional information.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'], 'slot_uri': 'dcat:landingPage'} })
+ language: Optional[list[LinguisticSystem]] = Field(default=[], description="""A language of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'CatalogueRecord', 'Dataset', 'Distribution'],
+ 'slot_uri': 'dcterms:language'} })
+ modification_date: Optional[date] = Field(default=None, description="""The most recent date on which the Dataset was changed or modified.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue',
+ 'CatalogueRecord',
+ 'Dataset',
+ 'DatasetSeries',
+ 'Distribution'],
+ 'slot_uri': 'dcterms:modified'} })
+ other_identifier: Optional[list[Identifier]] = Field(default=[], description="""A secondary identifier of the Dataset""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity', 'AgenticEntity', 'Dataset', 'Entity'],
+ 'slot_uri': 'adms:identifier'} })
+ provenance: Optional[list[ProvenanceStatement]] = Field(default=[], description="""A statement about the lineage of a Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:provenance'} })
+ publisher: Optional[Agent] = Field(default=None, description="""An entity (organisation) responsible for making the Dataset available.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'DataService', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:publisher'} })
+ qualified_attribution: Optional[list[Attribution]] = Field(default=[], description="""An Agent having some form of responsibility for the resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'prov:qualifiedAttribution'} })
+ qualified_relation: Optional[list[Relationship]] = Field(default=[], description="""A description of a relationship with another resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:qualifiedRelation'} })
+ related_resource: Optional[list[Resource]] = Field(default=[], description="""A related resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'ChemicalReaction'], 'slot_uri': 'dcterms:relation'} })
+ release_date: Optional[date] = Field(default=None, description="""The date of formal issuance (e.g., publication) of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries', 'Distribution'],
+ 'slot_uri': 'dcterms:issued'} })
+ sample: Optional[list[Distribution]] = Field(default=[], description="""A sample distribution of the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'adms:sample'} })
+ source: Optional[list[Dataset]] = Field(default=[], description="""A related Dataset from which the described Dataset is derived.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcterms:source'} })
+ spatial_resolution: Optional[Decimal] = Field(default=None, description="""The minimum spatial separation resolvable in a dataset, measured in meters.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:spatialResolutionInMeters'} })
+ temporal_coverage: Optional[list[PeriodOfTime]] = Field(default=[], description="""A temporal period that the Dataset covers.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Catalogue', 'Dataset', 'DatasetSeries'],
+ 'slot_uri': 'dcterms:temporal'} })
+ temporal_resolution: Optional[str] = Field(default=None, description="""The minimum time period resolvable in the dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'Distribution'],
+ 'slot_uri': 'dcat:temporalResolution'} })
+ theme: Optional[list[Concept]] = Field(default=[], description="""A category of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['DataService', 'Dataset'],
+ 'recommended': True,
+ 'slot_uri': 'dcat:theme'} })
+ title: list[str] = Field(default=..., description="""A name given to the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Any',
+ 'Attribution',
+ 'Catalogue',
+ 'CatalogueRecord',
+ 'ChecksumAlgorithm',
+ 'Concept',
+ 'ConceptScheme',
+ 'DataService',
+ 'Dataset',
+ 'DatasetSeries',
+ 'DefinedTerm',
+ 'Distribution',
+ 'Document',
+ 'Entity',
+ 'Frequency',
+ 'Geometry',
+ 'Identifier',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'LinguisticSystem',
+ 'MediaType',
+ 'MediaTypeOrExtent',
+ 'PeriodOfTime',
+ 'Plan',
+ 'Policy',
+ 'ProvenanceStatement',
+ 'QualitativeAttribute',
+ 'QuantitativeAttribute',
+ 'Resource',
+ 'RightsStatement',
+ 'Role',
+ 'Standard',
+ 'SupportiveEntity',
+ 'Surrounding',
+ 'TimeInstant'],
+ 'slot_uri': 'dcterms:title'} })
+ type: Optional[list[Concept]] = Field(default=[], description="""A type of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Agent', 'ClassifierMixin', 'Dataset', 'LicenseDocument'],
+ 'slot_uri': 'dcterms:type'} })
+ version: Optional[str] = Field(default=None, description="""The version indicator (name or identifier) of a resource.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'dcat:version'} })
+ version_notes: Optional[list[str]] = Field(default=[], description="""A description of the differences between this version and a previous version of the Dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'], 'slot_uri': 'adms:versionNotes'} })
+ was_generated_by: list[DataGeneratingActivity] = Field(default=..., description="""The DataGeneratingActivity (Synthesis, Characterization, or Simulation)
+that produced this dataset.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset', 'EvaluatedEntity'],
+ 'notes': ['stricter than DCAT-AP'],
+ 'recommended': True,
+ 'slot_uri': 'prov:wasGeneratedBy'} })
+ id: str = Field(default=..., description="""A slot to provide an URI for an entity within this schema.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Activity',
+ 'AgenticEntity',
+ 'Dataset',
+ 'DefinedTerm',
+ 'Document',
+ 'Entity',
+ 'LegalResource',
+ 'LicenseDocument',
+ 'Resource'],
+ 'in_subset': ['domain_agnostic_core']} })
+ is_about_entity: Optional[list[EvaluatedEntity]] = Field(default=[], description="""The catalyst sample, material, or other Entity that this dataset is about.""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'],
+ 'exact_mappings': ['IAO:0000136'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:subject'} })
+ is_about_activity: Optional[list[EvaluatedActivity]] = Field(default=[], description="""The catalytic Reaction that this dataset is about (e.g. a dataset of
+catalytic performance measurements is about the Reaction being studied).""", json_schema_extra = { "linkml_meta": {'domain_of': ['Dataset'],
+ 'exact_mappings': ['IAO:0000136'],
+ 'in_subset': ['domain_agnostic_core'],
+ 'recommended': True,
+ 'slot_uri': 'dcterms:subject'} })
+
+
+# Model rebuild
+# see https://pydantic-docs.helpmanual.io/usage/models/#rebuilding-a-model
+DryingMixin.model_rebuild()
+CalcinationMixin.model_rebuild()
+PrecipitationMixin.model_rebuild()
+ThermalSynthesisMixin.model_rebuild()
+XRaySourceMixin.model_rebuild()
+EnergyRangeMixin.model_rebuild()
+ElectronMicroscopyMixin.model_rebuild()
+TemperatureProgramMixin.model_rebuild()
+ChromatographyMixin.model_rebuild()
+MassRangeMixin.model_rebuild()
+PhotoluminescenceMixin.model_rebuild()
+ElectrochemistryMixin.model_rebuild()
+Agent.model_rebuild()
+Catalogue.model_rebuild()
+CatalogueRecord.model_rebuild()
+Checksum.model_rebuild()
+ClassifierMixin.model_rebuild()
+Activity.model_rebuild()
+AgenticEntity.model_rebuild()
+DataGeneratingActivity.model_rebuild()
+Synthesis.model_rebuild()
+Characterization.model_rebuild()
+DataAnalysis.model_rebuild()
+DataService.model_rebuild()
+Dataset.model_rebuild()
+AnalysisDataset.model_rebuild()
+DatasetSeries.model_rebuild()
+DefinedTerm.model_rebuild()
+Device.model_rebuild()
+ReactorDesignType.model_rebuild()
+ElectrochemicalReactor.model_rebuild()
+CSTR.model_rebuild()
+PlugFlowReactor.model_rebuild()
+Autoclave.model_rebuild()
+SlurryReactor.model_rebuild()
+Microreactor.model_rebuild()
+FixedBedReactor.model_rebuild()
+FluidizedBedReactor.model_rebuild()
+Distribution.model_rebuild()
+Entity.model_rebuild()
+EvaluatedActivity.model_rebuild()
+Reaction.model_rebuild()
+EvaluatedEntity.model_rebuild()
+AnalysisSourceData.model_rebuild()
+Kind.model_rebuild()
+Location.model_rebuild()
+Plan.model_rebuild()
+PreparationMethod.model_rebuild()
+Impregnation.model_rebuild()
+CoPrecipitation.model_rebuild()
+SolGel.model_rebuild()
+Solvothermal.model_rebuild()
+PlasmaAssisted.model_rebuild()
+CombustionSynthesis.model_rebuild()
+AtomicLayerDeposition.model_rebuild()
+DepositionPrecipitation.model_rebuild()
+MicrowaveAssisted.model_rebuild()
+SonochemicalSynthesis.model_rebuild()
+FlameSprayPyrolysis.model_rebuild()
+MechanochemicalSynthesis.model_rebuild()
+Sublimation.model_rebuild()
+MolecularSynthesis.model_rebuild()
+ExsolutionSynthesis.model_rebuild()
+CharacterizationTechnique.model_rebuild()
+PowderXRD.model_rebuild()
+SingleCrystalXRD.model_rebuild()
+XRayAbsorptionSpectroscopy.model_rebuild()
+XPS.model_rebuild()
+EDX.model_rebuild()
+InfraredSpectroscopy.model_rebuild()
+DRIFTS.model_rebuild()
+RamanSpectroscopy.model_rebuild()
+NMRSpectroscopy.model_rebuild()
+TransmissionElectronMicroscopy.model_rebuild()
+ScanningElectronMicroscopy.model_rebuild()
+Thermogravimetry.model_rebuild()
+TPR.model_rebuild()
+TPO.model_rebuild()
+BET.model_rebuild()
+ICPAES.model_rebuild()
+ElementalAnalysis.model_rebuild()
+UVVisSpectroscopy.model_rebuild()
+PhotoluminescenceSpectroscopy.model_rebuild()
+PhotoluminescenceLifetime.model_rebuild()
+CyclicVoltammetry.model_rebuild()
+ConductivityMeasurement.model_rebuild()
+DynamicLightScattering.model_rebuild()
+ElectroSprayIonizationMassSpectrometry.model_rebuild()
+GCMS.model_rebuild()
+SizeExclusionChromatography.model_rebuild()
+HighPerformanceLiquidChromatographyMassSpectrometry.model_rebuild()
+ProductIdentificationMethod.model_rebuild()
+QualitativeAttribute.model_rebuild()
+QuantitativeAttribute.model_rebuild()
+Relationship.model_rebuild()
+Software.model_rebuild()
+SupportiveEntity.model_rebuild()
+Attribution.model_rebuild()
+ChecksumAlgorithm.model_rebuild()
+Concept.model_rebuild()
+ConceptScheme.model_rebuild()
+Document.model_rebuild()
+Frequency.model_rebuild()
+Geometry.model_rebuild()
+Identifier.model_rebuild()
+LegalResource.model_rebuild()
+LicenseDocument.model_rebuild()
+LinguisticSystem.model_rebuild()
+MediaType.model_rebuild()
+MediaTypeOrExtent.model_rebuild()
+PeriodOfTime.model_rebuild()
+Policy.model_rebuild()
+ProvenanceStatement.model_rebuild()
+Resource.model_rebuild()
+RightsStatement.model_rebuild()
+Role.model_rebuild()
+Standard.model_rebuild()
+Surrounding.model_rebuild()
+TimeInstant.model_rebuild()
+InChIKey.model_rebuild()
+InChi.model_rebuild()
+MolecularFormula.model_rebuild()
+IUPACName.model_rebuild()
+SMILES.model_rebuild()
+Concentration.model_rebuild()
+AmountOfSubstance.model_rebuild()
+PHValue.model_rebuild()
+Materialistic.model_rebuild()
+MaterialEntity.model_rebuild()
+ChemicalEntity.model_rebuild()
+Atom.model_rebuild()
+ChemicalSubstance.model_rebuild()
+Polymer.model_rebuild()
+MaterialSample.model_rebuild()
+Precursor.model_rebuild()
+CatalystSample.model_rebuild()
+Temperature.model_rebuild()
+Mass.model_rebuild()
+MolarMass.model_rebuild()
+Volume.model_rebuild()
+Density.model_rebuild()
+Pressure.model_rebuild()
+ChemicalReaction.model_rebuild()
+StartingMaterial.model_rebuild()
+DissolvingSubstance.model_rebuild()
+Reagent.model_rebuild()
+ChemicalProduct.model_rebuild()
+Catalyst.model_rebuild()
+Reactor.model_rebuild()
+Yield.model_rebuild()
+MolarEquivalent.model_rebuild()
+PercentageOfTotal.model_rebuild()
+SubstanceSample.model_rebuild()
+PolymerSample.model_rebuild()
+Laboratory.model_rebuild()
+MaterialDescriptorMixin.model_rebuild()
+DFTSettingsMixin.model_rebuild()
+Simulation.model_rebuild()
+SimulationMethod.model_rebuild()
+DFT.model_rebuild()
+MolecularDynamics.model_rebuild()
+Microkinetics.model_rebuild()
+MonteCarlo.model_rebuild()
+CalculatedProperty.model_rebuild()
+ThermodynamicStability.model_rebuild()
+Piezoelectricity.model_rebuild()
+ElasticConstants.model_rebuild()
+Surfaces.model_rebuild()
+DielectricTensors.model_rebuild()
+PhononDispersion.model_rebuild()
+EquationsOfState.model_rebuild()
+AqueousStability.model_rebuild()
+GrainBoundaries.model_rebuild()
+ElectronicStructure.model_rebuild()
+Ferroelectrics.model_rebuild()
+BandGap.model_rebuild()
+CatalysisDataset.model_rebuild()
diff --git a/src/catcore/schema/README.md b/src/coremeta4cat/schema/README.md
similarity index 100%
rename from src/catcore/schema/README.md
rename to src/coremeta4cat/schema/README.md
diff --git a/src/catcore/schema/chemical_entities_ap.yaml b/src/coremeta4cat/schema/chemical_entities_ap.yaml
similarity index 100%
rename from src/catcore/schema/chemical_entities_ap.yaml
rename to src/coremeta4cat/schema/chemical_entities_ap.yaml
diff --git a/src/catcore/schema/chemical_reaction_ap.yaml b/src/coremeta4cat/schema/chemical_reaction_ap.yaml
similarity index 99%
rename from src/catcore/schema/chemical_reaction_ap.yaml
rename to src/coremeta4cat/schema/chemical_reaction_ap.yaml
index 2c976a597..7d97d17da 100644
--- a/src/catcore/schema/chemical_reaction_ap.yaml
+++ b/src/coremeta4cat/schema/chemical_reaction_ap.yaml
@@ -8,7 +8,7 @@ license: CC-BY 4.0
prefixes:
chemical_reaction_ap: https://nfdi-de.github.io/chem-dcat-ap/chemical_reaction_ap.yaml#
chemdcatap: https://nfdi-de.github.io/chem-dcat-ap/
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
biolink: https://w3id.org/biolink/vocab/
schema: http://schema.org/
diff --git a/src/catcore/schema/catcore.yaml b/src/coremeta4cat/schema/coremeta4cat.yaml
similarity index 78%
rename from src/catcore/schema/catcore.yaml
rename to src/coremeta4cat/schema/coremeta4cat.yaml
index 8bbe06b89..60723ab66 100644
--- a/src/catcore/schema/catcore.yaml
+++ b/src/coremeta4cat/schema/coremeta4cat.yaml
@@ -1,23 +1,23 @@
---
-id: https://w3id.org/nfdi4cat/catcore
-name: catcore-metadata
-title: CatCore Metadata Reference Model
+id: https://w3id.org/nfdi4cat/coremeta4cat
+name: coremeta4cat-metadata
+title: CoreMeta4cat Metadata Reference Model
description: |-
- The CatCore describes the minimum information which must be reported with research
+ The CoreMeta4Cat describes the minimum information which must be reported with research
data concerning the field of catalysis. This guideline helps to handle and
standardize data based on the FAIR principle (Findable, Accessible, Interoperable,
Reusable).
Architecture
------------
- CatCore follows the DCAT-AP-PLUS design patterns (see design-patterns.md):
+ CoreMeta4Cat follows the DCAT-AP-PLUS design patterns (see design-patterns.md):
- The entry point is the dcat:Dataset, extended here as CatalysisDataset.
The catalysis research field is expressed via rdf_type (ClassifierMixin,
Pattern 3) using voc4cat terms — analogous to how NMRSpectroscopy uses
rdf_type: CHMO:0000613 to classify the measurement type.
- - The four CatCore pillars are modelled as DCAT-AP-PLUS Activity subclasses,
+ - The four CoreMeta4Cat pillars are modelled as DCAT-AP-PLUS Activity subclasses,
following the same pattern as NMRSpectroscopy (is_a: DataGeneratingActivity):
Synthesis --> is_a: DataGeneratingActivity
@@ -49,30 +49,30 @@ description: |-
- PreparationMethod, CharacterizationTechnique, and SimulationMethod are
modelled as Plan (from dcat_ap_plus), the protocol realized by the Activity.
- This file is the top-level aggregator. It imports catcore_common (shared
+ This file is the top-level aggregator. It imports coremeta4cat_common (shared
slots and enums) and the four subprofile modules.
Full import hierarchy:
- catcore.yaml (this file — aggregator + CatalysisDataset entry point)
- +-- catcore_common.yaml (shared slots, enums)
+ coremeta4cat.yaml (this file — aggregator + CatalysisDataset entry point)
+ +-- coremeta4cat_common.yaml (shared slots, enums)
+-- chem_dcat_ap (SubstanceSample, ChemicalSubstance, …)
+-- chemical_reaction_ap
+-- chemical_entities_ap
+-- material_entities_ap
+-- dcat_ap_plus (DCAT-AP-PLUS base)
- +-- catcore_synthesis_ap (Step 3 — Synthesis, PreparationMethod, mixins)
- +-- catcore_characterization_ap (Step 4 — Characterization, 24 techniques, mixins)
- +-- catcore_reaction_ap (Step 5 — Reaction, 8 ReactorDesignTypes)
- +-- catcore_simulation_ap (Step 6 — Simulation, 4 methods, 12 properties, mixins)
+ +-- coremeta4cat_synthesis_ap (Step 3 — Synthesis, PreparationMethod, mixins)
+ +-- coremeta4cat_characterization_ap (Step 4 — Characterization, 24 techniques, mixins)
+ +-- coremeta4cat_reaction_ap (Step 5 — Reaction, 8 ReactorDesignTypes)
+ +-- coremeta4cat_simulation_ap (Step 6 — Simulation, 4 methods, 12 properties, mixins)
license: CC-BY-4.0
version: 1.0.0
prefixes:
- catcore: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
chemdcatap: https://nfdi-de.github.io/chem-dcat-ap/
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
dcat: http://www.w3.org/ns/dcat#
dcterms: http://purl.org/dc/terms/
@@ -83,16 +83,16 @@ prefixes:
SIO: http://semanticscience.org/resource/SIO_
NCIT: http://purl.obolibrary.org/obo/NCIT_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
imports:
- linkml:types
- - catcore_common
- - catcore_synthesis_ap
- - catcore_characterization_ap
- - catcore_reaction_ap
- - catcore_simulation_ap
+ - coremeta4cat_common
+ - coremeta4cat_synthesis_ap
+ - coremeta4cat_characterization_ap
+ - coremeta4cat_reaction_ap
+ - coremeta4cat_simulation_ap
# ==================== ENTRY POINT: CATALYSIS DATASET ====================
@@ -111,9 +111,9 @@ classes:
id: VOC4CAT:0007001
title: "heterogeneous catalysis"
- The four CatCore minimum information pillars are linked via the slots
+ The four CoreMeta4Cat minimum information pillars are linked via the slots
below, each pointing to the corresponding DataGeneratingActivity or
- EvaluatedActivity subclass defined in the CatCore subprofile modules.
+ EvaluatedActivity subclass defined in the CoreMeta4Cat subprofile modules.
slot_usage:
rdf_type:
description: |-
diff --git a/src/catcore/schema/catcore_characterization_ap.yaml b/src/coremeta4cat/schema/coremeta4cat_characterization_ap.yaml
similarity index 89%
rename from src/catcore/schema/catcore_characterization_ap.yaml
rename to src/coremeta4cat/schema/coremeta4cat_characterization_ap.yaml
index 83adc721c..3c88f2586 100644
--- a/src/catcore/schema/catcore_characterization_ap.yaml
+++ b/src/coremeta4cat/schema/coremeta4cat_characterization_ap.yaml
@@ -1,9 +1,9 @@
---
-id: https://w3id.org/nfdi4cat/catcore/characterization/
-name: catcore-characterization-ap
-title: CatCore Characterization Application Profile
+id: https://w3id.org/nfdi4cat/coremeta4cat/characterization/
+name: coremeta4cat-characterization-ap
+title: CoreMeta4cat Characterization Application Profile
description: |-
- Application profile for catalyst characterization within the CatCore metadata model.
+ Application profile for catalyst characterization within the CoreMeta4cat metadata model.
This module defines:
- Characterization — the DataGeneratingActivity in which a catalyst sample is
@@ -29,9 +29,9 @@ license: CC-BY-4.0
version: 1.0.0
prefixes:
- catcore: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
prov: http://www.w3.org/ns/prov#
OBI: http://purl.obolibrary.org/obo/OBI_
@@ -42,12 +42,12 @@ prefixes:
AFQ: http://purl.allotrope.org/ontologies/quality#AFQ_
AFRL: http://purl.allotrope.org/ontologies/role#AFRL_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
imports:
- linkml:types
- - catcore_common # shared slots (atmosphere, temperature, equipment, sample_mass, …) + enums
+ - coremeta4cat_common # shared slots (atmosphere, temperature, equipment, sample_mass, …) + enums
# ==================== MIXINS ====================
# Pure slot containers. Each targets a slot group shared by >=2 techniques.
@@ -278,7 +278,7 @@ classes:
InfraredSpectroscopy:
is_a: CharacterizationTechnique
- class_uri: catcore:InfraredSpectroscopy
+ class_uri: coremeta4cat:InfraredSpectroscopy
description: Infrared spectroscopy (FTIR/ATR) for functional group and surface species identification.
slots:
- operation_mode
@@ -400,7 +400,7 @@ classes:
BET:
is_a: CharacterizationTechnique
- class_uri: catcore:BET
+ class_uri: coremeta4cat:BET
description: Brunauer-Emmett-Teller analysis for specific surface area and pore size distribution.
slots:
- adsorbate_gas
@@ -445,7 +445,7 @@ classes:
PhotoluminescenceSpectroscopy:
is_a: CharacterizationTechnique
- class_uri: catcore:PhotoluminescenceSpectroscopy
+ class_uri: coremeta4cat:PhotoluminescenceSpectroscopy
mixins:
- PhotoluminescenceMixin
description: Photoluminescence spectroscopy for defect and charge carrier characterization.
@@ -457,7 +457,7 @@ classes:
PhotoluminescenceLifetime:
is_a: CharacterizationTechnique
- class_uri: catcore:PhotoluminescenceLifetime
+ class_uri: coremeta4cat:PhotoluminescenceLifetime
mixins:
- PhotoluminescenceMixin
description: Time-resolved photoluminescence for charge carrier lifetime and recombination dynamics.
@@ -482,7 +482,7 @@ classes:
ConductivityMeasurement:
is_a: CharacterizationTechnique
- class_uri: catcore:ConductivityMeasurement
+ class_uri: coremeta4cat:ConductivityMeasurement
mixins:
- ElectrochemistryMixin
description: Electrical conductivity measurement for ionic and electronic transport characterization.
@@ -510,7 +510,7 @@ classes:
# ==================== MASS SPECTROMETRY ====================
- ESI_MS:
+ ElectroSprayIonizationMassSpectrometry:
is_a: CharacterizationTechnique
class_uri: CHMO:0000482
mixins:
@@ -557,7 +557,7 @@ classes:
- temperature
- calibration_standard
- HPLC_MS:
+ HighPerformanceLiquidChromatographyMassSpectrometry:
is_a: CharacterizationTechnique
class_uri: CHMO:0000796
mixins:
@@ -575,7 +575,7 @@ classes:
# concentration, solvent, injection_volume, external_standard, internal_standard,
# calibration_method, column_type, experiment_duration, flow_rate,
# filtration_device, filter_type, heating_rate, heating_procedure, dispersant, …)
-# are inherited from catcore_common.
+# are inherited from coremeta4cat_common.
slots:
@@ -584,13 +584,13 @@ slots:
sample_state:
description: Physical state of the sample during characterization.
range: SampleStateEnum
- slot_uri: catcore:sample_state
+ slot_uri: coremeta4cat:sample_state
multivalued: true
sample_description:
description: Free-text description of the sample used in this characterization.
range: string
- slot_uri: catcore:sample_description
+ slot_uri: coremeta4cat:sample_description
multivalued: true
sample_preparation:
@@ -624,7 +624,7 @@ slots:
minimum_energy:
description: Minimum energy of the scan range.
range: float
- slot_uri: catcore:minimum_energy
+ slot_uri: coremeta4cat:minimum_energy
multivalued: true
unit:
ucum_code: eV
@@ -632,7 +632,7 @@ slots:
maximum_energy:
description: Maximum energy of the scan range.
range: float
- slot_uri: catcore:maximum_energy
+ slot_uri: coremeta4cat:maximum_energy
multivalued: true
unit:
ucum_code: eV
@@ -642,13 +642,13 @@ slots:
gun_type:
description: Type of electron gun (e.g. FEG, thermionic LaB6).
range: string
- slot_uri: catcore:gun_type
+ slot_uri: coremeta4cat:gun_type
multivalued: true
acceleration_voltage:
description: Acceleration voltage applied to the electron beam.
range: float
- slot_uri: catcore:acceleration_voltage
+ slot_uri: coremeta4cat:acceleration_voltage
multivalued: true
unit:
ucum_code: kV
@@ -664,7 +664,7 @@ slots:
minimum_temperature:
description: Minimum (start) temperature in a temperature programme.
range: float
- slot_uri: catcore:minimum_temperature
+ slot_uri: coremeta4cat:minimum_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -672,7 +672,7 @@ slots:
maximum_temperature:
description: Maximum (final) temperature in a temperature programme.
range: float
- slot_uri: catcore:maximum_temperature
+ slot_uri: coremeta4cat:maximum_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -728,7 +728,7 @@ slots:
optical_filter:
description: Optical filter used in the emission or excitation path.
range: string
- slot_uri: catcore:optical_filter
+ slot_uri: coremeta4cat:optical_filter
multivalued: true
# ---- Electrochemistry (ElectrochemistryMixin) ----
@@ -754,13 +754,13 @@ slots:
electrolyte_composition:
description: Chemical composition of the electrolyte solution.
range: string
- slot_uri: catcore:electrolyte_composition
+ slot_uri: coremeta4cat:electrolyte_composition
multivalued: true
electrolyte_concentration:
description: Concentration of the electrolyte.
range: float
- slot_uri: catcore:electrolyte_concentration
+ slot_uri: coremeta4cat:electrolyte_concentration
multivalued: true
unit:
ucum_code: mol/L
@@ -770,7 +770,7 @@ slots:
minimum_2theta:
description: Minimum 2theta angle in the diffraction scan.
range: float
- slot_uri: catcore:minimum_2theta
+ slot_uri: coremeta4cat:minimum_2theta
multivalued: true
unit:
ucum_code: deg
@@ -778,7 +778,7 @@ slots:
maximum_2theta:
description: Maximum 2theta angle in the diffraction scan.
range: float
- slot_uri: catcore:maximum_2theta
+ slot_uri: coremeta4cat:maximum_2theta
multivalued: true
unit:
ucum_code: deg
@@ -786,7 +786,7 @@ slots:
sample_spinning_speed:
description: Sample spinning speed during XRD measurement.
range: float
- slot_uri: catcore:sample_spinning_speed
+ slot_uri: coremeta4cat:sample_spinning_speed
multivalued: true
unit:
ucum_code: rpm
@@ -796,25 +796,25 @@ slots:
absorption_edge:
description: X-ray absorption edge measured (e.g. K-edge, L3-edge).
range: string
- slot_uri: catcore:absorption_edge
+ slot_uri: coremeta4cat:absorption_edge
multivalued: true
element_analyzed:
description: Chemical element analysed (e.g. Fe, Cu, Pt).
range: string
- slot_uri: catcore:element_analyzed
+ slot_uri: coremeta4cat:element_analyzed
multivalued: true
beamline_source:
description: Synchrotron beamline or X-ray source identifier.
range: string
- slot_uri: catcore:beamline_source
+ slot_uri: coremeta4cat:beamline_source
multivalued: true
noise_of_measurement:
description: Noise level of the XAS measurement (signal-to-noise ratio).
range: float
- slot_uri: catcore:noise_of_measurement
+ slot_uri: coremeta4cat:noise_of_measurement
multivalued: true
energy_resolution:
@@ -830,7 +830,7 @@ slots:
total_acquisition_time:
description: Total time for XPS spectrum acquisition.
range: float
- slot_uri: catcore:total_acquisition_time
+ slot_uri: coremeta4cat:total_acquisition_time
multivalued: true
unit:
ucum_code: s
@@ -838,7 +838,7 @@ slots:
pass_energy:
description: Analyser pass energy setting in XPS.
range: float
- slot_uri: catcore:pass_energy
+ slot_uri: coremeta4cat:pass_energy
multivalued: true
unit:
ucum_code: eV
@@ -846,7 +846,7 @@ slots:
spot_size:
description: X-ray spot size on the sample surface.
range: float
- slot_uri: catcore:spot_size
+ slot_uri: coremeta4cat:spot_size
multivalued: true
unit:
ucum_code: mm
@@ -860,7 +860,7 @@ slots:
charge_compensation:
description: Charge compensation method applied during XPS measurement.
range: string
- slot_uri: catcore:charge_compensation
+ slot_uri: coremeta4cat:charge_compensation
multivalued: true
# ---- EDX-specific ----
@@ -868,7 +868,7 @@ slots:
primary_energy:
description: Primary electron beam energy for EDX excitation.
range: float
- slot_uri: catcore:primary_energy
+ slot_uri: coremeta4cat:primary_energy
multivalued: true
unit:
ucum_code: keV
@@ -876,7 +876,7 @@ slots:
counting_time:
description: X-ray counting time per point or spectrum.
range: float
- slot_uri: catcore:counting_time
+ slot_uri: coremeta4cat:counting_time
multivalued: true
unit:
ucum_code: s
@@ -886,7 +886,7 @@ slots:
minimum_wavenumber:
description: Minimum wavenumber of the IR scan range.
range: float
- slot_uri: catcore:minimum_wavenumber
+ slot_uri: coremeta4cat:minimum_wavenumber
multivalued: true
unit:
ucum_code: cm-1
@@ -894,7 +894,7 @@ slots:
maximum_wavenumber:
description: Maximum wavenumber of the IR scan range.
range: float
- slot_uri: catcore:maximum_wavenumber
+ slot_uri: coremeta4cat:maximum_wavenumber
multivalued: true
unit:
ucum_code: cm-1
@@ -908,25 +908,25 @@ slots:
adsorption_gas:
description: Probe gas adsorbed during in-situ DRIFTS measurement.
range: string
- slot_uri: catcore:adsorption_gas
+ slot_uri: coremeta4cat:adsorption_gas
multivalued: true
diluting_reference:
description: Reference material used to dilute the DRIFTS sample (e.g. KBr).
range: string
- slot_uri: catcore:diluting_reference
+ slot_uri: coremeta4cat:diluting_reference
multivalued: true
ratio_reference_sample:
description: Mass ratio of reference material to catalyst sample in DRIFTS cup.
range: float
- slot_uri: catcore:ratio_reference_sample
+ slot_uri: coremeta4cat:ratio_reference_sample
multivalued: true
background_correction_method:
description: Specific background correction method used in DRIFTS.
range: string
- slot_uri: catcore:background_correction_method
+ slot_uri: coremeta4cat:background_correction_method
multivalued: true
# ---- Raman-specific ----
@@ -950,7 +950,7 @@ slots:
filter_or_grating:
description: Optical filter or grating used in Raman spectrometer.
range: string
- slot_uri: catcore:filter_or_grating
+ slot_uri: coremeta4cat:filter_or_grating
multivalued: true
# ---- NMR-specific ----
@@ -958,13 +958,13 @@ slots:
nucleus:
description: NMR-active nucleus observed (e.g. 1H, 13C, 31P).
range: string
- slot_uri: catcore:nucleus
+ slot_uri: coremeta4cat:nucleus
multivalued: true
irradiation_frequency:
description: Irradiation frequency of the NMR spectrometer.
range: float
- slot_uri: catcore:irradiation_frequency
+ slot_uri: coremeta4cat:irradiation_frequency
multivalued: true
unit:
ucum_code: MHz
@@ -972,13 +972,13 @@ slots:
nmr_pulse_sequence:
description: NMR pulse sequence used (e.g. zgpg30, dept).
range: string
- slot_uri: catcore:nmr_pulse_sequence
+ slot_uri: coremeta4cat:nmr_pulse_sequence
multivalued: true
nmr_sample_tube:
description: NMR sample tube type (e.g. 5mm standard, Shigemi tube).
range: string
- slot_uri: catcore:nmr_sample_tube
+ slot_uri: coremeta4cat:nmr_sample_tube
multivalued: true
# ---- SEM-specific ----
@@ -986,7 +986,7 @@ slots:
image_resolution:
description: Spatial resolution of SEM images.
range: float
- slot_uri: catcore:image_resolution
+ slot_uri: coremeta4cat:image_resolution
multivalued: true
unit:
ucum_code: nm
@@ -994,7 +994,7 @@ slots:
field_emitter:
description: Type of field emitter used in FE-SEM instrument.
range: string
- slot_uri: catcore:field_emitter
+ slot_uri: coremeta4cat:field_emitter
multivalued: true
# ---- TGA-specific ----
@@ -1002,13 +1002,13 @@ slots:
reducing_gas_composition:
description: Composition of reducing gas used in TPR (e.g. 5% H2/Ar).
range: string
- slot_uri: catcore:reducing_gas_composition
+ slot_uri: coremeta4cat:reducing_gas_composition
multivalued: true
oxidizing_gas_composition:
description: Composition of oxidising gas used in TPO (e.g. 5% O2/Ar).
range: string
- slot_uri: catcore:oxidizing_gas_composition
+ slot_uri: coremeta4cat:oxidizing_gas_composition
multivalued: true
# ---- BET-specific ----
@@ -1016,13 +1016,13 @@ slots:
adsorbate_gas:
description: Adsorbate gas used in BET surface area measurement (e.g. N2, Ar).
range: string
- slot_uri: catcore:adsorbate_gas
+ slot_uri: coremeta4cat:adsorbate_gas
multivalued: true
degassing_temperature:
description: Temperature at which sample is degassed before BET measurement.
range: float
- slot_uri: catcore:degassing_temperature
+ slot_uri: coremeta4cat:degassing_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -1030,7 +1030,7 @@ slots:
measurement_temperature:
description: Temperature at which BET adsorption isotherm is measured (e.g. 77 K for N2).
range: float
- slot_uri: catcore:measurement_temperature
+ slot_uri: coremeta4cat:measurement_temperature
multivalued: true
unit:
ucum_code: K
@@ -1038,7 +1038,7 @@ slots:
pore_size_distribution_method:
description: Method used for pore size distribution calculation (e.g. BJH, DFT, HK).
range: string
- slot_uri: catcore:pore_size_distribution_method
+ slot_uri: coremeta4cat:pore_size_distribution_method
multivalued: true
# ---- Elemental Analysis-specific ----
@@ -1046,13 +1046,13 @@ slots:
elements_analyzed:
description: List of elements analysed by combustion elemental analysis (e.g. C, H, N, S).
range: string
- slot_uri: catcore:elements_analyzed
+ slot_uri: coremeta4cat:elements_analyzed
multivalued: true
combustion_temperature:
description: Combustion furnace temperature for elemental analysis.
range: float
- slot_uri: catcore:combustion_temperature
+ slot_uri: coremeta4cat:combustion_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -1068,7 +1068,7 @@ slots:
matrix_effect_correction:
description: Method used to correct for matrix effects in ICP-AES.
range: string
- slot_uri: catcore:matrix_effect_correction
+ slot_uri: coremeta4cat:matrix_effect_correction
multivalued: true
# ---- UV-Vis-specific ----
@@ -1076,7 +1076,7 @@ slots:
minimum_wavelength:
description: Minimum wavelength of the UV-Vis scan range.
range: float
- slot_uri: catcore:minimum_wavelength
+ slot_uri: coremeta4cat:minimum_wavelength
multivalued: true
unit:
ucum_code: nm
@@ -1084,7 +1084,7 @@ slots:
maximum_wavelength:
description: Maximum wavelength of the UV-Vis scan range.
range: float
- slot_uri: catcore:maximum_wavelength
+ slot_uri: coremeta4cat:maximum_wavelength
multivalued: true
unit:
ucum_code: nm
@@ -1102,13 +1102,13 @@ slots:
emission_range:
description: Wavelength range over which emission is detected.
range: string
- slot_uri: catcore:emission_range
+ slot_uri: coremeta4cat:emission_range
multivalued: true
slit_width:
description: Spectrometer entrance or exit slit width.
range: float
- slot_uri: catcore:slit_width
+ slot_uri: coremeta4cat:slit_width
multivalued: true
unit:
ucum_code: nm
@@ -1116,13 +1116,13 @@ slots:
lifetime_fitting_model:
description: Mathematical model used for fluorescence lifetime fitting (e.g. mono-exponential, bi-exponential).
range: string
- slot_uri: catcore:lifetime_fitting_model
+ slot_uri: coremeta4cat:lifetime_fitting_model
multivalued: true
number_of_shots:
description: Number of laser shots accumulated per measurement point.
range: integer
- slot_uri: catcore:number_of_shots
+ slot_uri: coremeta4cat:number_of_shots
multivalued: true
# ---- CyclicVoltammetry-specific ----
@@ -1138,7 +1138,7 @@ slots:
minimum_potential:
description: Lower potential limit in cyclic voltammetry.
range: float
- slot_uri: catcore:minimum_potential
+ slot_uri: coremeta4cat:minimum_potential
multivalued: true
unit:
ucum_code: V
@@ -1146,7 +1146,7 @@ slots:
maximum_potential:
description: Upper potential limit in cyclic voltammetry.
range: float
- slot_uri: catcore:maximum_potential
+ slot_uri: coremeta4cat:maximum_potential
multivalued: true
unit:
ucum_code: V
@@ -1164,7 +1164,7 @@ slots:
electrode_configuration:
description: Configuration of electrodes used in conductivity measurement (e.g. 2-probe, 4-probe).
range: string
- slot_uri: catcore:electrode_configuration
+ slot_uri: coremeta4cat:electrode_configuration
multivalued: true
ac_frequency:
@@ -1178,13 +1178,13 @@ slots:
ac_dc_mode:
description: AC or DC measurement mode used in conductivity measurement.
range: string
- slot_uri: catcore:ac_dc_mode
+ slot_uri: coremeta4cat:ac_dc_mode
multivalued: true
sample_geometry:
description: Geometry of the sample used in conductivity measurement (e.g. pellet, thin film).
range: string
- slot_uri: catcore:sample_geometry
+ slot_uri: coremeta4cat:sample_geometry
multivalued: true
# ---- DLS-specific ----
@@ -1200,7 +1200,7 @@ slots:
scattering_angle:
description: Scattering angle at which intensity is detected in DLS.
range: float
- slot_uri: catcore:scattering_angle
+ slot_uri: coremeta4cat:scattering_angle
multivalued: true
unit:
ucum_code: deg
@@ -1208,13 +1208,13 @@ slots:
refractive_index:
description: Refractive index of the solvent used in DLS measurement.
range: float
- slot_uri: catcore:refractive_index
+ slot_uri: coremeta4cat:refractive_index
multivalued: true
measurement_duration:
description: Duration of a single DLS acquisition.
range: float
- slot_uri: catcore:measurement_duration
+ slot_uri: coremeta4cat:measurement_duration
multivalued: true
unit:
ucum_code: s
@@ -1232,7 +1232,7 @@ slots:
capillary_temperature:
description: Capillary or desolvation temperature in ESI source.
range: float
- slot_uri: catcore:capillary_temperature
+ slot_uri: coremeta4cat:capillary_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -1248,13 +1248,13 @@ slots:
carrier_gas_purity:
description: Purity grade of the carrier gas used in GC.
range: string
- slot_uri: catcore:carrier_gas_purity
+ slot_uri: coremeta4cat:carrier_gas_purity
multivalued: true
inlet_temperature:
description: GC inlet temperature.
range: float
- slot_uri: catcore:inlet_temperature
+ slot_uri: coremeta4cat:inlet_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -1262,7 +1262,7 @@ slots:
minimum_oven_temperature:
description: Minimum oven temperature in GC temperature programme.
range: float
- slot_uri: catcore:minimum_oven_temperature
+ slot_uri: coremeta4cat:minimum_oven_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -1270,7 +1270,7 @@ slots:
maximum_oven_temperature:
description: Maximum oven temperature in GC temperature programme.
range: float
- slot_uri: catcore:maximum_oven_temperature
+ slot_uri: coremeta4cat:maximum_oven_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -1278,7 +1278,7 @@ slots:
heating_ramp:
description: Temperature ramp rate in GC oven programme.
range: float
- slot_uri: catcore:heating_ramp
+ slot_uri: coremeta4cat:heating_ramp
multivalued: true
unit:
ucum_code: Cel/min
@@ -1286,13 +1286,13 @@ slots:
acquisition_mode:
description: Mass spectrometer acquisition mode (e.g. full scan, SIM, SRM).
range: string
- slot_uri: catcore:acquisition_mode
+ slot_uri: coremeta4cat:acquisition_mode
multivalued: true
solvent_delay:
description: Solvent delay time before MS acquisition begins.
range: float
- slot_uri: catcore:solvent_delay
+ slot_uri: coremeta4cat:solvent_delay
multivalued: true
unit:
ucum_code: min
@@ -1300,13 +1300,13 @@ slots:
trace_ion_detection:
description: Trace ion detection setting or threshold.
range: string
- slot_uri: catcore:trace_ion_detection
+ slot_uri: coremeta4cat:trace_ion_detection
multivalued: true
split_ratio:
description: Split ratio at the GC injector.
range: float
- slot_uri: catcore:split_ratio
+ slot_uri: coremeta4cat:split_ratio
multivalued: true
# ---- SEC / HPLC-MS-specific ----
@@ -1320,17 +1320,17 @@ slots:
calibration_standard:
description: Calibration standard used for molecular weight or retention time calibration.
range: string
- slot_uri: catcore:calibration_standard
+ slot_uri: coremeta4cat:calibration_standard
multivalued: true
gradient_program:
description: Gradient elution programme used in HPLC-MS.
range: string
- slot_uri: catcore:gradient_program
+ slot_uri: coremeta4cat:gradient_program
multivalued: true
ionization_mode:
description: Ionisation mode used in HPLC-MS (e.g. positive, negative, APCI, ESI).
range: string
- slot_uri: catcore:ionization_mode
+ slot_uri: coremeta4cat:ionization_mode
multivalued: true
diff --git a/src/catcore/schema/catcore_common.yaml b/src/coremeta4cat/schema/coremeta4cat_common.yaml
similarity index 84%
rename from src/catcore/schema/catcore_common.yaml
rename to src/coremeta4cat/schema/coremeta4cat_common.yaml
index f93a93430..4a562e4ab 100644
--- a/src/catcore/schema/catcore_common.yaml
+++ b/src/coremeta4cat/schema/coremeta4cat_common.yaml
@@ -1,24 +1,24 @@
---
-id: https://w3id.org/nfdi4cat/catcore/common/
-name: catcore-common
-title: CatCore Common — Shared Slots and Enumerations
+id: https://w3id.org/nfdi4cat/coremeta4cat/common/
+name: coremeta4cat-common
+title: CoreMeta4cat Common — Shared Slots and Enumerations
description: |-
- Shared infrastructure for all CatCore subprofiles.
+ Shared infrastructure for all CoreMeta4cat subprofiles.
This module provides:
- - Shared slots reused across two or more CatCore subprofiles
+ - Shared slots reused across two or more CoreMeta4cat subprofiles
(atmosphere, temperature, equipment, calcination parameters, …)
- Domain-level enumerations (CatalysisResearchFieldEnum, SampleStateEnum, …)
- Design note: This module intentionally does NOT define a CatCoreEntity root
+ Design note: This module intentionally does NOT define a CoreMeta4catEntity root
class. Following the DCAT-AP-PLUS design patterns, the catalysis domain is
expressed at the dcat:Dataset level via rdf_type (ClassifierMixin, Pattern 3)
- using voc4cat terms. The four CatCore pillars — Synthesis, Characterization,
+ using voc4cat terms. The four CoreMeta4cat pillars — Synthesis, Characterization,
Reaction, Simulation — are modelled as DCAT-AP-PLUS Activity subclasses in
their respective subprofile modules, not as subclasses of a shared root.
Import hierarchy:
- catcore_common.yaml (this file)
+ coremeta4cat_common.yaml (this file)
+-- chem_dcat_ap (chemistry layer)
+-- chemical_reaction_ap
+-- chemical_entities_ap
@@ -29,10 +29,10 @@ license: CC-BY-4.0
version: 1.0.0
prefixes:
- catcore: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
chemdcatap: https://nfdi-de.github.io/chem-dcat-ap/
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
@@ -44,7 +44,7 @@ prefixes:
AFR: http://purl.allotrope.org/ontologies/result#AFR_
AFP: http://purl.allotrope.org/ontologies/process#AFP_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
imports:
@@ -53,7 +53,7 @@ imports:
# ==================== SHARED SLOTS ====================
#
-# A slot is placed here when it is referenced by two or more CatCore subprofiles.
+# A slot is placed here when it is referenced by two or more CoreMeta4cat subprofiles.
# Slots exclusive to one subprofile are declared in that subprofile file.
slots:
@@ -64,7 +64,7 @@ slots:
atmosphere:
description: Gaseous environment or atmospheric conditions during a process.
range: string
- slot_uri: catcore:atmosphere
+ slot_uri: coremeta4cat:atmosphere
multivalued: true
temperature:
@@ -84,7 +84,7 @@ slots:
flow_rate:
description: Flow rate of a fluid or gas.
range: float
- slot_uri: catcore:flow_rate
+ slot_uri: coremeta4cat:flow_rate
multivalued: true
unit:
ucum_code: mL/min
@@ -92,7 +92,7 @@ slots:
heating_rate:
description: Rate at which temperature is increased during a process.
range: float
- slot_uri: catcore:heating_rate
+ slot_uri: coremeta4cat:heating_rate
multivalued: true
unit:
ucum_code: Cel/min
@@ -100,19 +100,19 @@ slots:
heating_procedure:
description: Description of the heating procedure applied.
range: string
- slot_uri: catcore:heating_procedure
+ slot_uri: coremeta4cat:heating_procedure
multivalued: true
number_of_cycles:
description: Number of repeated cycles in a process (e.g. ALD cycles, impregnation cycles).
range: integer
- slot_uri: catcore:number_of_cycles
+ slot_uri: coremeta4cat:number_of_cycles
multivalued: true
sample_mass:
description: Mass of the sample used in a process or measurement.
range: float
- slot_uri: catcore:sample_mass
+ slot_uri: coremeta4cat:sample_mass
multivalued: true
unit:
ucum_code: mg
@@ -126,7 +126,7 @@ slots:
stirring_speed:
description: Rotational speed of stirring or agitation.
range: float
- slot_uri: catcore:stirring_speed
+ slot_uri: coremeta4cat:stirring_speed
multivalued: true
unit:
ucum_code: rpm
@@ -134,7 +134,7 @@ slots:
stirring_duration:
description: Duration of stirring or agitation.
range: float
- slot_uri: catcore:stirring_duration
+ slot_uri: coremeta4cat:stirring_duration
multivalued: true
unit:
ucum_code: h
@@ -142,19 +142,19 @@ slots:
vessel_type:
description: Type of reaction or synthesis vessel used.
range: string
- slot_uri: catcore:vessel_type
+ slot_uri: coremeta4cat:vessel_type
multivalued: true
carrier_gas:
description: Carrier gas used in a process (e.g. in GC analysis or ALD deposition).
range: string
- slot_uri: catcore:carrier_gas
+ slot_uri: coremeta4cat:carrier_gas
multivalued: true
dispersant:
description: Dispersant used (e.g. in DLS measurement or flame spray pyrolysis).
range: string
- slot_uri: catcore:dispersant
+ slot_uri: coremeta4cat:dispersant
multivalued: true
# ---- Drying and calcination parameters ----
@@ -163,13 +163,13 @@ slots:
drying_device:
description: Device used for drying (e.g. oven, rotary evaporator).
range: string
- slot_uri: catcore:drying_device
+ slot_uri: coremeta4cat:drying_device
multivalued: true
drying_temperature:
description: Temperature applied during drying.
range: float
- slot_uri: catcore:drying_temperature
+ slot_uri: coremeta4cat:drying_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -177,7 +177,7 @@ slots:
drying_time:
description: Duration of the drying step.
range: float
- slot_uri: catcore:drying_time
+ slot_uri: coremeta4cat:drying_time
multivalued: true
unit:
ucum_code: h
@@ -185,7 +185,7 @@ slots:
drying_atmosphere:
description: Atmosphere maintained during drying (e.g. air, N2).
range: string
- slot_uri: catcore:drying_atmosphere
+ slot_uri: coremeta4cat:drying_atmosphere
multivalued: true
calcination_initial_temperature:
@@ -246,13 +246,13 @@ slots:
resolution:
description: Resolution of a measurement or detector.
range: float
- slot_uri: catcore:resolution
+ slot_uri: coremeta4cat:resolution
multivalued: true
integration_time:
description: Integration or acquisition time per measurement step.
range: float
- slot_uri: catcore:integration_time
+ slot_uri: coremeta4cat:integration_time
multivalued: true
unit:
ucum_code: s
@@ -260,7 +260,7 @@ slots:
number_of_scans:
description: Number of scans or accumulations recorded.
range: integer
- slot_uri: catcore:number_of_scans
+ slot_uri: coremeta4cat:number_of_scans
multivalued: true
operation_mode:
@@ -272,7 +272,7 @@ slots:
concentration:
description: Concentration of a substance in a sample or solution.
range: float
- slot_uri: catcore:concentration
+ slot_uri: coremeta4cat:concentration
multivalued: true
unit:
ucum_code: mol/L
@@ -286,7 +286,7 @@ slots:
injection_volume:
description: Volume injected in a chromatographic or mass spectrometric experiment.
range: float
- slot_uri: catcore:injection_volume
+ slot_uri: coremeta4cat:injection_volume
multivalued: true
unit:
ucum_code: uL
@@ -294,25 +294,25 @@ slots:
external_standard:
description: External standard used for quantification or calibration.
range: string
- slot_uri: catcore:external_standard
+ slot_uri: coremeta4cat:external_standard
multivalued: true
internal_standard:
description: Internal standard used for quantification or calibration.
range: string
- slot_uri: catcore:internal_standard
+ slot_uri: coremeta4cat:internal_standard
multivalued: true
calibration_method:
description: Calibration method applied during a measurement.
range: string
- slot_uri: catcore:calibration_method
+ slot_uri: coremeta4cat:calibration_method
multivalued: true
column_type:
description: Type of chromatographic column used.
range: string
- slot_uri: catcore:column_type
+ slot_uri: coremeta4cat:column_type
multivalued: true
experiment_duration:
@@ -326,13 +326,13 @@ slots:
filtration_device:
description: Device used for filtration.
range: string
- slot_uri: catcore:filtration_device
+ slot_uri: coremeta4cat:filtration_device
multivalued: true
filter_type:
description: Type of filter membrane or medium used.
range: string
- slot_uri: catcore:filter_type
+ slot_uri: coremeta4cat:filter_type
multivalued: true
# ==================== ENUMERATIONS ====================
diff --git a/src/catcore/schema/catcore_reaction_ap.yaml b/src/coremeta4cat/schema/coremeta4cat_reaction_ap.yaml
similarity index 86%
rename from src/catcore/schema/catcore_reaction_ap.yaml
rename to src/coremeta4cat/schema/coremeta4cat_reaction_ap.yaml
index 4813e7ebf..c5f7e3fba 100644
--- a/src/catcore/schema/catcore_reaction_ap.yaml
+++ b/src/coremeta4cat/schema/coremeta4cat_reaction_ap.yaml
@@ -1,16 +1,16 @@
---
-id: https://w3id.org/nfdi4cat/catcore/reaction/
-name: catcore-reaction-ap
-title: CatCore Reaction Application Profile
+id: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
+name: coremeta4cat-reaction-ap
+title: CoreMeta4cat Reaction Application Profile
description: |-
- Application profile for catalytic reactions within the CatCore metadata model.
+ Application profile for catalytic reactions within the CoreMeta4cat metadata model.
This module defines:
- Reaction — an EvaluatedActivity representing the catalytic process being studied
- ReactorDesignType — Device subclass hierarchy (8 concrete reactor types)
- OperationParameters — flattened as direct slots on Reaction (see note below)
- ProductIdentificationMethod — abstract stub; users point to a
- CharacterizationTechnique instance from catcore_characterization_ap
+ CharacterizationTechnique instance from coremeta4cat_characterization_ap
Alignment to DCAT-AP-PLUS:
Reaction --> is_a: EvaluatedActivity (the process being studied,
@@ -25,10 +25,10 @@ description: |-
OperationParameters design decision:
-------------------------------------
- The original CatCore model wraps operation parameters in a nested class.
+ The original CoreMeta4Cat model wraps operation parameters in a nested class.
In this modularised form they are flattened as direct slots on Reaction,
consistent with how preparation method parameters are handled on
- PreparationMethod subclasses in catcore_synthesis_ap. This avoids
+ PreparationMethod subclasses in coremeta4cat_synthesis_ap. This avoids
an unnecessary wrapper object while preserving all the same information.
ProductIdentificationMethod design decision:
@@ -36,16 +36,16 @@ description: |-
The source defines ProductIdentificationMethod as an abstract class with
no concrete subclasses — it is a forward reference to analytical techniques.
Users should link a CharacterizationTechnique instance (defined in
- catcore_characterization_ap) via product_identification_method. The abstract
+ coremeta4cat_characterization_ap) via product_identification_method. The abstract
stub is retained for backward compatibility and schema completeness.
license: CC-BY-4.0
version: 1.0.0
prefixes:
- catcore: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
prov: http://www.w3.org/ns/prov#
OBI: http://purl.obolibrary.org/obo/OBI_
@@ -53,12 +53,12 @@ prefixes:
SIO: http://semanticscience.org/resource/SIO_
AFR: http://purl.allotrope.org/ontologies/result#AFR_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
imports:
- linkml:types
- - catcore_common # shared slots (atmosphere, flow_rate, temperature, …) + enums
+ - coremeta4cat_common # shared slots (atmosphere, flow_rate, temperature, …) + enums
# ==================== REACTION (EvaluatedActivity) ====================
@@ -117,7 +117,7 @@ classes:
description: |-
The analytical method used to identify and/or quantify reaction products.
Should reference a CharacterizationTechnique instance (e.g. a GCMS or
- HPLC_MS object from catcore_characterization_ap). The abstract stub
+ HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub
ProductIdentificationMethod is retained for backward compatibility.
range: ProductIdentificationMethod
required: true
@@ -133,10 +133,10 @@ classes:
description: |-
Abstract Plan representing the method used to identify and quantify reaction
products. In practice, users should reference a concrete CharacterizationTechnique
- subclass from catcore_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
+ subclass from coremeta4cat_characterization_ap (e.g. GCMS, HPLC_MS, NMRSpectroscopy).
This abstract class is retained for backward compatibility with the original
- CatCore monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
+ CoreMeta4Cat monolith. It is a subclass of Plan (prov:Plan / OBI:0000272) so that
it can participate in the realized_plan slot if needed.
# ==================== REACTOR DESIGN TYPES (Devices) ====================
@@ -183,7 +183,7 @@ classes:
SlurryReactor:
is_a: ReactorDesignType
- class_uri: catcore:SlurryReactor
+ class_uri: coremeta4cat:SlurryReactor
description: |-
Slurry reactor — a three-phase reactor in which catalyst particles are
suspended in a liquid phase through which gas is bubbled.
@@ -198,14 +198,14 @@ classes:
FixedBedReactor:
is_a: ReactorDesignType
- class_uri: catcore:FixedBedReactor
+ class_uri: coremeta4cat:FixedBedReactor
description: |-
Fixed bed reactor — a tubular reactor packed with a stationary catalyst bed.
The most common reactor type in heterogeneous catalysis testing.
FluidizedBedReactor:
is_a: ReactorDesignType
- class_uri: catcore:FluidizedBedReactor
+ class_uri: coremeta4cat:FluidizedBedReactor
description: |-
Fluidized bed reactor — a reactor in which the catalyst particles are
suspended in an upward-flowing gas or liquid stream.
@@ -216,7 +216,7 @@ classes:
# ==================== SLOTS ====================
# Shared slots (atmosphere, flow_rate, temperature, experiment_duration, …)
-# are inherited from catcore_common and not redeclared here.
+# are inherited from coremeta4cat_common and not redeclared here.
slots:
@@ -225,7 +225,7 @@ slots:
catalyst_quantity:
description: Mass of catalyst loaded into the reactor.
range: float
- slot_uri: catcore:catalyst_quantity
+ slot_uri: coremeta4cat:catalyst_quantity
required: true
multivalued: true
unit:
@@ -272,23 +272,23 @@ slots:
Feed gas or liquid composition range studied (e.g. "1–10 vol% CO in N2").
Record as a string; for individual component concentrations use reactant.
range: string
- slot_uri: catcore:feed_composition_range
+ slot_uri: coremeta4cat:feed_composition_range
multivalued: true
- # experiment_duration is inherited from catcore_common (AFR:0002455, unit h)
+ # experiment_duration is inherited from coremeta4cat_common (AFR:0002455, unit h)
# ---- FluidizedBedReactor-specific slots ----
gas_distributor_type:
description: Type or design of the gas distributor plate in a fluidized bed reactor.
range: string
- slot_uri: catcore:gas_distributor_type
+ slot_uri: coremeta4cat:gas_distributor_type
multivalued: true
bed_expansion_height:
description: Height of bed expansion above the settled bed height under operating conditions.
range: float
- slot_uri: catcore:bed_expansion_height
+ slot_uri: coremeta4cat:bed_expansion_height
multivalued: true
unit:
ucum_code: cm
@@ -296,4 +296,4 @@ slots:
bubble_size_distribution:
description: Description or characterization of bubble size distribution in the fluidized bed.
range: string
- slot_uri: catcore:bubble_size_distribution
+ slot_uri: coremeta4cat:bubble_size_distribution
diff --git a/src/catcore/schema/catcore_simulation_ap.yaml b/src/coremeta4cat/schema/coremeta4cat_simulation_ap.yaml
similarity index 85%
rename from src/catcore/schema/catcore_simulation_ap.yaml
rename to src/coremeta4cat/schema/coremeta4cat_simulation_ap.yaml
index cc8379f91..fda0b7655 100644
--- a/src/catcore/schema/catcore_simulation_ap.yaml
+++ b/src/coremeta4cat/schema/coremeta4cat_simulation_ap.yaml
@@ -1,9 +1,9 @@
---
-id: https://w3id.org/nfdi4cat/catcore/simulation/
-name: catcore-simulation-ap
-title: CatCore Simulation Application Profile
+id: https://w3id.org/nfdi4cat/coremeta4cat/simulation/
+name: coremeta4cat-simulation-ap
+title: CoreMeta4cat Simulation Application Profile
description: |-
- Application profile for computational simulations within the CatCore metadata model.
+ Application profile for computational simulations within the CoreMeta4cat metadata model.
This module defines:
- Simulation — the DataGeneratingActivity in which a catalyst or catalytic
@@ -22,7 +22,7 @@ description: |-
CalculatedProperty --> is_a: QualitativeAttribute (output property descriptor)
The specific simulation type is expressed via rdf_type on Simulation using an
- ontology term (e.g. catcore:DFT, NCIT:C18097 for MD), following DCAT-AP-PLUS
+ ontology term (e.g. coremeta4cat:DFT, NCIT:C18097 for MD), following DCAT-AP-PLUS
Pattern 3 — exactly as NMRSpectroscopy uses rdf_type: CHMO:0000613.
The simulation software is linked via carried_out_by as a Software agent.
@@ -40,9 +40,9 @@ license: CC-BY-4.0
version: 1.0.0
prefixes:
- catcore: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
prov: http://www.w3.org/ns/prov#
OBI: http://purl.obolibrary.org/obo/OBI_
@@ -51,12 +51,12 @@ prefixes:
AFR: http://purl.allotrope.org/ontologies/result#AFR_
APOLLO_SV: http://purl.obolibrary.org/obo/APOLLO_SV_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
imports:
- linkml:types
- - catcore_common # shared slots (temperature, pressure, …) + enums
+ - coremeta4cat_common # shared slots (temperature, pressure, …) + enums
# ==================== MIXINS ====================
@@ -99,7 +99,7 @@ classes:
SimulationMethod instance. The catalyst model or reaction being simulated
is linked via evaluated_entity or evaluated_activity.
- The specific simulation type is expressed via rdf_type (e.g. catcore:DFT,
+ The specific simulation type is expressed via rdf_type (e.g. coremeta4cat:DFT,
NCIT:C18097 for molecular dynamics), following DCAT-AP-PLUS Pattern 3.
slots:
- software_package
@@ -107,8 +107,8 @@ classes:
slot_usage:
rdf_type:
description: |-
- The type of simulation method as an ontology term (e.g. catcore:DFT,
- NCIT:C18097 for MD, catcore:Microkinetics). This is the primary
+ The type of simulation method as an ontology term (e.g. coremeta4cat:DFT,
+ NCIT:C18097 for MD, coremeta4cat:Microkinetics). This is the primary
machine-actionable classification of the simulation type.
recommended: true
realized_plan:
@@ -146,7 +146,7 @@ classes:
DFT:
is_a: SimulationMethod
- class_uri: catcore:DFT
+ class_uri: coremeta4cat:DFT
description: |-
Density functional theory — a quantum mechanical method for calculating
the electronic structure of atoms, molecules, and periodic solids.
@@ -175,7 +175,7 @@ classes:
Microkinetics:
is_a: SimulationMethod
- class_uri: catcore:Microkinetics
+ class_uri: coremeta4cat:Microkinetics
description: |-
Microkinetic modelling — a mean-field kinetic approach that integrates
elementary reaction steps and their rate constants to predict catalytic
@@ -190,7 +190,7 @@ classes:
MonteCarlo:
is_a: SimulationMethod
- class_uri: catcore:MonteCarlo
+ class_uri: coremeta4cat:MonteCarlo
description: |-
Monte Carlo simulation — a stochastic method that samples configuration
space using random moves accepted or rejected according to a statistical
@@ -209,7 +209,7 @@ classes:
CalculatedProperty:
is_a: QualitativeAttribute
- class_uri: catcore:CalculatedProperty
+ class_uri: coremeta4cat:CalculatedProperty
abstract: true
description: |-
Abstract QualitativeAttribute representing a property computed by a
@@ -219,7 +219,7 @@ classes:
ThermodynamicStability:
is_a: CalculatedProperty
- class_uri: catcore:ThermodynamicStability
+ class_uri: coremeta4cat:ThermodynamicStability
description: |-
Thermodynamic stability of a material or phase, characterised by formation
energy, convex hull distance, and competing phases. Used to screen catalyst
@@ -233,7 +233,7 @@ classes:
Piezoelectricity:
is_a: CalculatedProperty
- class_uri: catcore:Piezoelectricity
+ class_uri: coremeta4cat:Piezoelectricity
description: |-
Piezoelectric response of a non-centrosymmetric material, described by the
piezoelectric tensor. Relevant for piezocatalysis applications.
@@ -245,7 +245,7 @@ classes:
ElasticConstants:
is_a: CalculatedProperty
- class_uri: catcore:ElasticConstants
+ class_uri: coremeta4cat:ElasticConstants
description: |-
Elastic mechanical properties of a material derived from the elastic tensor,
including bulk modulus, shear modulus, and Young's modulus.
@@ -258,7 +258,7 @@ classes:
Surfaces:
is_a: CalculatedProperty
- class_uri: catcore:Surfaces
+ class_uri: coremeta4cat:Surfaces
description: |-
Surface properties of a catalyst computed from a periodic slab model,
including surface energy, Miller index, slab thickness, and vacuum spacing.
@@ -272,7 +272,7 @@ classes:
DielectricTensors:
is_a: CalculatedProperty
- class_uri: catcore:DielectricTensors
+ class_uri: coremeta4cat:DielectricTensors
mixins:
- MaterialDescriptorMixin
- DFTSettingsMixin
@@ -285,7 +285,7 @@ classes:
PhononDispersion:
is_a: CalculatedProperty
- class_uri: catcore:PhononDispersion
+ class_uri: coremeta4cat:PhononDispersion
mixins:
- MaterialDescriptorMixin
description: |-
@@ -300,7 +300,7 @@ classes:
EquationsOfState:
is_a: CalculatedProperty
- class_uri: catcore:EquationsOfState
+ class_uri: coremeta4cat:EquationsOfState
mixins:
- MaterialDescriptorMixin
- DFTSettingsMixin
@@ -316,7 +316,7 @@ classes:
AqueousStability:
is_a: CalculatedProperty
- class_uri: catcore:AqueousStability
+ class_uri: coremeta4cat:AqueousStability
mixins:
- MaterialDescriptorMixin
description: |-
@@ -332,7 +332,7 @@ classes:
GrainBoundaries:
is_a: CalculatedProperty
- class_uri: catcore:GrainBoundaries
+ class_uri: coremeta4cat:GrainBoundaries
mixins:
- MaterialDescriptorMixin
description: |-
@@ -350,7 +350,7 @@ classes:
ElectronicStructure:
is_a: CalculatedProperty
- class_uri: catcore:ElectronicStructure
+ class_uri: coremeta4cat:ElectronicStructure
mixins:
- MaterialDescriptorMixin
- DFTSettingsMixin
@@ -366,7 +366,7 @@ classes:
Ferroelectrics:
is_a: CalculatedProperty
- class_uri: catcore:Ferroelectrics
+ class_uri: coremeta4cat:Ferroelectrics
mixins:
- MaterialDescriptorMixin
description: |-
@@ -383,7 +383,7 @@ classes:
BandGap:
is_a: CalculatedProperty
- class_uri: catcore:BandGap
+ class_uri: coremeta4cat:BandGap
mixins:
- MaterialDescriptorMixin
- DFTSettingsMixin
@@ -401,7 +401,7 @@ classes:
- excitonic_correction
# ==================== SLOTS ====================
-# Shared slots (temperature, pressure, …) are inherited from catcore_common.
+# Shared slots (temperature, pressure, …) are inherited from coremeta4cat_common.
slots:
@@ -412,7 +412,7 @@ slots:
Software package or code used for the simulation (e.g. VASP, Quantum ESPRESSO,
LAMMPS, CP2K, ORCA, Zacros). Include version number where possible.
range: string
- slot_uri: catcore:software_package
+ slot_uri: coremeta4cat:software_package
required: true
multivalued: true
@@ -421,7 +421,7 @@ slots:
A property computed by this Simulation, provided as a CalculatedProperty
instance. Multiple properties may be computed in a single simulation run.
range: CalculatedProperty
- slot_uri: catcore:calculated_property
+ slot_uri: coremeta4cat:calculated_property
required: true
multivalued: true
inlined_as_list: true
@@ -433,13 +433,13 @@ slots:
Exchange-correlation functional used (e.g. PBE, PBEsol, RPBE, B3LYP,
HSE06). The choice of functional directly affects accuracy.
range: string
- slot_uri: catcore:exchange_correlation_functional
+ slot_uri: coremeta4cat:exchange_correlation_functional
multivalued: true
energy_cutoff:
description: Plane-wave kinetic energy cutoff for the basis set expansion.
range: float
- slot_uri: catcore:energy_cutoff
+ slot_uri: coremeta4cat:energy_cutoff
multivalued: true
unit:
ucum_code: eV
@@ -449,7 +449,7 @@ slots:
Convergence thresholds applied during self-consistent field (SCF) and/or
geometry optimisation (e.g. energy < 1e-5 eV, forces < 0.02 eV/Å).
range: string
- slot_uri: catcore:convergence_criteria
+ slot_uri: coremeta4cat:convergence_criteria
multivalued: true
dft_u_parameters:
@@ -457,7 +457,7 @@ slots:
Hubbard U correction parameters (DFT+U). Specify element, orbital, and
U value (e.g. "Fe d: U=4.0 eV, J=0.0 eV").
range: string
- slot_uri: catcore:dft_u_parameters
+ slot_uri: coremeta4cat:dft_u_parameters
multivalued: true
spin_polarization:
@@ -465,13 +465,13 @@ slots:
Whether spin polarization (collinear magnetism) is included in the DFT
calculation. Set to true for systems containing magnetic elements.
range: boolean
- slot_uri: catcore:spin_polarization
+ slot_uri: coremeta4cat:spin_polarization
multivalued: true
total_energy_per_atom:
description: Total DFT ground-state energy divided by number of atoms in the unit cell.
range: float
- slot_uri: catcore:total_energy_per_atom
+ slot_uri: coremeta4cat:total_energy_per_atom
multivalued: true
unit:
ucum_code: eV
@@ -483,7 +483,7 @@ slots:
Force field or interatomic potential used (e.g. ReaxFF, CHARMM, Tersoff,
EAM). Include parametrisation source or reference.
range: string
- slot_uri: catcore:force_field
+ slot_uri: coremeta4cat:force_field
multivalued: true
simulation_timestep:
@@ -497,7 +497,7 @@ slots:
simulation_time:
description: Total simulated physical time of the MD trajectory.
range: float
- slot_uri: catcore:simulation_time
+ slot_uri: coremeta4cat:simulation_time
multivalued: true
unit:
ucum_code: ps
@@ -507,13 +507,13 @@ slots:
Statistical ensemble used in MD (e.g. NVE, NVT, NPT). Determines which
thermodynamic quantities are conserved.
range: string
- slot_uri: catcore:ensemble_type
+ slot_uri: coremeta4cat:ensemble_type
multivalued: true
number_of_atoms:
description: Number of atoms in the simulation cell or supercell.
range: integer
- slot_uri: catcore:number_of_atoms
+ slot_uri: coremeta4cat:number_of_atoms
multivalued: true
# ---- Microkinetics method slots ----
@@ -531,13 +531,13 @@ slots:
Numerical solver used for the microkinetic rate equations (e.g. LSODA,
stiff ODE solver, steady-state Newton method).
range: string
- slot_uri: catcore:solver_type
+ slot_uri: coremeta4cat:solver_type
multivalued: true
pressure:
description: Total pressure used in microkinetic or Monte Carlo simulation.
range: float
- slot_uri: catcore:pressure
+ slot_uri: coremeta4cat:pressure
multivalued: true
unit:
ucum_code: bar
@@ -545,13 +545,13 @@ slots:
surface_coverage:
description: Surface coverage of adsorbed species (fraction of surface sites occupied).
range: float
- slot_uri: catcore:surface_coverage
+ slot_uri: coremeta4cat:surface_coverage
multivalued: true
activation_energy:
description: Activation energy for each elementary step in the reaction mechanism.
range: float
- slot_uri: catcore:activation_energy
+ slot_uri: coremeta4cat:activation_energy
multivalued: true
unit:
ucum_code: eV
@@ -561,13 +561,13 @@ slots:
interaction_potential:
description: Interaction potential or Hamiltonian used to compute energies in MC moves.
range: string
- slot_uri: catcore:interaction_potential
+ slot_uri: coremeta4cat:interaction_potential
multivalued: true
number_of_steps:
description: Total number of Monte Carlo moves or trial configurations generated.
range: integer
- slot_uri: catcore:number_of_steps
+ slot_uri: coremeta4cat:number_of_steps
multivalued: true
lattice_size_type:
@@ -575,7 +575,7 @@ slots:
Lattice geometry and dimensions used in lattice-based MC (e.g.
"100×100 square lattice", "hexagonal 50×50").
range: string
- slot_uri: catcore:lattice_size_type
+ slot_uri: coremeta4cat:lattice_size_type
multivalued: true
acceptance_criteria:
@@ -583,19 +583,19 @@ slots:
Criterion for accepting or rejecting MC moves (e.g. Metropolis,
Kawasaki, heat-bath algorithm).
range: string
- slot_uri: catcore:acceptance_criteria
+ slot_uri: coremeta4cat:acceptance_criteria
multivalued: true
equilibration_steps:
description: Number of MC steps used for equilibration before data collection begins.
range: integer
- slot_uri: catcore:equilibration_steps
+ slot_uri: coremeta4cat:equilibration_steps
multivalued: true
sampling_interval:
description: Interval between successive MC snapshots used for property averaging.
range: integer
- slot_uri: catcore:sampling_interval
+ slot_uri: coremeta4cat:sampling_interval
multivalued: true
# ---- MaterialDescriptorMixin slots ----
@@ -605,7 +605,7 @@ slots:
Chemical composition of the simulated material (e.g. "Fe2O3", "Pt/CeO2").
Use empirical formula or SMILES for molecular systems.
range: string
- slot_uri: catcore:material_composition
+ slot_uri: coremeta4cat:material_composition
multivalued: true
crystal_structure:
@@ -623,7 +623,7 @@ slots:
Monkhorst-Pack k-point mesh used for Brillouin zone sampling
(e.g. "4×4×1" for a surface slab, "8×8×8" for a bulk cell).
range: string
- slot_uri: catcore:k_point_mesh
+ slot_uri: coremeta4cat:k_point_mesh
multivalued: true
# ---- ThermodynamicStability slots ----
@@ -631,7 +631,7 @@ slots:
formation_energy:
description: Formation energy per atom relative to elemental reference states.
range: float
- slot_uri: catcore:formation_energy
+ slot_uri: coremeta4cat:formation_energy
multivalued: true
unit:
ucum_code: eV
@@ -641,7 +641,7 @@ slots:
Elemental reference energies used to compute formation energies
(e.g. DFT total energies of elemental ground-state structures).
range: string
- slot_uri: catcore:reference_energies
+ slot_uri: coremeta4cat:reference_energies
multivalued: true
energy_above_hull:
@@ -649,7 +649,7 @@ slots:
Distance above the convex hull of stable phases (thermodynamic stability
metric). Zero for phases on the hull; positive values indicate metastability.
range: float
- slot_uri: catcore:energy_above_hull
+ slot_uri: coremeta4cat:energy_above_hull
multivalued: true
unit:
ucum_code: eV
@@ -657,7 +657,7 @@ slots:
phase_diagram_type:
description: Type of phase diagram constructed (e.g. binary, ternary, quaternary).
range: string
- slot_uri: catcore:phase_diagram_type
+ slot_uri: coremeta4cat:phase_diagram_type
multivalued: true
competing_phases:
@@ -665,7 +665,7 @@ slots:
List of stable competing phases used in convex hull construction
(e.g. "Fe2O3, Fe3O4, FeO, Fe").
range: string
- slot_uri: catcore:competing_phases
+ slot_uri: coremeta4cat:competing_phases
multivalued: true
# ---- Piezoelectricity slots ----
@@ -675,19 +675,19 @@ slots:
Components of the piezoelectric tensor e_ij (C/m²) or d_ij (pC/N),
describing the coupling between stress and electric polarization.
range: string
- slot_uri: catcore:piezoelectric_tensor
+ slot_uri: coremeta4cat:piezoelectric_tensor
multivalued: true
crystal_symmetry:
description: Point group or space group symmetry of the crystal structure.
range: string
- slot_uri: catcore:crystal_symmetry
+ slot_uri: coremeta4cat:crystal_symmetry
multivalued: true
strain_applied:
description: Magnitude of applied strain in the piezoelectric calculation.
range: float
- slot_uri: catcore:strain_applied
+ slot_uri: coremeta4cat:strain_applied
multivalued: true
ionic_electronic_contributions:
@@ -695,7 +695,7 @@ slots:
Decomposition of the piezoelectric or dielectric response into ionic
(nuclear) and electronic contributions.
range: string
- slot_uri: catcore:ionic_electronic_contributions
+ slot_uri: coremeta4cat:ionic_electronic_contributions
multivalued: true
# ---- ElasticConstants slots ----
@@ -705,13 +705,13 @@ slots:
Full Voigt-notation elastic tensor C_ij (GPa) describing the linear
elastic response of the material.
range: string
- slot_uri: catcore:elastic_tensor
+ slot_uri: coremeta4cat:elastic_tensor
multivalued: true
bulk_modulus:
description: Bulk modulus (resistance to uniform compression).
range: float
- slot_uri: catcore:bulk_modulus
+ slot_uri: coremeta4cat:bulk_modulus
multivalued: true
unit:
ucum_code: GPa
@@ -719,7 +719,7 @@ slots:
shear_modulus:
description: Shear modulus (resistance to shear deformation).
range: float
- slot_uri: catcore:shear_modulus
+ slot_uri: coremeta4cat:shear_modulus
multivalued: true
unit:
ucum_code: GPa
@@ -727,13 +727,13 @@ slots:
poisson_ratio:
description: Poisson's ratio (ratio of transverse to axial strain under uniaxial load).
range: float
- slot_uri: catcore:poisson_ratio
+ slot_uri: coremeta4cat:poisson_ratio
multivalued: true
young_modulus:
description: Young's modulus (stiffness under uniaxial tension or compression).
range: float
- slot_uri: catcore:young_modulus
+ slot_uri: coremeta4cat:young_modulus
multivalued: true
unit:
ucum_code: GPa
@@ -745,7 +745,7 @@ slots:
Cleavage energy per unit area required to create the surface from the bulk.
A lower value indicates a more stable surface facet.
range: float
- slot_uri: catcore:surface_energy
+ slot_uri: coremeta4cat:surface_energy
multivalued: true
unit:
ucum_code: J/m2
@@ -754,13 +754,13 @@ slots:
description: |-
Miller indices of the modelled surface facet (e.g. "(111)", "(110)", "(100)").
range: string
- slot_uri: catcore:miller_indices
+ slot_uri: coremeta4cat:miller_indices
multivalued: true
slab_thickness:
description: Thickness of the periodic slab model used to represent the surface.
range: float
- slot_uri: catcore:slab_thickness
+ slot_uri: coremeta4cat:slab_thickness
multivalued: true
unit:
ucum_code: Ao # angstrom
@@ -770,7 +770,7 @@ slots:
Vacuum layer thickness added above the slab to prevent spurious
periodic interactions between slab images.
range: float
- slot_uri: catcore:vacuum_spacing
+ slot_uri: coremeta4cat:vacuum_spacing
multivalued: true
unit:
ucum_code: Ao # angstrom
@@ -780,7 +780,7 @@ slots:
Method used to terminate the slab and handle dangling bonds
(e.g. H-passivation, OH-termination, dipole correction).
range: string
- slot_uri: catcore:surface_termination_method
+ slot_uri: coremeta4cat:surface_termination_method
multivalued: true
# ---- DielectricTensors slots ----
@@ -790,7 +790,7 @@ slots:
Components of the static and/or high-frequency dielectric tensor epsilon_ij,
computed from DFPT.
range: string
- slot_uri: catcore:dielectric_tensor
+ slot_uri: coremeta4cat:dielectric_tensor
multivalued: true
born_effective_charges:
@@ -798,7 +798,7 @@ slots:
Born effective charge tensors Z*_ij for each atom, describing how
the polarization changes with atomic displacements.
range: string
- slot_uri: catcore:born_effective_charges
+ slot_uri: coremeta4cat:born_effective_charges
multivalued: true
# ---- PhononDispersion slots ----
@@ -808,7 +808,7 @@ slots:
Method used to compute the interatomic force constants (e.g. finite
differences / supercell method, DFPT/linear response).
range: string
- slot_uri: catcore:force_constant_method
+ slot_uri: coremeta4cat:force_constant_method
multivalued: true
kq_point_mesh:
@@ -816,13 +816,13 @@ slots:
k/q-point mesh for phonon Brillouin zone sampling (e.g. "8×8×8").
Distinct from the electronic k-point mesh.
range: string
- slot_uri: catcore:kq_point_mesh
+ slot_uri: coremeta4cat:kq_point_mesh
multivalued: true
smearing_parameter:
description: Smearing or broadening parameter applied to the phonon density of states.
range: float
- slot_uri: catcore:smearing_parameter
+ slot_uri: coremeta4cat:smearing_parameter
multivalued: true
unit:
ucum_code: eV
@@ -832,7 +832,7 @@ slots:
Whether imaginary (soft) phonon modes are present in the dispersion.
Imaginary modes indicate dynamical instability of the structure.
range: boolean
- slot_uri: catcore:imaginary_modes
+ slot_uri: coremeta4cat:imaginary_modes
multivalued: true
# ---- EquationsOfState slots ----
@@ -842,19 +842,19 @@ slots:
Parametric model used to fit the energy-volume curve
(e.g. Birch-Murnaghan 3rd order, Vinet, Murnaghan).
range: string
- slot_uri: catcore:fit_method
+ slot_uri: coremeta4cat:fit_method
multivalued: true
pressure_derivative:
description: Pressure derivative of the bulk modulus B' (dimensionless).
range: float
- slot_uri: catcore:pressure_derivative
+ slot_uri: coremeta4cat:pressure_derivative
multivalued: true
fit_residuals:
description: Root-mean-square residuals of the energy-volume fit.
range: float
- slot_uri: catcore:fit_residuals
+ slot_uri: coremeta4cat:fit_residuals
multivalued: true
# ---- AqueousStability slots ----
@@ -862,7 +862,7 @@ slots:
ph_range:
description: pH range covered in the Pourbaix stability diagram (e.g. "0–14").
range: string
- slot_uri: catcore:ph_range
+ slot_uri: coremeta4cat:ph_range
multivalued: true
potential_range:
@@ -870,7 +870,7 @@ slots:
Electrode potential range covered in the Pourbaix diagram
(e.g. "-2 to +2 V vs SHE").
range: string
- slot_uri: catcore:potential_range
+ slot_uri: coremeta4cat:potential_range
multivalued: true
solvation_model:
@@ -878,13 +878,13 @@ slots:
Implicit solvation model used to account for aqueous environment
(e.g. VASPsol, SCCS/Environ, COSMO).
range: string
- slot_uri: catcore:solvation_model
+ slot_uri: coremeta4cat:solvation_model
multivalued: true
ionic_strength:
description: Ionic strength of the electrolyte solution modelled.
range: float
- slot_uri: catcore:ionic_strength
+ slot_uri: coremeta4cat:ionic_strength
multivalued: true
unit:
ucum_code: mol/L
@@ -896,13 +896,13 @@ slots:
Crystallographic plane of the grain boundary, expressed using
Miller indices (e.g. "Sigma5 (310)[001]").
range: string
- slot_uri: catcore:grain_boundary_plane
+ slot_uri: coremeta4cat:grain_boundary_plane
multivalued: true
misorientation_angle:
description: Misorientation angle between adjacent grains at the boundary.
range: float
- slot_uri: catcore:misorientation_angle
+ slot_uri: coremeta4cat:misorientation_angle
multivalued: true
unit:
ucum_code: deg
@@ -910,7 +910,7 @@ slots:
grain_boundary_energy:
description: Excess energy per unit area of the grain boundary.
range: float
- slot_uri: catcore:grain_boundary_energy
+ slot_uri: coremeta4cat:grain_boundary_energy
multivalued: true
unit:
ucum_code: J/m2
@@ -920,13 +920,13 @@ slots:
Dimensions of the simulation cell used to model the grain boundary
(e.g. "10×10×30 nm").
range: string
- slot_uri: catcore:simulation_cell_size
+ slot_uri: coremeta4cat:simulation_cell_size
multivalued: true
gb_excess_volume:
description: Excess volume per unit area associated with the grain boundary.
range: float
- slot_uri: catcore:gb_excess_volume
+ slot_uri: coremeta4cat:gb_excess_volume
multivalued: true
gb_structural_units:
@@ -934,7 +934,7 @@ slots:
Description of the structural units (repeating atomic motifs) that
constitute the grain boundary structure.
range: string
- slot_uri: catcore:gb_structural_units
+ slot_uri: coremeta4cat:gb_structural_units
multivalued: true
charge_defect_segregation:
@@ -942,7 +942,7 @@ slots:
Data describing charge carrier or point defect segregation behaviour
at the grain boundary (e.g. segregation energy per defect type).
range: string
- slot_uri: catcore:charge_defect_segregation
+ slot_uri: coremeta4cat:charge_defect_segregation
multivalued: true
# ---- ElectronicStructure slots ----
@@ -952,7 +952,7 @@ slots:
Electronic smearing scheme and width used in the SCF calculation
(e.g. Methfessel-Paxton order 1 with sigma=0.2 eV, Gaussian with sigma=0.05 eV).
range: string
- slot_uri: catcore:smearing_method
+ slot_uri: coremeta4cat:smearing_method
multivalued: true
spin_polarized:
@@ -960,7 +960,7 @@ slots:
Whether the electronic structure calculation is spin-polarized
(accounts for spin-up and spin-down electrons separately).
range: boolean
- slot_uri: catcore:spin_polarized
+ slot_uri: coremeta4cat:spin_polarized
multivalued: true
band_path:
@@ -968,13 +968,13 @@ slots:
High-symmetry k-path through the Brillouin zone used to plot the
band structure (e.g. "Gamma-X-M-Gamma-R" for cubic, following SeeK-path convention).
range: string
- slot_uri: catcore:band_path
+ slot_uri: coremeta4cat:band_path
multivalued: true
fermi_energy:
description: Fermi energy (chemical potential of electrons) in the calculated system.
range: float
- slot_uri: catcore:fermi_energy
+ slot_uri: coremeta4cat:fermi_energy
multivalued: true
unit:
ucum_code: eV
@@ -986,13 +986,13 @@ slots:
Crystallographic direction of the spontaneous electric polarization
(e.g. "[001]" for tetragonal BaTiO_3).
range: string
- slot_uri: catcore:polarization_direction
+ slot_uri: coremeta4cat:polarization_direction
multivalued: true
spontaneous_polarization:
description: Magnitude of the spontaneous electric polarization.
range: float
- slot_uri: catcore:spontaneous_polarization
+ slot_uri: coremeta4cat:spontaneous_polarization
multivalued: true
unit:
ucum_code: uC/cm2
@@ -1002,13 +1002,13 @@ slots:
Reference (paraelectric/centrosymmetric) structure used as the zero-
polarization endpoint in the Berry-phase polarization calculation.
range: string
- slot_uri: catcore:reference_structure
+ slot_uri: coremeta4cat:reference_structure
multivalued: true
switching_barrier:
description: Energy barrier for polarization switching between equivalent states.
range: float
- slot_uri: catcore:switching_barrier
+ slot_uri: coremeta4cat:switching_barrier
multivalued: true
unit:
ucum_code: eV
@@ -1016,7 +1016,7 @@ slots:
coercive_field:
description: Electric field required to reverse the polarization direction.
range: float
- slot_uri: catcore:coercive_field
+ slot_uri: coremeta4cat:coercive_field
multivalued: true
unit:
ucum_code: kV/cm
@@ -1024,7 +1024,7 @@ slots:
temperature_dependence:
description: Description of how the ferroelectric properties vary with temperature.
range: string
- slot_uri: catcore:temperature_dependence
+ slot_uri: coremeta4cat:temperature_dependence
multivalued: true
# ---- BandGap slots ----
@@ -1042,13 +1042,13 @@ slots:
Model structure used in the band gap calculation (e.g. bulk unit cell,
surface slab, defect supercell).
range: string
- slot_uri: catcore:structure_model
+ slot_uri: coremeta4cat:structure_model
multivalued: true
smearing_broadening:
description: Gaussian or Lorentzian broadening applied to the simulated spectrum.
range: float
- slot_uri: catcore:smearing_broadening
+ slot_uri: coremeta4cat:smearing_broadening
multivalued: true
unit:
ucum_code: eV
@@ -1058,13 +1058,13 @@ slots:
Band gap character: "direct" (VBM and CBM at same k-point) or
"indirect" (VBM and CBM at different k-points).
range: string
- slot_uri: catcore:direct_indirect
+ slot_uri: coremeta4cat:direct_indirect
multivalued: true
experimental_reference:
description: Experimental band gap value used for benchmarking the calculation.
range: float
- slot_uri: catcore:experimental_reference
+ slot_uri: coremeta4cat:experimental_reference
multivalued: true
unit:
ucum_code: eV
@@ -1074,7 +1074,7 @@ slots:
Whether a many-body GW correction or hybrid functional (e.g. HSE06)
was applied to correct the DFT band gap underestimation.
range: boolean
- slot_uri: catcore:gw_hybrid_correction
+ slot_uri: coremeta4cat:gw_hybrid_correction
multivalued: true
excitonic_correction:
@@ -1082,7 +1082,7 @@ slots:
Excitonic correction (from Bethe-Salpeter equation) applied to the
optical band gap.
range: float
- slot_uri: catcore:excitonic_correction
+ slot_uri: coremeta4cat:excitonic_correction
multivalued: true
unit:
ucum_code: eV
diff --git a/src/catcore/schema/catcore_synthesis_ap.yaml b/src/coremeta4cat/schema/coremeta4cat_synthesis_ap.yaml
similarity index 86%
rename from src/catcore/schema/catcore_synthesis_ap.yaml
rename to src/coremeta4cat/schema/coremeta4cat_synthesis_ap.yaml
index 651046c15..dc1be1eef 100644
--- a/src/catcore/schema/catcore_synthesis_ap.yaml
+++ b/src/coremeta4cat/schema/coremeta4cat_synthesis_ap.yaml
@@ -1,9 +1,9 @@
---
-id: https://w3id.org/nfdi4cat/catcore/synthesis/
-name: catcore-synthesis-ap
-title: CatCore Synthesis Application Profile
+id: https://w3id.org/nfdi4cat/coremeta4cat/synthesis/
+name: coremeta4cat-synthesis-ap
+title: CoreMeta4cat Synthesis Application Profile
description: |-
- Application profile for catalyst synthesis within the CatCore metadata model.
+ Application profile for catalyst synthesis within the CoreMeta4cat metadata model.
This module defines:
- Synthesis — the DataGeneratingActivity in which a catalyst is prepared
@@ -25,9 +25,9 @@ license: CC-BY-4.0
version: 1.0.0
prefixes:
- catcore: https://w3id.org/nfdi4cat/catcore/
+ coremeta4cat: https://w3id.org/nfdi4cat/coremeta4cat/
VOC4CAT: https://w3id.org/nfdi4cat/voc4cat_
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
prov: http://www.w3.org/ns/prov#
OBI: http://purl.obolibrary.org/obo/OBI_
@@ -37,12 +37,12 @@ prefixes:
AFR: http://purl.allotrope.org/ontologies/result#AFR_
AFP: http://purl.allotrope.org/ontologies/process#AFP_
-default_prefix: catcore
+default_prefix: coremeta4cat
default_range: string
imports:
- linkml:types
- - catcore_common # shared slots (atmosphere, temperature, drying_*, calcination_*, …) + enums
+ - coremeta4cat_common # shared slots (atmosphere, temperature, drying_*, calcination_*, …) + enums
# ==================== MIXINS ====================
# Slot groups shared across multiple PreparationMethod subclasses.
@@ -205,7 +205,7 @@ classes:
Impregnation:
is_a: PreparationMethod
- class_uri: catcore:Impregnation
+ class_uri: coremeta4cat:Impregnation
mixins:
- DryingMixin
- CalcinationMixin
@@ -219,7 +219,7 @@ classes:
CoPrecipitation:
is_a: PreparationMethod
- class_uri: catcore:CoPrecipitation
+ class_uri: coremeta4cat:CoPrecipitation
mixins:
- PrecipitationMixin
- DryingMixin
@@ -230,7 +230,7 @@ classes:
SolGel:
is_a: PreparationMethod
- class_uri: catcore:SolGel
+ class_uri: coremeta4cat:SolGel
mixins:
- DryingMixin
description: |-
@@ -244,7 +244,7 @@ classes:
Solvothermal:
is_a: PreparationMethod
- class_uri: catcore:Solvothermal
+ class_uri: coremeta4cat:Solvothermal
mixins:
- ThermalSynthesisMixin
description: |-
@@ -257,7 +257,7 @@ classes:
PlasmaAssisted:
is_a: PreparationMethod
- class_uri: catcore:PlasmaAssisted
+ class_uri: coremeta4cat:PlasmaAssisted
mixins:
- ThermalSynthesisMixin
description: |-
@@ -271,7 +271,7 @@ classes:
CombustionSynthesis:
is_a: PreparationMethod
- class_uri: catcore:CombustionSynthesis
+ class_uri: coremeta4cat:CombustionSynthesis
mixins:
- ThermalSynthesisMixin
description: |-
@@ -286,7 +286,7 @@ classes:
AtomicLayerDeposition:
is_a: PreparationMethod
- class_uri: catcore:AtomicLayerDeposition
+ class_uri: coremeta4cat:AtomicLayerDeposition
description: |-
Catalyst preparation by atomic layer deposition (ALD): sequential
self-limiting surface reactions deposit a conformal thin film
@@ -301,7 +301,7 @@ classes:
DepositionPrecipitation:
is_a: PreparationMethod
- class_uri: catcore:DepositionPrecipitation
+ class_uri: coremeta4cat:DepositionPrecipitation
mixins:
- PrecipitationMixin
- DryingMixin
@@ -315,7 +315,7 @@ classes:
MicrowaveAssisted:
is_a: PreparationMethod
- class_uri: catcore:MicrowaveAssisted
+ class_uri: coremeta4cat:MicrowaveAssisted
mixins:
- ThermalSynthesisMixin
description: |-
@@ -327,7 +327,7 @@ classes:
SonochemicalSynthesis:
is_a: PreparationMethod
- class_uri: catcore:SonochemicalSynthesis
+ class_uri: coremeta4cat:SonochemicalSynthesis
mixins:
- DryingMixin
- CalcinationMixin
@@ -358,7 +358,7 @@ classes:
MechanochemicalSynthesis:
is_a: PreparationMethod
- class_uri: catcore:MechanochemicalSynthesis
+ class_uri: coremeta4cat:MechanochemicalSynthesis
mixins:
- ThermalSynthesisMixin
description: |-
@@ -375,7 +375,7 @@ classes:
Sublimation:
is_a: PreparationMethod
- class_uri: catcore:Sublimation
+ class_uri: coremeta4cat:Sublimation
mixins:
- ThermalSynthesisMixin
description: |-
@@ -386,7 +386,7 @@ classes:
MolecularSynthesis:
is_a: PreparationMethod
- class_uri: catcore:MolecularSynthesis
+ class_uri: coremeta4cat:MolecularSynthesis
mixins:
- DryingMixin
description: |-
@@ -410,7 +410,7 @@ classes:
ExsolutionSynthesis:
is_a: PreparationMethod
- class_uri: catcore:ExsolutionSynthesis
+ class_uri: coremeta4cat:ExsolutionSynthesis
mixins:
- CalcinationMixin
description: |-
@@ -421,7 +421,7 @@ classes:
# Only slots exclusive to this subprofile are declared here.
# Shared slots (atmosphere, temperature, drying_*, calcination_*, equipment,
# vessel_type, carrier_gas, stirring_*, number_of_cycles, …) are inherited
-# from catcore_common.
+# from coremeta4cat_common.
slots:
@@ -430,7 +430,7 @@ slots:
nominal_composition:
description: Nominal elemental or chemical composition of the catalyst (e.g. 5wt% Pt/Al2O3).
range: string
- slot_uri: catcore:nominal_composition
+ slot_uri: coremeta4cat:nominal_composition
multivalued: true
catalyst_measured_properties:
@@ -438,19 +438,19 @@ slots:
Key measured properties of the resulting catalyst
(e.g. BET surface area, sieve fraction, molar ratio).
range: string
- slot_uri: catcore:catalyst_measured_properties
+ slot_uri: coremeta4cat:catalyst_measured_properties
multivalued: true
storage_conditions:
description: Conditions under which the catalyst is stored (e.g. inert atmosphere, 4°C).
range: string
- slot_uri: catcore:storage_conditions
+ slot_uri: coremeta4cat:storage_conditions
multivalued: true
support:
description: Support material on which the active phase is deposited (e.g. Al2O3, SiO2).
range: string
- slot_uri: catcore:support
+ slot_uri: coremeta4cat:support
multivalued: true
# ---- Precursor slots ----
@@ -458,7 +458,7 @@ slots:
precursor_quantity:
description: Quantity of precursor used in synthesis.
range: float
- slot_uri: catcore:precursor_quantity
+ slot_uri: coremeta4cat:precursor_quantity
multivalued: true
unit:
ucum_code: g
@@ -468,13 +468,13 @@ slots:
impregnation_type:
description: Type of impregnation used (wet, dry, incipient wetness).
range: ImpregnationTypeEnum
- slot_uri: catcore:impregnation_type
+ slot_uri: coremeta4cat:impregnation_type
multivalued: true
impregnation_duration:
description: Duration of the impregnation step.
range: float
- slot_uri: catcore:impregnation_duration
+ slot_uri: coremeta4cat:impregnation_duration
multivalued: true
unit:
ucum_code: h
@@ -482,7 +482,7 @@ slots:
impregnation_temperature:
description: Temperature during the impregnation step.
range: float
- slot_uri: catcore:impregnation_temperature
+ slot_uri: coremeta4cat:impregnation_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -492,13 +492,13 @@ slots:
precipitating_agent:
description: Chemical agent used to induce precipitation (e.g. NaOH, NH3).
range: string
- slot_uri: catcore:precipitating_agent
+ slot_uri: coremeta4cat:precipitating_agent
multivalued: true
precipitating_concentration:
description: Concentration of the precipitating agent.
range: float
- slot_uri: catcore:precipitating_concentration
+ slot_uri: coremeta4cat:precipitating_concentration
multivalued: true
unit:
ucum_code: mol/L
@@ -512,7 +512,7 @@ slots:
mixing_rate:
description: Stirring rate during mixing of synthesis components.
range: float
- slot_uri: catcore:mixing_rate
+ slot_uri: coremeta4cat:mixing_rate
multivalued: true
unit:
ucum_code: rpm
@@ -520,7 +520,7 @@ slots:
mixing_time:
description: Duration of the mixing step.
range: float
- slot_uri: catcore:mixing_time
+ slot_uri: coremeta4cat:mixing_time
multivalued: true
unit:
ucum_code: h
@@ -528,7 +528,7 @@ slots:
mixing_temperature:
description: Temperature during mixing.
range: float
- slot_uri: catcore:mixing_temperature
+ slot_uri: coremeta4cat:mixing_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -536,25 +536,25 @@ slots:
order_of_addition:
description: Order in which reagents or components are combined.
range: string
- slot_uri: catcore:order_of_addition
+ slot_uri: coremeta4cat:order_of_addition
multivalued: true
filtration:
description: Filtration method used to separate the precipitate (e.g. vacuum filtration).
range: string
- slot_uri: catcore:filtration
+ slot_uri: coremeta4cat:filtration
multivalued: true
purification:
description: Purification method applied after synthesis (e.g. washing, dialysis).
range: string
- slot_uri: catcore:purification
+ slot_uri: coremeta4cat:purification
multivalued: true
aging_temperature:
description: Temperature during aging of the precipitate or gel.
range: float
- slot_uri: catcore:aging_temperature
+ slot_uri: coremeta4cat:aging_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -562,7 +562,7 @@ slots:
aging_time:
description: Duration of the aging step.
range: float
- slot_uri: catcore:aging_time
+ slot_uri: coremeta4cat:aging_time
multivalued: true
unit:
ucum_code: h
@@ -572,7 +572,7 @@ slots:
deposition_temperature:
description: Temperature during the deposition step.
range: float
- slot_uri: catcore:deposition_temperature
+ slot_uri: coremeta4cat:deposition_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -580,7 +580,7 @@ slots:
deposition_time:
description: Duration of the deposition step.
range: float
- slot_uri: catcore:deposition_time
+ slot_uri: coremeta4cat:deposition_time
multivalued: true
unit:
ucum_code: h
@@ -616,19 +616,19 @@ slots:
hydrolysis_ratio:
description: Molar ratio of water to alkoxide precursor used in hydrolysis.
range: float
- slot_uri: catcore:hydrolysis_ratio
+ slot_uri: coremeta4cat:hydrolysis_ratio
multivalued: true
drying:
description: Drying method used for the gel (e.g. supercritical drying, freeze drying).
range: string
- slot_uri: catcore:drying
+ slot_uri: coremeta4cat:drying
multivalued: true
surfactant_template:
description: Surfactant or structure-directing agent used as a template.
range: string
- slot_uri: catcore:surfactant_template
+ slot_uri: coremeta4cat:surfactant_template
multivalued: true
# ---- Solvothermal-specific slots ----
@@ -636,7 +636,7 @@ slots:
filling_volume:
description: Volume of solution relative to autoclave volume (filling degree).
range: float
- slot_uri: catcore:filling_volume
+ slot_uri: coremeta4cat:filling_volume
multivalued: true
unit:
ucum_code: mL
@@ -644,13 +644,13 @@ slots:
stirrer_type:
description: Type of stirrer used (e.g. magnetic, mechanical, none).
range: string
- slot_uri: catcore:stirrer_type
+ slot_uri: coremeta4cat:stirrer_type
multivalued: true
cooling_rate:
description: Rate at which the reactor is cooled after synthesis.
range: float
- slot_uri: catcore:cooling_rate
+ slot_uri: coremeta4cat:cooling_rate
multivalued: true
unit:
ucum_code: Cel/min
@@ -660,13 +660,13 @@ slots:
plasma_type:
description: Type of plasma used (e.g. DBD, microwave, RF plasma).
range: string
- slot_uri: catcore:plasma_type
+ slot_uri: coremeta4cat:plasma_type
multivalued: true
power_input:
description: Power input to the plasma reactor or other energy source.
range: float
- slot_uri: catcore:power_input
+ slot_uri: coremeta4cat:power_input
multivalued: true
unit:
ucum_code: W
@@ -674,7 +674,7 @@ slots:
exposure_time:
description: Duration of plasma or other energy exposure.
range: float
- slot_uri: catcore:exposure_time
+ slot_uri: coremeta4cat:exposure_time
multivalued: true
unit:
ucum_code: min
@@ -684,25 +684,25 @@ slots:
fuel:
description: Organic fuel used in combustion synthesis (e.g. urea, glycine).
range: string
- slot_uri: catcore:fuel
+ slot_uri: coremeta4cat:fuel
multivalued: true
oxidizer:
description: Oxidizer used in combustion synthesis (e.g. metal nitrates).
range: string
- slot_uri: catcore:oxidizer
+ slot_uri: coremeta4cat:oxidizer
multivalued: true
fuel_to_oxidizer_ratio:
description: Molar ratio of fuel to oxidizer.
range: float
- slot_uri: catcore:fuel_to_oxidizer_ratio
+ slot_uri: coremeta4cat:fuel_to_oxidizer_ratio
multivalued: true
set_temperature:
description: Target temperature set for the combustion reaction.
range: float
- slot_uri: catcore:set_temperature
+ slot_uri: coremeta4cat:set_temperature
multivalued: true
unit:
ucum_code: Cel
@@ -710,7 +710,7 @@ slots:
post_treatment:
description: Post-synthesis treatment applied to the combustion product.
range: string
- slot_uri: catcore:post_treatment
+ slot_uri: coremeta4cat:post_treatment
multivalued: true
# ---- AtomicLayerDeposition-specific slots ----
@@ -724,7 +724,7 @@ slots:
pulse_time:
description: Duration of the precursor pulse in each ALD cycle.
range: float
- slot_uri: catcore:pulse_time
+ slot_uri: coremeta4cat:pulse_time
multivalued: true
unit:
ucum_code: s
@@ -742,7 +742,7 @@ slots:
power:
description: Microwave power applied.
range: float
- slot_uri: catcore:power
+ slot_uri: coremeta4cat:power
multivalued: true
unit:
ucum_code: W
@@ -750,7 +750,7 @@ slots:
microwave_frequency:
description: Frequency of microwave irradiation.
range: float
- slot_uri: catcore:microwave_frequency
+ slot_uri: coremeta4cat:microwave_frequency
multivalued: true
unit:
ucum_code: GHz
@@ -760,7 +760,7 @@ slots:
sonication_power:
description: Acoustic power applied during sonication.
range: float
- slot_uri: catcore:sonication_power
+ slot_uri: coremeta4cat:sonication_power
multivalued: true
unit:
ucum_code: W
@@ -768,7 +768,7 @@ slots:
sonication_duration:
description: Duration of ultrasonic irradiation.
range: float
- slot_uri: catcore:sonication_duration
+ slot_uri: coremeta4cat:sonication_duration
multivalued: true
unit:
ucum_code: min
@@ -778,25 +778,25 @@ slots:
flame_type:
description: Type of flame used in FSP (e.g. methane/oxygen, H2/O2).
range: string
- slot_uri: catcore:flame_type
+ slot_uri: coremeta4cat:flame_type
multivalued: true
inlet_system:
description: Configuration of the precursor inlet system.
range: string
- slot_uri: catcore:inlet_system
+ slot_uri: coremeta4cat:inlet_system
multivalued: true
flame_ring:
description: Configuration of the supporting flame ring.
range: string
- slot_uri: catcore:flame_ring
+ slot_uri: coremeta4cat:flame_ring
multivalued: true
capillary_pressure:
description: Pressure applied at the capillary nozzle during FSP.
range: float
- slot_uri: catcore:capillary_pressure
+ slot_uri: coremeta4cat:capillary_pressure
multivalued: true
unit:
ucum_code: bar
@@ -804,7 +804,7 @@ slots:
fuel_dispersant_ratio:
description: Volume ratio of fuel to dispersant used in FSP.
range: float
- slot_uri: catcore:fuel_dispersant_ratio
+ slot_uri: coremeta4cat:fuel_dispersant_ratio
multivalued: true
# ---- MechanochemicalSynthesis-specific slots ----
@@ -812,7 +812,7 @@ slots:
vessel_volume:
description: Volume of the milling vessel.
range: float
- slot_uri: catcore:vessel_volume
+ slot_uri: coremeta4cat:vessel_volume
multivalued: true
unit:
ucum_code: mL
@@ -820,13 +820,13 @@ slots:
size_and_material:
description: Size and material of the milling vessel and components.
range: string
- slot_uri: catcore:size_and_material
+ slot_uri: coremeta4cat:size_and_material
multivalued: true
milling_speed:
description: Rotational speed during milling.
range: float
- slot_uri: catcore:milling_speed
+ slot_uri: coremeta4cat:milling_speed
multivalued: true
unit:
ucum_code: rpm
@@ -834,7 +834,7 @@ slots:
milling_duration:
description: Total duration of the milling process.
range: float
- slot_uri: catcore:milling_duration
+ slot_uri: coremeta4cat:milling_duration
multivalued: true
unit:
ucum_code: h
@@ -842,13 +842,13 @@ slots:
ball_material:
description: Material of the milling balls (e.g. zirconia, stainless steel).
range: string
- slot_uri: catcore:ball_material
+ slot_uri: coremeta4cat:ball_material
multivalued: true
ball_size:
description: Diameter of the milling balls.
range: float
- slot_uri: catcore:ball_size
+ slot_uri: coremeta4cat:ball_size
multivalued: true
unit:
ucum_code: mm
@@ -856,7 +856,7 @@ slots:
ball_to_powder_ratio:
description: Mass ratio of milling balls to powder charge.
range: float
- slot_uri: catcore:ball_to_powder_ratio
+ slot_uri: coremeta4cat:ball_to_powder_ratio
multivalued: true
# ---- MolecularSynthesis-specific slots ----
@@ -864,31 +864,31 @@ slots:
reaction_vessel:
description: Type of reaction vessel used (e.g. Schlenk flask, round-bottom flask).
range: string
- slot_uri: catcore:reaction_vessel
+ slot_uri: coremeta4cat:reaction_vessel
multivalued: true
mixing_device:
description: Device used for mixing (e.g. magnetic stirrer, vortex mixer).
range: string
- slot_uri: catcore:mixing_device
+ slot_uri: coremeta4cat:mixing_device
multivalued: true
crystallisation_solvents:
description: Solvent(s) used for crystallisation.
range: string
- slot_uri: catcore:crystallisation_solvents
+ slot_uri: coremeta4cat:crystallisation_solvents
multivalued: true
precipitation_agent:
description: Agent used to induce precipitation in molecular synthesis.
range: string
- slot_uri: catcore:precipitation_agent
+ slot_uri: coremeta4cat:precipitation_agent
multivalued: true
crystallisation_duration:
description: Duration of the crystallisation step.
range: float
- slot_uri: catcore:crystallisation_duration
+ slot_uri: coremeta4cat:crystallisation_duration
multivalued: true
unit:
ucum_code: h
@@ -896,13 +896,13 @@ slots:
purification_solvent:
description: Solvent used for washing or recrystallisation during purification.
range: string
- slot_uri: catcore:purification_solvent
+ slot_uri: coremeta4cat:purification_solvent
multivalued: true
temperature_ramp:
description: Temperature ramp rate applied during drying or activation.
range: float
- slot_uri: catcore:temperature_ramp
+ slot_uri: coremeta4cat:temperature_ramp
multivalued: true
unit:
ucum_code: Cel/min
diff --git a/src/catcore/schema/dcat_4c_ap.yaml b/src/coremeta4cat/schema/dcat_4c_ap.yaml
similarity index 98%
rename from src/catcore/schema/dcat_4c_ap.yaml
rename to src/coremeta4cat/schema/dcat_4c_ap.yaml
index 5af8d714d..16efdbeec 100644
--- a/src/catcore/schema/dcat_4c_ap.yaml
+++ b/src/coremeta4cat/schema/dcat_4c_ap.yaml
@@ -12,7 +12,7 @@ see_also:
prefixes:
dcat_4c_ap: https://nfdi-de.github.io/chem-dcat-ap/dcat_4c_ap.yaml#
chemdcatap: https://nfdi-de.github.io/chem-dcat-ap/
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
biolink: https://w3id.org/biolink/vocab/
schema: http://schema.org/
diff --git a/src/catcore/schema/material_entities_ap.yaml b/src/coremeta4cat/schema/material_entities_ap.yaml
similarity index 99%
rename from src/catcore/schema/material_entities_ap.yaml
rename to src/coremeta4cat/schema/material_entities_ap.yaml
index 10453e6e8..0574dcc94 100644
--- a/src/catcore/schema/material_entities_ap.yaml
+++ b/src/coremeta4cat/schema/material_entities_ap.yaml
@@ -7,7 +7,7 @@ description: |-
license: CC-BY 4.0
prefixes:
material_entities_ap: https://nfdi-de.github.io/chem-dcat-ap/material_entities_ap.yaml#
- dcatapplus: https://nfdi-de.github.io/dcat-ap-plus/
+ dcatapplus: https://w3id.org/nfdi-de/dcat-ap-plus/
linkml: https://w3id.org/linkml/
biolink: https://w3id.org/biolink/vocab/
schema: http://schema.org/
diff --git a/tests/data/valid/Synthesis-001.yaml b/tests/data/valid/Synthesis-001.yaml
index cc3215903..abfa2b2d6 100644
--- a/tests/data/valid/Synthesis-001.yaml
+++ b/tests/data/valid/Synthesis-001.yaml
@@ -3,10 +3,10 @@
# Target class: Synthesis
#
# NOTE: realized_plan range is PreparationMethod (abstract, no domain slots).
-# Domain synthesis parameters that live on catcore_common ARE accepted on Synthesis directly.
+# Domain synthesis parameters that live on coremeta4cat_common ARE accepted on Synthesis directly.
# realized_plan: title/description only — the loader cannot dispatch to Impregnation subclass.
-id: "catcore:SYNTH_001_Pt_Al2O3"
+id: "coremeta4cat:SYNTH_001_Pt_Al2O3"
nominal_composition:
- "5 wt% Pt/Al2O3"
catalyst_measured_properties:
@@ -20,7 +20,7 @@ solvent:
sample_pretreatment:
- "reduction in H2 at 400 deg C for 2 hours prior to catalytic testing"
had_input_entity:
- - id: "catcore:PREC_001_H2PtCl6"
+ - id: "coremeta4cat:PREC_001_H2PtCl6"
title: "chloroplatinic acid hexahydrate"
precursor_quantity:
- 0.0485
diff --git a/tests/test_data.py b/tests/test_data.py
index 0d4ca5c57..8cb98e867 100644
--- a/tests/test_data.py
+++ b/tests/test_data.py
@@ -4,7 +4,7 @@
import pytest
from pathlib import Path
-import src.catcore.datamodel.catcore
+import src.coremeta4cat.datamodel.coremeta4cat
from linkml_runtime.loaders import yaml_loader
DATA_DIR_VALID = Path(__file__).parent / "data" / "valid"
@@ -19,7 +19,7 @@ def test_valid_data_files(filepath):
"""Test loading of all valid data files."""
target_class_name = Path(filepath).stem.split("-")[0]
tgt_class = getattr(
- src.catcore.datamodel.catcore,
+ src.coremeta4cat.datamodel.coremeta4cat,
target_class_name,
)
obj = yaml_loader.load(filepath, target_class=tgt_class)