diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index dc7062b0c5..70b3e4fb54 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-22T19:40:49.649Z", + "generated": "2026-01-22T19:41:07.059Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3037, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 70b3e4fb54..b75b210dbb 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-22T19:41:07.059Z", + "generated": "2026-01-22T21:08:05.291Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3037, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml b/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml new file mode 100644 index 0000000000..7571c2de3f --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CanonicalForm.yaml @@ -0,0 +1,99 @@ +id: https://nde.nl/ontology/hc/class/CanonicalForm +name: canonical_form_class +title: Canonical Form Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: + - linkml:types + - ../slots/has_or_had_label + - ./Label +default_prefix: hc + +classes: + CanonicalForm: + class_uri: skos:Concept + description: >- + Represents the canonical/normalized form of an identifier or value. + + **PURPOSE**: + + While original values may vary in format (spaces, prefixes, case), + CanonicalForm provides a standardized representation for: + - Consistent storage + - Deduplication and matching + - Database joins and lookups + - Cross-system interoperability + + **NORMALIZATION RULES BY STANDARD**: + + | Standard | Original | Canonical | + |----------|----------|-----------| + | ISNI | "0000 0001 2146 5765" | "0000000121465765" | + | Wikidata | "http://wikidata.org/entity/Q190804" | "Q190804" | + | VIAF | "viaf.org/viaf/148691498" | "148691498" | + | DOI | "https://doi.org/10.1234/Ex" | "10.1234/ex" | + | ISIL | "NL-AmRMA" | "NL-AmRMA" (already canonical) | + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Mapping | Rationale | + |----------|---------|-----------| + | SKOS | skos:Concept | Conceptual representation | + | Schema.org | schema:PropertyValue | Name-value pair | + + MIGRATED 2026-01-22: Created per slot_fixes.yaml feedback to replace + simple canonical_value string with structured class. + exact_mappings: + - skos:Concept + close_mappings: + - schema:PropertyValue + slots: + - has_or_had_label + slot_usage: + has_or_had_label: + range: Label + required: true + inlined: true + description: >- + The canonical/normalized value as a Label. + Label.has_or_had_text contains the actual normalized string. + attributes: + normalization_rule: + range: string + required: false + description: >- + The rule or standard used to normalize this value. + E.g., "ISNI_REMOVE_SPACES", "WIKIDATA_EXTRACT_QID", "DOI_LOWERCASE" + source_format: + range: string + required: false + description: >- + The original format/scheme before normalization. + E.g., "ISNI_DISPLAY", "WIKIDATA_URI", "DOI_URL" + examples: + - value: + has_or_had_label: + has_or_had_text: "0000000121465765" + normalization_rule: "ISNI_REMOVE_SPACES" + source_format: "ISNI_DISPLAY" + description: ISNI canonical form (spaces removed) + - value: + has_or_had_label: + has_or_had_text: "Q190804" + normalization_rule: "WIKIDATA_EXTRACT_QID" + source_format: "WIKIDATA_URI" + description: Wikidata canonical form (Q-number extracted) + - value: + has_or_had_label: + has_or_had_text: "10.1234/example" + normalization_rule: "DOI_LOWERCASE_NO_PREFIX" + source_format: "DOI_URL" + description: DOI canonical form (lowercase, no resolver prefix) + annotations: + specificity_score: 0.30 + specificity_rationale: >- + Canonical forms are relevant for identifier lookup across all heritage sectors. diff --git a/schemas/20251121/linkml/modules/classes/Capacity.yaml b/schemas/20251121/linkml/modules/classes/Capacity.yaml index 7b996d2915..7103b42235 100644 --- a/schemas/20251121/linkml/modules/classes/Capacity.yaml +++ b/schemas/20251121/linkml/modules/classes/Capacity.yaml @@ -9,7 +9,7 @@ prefixes: dcterms: http://purl.org/dc/terms/ imports: - linkml:types - # Enums + # Enums (kept for backward compatibility) - ../enums/CapacityTypeEnum # RiC-O style generic slots - ../slots/has_or_had_identifier @@ -20,9 +20,12 @@ imports: - ../slots/temporal_extent - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - # Capacity-specific slots - - ../slots/capacity_value - - ../slots/capacity_type + # MIGRATED 2026-01-22: capacity_type → has_or_had_type + CapacityType (Rule 53) + - ../slots/has_or_had_type + # MIGRATED 2026-01-22: capacity_value → has_or_had_quantity + Quantity (Rule 53) + - ../slots/has_or_had_unit + - ./Unit + # Capacity-specific slots (capacity_value removed - use has_or_had_quantity) - ../slots/is_estimate # Class imports - ./MeasureUnit @@ -30,10 +33,11 @@ imports: - ./TimeSpan - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) - - ./TemplateSpecificityType - - ./TemplateSpecificityTypes + # MIGRATED 2026-01-22: capacity_type → has_or_had_type + CapacityType (Rule 53) + - ./CapacityType + - ./CapacityTypes default_prefix: hc classes: Capacity: @@ -66,37 +70,37 @@ classes: | WEIGHT | Weight capacity | kg, tons | | SEATING | Seating capacity | seats, persons | - **EXAMPLES**: + **EXAMPLES** (MIGRATED 2026-01-22: capacity_value → has_or_had_quantity): Archive depot (linear meters): ```yaml has_or_had_capacity: - - capacity_value: 8000.0 - capacity_type: SHELF_LENGTH - has_or_had_measurement_unit: - has_or_had_type: LINEAR_METER - has_or_had_symbol: "m" + - has_or_had_quantity: + quantity_value: 8000.0 + has_or_had_unit: + unit_value: "linear_meter" + has_or_had_type: ShelfLengthCapacity has_or_had_description: Total linear meters of shelving capacity ``` Cold storage (volume): ```yaml has_or_had_capacity: - - capacity_value: 2500.0 - capacity_type: VOLUME - has_or_had_measurement_unit: - has_or_had_type: CUBIC_METER - has_or_had_symbol: "m³" + - has_or_had_quantity: + quantity_value: 2500.0 + has_or_had_unit: + unit_value: "cubic_meter" + has_or_had_type: VolumeCapacity ``` Archive box storage (items): ```yaml has_or_had_capacity: - - capacity_value: 50000 - capacity_type: ITEM_COUNT - has_or_had_measurement_unit: - has_or_had_type: ITEM - has_or_had_symbol: "archive boxes" + - has_or_had_quantity: + quantity_value: 50000 + has_or_had_unit: + unit_value: "item" + has_or_had_type: ItemCountCapacity ``` exact_mappings: - hc:Capacity @@ -109,10 +113,12 @@ classes: - premis:StorageLocation slots: - has_or_had_identifier - - capacity_value - - capacity_type - - has_or_had_measurement_unit + # MIGRATED 2026-01-22: capacity_value → has_or_had_quantity + Quantity (Rule 53) - has_or_had_quantity + # MIGRATED 2026-01-22: capacity_type → has_or_had_type + CapacityType (Rule 53) + - has_or_had_type + - has_or_had_measurement_unit + - has_or_had_unit - has_or_had_description - temporal_extent - is_estimate @@ -127,30 +133,25 @@ classes: examples: - value: https://nde.nl/ontology/hc/capacity/na-depot-b-shelving description: National Archives depot B shelf capacity - capacity_value: - range: float - required: true - description: >- - The numeric value of the capacity. - MIGRATED from capacity_cubic_meters, capacity_linear_meters, - capacity_item per slot_fixes.yaml (Rule 53). - examples: - - value: 8000.0 - description: 8,000 linear meters - - value: 2500.0 - description: 2,500 cubic meters - - value: 50000 - description: 50,000 archive boxes - capacity_type: - range: CapacityTypeEnum + # MIGRATED 2026-01-22: capacity_value → has_or_had_quantity + Quantity (Rule 53) + # capacity_value slot removed - use has_or_had_quantity with quantity_value inside + # MIGRATED 2026-01-22: capacity_type → has_or_had_type + CapacityType (Rule 53) + has_or_had_type: + range: CapacityType required: false description: >- The type of capacity measurement (volume, length, count, etc.). + MIGRATED from capacity_type per slot_fixes.yaml (Rule 53, 2026-01-22). + Uses CapacityType class hierarchy instead of CapacityTypeEnum. examples: - - value: SHELF_LENGTH - - value: VOLUME - - value: ITEM_COUNT - - value: FLOOR_AREA + - value: ShelfLengthCapacity + description: Linear shelf capacity + - value: VolumeCapacity + description: Cubic volume capacity + - value: ItemCountCapacity + description: Item count capacity + - value: FloorAreaCapacity + description: Floor area capacity has_or_had_measurement_unit: range: MeasureUnit required: false @@ -171,18 +172,31 @@ classes: has_or_had_type: ITEM has_or_had_symbol: "archive boxes" description: Item count + # MIGRATED 2026-01-22: capacity_value → has_or_had_quantity + Quantity (Rule 53) has_or_had_quantity: range: Quantity - required: false + required: true inlined: true description: >- - Alternative structured quantity representation. - Use for complex measurements requiring full Quantity semantics. + The capacity measurement as a structured Quantity. + MIGRATED from capacity_value per slot_fixes.yaml (Rule 53, 2026-01-22). + Contains quantity_value (numeric), and can include unit via has_or_had_unit. examples: - value: quantity_value: 8000.0 - quantity_type: CAPACITY - quantity_unit: "linear meters" + has_or_had_unit: + unit_value: "linear_meter" + description: 8,000 linear meters of shelving + - value: + quantity_value: 2500.0 + has_or_had_unit: + unit_value: "cubic_meter" + description: 2,500 cubic meters of storage + - value: + quantity_value: 50000 + has_or_had_unit: + unit_value: "item" + description: 50,000 archive boxes has_or_had_description: range: string required: false @@ -218,29 +232,31 @@ classes: - http://qudt.org/schema/qudt/Quantity - https://schema.org/QuantitativeValue examples: + # MIGRATED 2026-01-22: capacity_value → has_or_had_quantity + Quantity (Rule 53) + # MIGRATED 2026-01-22: capacity_type → has_or_had_type + CapacityType class (Rule 53) - value: has_or_had_identifier: https://nde.nl/ontology/hc/capacity/rijksmuseum-depot-shelving - capacity_value: 8000.0 - capacity_type: SHELF_LENGTH - has_or_had_measurement_unit: - has_or_had_type: LINEAR_METER - has_or_had_symbol: "m" + has_or_had_quantity: + quantity_value: 8000.0 + has_or_had_unit: + unit_value: "linear_meter" + has_or_had_type: ShelfLengthCapacity has_or_had_description: Total linear shelf capacity in Depot Amersfoort is_estimate: false description: Archive depot shelf capacity (was capacity_linear_meters) - value: - capacity_value: 2500.0 - capacity_type: VOLUME - has_or_had_measurement_unit: - has_or_had_type: CUBIC_METER - has_or_had_symbol: "m³" + has_or_had_quantity: + quantity_value: 2500.0 + has_or_had_unit: + unit_value: "cubic_meter" + has_or_had_type: VolumeCapacity description: Cold storage volume capacity (was capacity_cubic_meters) - value: - capacity_value: 50000 - capacity_type: ITEM_COUNT - has_or_had_measurement_unit: - has_or_had_type: ITEM - has_or_had_symbol: "archive boxes" + has_or_had_quantity: + quantity_value: 50000 + has_or_had_unit: + unit_value: "item" + has_or_had_type: ItemCountCapacity has_or_had_description: Capacity for 50,000 standard archive boxes description: Archive box storage capacity (was capacity_item) - value: diff --git a/schemas/20251121/linkml/modules/classes/CapacityType.yaml b/schemas/20251121/linkml/modules/classes/CapacityType.yaml new file mode 100644 index 0000000000..3b1ec2f484 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CapacityType.yaml @@ -0,0 +1,80 @@ +# CapacityType class (abstract base) +# Created 2026-01-22 per slot_fixes.yaml revision for capacity_type (Rule 53) +# Following Rule 0b: Type/Types naming convention + +id: https://nde.nl/ontology/hc/class/CapacityType +name: capacity_type_class +title: Capacity Type Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + skos: http://www.w3.org/2004/02/skos/core# + qudt: http://qudt.org/schema/qudt/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description + +classes: + CapacityType: + class_uri: skos:Concept + abstract: true + description: | + Abstract base class for capacity measurement types. + + **RULE 0b COMPLIANT**: + + This is the ABSTRACT BASE CLASS (singular "Type") defining the taxonomy. + Concrete subclasses are defined in `CapacityTypes.yaml` (plural). + + **CAPACITY TYPE HIERARCHY**: + + | Type | Description | Unit Examples | + |------|-------------|---------------| + | VOLUME | Cubic capacity | m³, ft³ | + | SHELF_LENGTH | Linear shelf meters | m, ft | + | FLOOR_AREA | Floor space | m², ft² | + | ITEM_COUNT | Number of items | boxes, folders | + | WEIGHT | Weight capacity | kg, tons | + | SEATING | Seating capacity | seats, persons | + | DISPLAY_AREA | Exhibition space | m² | + | RACK_SLOTS | Rack/shelf slots | count | + | DRAWER_UNITS | Drawer units | count | + | CABINET_UNITS | Cabinet/storage units | count | + + **QUDT ALIGNMENT**: + + Capacity types align with QUDT quantity kinds for interoperability + with scientific measurement systems. + + Created as part of capacity_type migration per slot_fixes.yaml (Rule 53). + + exact_mappings: + - skos:Concept + close_mappings: + - qudt:QuantityKind + + slots: + - has_or_had_label + - has_or_had_description + + slot_usage: + has_or_had_label: + description: Human-readable label for this capacity type. + has_or_had_description: + description: Description of what this capacity type measures. + + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Capacity types apply to all storage facilities. + specificity_score: 0.55 + specificity_rationale: Specialized taxonomy for storage capacity measurements. + + comments: + - "Abstract base class - see CapacityTypes.yaml for concrete subclasses" + - "Per Rule 0b: Type (singular) = abstract base, Types (plural) = concrete" + - "Created 2026-01-22 per slot_fixes.yaml capacity_type migration" diff --git a/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml b/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml new file mode 100644 index 0000000000..7936143dcb --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CapacityTypes.yaml @@ -0,0 +1,140 @@ +# CapacityTypes class (concrete subclasses) +# Created 2026-01-22 per slot_fixes.yaml revision for capacity_type (Rule 53) +# Following Rule 0b: Type/Types naming convention + +id: https://nde.nl/ontology/hc/class/CapacityTypes +name: capacity_types_class +title: Capacity Types Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + +default_prefix: hc + +imports: + - linkml:types + - ./CapacityType + +classes: + VolumeCapacity: + is_a: CapacityType + class_uri: hc:VolumeCapacity + description: | + Cubic volume capacity measurement (e.g., cubic meters). + Used for storage depots, vaults, and enclosed spaces. + annotations: + qudt_kind: "qudt:Volume" + typical_units: "m³, ft³, liters" + comments: + - "Replaces CapacityTypeEnum.VOLUME" + + ShelfLengthCapacity: + is_a: CapacityType + class_uri: hc:ShelfLengthCapacity + description: | + Linear shelf or storage length capacity (e.g., linear meters). + Standard measurement for archive depots. + annotations: + qudt_kind: "qudt:Length" + typical_units: "m, ft, km" + comments: + - "Replaces CapacityTypeEnum.SHELF_LENGTH" + - "Primary metric for archival storage" + + FloorAreaCapacity: + is_a: CapacityType + class_uri: hc:FloorAreaCapacity + description: | + Floor space area capacity (e.g., square meters). + Used for storage rooms, galleries, and exhibition spaces. + annotations: + qudt_kind: "qudt:Area" + typical_units: "m², ft²" + comments: + - "Replaces CapacityTypeEnum.FLOOR_AREA" + + ItemCountCapacity: + is_a: CapacityType + class_uri: hc:ItemCountCapacity + description: | + Number of items that can be stored. + Used for boxes, folders, objects, artworks. + annotations: + qudt_kind: "qudt:Dimensionless" + typical_units: "boxes, folders, objects, items" + comments: + - "Replaces CapacityTypeEnum.ITEM_COUNT" + + WeightCapacity: + is_a: CapacityType + class_uri: hc:WeightCapacity + description: | + Weight or mass capacity (e.g., kilograms, tons). + Important for floor load limits and transport. + annotations: + qudt_kind: "qudt:Mass" + typical_units: "kg, tons, lbs" + comments: + - "Replaces CapacityTypeEnum.WEIGHT" + + SeatingCapacity: + is_a: CapacityType + class_uri: hc:SeatingCapacity + description: | + Seating capacity for venues and event spaces. + Number of seats or persons allowed. + annotations: + qudt_kind: "qudt:Dimensionless" + typical_units: "seats, persons" + comments: + - "Replaces CapacityTypeEnum.SEATING" + + DisplayAreaCapacity: + is_a: CapacityType + class_uri: hc:DisplayAreaCapacity + description: | + Exhibition or display area capacity. + Used for galleries and exhibition halls. + annotations: + qudt_kind: "qudt:Area" + typical_units: "m², ft²" + comments: + - "Replaces CapacityTypeEnum.DISPLAY_AREA" + + RackSlotCapacity: + is_a: CapacityType + class_uri: hc:RackSlotCapacity + description: | + Number of rack or shelf slots available. + Used for modular storage systems. + annotations: + qudt_kind: "qudt:Dimensionless" + typical_units: "slots, positions" + comments: + - "Replaces CapacityTypeEnum.RACK_SLOTS" + + DrawerUnitCapacity: + is_a: CapacityType + class_uri: hc:DrawerUnitCapacity + description: | + Number of drawer units available. + Used for flat file storage and specimen collections. + annotations: + qudt_kind: "qudt:Dimensionless" + typical_units: "drawers, units" + comments: + - "Replaces CapacityTypeEnum.DRAWER_UNITS" + + CabinetUnitCapacity: + is_a: CapacityType + class_uri: hc:CabinetUnitCapacity + description: | + Number of cabinet or storage units available. + Used for modular cabinet systems. + annotations: + qudt_kind: "qudt:Dimensionless" + typical_units: "cabinets, units" + comments: + - "Replaces CapacityTypeEnum.CABINET_UNITS" diff --git a/schemas/20251121/linkml/modules/classes/Caption.yaml b/schemas/20251121/linkml/modules/classes/Caption.yaml new file mode 100644 index 0000000000..314bd2dfa5 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Caption.yaml @@ -0,0 +1,97 @@ +id: https://nde.nl/ontology/hc/class/Caption +name: caption_class +title: Caption 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 + - ../slots/has_or_had_label + - ../slots/language + - ./Label +default_prefix: hc + +classes: + Caption: + class_uri: schema:caption + description: >- + Represents accessibility caption/subtitle information for media content. + + **PURPOSE**: + + Caption provides structured representation of video/audio captions for: + - WCAG accessibility compliance + - Multilingual subtitle support + - Caption metadata (language, format, availability) + + **ONTOLOGY ALIGNMENT**: + + | Ontology | Mapping | Rationale | + |----------|---------|-----------| + | Schema.org | schema:caption | Media caption/subtitle | + + **USE CASES**: + - Video captions for hearing accessibility + - Subtitles for multilingual content + - Closed captions vs. open captions distinction + + MIGRATED 2026-01-22: Created per slot_fixes.yaml feedback to replace + simple caption_available string with structured class. + exact_mappings: + - schema:caption + slots: + - has_or_had_label + - language + slot_usage: + has_or_had_label: + range: Label + required: false + inlined: true + description: >- + Caption text content. Label.has_or_had_text contains the actual caption. + language: + range: string + required: false + description: >- + ISO 639-1 language code for the caption (e.g., "en", "nl", "de"). + attributes: + caption_format: + range: string + required: false + description: >- + Caption format (e.g., "SRT", "VTT", "TTML", "closed_caption", "open_caption"). + is_available: + range: boolean + required: false + description: >- + Whether captions are available for this media. + Replaces simple caption_available boolean/string. + caption_url: + range: uri + required: false + description: >- + URL to external caption file (for SRT, VTT, etc.). + examples: + - value: + is_available: true + language: en + caption_format: closed_caption + description: English closed captions available + - value: + is_available: true + language: nl + caption_format: SRT + caption_url: https://example.org/video/captions_nl.srt + description: Dutch subtitles in SRT format + - value: + has_or_had_label: + has_or_had_text: "Video beschrijving voor slechthorenden" + language: nl + is_available: true + description: Dutch caption with descriptive text + annotations: + specificity_score: 0.60 + specificity_rationale: >- + Captions are specific to media content, moderately relevant for digital heritage. diff --git a/schemas/20251121/linkml/modules/classes/FindingAid.yaml b/schemas/20251121/linkml/modules/classes/FindingAid.yaml index 37a6d004c3..f4ab7ad5d1 100644 --- a/schemas/20251121/linkml/modules/classes/FindingAid.yaml +++ b/schemas/20251121/linkml/modules/classes/FindingAid.yaml @@ -70,8 +70,7 @@ imports: - ../slots/has_or_had_access_condition - ../slots/is_or_was_access_restricted - ../slots/has_or_had_comprehensive_overview - - ../slots/card_description - - ../slots/card_description_en + # REMOVED 2026-01-22: card_description, card_description_en → has_or_had_description + Description (with language tag) per slot_fixes.yaml - ../slots/card_image_url - ../slots/card_title - ../slots/card_title_en @@ -1027,8 +1026,8 @@ classes: ' slots: - - card_description - - card_description_en + # MIGRATED 2026-01-22: card_description, card_description_en → has_or_had_description + Description (multivalued with language tag) + - has_or_had_description - card_image_url - card_title - card_title_en @@ -1037,6 +1036,25 @@ classes: - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - has_or_had_provenance_path # was: xpath - migrated per Rule 53 (2026-01-15) slot_usage: + has_or_had_description: + range: Description + multivalued: true + inlined: true + description: | + Card description(s) with language tagging. + MIGRATED 2026-01-22: Replaces card_description and card_description_en. + Use description_type: "card" and language: "nl"/"en" to distinguish. + examples: + - value: + description_text: "Kaart beschrijving in het Nederlands" + description_type: card + language: nl + description: Dutch card description + - value: + description_text: "Card description in English" + description_type: card + language: en + description: English card description card_title: required: true card_url: diff --git a/schemas/20251121/linkml/modules/classes/Identifier.yaml b/schemas/20251121/linkml/modules/classes/Identifier.yaml index 429443fcdf..f257d34400 100644 --- a/schemas/20251121/linkml/modules/classes/Identifier.yaml +++ b/schemas/20251121/linkml/modules/classes/Identifier.yaml @@ -19,7 +19,9 @@ imports: - ../slots/defined_by_standard - ../slots/is_or_was_allocated_by - ../slots/identifier_format_used - - ../slots/canonical_value + # MIGRATED 2026-01-22: canonical_value → has_or_had_canonical_form + CanonicalForm per slot_fixes.yaml feedback + - ../slots/has_or_had_canonical_form + - ./CanonicalForm - ../slots/has_or_had_secondary_label - ../slots/has_allocation_date - ../slots/specificity_annotation @@ -160,7 +162,7 @@ classes: - defined_by_standard: Which Standard defines this identifier type (ISIL → ISO 15511) - allocated_by: Which AllocationAgency assigned this specific identifier - identifier_format_used: Which format variant is used in identifier_value - - canonical_value: Normalized form for deduplication and matching + - has_or_had_canonical_form: Normalized form (CanonicalForm) for deduplication and matching - allocation_date: When the identifier was assigned **Dual-Purpose Identifiers**: @@ -187,7 +189,8 @@ classes: - is_or_was_allocated_by - has_allocation_date - has_or_had_secondary_label - - canonical_value + # MIGRATED 2026-01-22: canonical_value → has_or_had_canonical_form + CanonicalForm + - has_or_had_canonical_form - defined_by_standard - identifier_format_used - identifies_custodian @@ -203,8 +206,19 @@ classes: required: false identifier_format_used: required: false - canonical_value: + has_or_had_canonical_form: + range: CanonicalForm required: false + inlined: true + description: >- + Canonical/normalized form for deduplication and matching. + MIGRATED 2026-01-22: Replaces canonical_value with structured CanonicalForm. + examples: + - value: + has_or_had_label: + has_or_had_text: "0000000121465765" + normalization_rule: "ISNI_REMOVE_SPACES" + description: ISNI canonical form has_or_had_secondary_label: description: | For dual-purpose identifiers (ISNI, VIAF), links to the name authority diff --git a/schemas/20251121/linkml/modules/classes/VideoPost.yaml b/schemas/20251121/linkml/modules/classes/VideoPost.yaml index 7e7846dc3c..1f585e7763 100644 --- a/schemas/20251121/linkml/modules/classes/VideoPost.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoPost.yaml @@ -8,7 +8,9 @@ imports: - ../slots/language - ../slots/has_aspect_ratio # REMOVED 2026-01-15: ../slots/available_caption_languages - migrated to has_available_caption_language - - ../slots/caption_available + # MIGRATED 2026-01-22: caption_available → has_or_had_caption + Caption per slot_fixes.yaml feedback + - ../slots/has_or_had_caption + - ./Caption # REMOVED 2026-01-18: ../slots/comment_author - migrated to has_or_had_author + Author (Rule 53) - ../slots/has_or_had_author - ./Author @@ -223,7 +225,8 @@ classes: slots: - has_aspect_ratio - has_available_caption_language - - caption_available + # MIGRATED 2026-01-22: caption_available → has_or_had_caption + Caption per slot_fixes.yaml feedback + - has_or_had_caption # REMOVED 2026-01-18: comment_count - migrated to has_or_had_quantity + Quantity (Rule 53) # REMOVED 2026-01-22: comments_fetched - migrated to was_fetched_at + is_or_was_part_of_total + SourceCommentCount (Rule 53) - was_fetched_at @@ -279,14 +282,31 @@ classes: # examples: # - value: 30.0 # description: 30 frames per second - caption_available: - range: boolean + # MIGRATED 2026-01-22: caption_available → has_or_had_caption + Caption per slot_fixes.yaml feedback + has_or_had_caption: + range: Caption + multivalued: true + inlined: true required: false + description: | + Structured caption/subtitle information for this video. + MIGRATED from caption_available per slot_fixes.yaml (Rule 53, 2026-01-22). + Caption class provides language, format, and availability metadata. examples: - - value: true - description: Video has captions available - - value: false - description: No captions available + - value: + is_available: true + language: en + caption_format: closed_caption + description: English closed captions available + - value: + is_available: true + language: nl + caption_format: VTT + caption_url: https://example.org/video/captions_nl.vtt + description: Dutch subtitles in VTT format + - value: + is_available: false + description: No captions available (migrated from caption_available: false) default_language: range: string required: false diff --git a/schemas/20251121/linkml/modules/slots/canonical_value.yaml b/schemas/20251121/linkml/modules/slots/archive/canonical_value_archived_20260122.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/canonical_value.yaml rename to schemas/20251121/linkml/modules/slots/archive/canonical_value_archived_20260122.yaml diff --git a/schemas/20251121/linkml/modules/slots/capacity.yaml b/schemas/20251121/linkml/modules/slots/archive/capacity_archived_20260122.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/capacity.yaml rename to schemas/20251121/linkml/modules/slots/archive/capacity_archived_20260122.yaml diff --git a/schemas/20251121/linkml/modules/slots/capacity_type.yaml b/schemas/20251121/linkml/modules/slots/archive/capacity_type_archived_20260122.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/capacity_type.yaml rename to schemas/20251121/linkml/modules/slots/archive/capacity_type_archived_20260122.yaml diff --git a/schemas/20251121/linkml/modules/slots/card_description.yaml b/schemas/20251121/linkml/modules/slots/archive/card_description_archived_20260122.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/card_description.yaml rename to schemas/20251121/linkml/modules/slots/archive/card_description_archived_20260122.yaml diff --git a/schemas/20251121/linkml/modules/slots/card_description_en.yaml b/schemas/20251121/linkml/modules/slots/archive/card_description_en_archived_20260122.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/card_description_en.yaml rename to schemas/20251121/linkml/modules/slots/archive/card_description_en_archived_20260122.yaml diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml new file mode 100644 index 0000000000..f9f547d0ae --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_caption.yaml @@ -0,0 +1,36 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_caption +name: has_or_had_caption_slot +title: Has or Had Caption Slot +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 +default_range: string + +slots: + has_or_had_caption: + slot_uri: schema:caption + description: >- + Links to a Caption providing accessibility text for media content. + + **PURPOSE**: + - Accessibility compliance (WCAG) + - Video/audio content description + - Multilingual caption support + + **ONTOLOGY ALIGNMENT**: + - slot_uri: schema:caption (primary) + - Supports Schema.org media accessibility patterns + + MIGRATED 2026-01-22: Replaces caption_available slot per slot_fixes.yaml feedback. + range: Caption + inlined: true + multivalued: true + exact_mappings: + - schema:caption + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Captions are universal for media accessibility diff --git a/schemas/20251121/linkml/modules/slots/manifest.json b/schemas/20251121/linkml/modules/slots/manifest.json index 439a3e02ea..81d2a12402 100644 --- a/schemas/20251121/linkml/modules/slots/manifest.json +++ b/schemas/20251121/linkml/modules/slots/manifest.json @@ -18,14 +18,11 @@ "begin_of_the_begin.yaml", "begin_of_the_end.yaml", "has_or_had_notation.yaml", - "canonical_value.yaml", - "capacity.yaml", + "has_or_had_canonical_form.yaml", "capacity_type.yaml", "capacity_value.yaml", "capital_budget.yaml", "caption_available.yaml", - "card_description.yaml", - "card_description_en.yaml", "card_image_url.yaml", "card_title.yaml", "card_title_en.yaml", @@ -69,7 +66,7 @@ "confidence_value.yaml", "__ARCHIVED_20260122__conflict_status.yaml", "__ARCHIVED_20260122__connection.yaml", - "connection_degree.yaml", + "__ARCHIVED_20260122__connection_degree.yaml", "connection_heritage_relevant.yaml", "connection_heritage_type.yaml", "connection_id.yaml", diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index fa74a3925c..aff69c5123 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -7956,7 +7956,8 @@ fixes: would enhance semantic clarity and allow for richer metadata about each canonical value. This would align with best practices for data normalization.' - done: false + done: true + response: "Completed 2026-01-22 by claude-sonnet-4. Created has_or_had_canonical_form slot and CanonicalForm class. Migrated Identifier.yaml (CustodianIdentifier) to use new pattern. CanonicalForm has has_or_had_label → Label for normalized value, plus normalization_rule and source_format attributes. Archived canonical_value.yaml." - original_slot_id: https://nde.nl/ontology/hc/slot/capacity revision: - label: has_or_had_capacity @@ -7991,7 +7992,8 @@ fixes: and align with best practices for modeling dimensional data. This would facilitate better integration with other dimension-related data.' - done: false + done: true + response: "Completed 2026-01-22 by claude-sonnet-4. ARCHIVED (unused): capacity slot not imported by any class file. Archived to archive/capacity_archived_20260122.yaml. No migration needed as slot was never used." - original_slot_id: https://nde.nl/ontology/hc/slot/capacity_cubic_meters revision: - label: has_or_had_capacity @@ -8166,7 +8168,8 @@ fixes: would enhance semantic clarity and allow for richer metadata about each description. This would align with best practices for descriptive data modeling.' - done: false + done: true + response: "Completed 2026-01-22 by claude-sonnet-4. Migrated FindingAid.yaml Card class to use has_or_had_description + Description (multivalued with language tag). Description.description_type='card' and Description.language='nl' distinguishes from English. Archived card_description.yaml." - original_slot_id: https://nde.nl/ontology/hc/slot/card_description_en revision: - label: has_or_had_description @@ -8209,7 +8212,8 @@ fixes: would enhance semantic clarity and allow for richer metadata about each description. This would align with best practices for multilingual data modeling.' - done: false + done: true + response: "Completed 2026-01-22 by claude-sonnet-4. Same migration as card_description - FindingAid.yaml Card class uses has_or_had_description + Description with language='en'. Archived card_description_en.yaml." - original_slot_id: https://nde.nl/ontology/hc/slot/card_image_url revision: - label: has_or_had_image @@ -11332,6 +11336,28 @@ fixes: type: slot - label: CapacityTypes type: class + processed: + status: true + date: '2026-01-22' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration #59: capacity_type** ✅ COMPLETE + + **Pattern**: capacity_type → has_or_had_type + CapacityType/CapacityTypes hierarchy + + **Files Created**: + - CapacityType.yaml: Abstract base class for capacity types + - CapacityTypes.yaml: 10 concrete subclasses (Volume, ShelfLength, FloorArea, etc.) + + **Files Modified**: + - Capacity.yaml: Migrated capacity_type to has_or_had_type + CapacityType + - Updated imports + - Updated slots list + - Updated slot_usage with CapacityType range + - Updated description examples + - Updated class examples + + **Archived**: modules/slots/archive/capacity_type_archived_20260122.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/capacity_value revision: - label: has_or_had_quantity