From f1cad06fd59c73bada2f2e4f4bd5b35e10dd0fde Mon Sep 17 00:00:00 2001 From: jpizarro Date: Tue, 5 May 2026 08:11:11 +0200 Subject: [PATCH 1/4] Added new attributes to EntityDef Fix minor functions in definitions.py and entities.py Added init_subclass to resolve is_a automatically as a dotted path --- bam_masterdata/metadata/definitions.py | 57 +++++++++++++++++++++----- bam_masterdata/metadata/entities.py | 18 ++++++-- 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/bam_masterdata/metadata/definitions.py b/bam_masterdata/metadata/definitions.py index b94652ea..6ad4253b 100644 --- a/bam_masterdata/metadata/definitions.py +++ b/bam_masterdata/metadata/definitions.py @@ -93,6 +93,44 @@ class EntityDef(BaseModel): """, ) + is_a: str | None = Field( + None, + description=""" + A lineage string indicating the inheritance, i.e., the parent entities from which this + entity is derived (using `code` as the identifier of each entity). It is a string + with the format `".."`. In the specific ase + of BASE_ENTITY, this field is None. + + This is resolved in `ObjectType`. + + Example, `MEASUREMENT` inherits from `ACTIVITY`, which inherits from `BASE_ENTITY`: "BASE_ENTITY.ACTIVITY.MEASUREMENT". + """, + ) + + references: list[str] = Field( + default_factory=list, + description=""" + List of references (e.g., URLs or DOIs) related to the entity definition. This can + include links to IRIs on other ontology definitions, documentation, or relevant publications. + """, + ) + + aliases: list[str] = Field( + default_factory=list, + description=""" + List of alternative codes for the entity. These aliases can be used to refer to + the entity in different contexts or systems, e.g., in an older version of the Masterdata. + """, + ) + + previous_versions: list[str] = Field( + default_factory=list, + description=""" + List of previous version codes for the entity. This can be used to track the evolution + of the entity definition over time. + """, + ) + id: str | None = Field( default=None, description=""" @@ -152,13 +190,11 @@ def validate_iri(cls, value: str | None) -> str | None: """ if not value: return value - if not re.match( - r"^http://purl.obolibrary.org/bam-masterdata/[\w_]+:[\d.]+$", value - ): + if not re.match(r"https://bam.de/masterdata/[\w_]+$", value): raise ValueError( - "`iri` must follow the rules specified in the description: 1) Must start with 'http://purl.obolibrary.org/bam-masterdata/', " - "2) followed by the entity name, 3) separated by a colon, 4) followed by the semantic versioning number. " - "Example: 'http://purl.obolibrary.org/bam-masterdata/Instrument:1.0.0'." + "`iri` must follow the rules specified in the description: 1) Must start with 'https://bam.de/masterdata/', " + "2) followed by the entity name. " + "Example: 'https://bam.de/masterdata/BaseEntity'." ) return value @@ -201,7 +237,7 @@ def excel_headers_map(self) -> dict: fields = [ k for k in self.model_fields.keys() - if k not in ["iri", "id", "row_location"] + if k not in ["iri", "is_a", "references", "aliases", "id", "row_location"] ] headers: dict = {} for f in fields: @@ -328,9 +364,9 @@ def model_validator_after_init(cls, data: Any) -> Any: Returns: Any: The data with the validated fields. """ - # If `generated_code_prefix` is not set, use the first 3 characters of `code` + # If `generated_code_prefix` is not set, use the first 5 characters of `code` if not data.generated_code_prefix: - data.generated_code_prefix = data.code[:3] + data.generated_code_prefix = data.code[:5] return data @@ -516,10 +552,11 @@ class Instrument(ObjectType): ) show_in_edit_views: bool = Field( - ..., + True, description=""" If `True`, the property is shown in the edit views of the ELN in the object type instantiation. If `False`, the property is hidden. + Defaults to True. """, ) diff --git a/bam_masterdata/metadata/entities.py b/bam_masterdata/metadata/entities.py index 92cb560a..fce01c1f 100644 --- a/bam_masterdata/metadata/entities.py +++ b/bam_masterdata/metadata/entities.py @@ -522,7 +522,7 @@ class VocabularyType(BaseEntity): model_config = ConfigDict(ignored_types=(VocabularyTypeDef, VocabularyTerm)) terms: list[VocabularyTerm] = Field( - default=[], + default_factory=list, description=""" List of vocabulary terms. This is useful for internal representation of the model. """, @@ -603,7 +603,7 @@ class ObjectType(BaseEntity): ) properties: list[PropertyTypeAssignment] = Field( - default=[], + default_factory=list, description=""" List of properties assigned to an object type. This is useful for internal representation of the model. """, @@ -617,6 +617,16 @@ def __init__(self, **kwargs): for key, prop in self._property_metadata.items(): self._properties[key] = prop.data_type + def __init_subclass__(cls, **kwargs): + super().__init_subclass__(**kwargs) + if not hasattr(cls, "defs"): + return + # Build lineage codes from root->...->self using defs.code + codes = [c.defs.code for c in reversed(cls.__mro__) if hasattr(c, "defs")] + # For BASE_ENTITY => None, for others, e.g., Activity => "BASE_ENTITY", for Measurement => "BASE_ENTITY.ACTIVITY" + is_a = ".".join(codes[:-1]) if len(codes) > 1 else None + cls.defs = cls.defs.model_copy(update={"is_a": is_a}) # store in `defs` + def _set_object_value(self, key, value): """ Sets the value when the data type is OBJECT. @@ -890,7 +900,7 @@ class CollectionType(ObjectType): ) attached_objects: dict[str, ObjectType] = Field( - default={}, + default_factory=dict, exclude=True, description=""" Dictionary containing the object types attached to the collection type. @@ -899,7 +909,7 @@ class CollectionType(ObjectType): ) relationships: dict[str, tuple[str, str]] = Field( - default={}, + default_factory=dict, exclude=True, description=""" Dictionary containing the relationships between the objects attached to the collection type. From a6801aece0b90c59f80facef586df9ab8e0f9eed Mon Sep 17 00:00:00 2001 From: jpizarro Date: Tue, 5 May 2026 08:33:49 +0200 Subject: [PATCH 2/4] Added base.py model up to level 3 for entities and level 2 for activities Added script for plotting models --- bam_masterdata/datamodel/v2/CHANGES.md | 40 ++ bam_masterdata/datamodel/v2/base.py | 456 ++++++++++++++++++ bam_masterdata/datamodel/v2/model_runtime | 34 ++ bam_masterdata/datamodel/v2/model_runtime.png | Bin 0 -> 103859 bytes pyproject.toml | 3 + tools/scripts/plot_datamodel_graph.py | 60 +++ 6 files changed, 593 insertions(+) create mode 100644 bam_masterdata/datamodel/v2/CHANGES.md create mode 100644 bam_masterdata/datamodel/v2/base.py create mode 100644 bam_masterdata/datamodel/v2/model_runtime create mode 100644 bam_masterdata/datamodel/v2/model_runtime.png create mode 100644 tools/scripts/plot_datamodel_graph.py diff --git a/bam_masterdata/datamodel/v2/CHANGES.md b/bam_masterdata/datamodel/v2/CHANGES.md new file mode 100644 index 00000000..8f5ecd86 --- /dev/null +++ b/bam_masterdata/datamodel/v2/CHANGES.md @@ -0,0 +1,40 @@ +# Summary of changes + +- New `code` only identifiers for the classes names +- `is_a` field in ObjectTypeDef keeps track of inheritance +- `previous_versions` encodes metadata about the previous version equivalent object code + +- Changed descriptions: $NAME, $SHOW_IN_PROJECT_OVERVIEW, START_DATE, END_DATE +- `$SHOW_IN_PROJECT_OVERVIEW` changed property_label +- Deleted EXPERIMENTAL_STEP.EXPERIMENTAL_RESULTS, $ANNOTATIONS_STATE, $XMLCOMMENTS +- Deleted `GMAW_BASE` and `LASER_HYBRID_MAGNET` (Cagtay) +- Fix `ACCREDITATED_CALIBRATION_LAB` to `ACCREDITED_CALIBRATION_LAB` +- Deleted `TASK`, `ACTION` +- Deleted `EXPERIMENTAL_STEP.RM_ETHANOL`, `ACTION.DEVICE_TRAINING`, `ACTION.DEVICE_USAGE`, `EXPERIMENTAL_STEP.MEASUREMENT_SESSION` +- Changed Calibration properties descriptions, sections, and property labels +- Changed `CALIBRATION_PROVIDER` from CONTROLLEDVOCABULARY to VARCHAR +- Deleted `COMPUTATIONAL_ANALYSIS` (now it is `ANALYSIS`) +- Deleted `CONDA_ENVIRONMENT`, `JUPYTER_NOTEBOOK` +- Change vocabulary code `DCPD_POT_CAL` to `DCPD_POT_DROP_CALIBRATION` +- Changed `DCPD_INITIAL_CRACKLENGTH` property code to `DCPD_INITIAL_CRACK_LENGTH` +- Deleted all properties in DCPD which are instrument-specific --> they should be properties of the instrument +- Changed `RAZOR_STROKELENGTH`, `RAZOR_STROKESPEED`, and `RAZOR_STROKECOUNT` to `RAZOR_STROKE_LENGTH`, `RAZOR_STROKE_SPEED`, and `RAZOR_STROKE_COUNT` +- Changed `RAZOR_STROKE_COUNT` from REAL to INTEGER +- Combined `FCG_TEST` and `FCG_STEP` into `FCG_TEST` +- Changed `FINAL_CYCLES` from REAL to INTEGER +- Changed vocabulary code `MICROSCOPY_FCG_CRACK_LENGTH_TYPE` to `MICROSCOPY_FS_TYPE` +- Deleted `EXPERIMENTAL_STEP.FCG_EVALUATION` +- Added detailed measurement metadata (DLS, FTIR, ImageSeries, NMR, ProfileScan, SAXS, SEM, TEM, Video, and LaserDiff PSD) to `activities.py`, carrying over `previous_versions` from the legacy schema and keeping the BFO-informed parent properties untouched. +- Removed the migrated activity definitions from the active legacy model, appended them as a commented block at the end of `object_types_old.py`, and preserved their field descriptions for reference. +- Marked the legacy `EXPERIMENTAL_STEP.*` codes (including DCPD, MS batch, SAXS, SEM, TEM, NMR, DLS, FTIR, Video, thermographic, and LaserDiff PSD) as deprecated in `base.py` to signal that the new v2 activity classes should be used instead. +- **DLS:** `DLS_DISPERSANT` → `DLS.DISPERSANT`, `DLS_TEMPERATURE` → `DLS.TEMPERATURE`, `DLS_CELL_DESCRIPTION` → `DLS.CELLDESCRIPTION`, `DLS_ATTENUATOR` → `DLS.ATTENUATOR`, `DLS_Z_AVERAGE` → `DLS.ZAVG`, `DLS_PDI` → `DLS.PDI`, `DLS_ZETA_POTENTIAL` → `DLS.ZETA`, `DLS_CONDUCTIVITY` → `DLS.COND`. +- **FTIR:** `FTIR_START_WAVENUMBER`, `FTIR_END_WAVENUMBER`, `FTIR_RESOLUTION`, `FTIR_SCAN_COUNT`, `FTIR_ACCESSORY`, `FTIR_FLUSHED_WITH_NITROGEN` now replace `FTIR.*` properties. +- **ImageSeries:** `IMAGE_HORIZONTAL_RESOLUTION`, `IMAGE_VERTICAL_RESOLUTION`, `IMAGE_SERIES_COUNT`; we removed the legacy `UUID`. +- **NMR:** `NMR_NUCLEUS_DIRECT`, `NMR_NUCLEUS_INDIRECT`, `NMR_SOLVENT`, `NMR_FREQUENCY`, `NMR_EXPERIMENT_TYPE`, `NMR_SCAN_COUNT`, `NMR_START_CHEMICAL_SHIFT`, `NMR_END_CHEMICAL_SHIFT`, `NMR_IS_QUANTITATIVE`, `NMR_PULSE_ANGLE`, `NMR_INTERPULSE_DELAY`, `NMR_ACQUISITION_TIME`. +- **ProfileScan:** `SCAN_LINE_COUNT`, `SCAN_LINE_RESOLUTION`; the legacy `UUID` is no longer part of the data model. +- **SAXS measurement:** `SAXS_CELL_TEMPERATURE`, `SAXS_EXPOSURE_TIME`, `SAXS_FRAME_COUNT`. +- **SEM:** `SEM_OPERATING_MODE`, `SEM_DETECTOR`, `SEM_ACCELERATION_VOLTAGE`, `SEM_MAGNIFICATION`, `SEM_WORKING_DISTANCE`; we dropped `SEM.INSTRUMENT` and normalized the `SEM.ACCELERATIONVOLTAGE` units (now a VARCHAR placeholder since `keV` in pint is tricky). +- **TEM:** `TEM_OPERATING_MODE`, `TEM_DETECTOR`, `TEM_ACCELERATION_VOLTAGE`, `TEM_MAGNIFICATION`, `TEM_CAMERA_LENGTH`. +- **VideoRecording:** `IMAGE_HORIZONTAL_RESOLUTION`, `IMAGE_VERTICAL_RESOLUTION`, `VIDEO_FRAME_PER_SECONDS`, `VIDEO_CODEC`, `VIDEO_DYNAMIC_FRAMERATE`; the old `UUID` field was removed. +- **LaserDiff PSD:** `DISPERSING_MEDIUM`, `SCATTERING_MODEL_PSD_LD`, `REFRACTIVE_INDEX_SAMPLE`, `ABSORPTION_COEFFICIENT_SAMPLE`, `LASER_OBSCURATION`, `LASER_TRANSMISSION`, `MEASUREMENT_MEDIUM_TEMPERATURE`, `PSD_D10`, `PSD_D50`, `PSD_D90`, `MODE_COUNT`. +- Ensured every property keeps its legacy `previous_versions` entry so the mapping to `object_types_old.py` remains explicit, supporting audits and migrations. diff --git a/bam_masterdata/datamodel/v2/base.py b/bam_masterdata/datamodel/v2/base.py new file mode 100644 index 00000000..2df4a3d0 --- /dev/null +++ b/bam_masterdata/datamodel/v2/base.py @@ -0,0 +1,456 @@ +from bam_masterdata.metadata.definitions import ObjectTypeDef, PropertyTypeAssignment +from bam_masterdata.metadata.entities import ObjectType + +# A list of deprecated ObjectType codes that should not be used in new data entries. This can be used to +# maintain backward compatibility while signaling to users that certain types are no longer recommended for use. +DEPRECATED_OR_UNUSED = [ + "RAW_MATERIAL.STEEL", + "RAW_MATERIAL.ALUMINIUM", +] + + +class BaseEntity(ObjectType): + defs = ObjectTypeDef( + code="BASE_ENTITY", + description=""" + A BaseEntity is an entity that encompasses both material and immaterial + existents, serving as the foundational type from which all domain-specific + entities are derived. + """, + iri="https://bam.de/masterdata/BaseEntity", + references=["http://purl.obolibrary.org/obo/BFO_0000001"], + generated_code_prefix="BASE_ENTIT", + aliases=[], + ) + + name = PropertyTypeAssignment( + code="$NAME", + data_type="VARCHAR", + property_label="Name", + description=""" + Human-readable name used to identify the entity in user interfaces, reports, and search results. + """, + mandatory=True, + section="General Information", + ) + + show_in_project_overview = PropertyTypeAssignment( + code="$SHOW_IN_PROJECT_OVERVIEW", + data_type="BOOLEAN", + property_label="Visible in project overview?", + description=""" + Controls whether the entity is displayed in the project overview page. + """, + mandatory=False, + section="General Information", + ) + + description = PropertyTypeAssignment( + code="DESCRIPTION", + data_type="MULTILINE_VARCHAR", + property_label="Description", + description=""" + Human-readable description of the entity. + """, + mandatory=False, + section="References", + previous_versions=["EXPERIMENTAL_STEP.EXPERIMENTAL_DESCRIPTION"], + ) + + data_id = PropertyTypeAssignment( + code="DATA_ID", + data_type="VARCHAR", # ! change to multivalued VARCHAR when available + property_label="ID", + description=""" + Persistent identifier used to uniquely identify the entity. It can be any unique + identifier that can be used to reference the entity internally or in external systems + or databases. + """, + mandatory=False, + section="References", + previous_versions=["PUBLICATION"], + ) + + references = PropertyTypeAssignment( + code="REFERENCE", + data_type="MULTILINE_VARCHAR", # ! change to multivalued HYPERLINK when available + property_label="References", + description=""" + Links/DOIs/URLs relevant to this entity (one per line). + """, + mandatory=False, + section="References", + ) + + +class Activity(BaseEntity): + defs = ObjectTypeDef( + code="ACTIVITY", + description=""" + An Activity is something that occurs over a period of time and acts upon or with + entities; it may include consuming, processing, transforming, modifying, + relocating, using, or generating entities. + """, + iri="https://bam.de/masterdata/Activity", + references=[ + "http://purl.obolibrary.org/obo/BFO_0000015", + "https://www.w3.org/TR/prov-o/#Activity", + ], + generated_code_prefix="ACTIV", + aliases=["ACTIVITY_STEP", "EXPERIMENTAL_STEP"], + previous_versions=["EXPERIMENTAL_STEP"], + ) + + start_date = PropertyTypeAssignment( + code="START_DATE", + data_type="TIMESTAMP", + property_label="Start date", + description=""" + Start date of the activity. + """, + mandatory=False, + section="General Information", + ) + + end_date = PropertyTypeAssignment( + code="END_DATE", + data_type="TIMESTAMP", + property_label="End date", + description=""" + End date of the activity. + """, + mandatory=False, + section="General Information", + ) + + status = PropertyTypeAssignment( + code="ACTIVITY_STATUS", + data_type="CONTROLLEDVOCABULARY", + vocabulary_code="ACTIVITY_STATUS", + property_label="Status", + description=""" + Current status of the activity: PLANNED, RUNNING, COMPLETED, CANCELLED. + """, + mandatory=False, + section="General Information", + previous_versions=["FINISHED_FLAG"], + ) + + goals = PropertyTypeAssignment( + code="GOALS", + data_type="MULTILINE_VARCHAR", + property_label="Goals", + description=""" + Goals of the activity in free-text format. + """, + mandatory=False, + section="Activity Details", + previous_versions=["EXPERIMENTAL_STEP.EXPERIMENTAL_GOALS"], + ) + + activity_spreadsheet = PropertyTypeAssignment( + code="SPREADSHEET", + data_type="XML", + property_label="Spreadsheet", + description=""" + Structured spreadsheet used to capture tabular parameters, intermediate values, or + structured notes associated with an entity. This field is intended for lightweight, + human-curated data and is not a replacement for datasets or result files. + """, + mandatory=False, + section="Activity Details", + previous_versions=["EXPERIMENTAL_STEP.SPREADSHEET"], + ) + + notes = PropertyTypeAssignment( + code="NOTES", + data_type="MULTILINE_VARCHAR", + property_label="Notes", + description=""" + Free-form notes. + """, + mandatory=False, + section="Additional Information", + ) + + +class Analysis(Activity): + defs = ObjectTypeDef( + code="ANALYSIS", + description=""" + An Analysis is an activity that interprets existing data to derive new data, such + as properties, patterns, or parameters + """, + iri="https://bam.de/masterdata/Analysis", + generated_code_prefix="ANALI", + aliases=[], + previous_versions=["COMPUTATIONAL_ANALYSIS"], + ) + + +class Calibration(Activity): + defs = ObjectTypeDef( + code="CALIBRATION", + description=""" + A Calibration is an activity that establishes or adjusts the mapping between + measurement outputs and reference standards. + """, + iri="https://bam.de/masterdata/Calibration", + generated_code_prefix="CALIB", + aliases=[], + previous_versions=[], + ) + + calibration_date = PropertyTypeAssignment( + code="CALIBRATION_DATE", + data_type="DATE", + property_label="Calibration date", + description=""" + Date when the calibration was performed. + """, + mandatory=True, + section="Calibration Information", + ) + + calibration_provider = PropertyTypeAssignment( + code="CALIBRATION_PROVIDER", + data_type="VARCHAR", + vocabulary_code="CALIBRATION_PROVIDER", + property_label="Calibration provider", + description=""" + Organization or service provider that performed the calibration. + """, + mandatory=True, + section="Calibration Information", + ) + + calibration_certificate_number = PropertyTypeAssignment( + code="CALIBRATION_CERTIFICATE_NUMBER", + data_type="VARCHAR", + property_label="Calibration certificate number", + description=""" + Identifier of the calibration certificate issued for this calibration. + """, + mandatory=True, + section="Calibration Information", + ) + + accredited_calibration_lab = PropertyTypeAssignment( + code="ACCREDITED_CALIBRATION_LAB", + data_type="BOOLEAN", + property_label="Calibration performed by an Accredited Laboratory?", + description=""" + Indicates whether the calibration was performed by an accredited laboratory. + """, + mandatory=True, + section="Calibration Information", + previous_versions=["ACCREDITATED_CALIBRATION_LAB"], + ) + + calibration_lab_accreditation_number = PropertyTypeAssignment( + code="CALIBRATION_LAB_ACCREDITATION_NUMBER", + data_type="VARCHAR", + property_label="Calibration Laboratory Accreditation Number", + description=""" + Accreditation identifier of the laboratory (required if the calibration was performed by + an accredited laboratory). + """, + mandatory=False, + section="Calibration Information", + ) + + +class Measurement(Activity): + defs = ObjectTypeDef( + code="MEASUREMENT", + description=""" + A Measurement is an activity that uses an experimental device to produce quantitative + or qualitative data about the properties of a material. + """, + iri="https://bam.de/masterdata/Measurement", + generated_code_prefix="MEASU", + aliases=[], + previous_versions=[], + ) + + +class Processing(Activity): + defs = ObjectTypeDef( + code="PROCESSING", + description=""" + A Processing is an activity that alters the structure, composition, or form of a + material. + """, + iri="https://bam.de/masterdata/Processing", + generated_code_prefix="PROCE", + aliases=[], + previous_versions=[], + ) + + +class Simulation(Activity): + defs = ObjectTypeDef( + code="SIMULATION", + description=""" + A Simulation is an activity that uses computational models to replicate or + predict the behavior of a material. + """, + iri="https://bam.de/masterdata/Simulation", + generated_code_prefix="SIMUL", + aliases=[], + previous_versions=[], + ) + + +class Synthesis(Activity): + defs = ObjectTypeDef( + code="SYNTHESIS", + description=""" + A Synthesis is an activity that creates or assembles materials through chemical or + physical means. + """, + iri="https://bam.de/masterdata/Synthesis", + generated_code_prefix="SYNTH", + aliases=[], + previous_versions=[], + ) + + +class Test(Activity): + defs = ObjectTypeDef( + code="TEST", + description=""" + A Test is an activity that subjects materials to specific conditions to evaluate + their performance, reliability, or compliance with certain standards. + """, + iri="https://bam.de/masterdata/Test", + generated_code_prefix="TEST", + aliases=[], + previous_versions=[], + ) + + +class Entity(BaseEntity): + defs = ObjectTypeDef( + code="ENTITY", + description=""" + An Entity is a physical, digital, conceptual, or other kind of thing with some fixed + aspects; entities may be real or imaginary. + """, + iri="https://bam.de/masterdata/Entity", + references=[ + "http://purl.obolibrary.org/obo/BFO_0000002", + "https://www.w3.org/TR/prov-o/#Entity", + ], + generated_code_prefix="ENTIT", + aliases=[], + previous_versions=[], + ) + + +class InformationObject(Entity): + defs = ObjectTypeDef( + code="INFORMATION_OBJECT", + description=""" + An InformationObject is an (information content) entity that represents, describes, + or encodes knowledge about systems, instruments, or activities. It may be produced + by processes or used as input for interpretation, automation, or modelling. + """, + iri="https://bam.de/masterdata/InformationObject", + references=[ + "http://purl.obolibrary.org/obo/IAO_0000030", + ], + generated_code_prefix="INFOR_OBJEC", + aliases=[], + previous_versions=[], + ) + + +class MaterialEntity(Entity): + defs = ObjectTypeDef( + code="MATERIAL_ENTITY", + description=""" + A MaterialEntity is an (independent continuant) entity that has some portion of matter as a + proper or improper continuant part, and persists through time while possibly gaining + or losing parts. + """, + iri="https://bam.de/masterdata/MaterialEntity", + references=[ + "http://purl.obolibrary.org/obo/BFO_0000040", + ], + generated_code_prefix="MATER_ENTIT", + aliases=[], + previous_versions=[], + ) + + +class Material(MaterialEntity): + defs = ObjectTypeDef( + code="MATERIAL", + description=""" + A Material is a material entity that is composed of a physical substance or mixture of + substances that is characterized by its chemical composition, structure, and properties. + """, + iri="https://bam.de/masterdata/Material", + references=[], + generated_code_prefix="MATER", + aliases=[], + previous_versions=[], + ) + + +class Instrument(MaterialEntity): + defs = ObjectTypeDef( + code="INSTRUMENT", + description=""" + An Instrument is a material entity that is designed or used to support an activity by + measuring, modifying, or interacting with other entities such as systems and organisms. + """, + iri="https://bam.de/masterdata/Instrument", + references=[ + "http://purl.obolibrary.org/obo/OBI_0000968", + ], + generated_code_prefix="INSTR", + aliases=[], + previous_versions=[], + ) + + +class Sample(MaterialEntity): + defs = ObjectTypeDef( + code="SAMPLE", + description=""" + A Sample is a material entity that is collected for potential use as an input upon + which measurements or observations are performed. + """, + iri="https://bam.de/masterdata/Sample", + references=[ + "http://purl.obolibrary.org/obo/OBI_0100051", + ], + generated_code_prefix="SAMPL", + aliases=[], + previous_versions=[], + ) + + +class Organism(MaterialEntity): + defs = ObjectTypeDef( + code="ORGANISM", + description=""" + An Organism is a material entity that is an individual living system, such as animal, + plant, bacteria or virus, that is capable of replicating or reproducing, growth + and maintenance in the right environment. An organism may be unicellular or made up, + like humans, of many billions of cells divided into specialized tissues and organs. + """, + iri="https://bam.de/masterdata/Organism", + references=[ + "http://purl.obolibrary.org/obo/OBI_0100026", + ], + generated_code_prefix="ORGAN", + aliases=[], + previous_versions=[], + ) + + +# end of level 2 objects +# below this, we can still define Entity subtypes like Location, Person, Chemical, etc. diff --git a/bam_masterdata/datamodel/v2/model_runtime b/bam_masterdata/datamodel/v2/model_runtime new file mode 100644 index 00000000..fea38b44 --- /dev/null +++ b/bam_masterdata/datamodel/v2/model_runtime @@ -0,0 +1,34 @@ +digraph { + Activity [label="Activity\nstart_date\nend_date\nstatus\ngoals\nactivity_spreadsheet\nnotes" shape=box] + BaseEntity -> Activity + Analysis [label="Analysis\n" shape=box] + Activity -> Analysis + BaseEntity [label="BaseEntity\nname\nshow_in_project_overview\ndescription\ndata_id\nreferences" shape=box] + ObjectType -> BaseEntity + Calibration [label="Calibration\ncalibration_date\ncalibration_provider\ncalibration_certificate_number\naccredited_calibration_lab\ncalibration_lab_accreditation_number" shape=box] + Activity -> Calibration + Entity [label="Entity\n" shape=box] + BaseEntity -> Entity + InformationObject [label="InformationObject\n" shape=box] + Entity -> InformationObject + Instrument [label="Instrument\n" shape=box] + MaterialEntity -> Instrument + Material [label="Material\n" shape=box] + MaterialEntity -> Material + MaterialEntity [label="MaterialEntity\n" shape=box] + Entity -> MaterialEntity + Measurement [label="Measurement\n" shape=box] + Activity -> Measurement + Organism [label="Organism\n" shape=box] + MaterialEntity -> Organism + Processing [label="Processing\n" shape=box] + Activity -> Processing + Sample [label="Sample\n" shape=box] + MaterialEntity -> Sample + Simulation [label="Simulation\n" shape=box] + Activity -> Simulation + Synthesis [label="Synthesis\n" shape=box] + Activity -> Synthesis + Test [label="Test\n" shape=box] + Activity -> Test +} diff --git a/bam_masterdata/datamodel/v2/model_runtime.png b/bam_masterdata/datamodel/v2/model_runtime.png new file mode 100644 index 0000000000000000000000000000000000000000..15a63e90c9ae5821207142144ef48d7314bb7ef1 GIT binary patch literal 103859 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 Date: Tue, 5 May 2026 09:14:10 +0200 Subject: [PATCH 3/4] Deleted images --- bam_masterdata/datamodel/v2/model_runtime | 34 ------------------ bam_masterdata/datamodel/v2/model_runtime.png | Bin 103859 -> 0 bytes 2 files changed, 34 deletions(-) delete mode 100644 bam_masterdata/datamodel/v2/model_runtime delete mode 100644 bam_masterdata/datamodel/v2/model_runtime.png diff --git a/bam_masterdata/datamodel/v2/model_runtime b/bam_masterdata/datamodel/v2/model_runtime deleted file mode 100644 index fea38b44..00000000 --- a/bam_masterdata/datamodel/v2/model_runtime +++ /dev/null @@ -1,34 +0,0 @@ -digraph { - Activity [label="Activity\nstart_date\nend_date\nstatus\ngoals\nactivity_spreadsheet\nnotes" shape=box] - BaseEntity -> Activity - Analysis [label="Analysis\n" shape=box] - Activity -> Analysis - BaseEntity [label="BaseEntity\nname\nshow_in_project_overview\ndescription\ndata_id\nreferences" shape=box] - ObjectType -> BaseEntity - Calibration [label="Calibration\ncalibration_date\ncalibration_provider\ncalibration_certificate_number\naccredited_calibration_lab\ncalibration_lab_accreditation_number" shape=box] - Activity -> Calibration - Entity [label="Entity\n" shape=box] - BaseEntity -> Entity - InformationObject [label="InformationObject\n" shape=box] - Entity -> InformationObject - Instrument [label="Instrument\n" shape=box] - MaterialEntity -> Instrument - Material [label="Material\n" shape=box] - MaterialEntity -> Material - MaterialEntity [label="MaterialEntity\n" shape=box] - Entity -> MaterialEntity - Measurement [label="Measurement\n" shape=box] - Activity -> Measurement - Organism [label="Organism\n" shape=box] - MaterialEntity -> Organism - Processing [label="Processing\n" shape=box] - Activity -> Processing - Sample [label="Sample\n" shape=box] - MaterialEntity -> Sample - Simulation [label="Simulation\n" shape=box] - Activity -> Simulation - Synthesis [label="Synthesis\n" shape=box] - Activity -> Synthesis - Test [label="Test\n" shape=box] - Activity -> Test -} diff --git a/bam_masterdata/datamodel/v2/model_runtime.png b/bam_masterdata/datamodel/v2/model_runtime.png deleted file mode 100644 index 15a63e90c9ae5821207142144ef48d7314bb7ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103859 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 Date: Fri, 8 May 2026 10:00:48 +0200 Subject: [PATCH 4/4] Add root_class to CLI for plotting --- tools/scripts/plot_datamodel_graph.py | 54 +++++++++++++-------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/tools/scripts/plot_datamodel_graph.py b/tools/scripts/plot_datamodel_graph.py index 5fb7e1eb..bf887fa4 100644 --- a/tools/scripts/plot_datamodel_graph.py +++ b/tools/scripts/plot_datamodel_graph.py @@ -1,58 +1,56 @@ import argparse import importlib -import inspect from pathlib import Path from graphviz import Digraph +from bam_masterdata.metadata.definitions import PropertyTypeAssignment from bam_masterdata.metadata.entities import ObjectType -def is_prop(obj): - from bam_masterdata.metadata.definitions import PropertyTypeAssignment - - return isinstance(obj, PropertyTypeAssignment) +def get_label(cls) -> str: + """Create label based on property types.""" + props = [ + name + for name, val in vars(cls).items() + if isinstance(val, PropertyTypeAssignment) + ] + return f"{cls.__name__}\\n" + "\\n".join(props) -def load_module(module_path: str): - return importlib.import_module(module_path) +def add_subclasses(dot: Digraph, cls): + """Add all subclasses to the graph.""" + dot.node(cls.__name__, label=get_label(cls), shape="box") + for subcls in cls.__subclasses__(): + dot.edge(cls.__name__, subcls.__name__) + add_subclasses(dot, subcls) def main(): parser = argparse.ArgumentParser() parser.add_argument( - "module", - help="Python module path (e.g. bam_masterdata.datamodel.v2.base)", + "root_class", + help="Root class to plot (e.g. bam_masterdata.datamodel.v2.base.BaseEntity)", ) parser.add_argument( "--output", - default="model_runtime", - help="Output file name (without extension)", + default="", + help="Output file name (without extension). By default uses the root class name.", ) args = parser.parse_args() - mod = load_module(args.module) + module = args.root_class.rsplit(".", 1)[0] + class_name = args.root_class.rsplit(".", 1)[1] - classes = [ - obj - for _, obj in inspect.getmembers(mod, inspect.isclass) - if issubclass(obj, ObjectType) and obj is not ObjectType - ] + root_class = getattr(importlib.import_module(module), class_name) - dot = Digraph() + filename = args.output or root_class.__name__ - for cls in classes: - props = [name for name, val in vars(cls).items() if is_prop(val)] - label = f"{cls.__name__}\\n" + "\\n".join(props) - - dot.node(cls.__name__, label=label, shape="box") - - for base in cls.__bases__: - if issubclass(base, ObjectType): - dot.edge(base.__name__, cls.__name__) + dot = Digraph() + add_subclasses(dot, root_class) - out_path = Path(__file__).parent / args.output + out_path = Path(__file__).parent / filename dot.render(str(out_path), format="png")