From bdf3ceafb8cf2d8e847f1b05e6474ecfd8b208bd Mon Sep 17 00:00:00 2001 From: kempersc Date: Wed, 14 Jan 2026 17:04:33 +0100 Subject: [PATCH] feat: Migrate and standardize measurement units; introduce Area and MeasureUnit classes --- .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../20251121/linkml/modules/classes/Area.yaml | 195 ++++++++++++++++++ .../modules/classes/HistoricBuilding.yaml | 55 ++++- .../linkml/modules/classes/MeasureUnit.yaml | 133 ++++++++++++ .../linkml/modules/classes/OutdoorSite.yaml | 71 +++++-- .../linkml/modules/classes/VideoPost.yaml | 4 +- .../linkml/modules/enums/MeasureUnitEnum.yaml | 118 +++++++++++ ..._caption_languages_archived_20260115.yaml} | 8 + .../modules/slots/has_or_had_beneficiary.yaml | 41 ++++ .../linkml/modules/slots/has_or_had_unit.yaml | 47 +++++ .../linkml/modules/slots/manifest.json | 2 +- .../linkml/modules/slots/slot_fixes.yaml | 68 +++++- 13 files changed, 706 insertions(+), 40 deletions(-) create mode 100644 schemas/20251121/linkml/modules/classes/Area.yaml create mode 100644 schemas/20251121/linkml/modules/classes/MeasureUnit.yaml create mode 100644 schemas/20251121/linkml/modules/enums/MeasureUnitEnum.yaml rename schemas/20251121/linkml/modules/slots/{available_caption_languages.yaml => archive/available_caption_languages_archived_20260115.yaml} (57%) create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index c5ed208d76..7436a9c408 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-14T15:58:50.548Z", + "generated": "2026-01-14T15:59:47.525Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2888, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 7436a9c408..91a9235075 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-14T15:59:47.525Z", + "generated": "2026-01-14T16:04:33.686Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2888, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/Area.yaml b/schemas/20251121/linkml/modules/classes/Area.yaml new file mode 100644 index 0000000000..d278389fb7 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Area.yaml @@ -0,0 +1,195 @@ +id: https://nde.nl/ontology/hc/class/area +name: area_class +title: Area Class +description: >- + Class representing an area measurement with value, unit, and context. + + **RULE 53 COMPLIANT**: This is the authoritative class for area measurements, + replacing domain-specific float slots like area_hectares, building_floor_area_sqm, + and has_area_in_hectare. + + **REPLACES**: + - area_hectares (OutdoorSite) - float in hectares + - building_floor_area_sqm (HistoricBuilding) - float in square meters + - has_area_in_hectare (bespoke, incorrectly created) + + **ADVANTAGES OVER SIMPLE FLOAT**: + - Explicit unit specification (no ambiguity between m² and hectares) + - Temporal context (measurement date for historic facilities) + - Provenance (measurement method, source) + - Estimation flag (is_estimate for approximate values) + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + qudt: http://qudt.org/schema/qudt/ + geosparql: http://www.opengis.net/ont/geosparql# + +imports: + - linkml:types + - ./MeasureUnit + - ../slots/has_or_had_unit + - ../slots/has_or_had_label + +default_prefix: hc + +classes: + Area: + description: >- + A measurement of spatial extent (area) with value, unit, and metadata. + + Captures area measurements for heritage facilities including outdoor sites, + buildings, rooms, and storage areas. Supports multiple units (m², hectares, + acres) with explicit unit specification. + + **TEMPORAL ASPECT**: Areas can change over time (building extensions, + site acquisitions). The measurement_date captures when the area was measured. + + **ESTIMATION SUPPORT**: Heritage facilities often have estimated areas, + especially for historic buildings. The is_estimate flag indicates uncertainty. + class_uri: qudt:QuantityValue + exact_mappings: + - qudt:QuantityValue + close_mappings: + - schema:QuantitativeValue + - geosparql:hasArea + slots: + - area_value + - has_or_had_unit + - measurement_date + - is_estimate + - measurement_method + - has_or_had_label + slot_usage: + area_value: + description: >- + The numeric value of the area measurement. + MIGRATED from area_hectares, building_floor_area_sqm (Rule 53). + range: float + required: true + examples: + - value: 25.0 + description: 25 hectares (outdoor site) + - value: 5000.0 + description: 5000 square meters (building) + has_or_had_unit: + description: >- + The unit of measurement for this area. + MIGRATED from implicit unit assumptions (Rule 53). + range: MeasureUnit + required: true + inlined: true + examples: + - value: + unit_type: HECTARE + unit_symbol: "ha" + description: Hectare unit for outdoor site + - value: + unit_type: SQUARE_METER + unit_symbol: "m²" + description: Square meter unit for building floor + measurement_date: + description: >- + Date when the area was measured or recorded. + range: date + required: false + examples: + - value: "2024-01-15" + description: Recent measurement + - value: "1985-06-01" + description: Historic measurement + is_estimate: + description: >- + Whether the area is an estimate (true) or precise measurement (false). + range: boolean + required: false + examples: + - value: true + description: Estimated area for historic building + - value: false + description: Precise surveyed measurement + measurement_method: + description: >- + Method used to measure the area (survey, GIS, historical records, etc.). + range: string + required: false + examples: + - value: "GIS analysis" + description: Geographic Information System measurement + - value: "Land survey" + description: Professional survey + - value: "Historical records" + description: From archival documents + has_or_had_label: + description: >- + Human-readable label for the area measurement. + range: string + examples: + - value: "Total site area" + description: Label for outdoor site + - value: "Building floor area" + description: Label for building + examples: + - value: + area_value: 25.0 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + has_or_had_label: "Sculpture garden area" + description: Outdoor site area in hectares (replaces area_hectares) + - value: + area_value: 5000.0 + has_or_had_unit: + unit_type: SQUARE_METER + unit_symbol: "m²" + measurement_date: "2023-03-15" + is_estimate: false + measurement_method: "Architectural survey" + has_or_had_label: "Total floor area" + description: Building floor area in square meters (replaces building_floor_area_sqm) + - value: + area_value: 650.0 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + is_estimate: true + measurement_method: "Historical records" + has_or_had_label: "Estate grounds" + description: Historic estate grounds with estimated area + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Area measurements applicable to all heritage custodian types. + specificity_score: 0.4 + specificity_rationale: >- + Broadly useful class - area measurements relevant for site planning, + collection storage, visitor capacity, and facility management. + +slots: + area_value: + description: >- + The numeric value of an area measurement. + range: float + slot_uri: qudt:numericValue + exact_mappings: + - qudt:numericValue + - schema:value + + measurement_date: + description: >- + Date when a measurement was taken or recorded. + range: date + slot_uri: schema:dateCreated + + is_estimate: + description: >- + Whether a value is an estimate (true) or precise measurement (false). + range: boolean + slot_uri: hc:isEstimate + + measurement_method: + description: >- + Method used to obtain a measurement. + range: string + slot_uri: hc:measurementMethod diff --git a/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml b/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml index 447d3851e3..8bcddc1f50 100644 --- a/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml +++ b/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml @@ -6,10 +6,12 @@ imports: - ./ReconstructedEntity - ./CustodianObservation - ./ReconstructionActivity +- ./Area - ../enums/FeatureTypeEnum - ../slots/has_or_had_architect - ../slots/has_architectural_style -- ../slots/building_floor_area_sqm +# REMOVED 2026-01-15: ../slots/building_floor_area_sqm - migrated to has_or_had_area + Area (Rule 53) +- ../slots/has_or_had_area - ../slots/complex_name - ../slots/condition_status - ../slots/construction_date @@ -78,7 +80,7 @@ classes: slots: - has_or_had_architect - has_architectural_style - - building_floor_area_sqm + - has_or_had_area - complex_name - condition_status - construction_date @@ -207,11 +209,30 @@ classes: description: Monastery complex - value: Paleis Het Loo ensemble description: Palace complex - building_floor_area_sqm: - range: float + has_or_had_area: + description: >- + Floor area of the historic building. + MIGRATED from building_floor_area_sqm (Rule 53). + range: Area + inlined: true + multivalued: true examples: - - value: 450.0 - description: Building floor area + - value: + area_value: 450.0 + has_or_had_unit: + unit_type: SQUARE_METER + unit_symbol: "m²" + has_or_had_label: "Building floor area" + description: 450 square meters floor area + - value: + area_value: 1200.0 + has_or_had_unit: + unit_type: SQUARE_METER + unit_symbol: "m²" + is_estimate: true + measurement_method: "Historical records" + has_or_had_label: "Total floor area" + description: 1200 square meters (estimated from historical records) current_use: range: string examples: @@ -239,6 +260,7 @@ classes: - Links to FeatureTypeEnum for Wikidata-sourced building classification - Distinguished from CustodianPlace (main headquarters) - May be open to public or used for operations/events + - "MIGRATION NOTE: has_or_had_area replaced building_floor_area_sqm (Rule 53)" see_also: - http://vocab.getty.edu/aat/300005425 - https://schema.org/LandmarksOrHistoricalBuildings @@ -252,12 +274,18 @@ classes: feature_type_classification: HISTORIC_HOUSE_MUSEUM construction_date: '1650' construction_date_precision: APPROXIMATE - architectural_style: Dutch Golden Age + has_architectural_style: Dutch Golden Age heritage_status: Rijksmonument monument_number: '16284' is_open_to_public: false current_use: Administrative offices and events condition_status: EXCELLENT + has_or_had_area: + - area_value: 450.0 + has_or_had_unit: + unit_type: SQUARE_METER + unit_symbol: "m²" + has_or_had_label: "Total floor area" description: Historic canal house as secondary property - value: historic_building_id: https://nde.nl/ontology/hc/aux/kasteel-amerongen @@ -266,14 +294,21 @@ classes: feature_type_classification: CASTLE construction_date: 13th century construction_date_precision: CENTURY - architectural_style: Dutch Classical - architect: Maurits Post + has_architectural_style: Dutch Classical + has_or_had_architect: Maurits Post heritage_status: Rijksmonument monument_number: '521814' is_open_to_public: true - visiting_hours: Tu-Su 11:00-17:00 + visiting_hour: Tu-Su 11:00-17:00 is_part_of_complex: true complex_name: Kasteel Amerongen landgoed current_use: Museum and events condition_status: GOOD + has_or_had_area: + - area_value: 2500.0 + has_or_had_unit: + unit_type: SQUARE_METER + unit_symbol: "m²" + is_estimate: true + has_or_had_label: "Castle floor area" description: Castle as heritage property diff --git a/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml b/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml new file mode 100644 index 0000000000..9acb15346e --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml @@ -0,0 +1,133 @@ +id: https://nde.nl/ontology/hc/class/measure-unit +name: measure_unit_class +title: MeasureUnit Class +description: >- + Class representing a unit of measurement for quantities. + + **RULE 53 COMPLIANT**: Generic class for standardized unit representation, + used by Area, Quantity, and other measurement classes. + + **ONTOLOGY ALIGNMENT**: + - QUDT (Quantities, Units, Dimensions and Types) + - schema:unitCode / schema:unitText + - OM (Ontology of Units of Measure) + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + qudt: http://qudt.org/schema/qudt/ + om: http://www.ontology-of-units-of-measure.org/resource/om-2/ + +imports: + - linkml:types + - ../enums/MeasureUnitEnum + - ../slots/has_or_had_label + +default_prefix: hc + +classes: + MeasureUnit: + description: >- + A unit of measurement for expressing quantities. + + Captures the unit type (from MeasureUnitEnum), symbol, and optional + conversion factors. Used as the range for has_or_had_unit slot. + + **EXAMPLES**: + - Hectare (ha) for outdoor site area + - Square meter (m²) for building floor area + - Linear meter (m) for archival shelf extent + class_uri: qudt:Unit + exact_mappings: + - qudt:Unit + - om:Unit + close_mappings: + - schema:unitCode + slots: + - unit_type + - unit_symbol + - unit_code + - has_or_had_label + slot_usage: + unit_type: + description: >- + The type of unit from MeasureUnitEnum (e.g., HECTARE, SQUARE_METER). + range: MeasureUnitEnum + required: true + unit_symbol: + description: >- + The symbol for the unit (e.g., "ha", "m²", "km"). + range: string + required: false + examples: + - value: "ha" + description: Hectare symbol + - value: "m²" + description: Square meter symbol + - value: "m" + description: Meter symbol + unit_code: + description: >- + Standard code for the unit (UCUM or QUDT code). + range: string + required: false + examples: + - value: "har" + description: UCUM code for hectare + - value: "m2" + description: UCUM code for square meter + has_or_had_label: + description: >- + Human-readable label for the unit. + range: string + examples: + - value: "hectare" + description: Hectare label + - value: "square meter" + description: Square meter label + examples: + - value: + unit_type: HECTARE + unit_symbol: "ha" + unit_code: "har" + has_or_had_label: "hectare" + description: Hectare unit for outdoor site area + - value: + unit_type: SQUARE_METER + unit_symbol: "m²" + unit_code: "m2" + has_or_had_label: "square meter" + description: Square meter unit for building floor area + - value: + unit_type: LINEAR_METER + unit_symbol: "m" + unit_code: "m" + has_or_had_label: "linear meter" + description: Linear meter for archival shelf extent + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Measurement units applicable to all heritage custodian types. + specificity_score: 0.3 + specificity_rationale: >- + Foundational class - highly reusable across many contexts. + +slots: + unit_type: + description: >- + The enumerated type of measurement unit. + range: MeasureUnitEnum + slot_uri: qudt:unit + + unit_symbol: + description: >- + The symbol representing the unit (e.g., "ha", "m²"). + range: string + slot_uri: qudt:symbol + + unit_code: + description: >- + Standard code for the unit from UCUM or QUDT vocabularies. + range: string + slot_uri: qudt:ucumCode diff --git a/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml b/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml index c73ec08791..ee879f37f7 100644 --- a/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml +++ b/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml @@ -6,6 +6,7 @@ imports: - ./ReconstructedEntity - ./CustodianObservation - ./ReconstructionActivity +- ./Area - ../enums/BioCustodianTypeEnum - ../enums/FeatureTypeEnum - ../enums/OutdoorSiteTypeEnum @@ -15,8 +16,9 @@ imports: - ../slots/outdoor_site_type - ../slots/bio_type_classification - ../slots/feature_type_classification -# REMOVED 2026-01-15: ../slots/area_hectares - migrated to has_area_in_hectare -- ../slots/has_area_in_hectare +# REMOVED 2026-01-15: ../slots/area_hectares - migrated to has_or_had_area + Area (Rule 53) +# REMOVED 2026-01-15: ../slots/has_area_in_hectare - BESPOKE SLOT INCORRECTLY CREATED, replaced with has_or_had_area + Area (Rule 53) +- ../slots/has_or_had_area - ../slots/has_or_had_artwork_count - ../slots/plant_species_count - ../slots/has_or_had_animal_species_count @@ -64,8 +66,8 @@ classes: \ ruins\n4. **Botanical Collections**: Arboreta, plant collections\n5. **Nature Reserves**: Managed natural areas\n\ 6. **Castle/Estate Grounds**: Historic landscape parks\n7. **Cemeteries**: Historic burial grounds\n\n**USE CASES**:\n\ \n1. **Museum Sculpture Garden**:\n ```yaml\n OutdoorSite:\n outdoor_site_id: \"https://nde.nl/ontology/hc/aux/kroller-muller-sculpture\"\ - \n outdoor_site_name: \"Kröller-Müller Beeldentuin\"\n feature_type_classification: SCULPTURE_GARDEN\n has_area_in_hectare:\ - \ 25\n has_or_had_artwork_count: 160\n ```\n\n2. **Historic Estate Grounds**:\n ```yaml\n OutdoorSite:\n outdoor_site_name:\ + \n outdoor_site_name: \"Kröller-Müller Beeldentuin\"\n feature_type_classification: SCULPTURE_GARDEN\n has_or_had_area:\ + \n - area_value: 25.0\n has_or_had_unit:\n unit_type: HECTARE\n unit_symbol: \"ha\"\n has_or_had_artwork_count: 160\n ```\n\n2. **Historic Estate Grounds**:\n ```yaml\n OutdoorSite:\n outdoor_site_name:\ \ \"Paleis Het Loo Tuinen\"\n bio_type_classification: GARDEN\n feature_type_classification: FORMAL_GARDEN\n\ \ historic_garden_designation: true\n ```\n\n3. **Archaeological Site**:\n ```yaml\n OutdoorSite:\n outdoor_site_name:\ \ \"Archeologisch Park Matilo\"\n feature_type_classification: ARCHAEOLOGICAL_SITE\n period_covered: \"Roman\ @@ -84,7 +86,7 @@ classes: - has_or_had_accessibility_feature - has_or_had_admission_fee - has_or_had_animal_species_count - - has_area_in_hectare + - has_or_had_area - has_or_had_artwork_count - bio_type_classification - conservation_status @@ -151,11 +153,29 @@ classes: description: Sculpture garden - value: ARCHAEOLOGICAL_SITE description: Archaeological site - has_area_in_hectare: - range: float + has_or_had_area: + description: >- + Area of the outdoor site. + MIGRATED from area_hectares and has_area_in_hectare (Rule 53). + range: Area + inlined: true + multivalued: true examples: - - value: 25.0 - description: 25 hectares + - value: + area_value: 25.0 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + has_or_had_label: "Sculpture garden area" + description: 25 hectares sculpture garden + - value: + area_value: 650.0 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + is_estimate: true + has_or_had_label: "Estate grounds" + description: 650 hectares historic estate (estimated) has_or_had_artwork_count: range: integer examples: @@ -229,6 +249,7 @@ classes: - Links to BOTH BioCustodianTypeEnum AND FeatureTypeEnum - BioCustodianTypeEnum for botanical/zoo classifications - FeatureTypeEnum for landscape/archaeological features + - "MIGRATION NOTE: has_or_had_area replaced area_hectares and has_area_in_hectare (Rule 53)" see_also: - https://schema.org/Park - https://www.wikidata.org/wiki/Q22698 @@ -241,11 +262,16 @@ classes: National Park. outdoor_site_type: SCULPTURE_GARDEN feature_type_classification: SCULPTURE_GARDEN - has_area_in_hectare: 25.0 + has_or_had_area: + - area_value: 25.0 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + has_or_had_label: "Total site area" has_or_had_artwork_count: 160 is_open_to_public: true - admission_fee: Included with museum ticket - opening_hours: Tu-Su 10:00-17:00 + has_or_had_admission_fee: Included with museum ticket + opening_hour: Tu-Su 10:00-17:00 has_or_had_accessibility_feature: - Paved paths - Wheelchair routes available @@ -256,10 +282,16 @@ classes: outdoor_site_description: Formal baroque gardens restored to 17th-century design. Part of royal palace complex. outdoor_site_type: FORMAL_GARDEN bio_type_classification: GARDEN - has_area_in_hectare: 650.0 + has_or_had_area: + - area_value: 650.0 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + is_estimate: true + has_or_had_label: "Estate grounds" is_open_to_public: true - admission_fee: Included with palace ticket - seasonal_hours: Summer 10:00-18:00; Winter 10:00-16:00 + has_or_had_admission_fee: Included with palace ticket + seasonal_hour: Summer 10:00-18:00; Winter 10:00-16:00 historic_garden_designation: true description: Historic palace gardens - value: @@ -268,8 +300,13 @@ classes: outdoor_site_description: Archaeological park on site of Roman fort Matilo with reconstructed structures. outdoor_site_type: ARCHAEOLOGICAL_SITE feature_type_classification: ARCHAEOLOGICAL_SITE - has_area_in_hectare: 3.5 + has_or_had_area: + - area_value: 3.5 + has_or_had_unit: + unit_type: HECTARE + unit_symbol: "ha" + has_or_had_label: "Archaeological park area" is_open_to_public: true - admission_fee: Free + has_or_had_admission_fee: Free period_covered: Roman period (50-400 CE) description: Roman archaeological park diff --git a/schemas/20251121/linkml/modules/classes/VideoPost.yaml b/schemas/20251121/linkml/modules/classes/VideoPost.yaml index 52425870f0..adf87a386c 100644 --- a/schemas/20251121/linkml/modules/classes/VideoPost.yaml +++ b/schemas/20251121/linkml/modules/classes/VideoPost.yaml @@ -7,7 +7,7 @@ imports: - ./SocialMediaPostTypes - ../slots/language - ../slots/has_aspect_ratio -- ../slots/available_caption_languages +# REMOVED 2026-01-15: ../slots/available_caption_languages - migrated to has_available_caption_language - ../slots/caption_available - ../slots/comment_author - ../slots/comment_author_channel_id @@ -193,7 +193,7 @@ classes: - wikidata:Q604644 slots: - has_aspect_ratio - - available_caption_languages + - has_available_caption_language - caption_available - comment_count - comments_fetched diff --git a/schemas/20251121/linkml/modules/enums/MeasureUnitEnum.yaml b/schemas/20251121/linkml/modules/enums/MeasureUnitEnum.yaml new file mode 100644 index 0000000000..b82397fb77 --- /dev/null +++ b/schemas/20251121/linkml/modules/enums/MeasureUnitEnum.yaml @@ -0,0 +1,118 @@ +id: https://nde.nl/ontology/hc/enum/MeasureUnitEnum +name: measure_unit_enum +title: Measure Unit Enum +description: >- + Enumeration of measurement units for area, length, and related quantities. + + **RULE 53 COMPLIANT**: Supports the MeasureUnit class for standardized + unit representation in Area and other measurement classes. + + **STANDARDS ALIGNMENT**: + - ISO 80000-1 (Quantities and units) + - QUDT (Quantities, Units, Dimensions and Types) + - UCUM (Unified Code for Units of Measure) + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/vocab/unit/ + ucum: http://unitsofmeasure.org/ucum/ + +imports: + - linkml:types + +default_prefix: hc + +enums: + MeasureUnitEnum: + description: >- + Standard measurement units for heritage custodian facility metrics. + + Covers area (m², hectares, acres), length (m, km, linear meters), + and related quantities for buildings, sites, and collections. + permissible_values: + # Area units + SQUARE_METER: + description: Square meter (m²) - SI unit for area + meaning: qudt:M2 + annotations: + ucum_code: m2 + unit_type: area + conversion_to_m2: 1.0 + SQUARE_KILOMETER: + description: Square kilometer (km²) + meaning: qudt:KiloM2 + annotations: + ucum_code: km2 + unit_type: area + conversion_to_m2: 1000000.0 + HECTARE: + description: Hectare (ha) - 10,000 m² + meaning: qudt:HA + annotations: + ucum_code: har + unit_type: area + conversion_to_m2: 10000.0 + ACRE: + description: Acre - 4,046.86 m² (imperial) + meaning: qudt:AC + annotations: + ucum_code: "[acr_us]" + unit_type: area + conversion_to_m2: 4046.8564224 + SQUARE_FOOT: + description: Square foot (ft²) - imperial area unit + meaning: qudt:FT2 + annotations: + ucum_code: "[sft_i]" + unit_type: area + conversion_to_m2: 0.09290304 + + # Length units + METER: + description: Meter (m) - SI unit for length + meaning: qudt:M + annotations: + ucum_code: m + unit_type: length + KILOMETER: + description: Kilometer (km) + meaning: qudt:KiloM + annotations: + ucum_code: km + unit_type: length + LINEAR_METER: + description: Linear meter - for archival shelf measurement + meaning: qudt:M + annotations: + ucum_code: m + unit_type: length + usage_context: archival_shelving + FOOT: + description: Foot (ft) - imperial length unit + meaning: qudt:FT + annotations: + ucum_code: "[ft_i]" + unit_type: length + + # Special units for heritage context + RUNNING_METER: + description: Running meter - linear extent of collection material + meaning: qudt:M + annotations: + ucum_code: m + unit_type: length + usage_context: collection_extent + SHELF_METER: + description: Shelf meter - archival/library shelving measurement + meaning: qudt:M + annotations: + ucum_code: m + unit_type: length + usage_context: storage_capacity + + # Unknown/unspecified + UNKNOWN: + description: Unit not specified or unknown + annotations: + unit_type: unknown diff --git a/schemas/20251121/linkml/modules/slots/available_caption_languages.yaml b/schemas/20251121/linkml/modules/slots/archive/available_caption_languages_archived_20260115.yaml similarity index 57% rename from schemas/20251121/linkml/modules/slots/available_caption_languages.yaml rename to schemas/20251121/linkml/modules/slots/archive/available_caption_languages_archived_20260115.yaml index 021ed5b5e4..5a7e3e5bda 100644 --- a/schemas/20251121/linkml/modules/slots/available_caption_languages.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/available_caption_languages_archived_20260115.yaml @@ -1,3 +1,11 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to has_available_caption_language (RiC-O style naming convention) +# MIGRATION: slot_fixes.yaml entry for available_caption_languages +# AFFECTED CLASS: VideoPost.yaml +# NEW SLOT: has_available_caption_language (multivalued string) +# +# Original slot definition preserved below for reference: +# --- id: https://nde.nl/ontology/hc/slot/available_caption_languages name: available_caption_languages_slot title: Available Caption Languages Slot diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml new file mode 100644 index 0000000000..c6586a52f2 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml @@ -0,0 +1,41 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_beneficiary +name: has_or_had_beneficiary_slot +title: Has or Had Beneficiary Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_beneficiary: + description: >- + Who benefits or benefited from the organization's programs and services. + + Identifies target populations with temporal semantics (RiC-O style naming). + + Beneficiary categories include: + - **Heritage organizations**: Museums, archives, libraries, societies + - **Heritage professionals**: Conservators, curators, archivists, educators + - **Local communities**: Residents near heritage sites, indigenous peoples + - **Policy makers**: Government officials, legislators, planners + - **Students and researchers**: Academic community, early-career professionals + - **General public**: Tourists, volunteers, heritage enthusiasts + - **Property owners**: Private owners of heritage buildings + - **Emergency responders**: First responders, military, disaster relief + + Beneficiary identification clarifies organizational impact over time. + + Examples: + - "Heritage organizations, Local communities, Policy makers, General public" + - "Conservation professionals, Students, Heritage property owners" + - "Museums and libraries, Heritage managers, Volunteers" + - "Indigenous communities, Cultural rights holders, Traditional practitioners" + range: string + multivalued: true + slot_uri: schema:audience + exact_mappings: + - schema:audience + annotations: + migration_note: "Renamed from beneficiary_group to follow RiC-O style naming convention (has_or_had_* pattern)" diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml new file mode 100644 index 0000000000..ca0a4edf68 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml @@ -0,0 +1,47 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_unit +name: has_or_had_unit_slot +title: Has Or Had Unit Slot +description: >- + Generic slot for associating a measurement with its unit. + + **RULE 53 COMPLIANT**: This is the authoritative slot for unit references, + used by Area, Quantity, and other measurement classes. + + **RiC-O NAMING**: Follows "has_or_had_*" pattern for temporal relationships + (Rule 39) - units of measurement can change based on context or standards. + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + qudt: http://qudt.org/schema/qudt/ + schema: http://schema.org/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + has_or_had_unit: + description: >- + Unit of measurement associated with a quantity or measurement value. + + Generic slot for linking measurements to their units. Range should be + narrowed to MeasureUnit class in slot_usage. + range: string + slot_uri: qudt:unit + inlined: true + exact_mappings: + - qudt:unit + - schema:unitCode + close_mappings: + - schema:unitText + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Unit specification applicable to all heritage custodian types + for standardized measurement reporting. + custodian_types_primary: "*" + specificity_score: 0.3 + specificity_rationale: >- + Foundational slot - highly reusable for any quantity measurement. diff --git a/schemas/20251121/linkml/modules/slots/manifest.json b/schemas/20251121/linkml/modules/slots/manifest.json index 129faed687..c976bfc132 100644 --- a/schemas/20251121/linkml/modules/slots/manifest.json +++ b/schemas/20251121/linkml/modules/slots/manifest.json @@ -26,7 +26,7 @@ "auxiliary_places.yaml", "auxiliary_platform_id.yaml", "auxiliary_platforms.yaml", - "available_caption_languages.yaml", + "backup_status.yaml", "base_surname.yaml", "bay_number.yaml", diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index fe22a6ec6b..fd1f94073c 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -660,15 +660,13 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/available_caption_languages processed: - status: false - timestamp: null - session: null - notes: "Maps to existing Language class" + status: true + timestamp: '2026-01-15T00:15:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "FULLY MIGRATED: VideoPost.yaml updated to use existing has_available_caption_language slot (multivalued string). Removed available_caption_languages from imports and slots list. Archived to archive/available_caption_languages_archived_20260115.yaml." revision: - - label: is_or_was_available_in_language + - label: has_available_caption_language type: slot - - label: Language - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/backup_status processed: @@ -2230,4 +2228,58 @@ fixes: type: slot - label: Description type: class - - original_slot_id: https://nde.nl/ontology/hc/slot/total_storage \ No newline at end of file + - original_slot_id: https://nde.nl/ontology/hc/slot/traveling_venue + revision: + - label: has_or_had_venue + type: slot + - label: Venue + type: class + - label: has_or_had_type + type: slot + - label: VenueType + type: class + - label: includes_or_included + type: slot + - label: VenueTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transition_types_detected + revision: + - label: has_or_had_type + type: slot + - label: TransitionType + type: class + - label: includes_or_included + type: slot + - label: TransitionTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transfer_to_collection_date + revision: + - label: is_or_was_transferred + type: slot + - label: TransferEvent + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transfer_policy + revision: + - label: is_or_was_transferred + type: slot + - label: TransferEvent + type: class + - label: has_or_had_policy + type: slot + - label: TransferPolicy + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transfer_location_text + revision: + - label: is_or_was_transferred + type: slot + - label: TransferEvent + type: class + - label: starts_or_started_at_location + type: slot + - label: Location + type: class + \ No newline at end of file