Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 30 additions & 29 deletions docs/schema/coremeta4cat.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -715,9 +715,10 @@ slots:
mappings:
- VOC4CAT:0000187
slot_uri: VOC4CAT:0000187
owner: ThermalSynthesisMixin
owner: Characterization
domain_of:
- ThermalSynthesisMixin
- Characterization
range: string
multivalued: true
flow_rate:
Expand Down Expand Up @@ -3716,6 +3717,27 @@ slots:
domain_of:
- FluidizedBedReactor
range: string
product_identification_method:
name: product_identification_method
definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/product_identification_method
description: 'The analytical method used to identify and/or quantify reaction
products.

Should reference a CharacterizationTechnique instance (e.g. GCMS, HPLC_MS).

The abstract stub ProductIdentificationMethod is retained for backward compatibility.'
from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- coremeta4cat:product_identification_method
slot_uri: coremeta4cat:product_identification_method
owner: Reaction
domain_of:
- Reaction
range: ProductIdentificationMethod
required: true
multivalued: true
inlined: true
inlined_as_list: true
software_package:
name: software_package
definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/software_package
Expand Down Expand Up @@ -6975,23 +6997,6 @@ slots:
binds_value_of: id
description: Restricts the allowable defined terms to the QUDT Unit vocabulary.
recommended: true
product_identification_method:
name: product_identification_method
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 coremeta4cat_characterization_ap). The abstract stub

ProductIdentificationMethod is retained for backward compatibility.'
from_schema: https://w3id.org/nfdi4cat/coremeta4cat
slot_uri: coremeta4cat:product_identification_method
range: ProductIdentificationMethod
required: true
multivalued: true
inlined: true
inlined_as_list: true
CatalysisDataset_rdf_type:
name: CatalysisDataset_rdf_type
definition_uri: https://w3id.org/nfdi-de/dcat-ap-plus/rdf_type
Expand Down Expand Up @@ -7442,6 +7447,7 @@ slots:
inlined_as_list: true
Reaction_product_identification_method:
name: Reaction_product_identification_method
definition_uri: https://w3id.org/nfdi4cat/coremeta4cat/product_identification_method
description: 'The analytical method used to identify and/or quantify reaction
products.

Expand All @@ -7450,7 +7456,9 @@ slots:
HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub

ProductIdentificationMethod is retained for backward compatibility.'
from_schema: https://w3id.org/nfdi4cat/coremeta4cat
from_schema: https://w3id.org/nfdi4cat/coremeta4cat/reaction/
mappings:
- coremeta4cat:product_identification_method
is_a: product_identification_method
domain: Reaction
slot_uri: coremeta4cat:product_identification_method
Expand Down Expand Up @@ -7511,7 +7519,6 @@ slots:
usage_slot_name: realized_plan
range: SimulationMethod
required: true
multivalued: true
inlined: true
inlined_as_list: true
Simulation_carried_out_by:
Expand Down Expand Up @@ -12192,12 +12199,12 @@ classes:
- ClassifierMixin_type
- evaluated_activity
- occurred_in
- Characterization_equipment
- sample_state
- sample_description
- sample_preparation
- sample_pretreatment
- detector_type
- Characterization_equipment
- Characterization_evaluated_entity
- Characterization_realized_plan
- Characterization_rdf_type
Expand Down Expand Up @@ -12935,10 +12942,10 @@ classes:
- experiment_pressure
- feed_composition_range
- experiment_duration
- Reaction_product_identification_method
- Reaction_rdf_type
- Reaction_carried_out_by
- Reaction_had_input_entity
- Reaction_product_identification_method
slot_usage:
rdf_type:
name: rdf_type
Expand Down Expand Up @@ -12972,12 +12979,9 @@ classes:
HPLC_MS object from coremeta4cat_characterization_ap). The abstract stub

ProductIdentificationMethod is retained for backward compatibility.'
from_schema: https://w3id.org/nfdi4cat/coremeta4cat
slot_uri: coremeta4cat:product_identification_method
range: ProductIdentificationMethod
required: true
multivalued: true
inlined: true
inlined_as_list: true
class_uri: SIO:010345
ProductIdentificationMethod:
Expand All @@ -13001,7 +13005,6 @@ classes:
mappings:
- OBI:0000272
is_a: Plan
abstract: true
slots:
- title
- description
Expand Down Expand Up @@ -13300,8 +13303,6 @@ classes:
description: The SimulationMethod (protocol) realized in this Simulation.
range: SimulationMethod
required: true
multivalued: true
inlined_as_list: true
carried_out_by:
name: carried_out_by
description: The simulation software used, provided as a Software agent instance.
Expand Down Expand Up @@ -17078,5 +17079,5 @@ metamodel_version: 1.7.0
source_file: coremeta4cat.yaml
source_file_date: '2026-03-09T16:14:14'
source_file_size: 6730
generation_date: '2026-03-09T17:32:19'
generation_date: '2026-03-10T08:36:44'

27 changes: 13 additions & 14 deletions src/coremeta4cat/datamodel/coremeta4cat.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Auto generated from coremeta4cat.yaml by pythongen.py version: 0.0.1
# Generation date: 2026-03-09T17:19:45
# Generation date: 2026-03-10T09:36:20
# Schema: coremeta4cat-metadata
#
# id: https://w3id.org/nfdi4cat/coremeta4cat
Expand Down Expand Up @@ -1572,7 +1572,7 @@ class Simulation(DataGeneratingActivity):
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
realized_plan: 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()
Expand All @@ -1597,9 +1597,8 @@ def __post_init__(self, *_: str, **kwargs: Any):

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 not isinstance(self.realized_plan, SimulationMethod):
self.realized_plan = SimulationMethod(**as_dict(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))
Expand Down Expand Up @@ -2579,8 +2578,8 @@ class Reaction(EvaluatedActivity):
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
carried_out_by: Union[dict[Union[str, ReactorDesignTypeId], Union[dict, ReactorDesignType]], list[Union[dict, ReactorDesignType]]] = empty_dict()
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()
Expand Down Expand Up @@ -2608,16 +2607,16 @@ def __post_init__(self, *_: str, **kwargs: Any):
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 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 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]
Expand Down Expand Up @@ -9221,6 +9220,9 @@ class slots:
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.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.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]])

Expand Down Expand Up @@ -9854,9 +9856,6 @@ class slots:
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"]])

Expand Down Expand Up @@ -9921,7 +9920,7 @@ class slots:
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"]]])
model_uri=COREMETA4CAT.Simulation_realized_plan, domain=Simulation, range=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]]]])
Expand Down
Loading