glam/schemas/20251121/linkml/modules/classes/Component.yaml
kempersc 66adec257e Add scripts for normalizing LinkML schemas and validating schema integrity
- Implement `normalize_linkml_alt_descriptions.py` to convert structured alt_descriptions to the expected scalar form.
- Implement `normalize_linkml_structured_aliases.py` to flatten language-keyed structured_aliases into a standard list-of-objects format.
- Implement `validate_linkml_schema_integrity.py` to validate the integrity of LinkML schema bundles, checking for import resolution, YAML parsing, and reference existence.
2026-02-16 10:16:51 +01:00

121 lines
3.9 KiB
YAML

id: https://nde.nl/ontology/hc/class/Component
name: component_class
title: Component Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
- ../metadata
- ../slots/has_description
- ../slots/has_label
- ../slots/has_type
default_prefix: hc
classes:
Component:
class_uri: schema:ItemList
description: >-
Structured part-instance used to represent a constituent element within a
larger modeled entity.
alt_descriptions:
nl: Gestructureerde deelinstantie voor het representeren van een constituent element binnen een grotere gemodelleerde entiteit.
de: Strukturierte Teilinstanz zur Darstellung eines Bestandteils innerhalb einer groesseren modellierten Entitaet.
fr: Instance de partie structuree servant a representer un element constitutif dans une entite modelisee plus large.
es: Instancia de parte estructurada para representar un elemento constituyente dentro de una entidad modelada mayor.
ar: مثيل جزء منظم لتمثيل عنصر مكوّن داخل كيان نمذجي أكبر.
id: Instans bagian terstruktur untuk merepresentasikan elemen penyusun dalam entitas termodelkan yang lebih besar.
zh: 用于表示较大建模实体中组成要素的结构化部件实例。
structured_aliases:
- {literal_form: onderdeel, in_language: nl}
- {literal_form: Komponente, in_language: de}
- {literal_form: composant, in_language: fr}
- {literal_form: componente, in_language: es}
- {literal_form: مكوّن, in_language: ar}
- {literal_form: komponen, in_language: id}
- {literal_form: 组件项, in_language: zh}
slots:
- has_type
- has_label
- has_description
slot_usage:
has_type:
range: ComponentType
multivalued: true
required: false
examples:
- value: StreetNumber
- value: Route
- value: Locality
has_label:
# range: string
required: false
examples:
- value: "1"
- value: "Museumstraat"
close_mappings:
- schema:ItemList
- dcterms:hasPart
notes:
- |
Preserved from prior description (commit 2e1e6e5f):
A component or part of a larger entity.
**MIGRATION NOTE** (2026-01-22):
Created per slot_fixes.yaml migration from `component_type` string
to structured Component class per Rule 53.
**Purpose**:
Provides base class for components/parts including:
- Type classification via ComponentType hierarchy
- Value/label for the component
- Additional metadata
**Ontological Alignment**:
- **Primary** (`class_uri`): `schema:ItemList` - Schema.org (component as list item)
- **Close**: `dcterms:hasPart` - Dublin Core part relationship
**Use Cases**:
- Address components (street, city, country)
- System components
- Document components
**Pattern**:
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Components applicable across all heritage domains.
custodian_types_primary: M
specificity_score: 0.30
specificity_rationale: >-
Broadly applicable - component modeling fundamental to many domains.
# migration_info: (Flattened)
migration_source_slot: component_type
migration_date: "2026-01-22"
migration_rule: "Rule 53"
comments:
- "Base class for component/part entities"
- "Type classification via ComponentType hierarchy"
- "Created 2026-01-22 from component_type migration (Rule 53)"
examples:
- value:
has_type: StreetNumber
has_label: "1"
- value:
has_type: Locality
has_label: "Amsterdam"
- value: |
has_component:
- has_type: StreetNumber
has_label: "1"
long_name: "1"
short_name: "1"