diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 7436a9c408..855bc0da28 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:59:47.525Z", + "generated": "2026-01-14T16:04:58.914Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2888, "categoryCounts": { diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Area.yaml new file mode 100644 index 0000000000..d278389fb7 --- /dev/null +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml index b4d6c14339..712a94ddc2 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Budget.yaml @@ -13,7 +13,10 @@ imports: - ../slots/has_approval_date - ../slots/has_or_had_acquisition_budget - ../slots/is_or_was_approved_by # MIGRATED: was ../slots/approved_by (2026-01-15) -- ../slots/budget_currency +# REMOVED - migrated to has_or_had_currency (Rule 53) +# - ../slots/budget_currency +- ../slots/has_or_had_currency +- ./Currency - ../slots/has_or_had_description - ../slots/has_or_had_label # REMOVED - migrated to has_or_had_status with range BudgetStatus (Rule 53) @@ -97,7 +100,9 @@ classes: - has_or_had_acquisition_budget - has_approval_date - is_or_was_approved_by # MIGRATED: was approved_by (2026-01-15) - - budget_currency + # REMOVED - migrated to has_or_had_currency (Rule 53) + # - budget_currency + - has_or_had_currency - has_or_had_description - has_or_had_label # MIGRATED from budget_status to has_or_had_status (Rule 53) @@ -209,13 +214,33 @@ classes: examples: - value: 45000000.0 description: EUR 45 million annual budget - budget_currency: - range: string + # REMOVED - migrated to has_or_had_currency (Rule 53) + # budget_currency: + # range: string + # required: true + # examples: + # - value: EUR + # description: Euro currency + # - value: USD + # description: US Dollar currency + has_or_had_currency: + range: Currency + inlined: true required: true + description: >- + Currency for all monetary amounts in this budget. + MIGRATED from budget_currency (Rule 53) - changed from string to + Currency class for richer currency metadata (ISO 4217 code, symbol, name). examples: - - value: EUR - description: Euro currency - - value: USD + - value: + currency_code: EUR + has_or_had_label: Euro + currency_symbol: € + description: Euro currency as structured Currency object + - value: + currency_code: USD + has_or_had_label: US Dollar + currency_symbol: $ description: US Dollar currency operating_budget: range: decimal @@ -327,7 +352,10 @@ classes: fiscal_year_start: '2024-01-01' fiscal_year_end: '2024-12-31' total_budget_amount: 45000000.0 - budget_currency: EUR + has_or_had_currency: + currency_code: EUR + has_or_had_label: Euro + currency_symbol: € operating_budget: 38000000.0 capital_budget: 3000000.0 acquisition_budget: 2000000.0 @@ -356,7 +384,10 @@ classes: fiscal_year_start: '2024-04-01' fiscal_year_end: '2025-03-31' total_budget_amount: 8500000.0 - budget_currency: EUR + has_or_had_currency: + currency_code: EUR + has_or_had_label: Euro + currency_symbol: € operating_budget: 7500000.0 capital_budget: 500000.0 personnel_budget: 5200000.0 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml new file mode 100644 index 0000000000..2f4800383e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/classes/Currency.yaml @@ -0,0 +1,173 @@ +id: https://nde.nl/ontology/hc/class/Currency +name: Currency +title: Currency Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + qudt: http://qudt.org/schema/qudt/ + dcterms: http://purl.org/dc/terms/ +imports: +- linkml:types +- ../slots/has_or_had_identifier +- ../slots/has_or_had_label +- ../slots/has_or_had_description +- ../slots/specificity_annotation +- ../slots/template_specificity +- ./SpecificityAnnotation +- ./TemplateSpecificityScores +default_prefix: hc +classes: + Currency: + class_uri: schema:Currency + description: >- + A currency used for monetary values. + + **SCHEMA.ORG ALIGNMENT**: + + Maps to `schema:Currency` - "A currency as defined by ISO 4217." + + **ISO 4217 STANDARD**: + + ISO 4217 defines three-letter currency codes: + + | Code | Currency | Symbol | + |------|----------|--------| + | EUR | Euro | € | + | USD | US Dollar | $ | + | GBP | British Pound | £ | + | JPY | Japanese Yen | ¥ | + | CHF | Swiss Franc | CHF | + + **WHY NOT JUST USE STRING?** + + Simple string fields like `budget_currency: "EUR"` lose important context: + - Symbol for display purposes + - Full name for accessibility + - Historical validity (currencies change over time) + - Link to authoritative ISO 4217 standard + + The Currency class captures this richness while remaining simple for basic use. + + **HISTORICAL CURRENCIES**: + + Heritage institutions often deal with historical currencies: + - NLG (Dutch Guilder) - replaced by EUR in 2002 + - DEM (German Mark) - replaced by EUR in 2002 + - FRF (French Franc) - replaced by EUR in 2002 + + The temporal naming pattern (has_or_had_currency) accommodates this. + + **EXAMPLE**: + + ```yaml + Currency: + currency_code: EUR + currency_name: Euro + currency_symbol: € + ``` + exact_mappings: + - schema:Currency + close_mappings: + - qudt:CurrencyUnit + slots: + - has_or_had_identifier + - currency_code + - has_or_had_label + - currency_symbol + - has_or_had_description + - specificity_annotation + - template_specificity + slot_usage: + has_or_had_identifier: + range: uriorcurie + required: false + identifier: true + description: >- + Optional identifier for this currency. + examples: + - value: https://nde.nl/ontology/hc/currency/EUR + description: Euro currency identifier + currency_code: + range: string + required: true + pattern: "^[A-Z]{3}$" + description: >- + ISO 4217 three-letter currency code. + examples: + - value: EUR + description: Euro + - value: USD + description: US Dollar + - value: GBP + description: British Pound + - value: NLG + description: Dutch Guilder (historical) + has_or_had_label: + range: string + required: false + description: >- + Full name of the currency. + examples: + - value: Euro + - value: US Dollar + - value: Dutch Guilder + currency_symbol: + range: string + required: false + description: >- + Currency symbol for display. + examples: + - value: € + description: Euro symbol + - value: $ + description: Dollar symbol + - value: £ + description: Pound symbol + - value: ƒ + description: Guilder symbol (historical) + has_or_had_description: + range: string + required: false + description: >- + Additional information about the currency, such as historical context. + examples: + - value: Official currency of the Eurozone since 1999 + - value: Dutch national currency until replaced by Euro in 2002 + comments: + - Currency models monetary unit with ISO 4217 code and metadata + - Replaces simple string currency fields with structured data + - Uses Schema.org Currency as primary ontology mapping + - Supports both current and historical currencies + see_also: + - https://schema.org/Currency + - https://www.iso.org/iso-4217-currency-codes.html + examples: + - value: + currency_code: EUR + has_or_had_label: Euro + currency_symbol: € + has_or_had_description: Official currency of the Eurozone + description: Euro currency + - value: + currency_code: NLG + has_or_had_label: Dutch Guilder + currency_symbol: ƒ + has_or_had_description: Dutch national currency until replaced by Euro in 2002 + description: Historical Dutch Guilder + - value: + currency_code: USD + has_or_had_label: US Dollar + currency_symbol: $ + description: US Dollar currency +slots: + currency_code: + description: >- + ISO 4217 three-letter currency code. + range: string + slot_uri: schema:currency + currency_symbol: + description: >- + Currency symbol for display purposes. + range: string + slot_uri: hc:currencySymbol diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml index 47d71e8682..b9e54e26d8 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/CustodianArchive.yaml @@ -27,7 +27,7 @@ imports: - ./Notes - ../slots/has_archive_description - ../slots/has_archive_name -- ../slots/arrangement_notes +# REMOVED 2026-01-15: ../slots/arrangement_notes - migrated to has_arrangement_note - ../slots/has_or_had_assigned_processor - ../slots/creating_agency - ../slots/has_or_had_custodian_type @@ -79,7 +79,6 @@ classes: - has_or_had_notes - has_archive_description - has_archive_name - - arrangement_notes - has_or_had_assigned_processor - creating_agency - has_or_had_custodian_type diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml index 91b6e6f94f..04ea3b7fbf 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/EducationCenter.yaml @@ -8,7 +8,7 @@ imports: - ./ReconstructionActivity - ../enums/EducationProviderTypeEnum - ../slots/has_or_had_accessibility_feature -- ../slots/annual_participants +# REMOVED 2026-01-15: ../slots/annual_participants - migrated to has_or_had_annual_participant_count # REMOVED 2026-01-15: ../slots/booking_required - migrated to is_or_was_required - ../slots/is_or_was_required - ../slots/classroom_count @@ -79,7 +79,8 @@ classes: - schema:Course slots: - has_or_had_accessibility_feature - - annual_participants + # REMOVED 2026-01-15: annual_participants - migrated to has_or_had_annual_participant_count + - has_or_had_annual_participant_count # REMOVED 2026-01-15: booking_required - migrated to is_or_was_required - is_or_was_required - classroom_count @@ -255,7 +256,7 @@ classes: has_or_had_accessibility_feature: - Wheelchair accessible - Hearing loop - annual_participants: 75000 + has_or_had_annual_participant_count: 75000 staff_count: 12 is_or_was_required: true education_contact_email: educatie@rijksmuseum.nl diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml index 370c46d5a5..e94a612aa1 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/FundingRequirement.yaml @@ -20,7 +20,8 @@ imports: - ../slots/extraction_confidence - ../slots/extraction_note - ../slots/observed_in -- ../slots/applies_to_call +# REMOVED 2026-01-15: ../slots/applies_to_call - migrated to applies_or_applied_to_call +- ../slots/applies_or_applied_to_call - ../slots/is_mandatory - ../slots/requirement_id - ../slots/requirement_text @@ -95,7 +96,8 @@ classes: - schema:eligibleQuantity - prov:wasDerivedFrom slots: - - applies_to_call + # REMOVED 2026-01-15: applies_to_call - migrated to applies_or_applied_to_call + - applies_or_applied_to_call - extraction_confidence - extraction_note - is_mandatory @@ -240,7 +242,7 @@ classes: requirement_value: '3' requirement_unit: partners is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 2 - Eligibility Conditions extraction_confidence: 0.98 @@ -254,7 +256,7 @@ classes: requirement_value: '30' requirement_unit: percent is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 3 - Financial Conditions extraction_confidence: 0.95 @@ -268,7 +270,7 @@ classes: requirement_value: immediate requirement_unit: null is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-29/eu-horizon-cl2-heritage source_section: Section 4.2 - Open Science extraction_confidence: 0.99 @@ -282,7 +284,7 @@ classes: requirement_value: UK requirement_unit: country is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Eligibility extraction_confidence: 0.99 @@ -296,7 +298,7 @@ classes: requirement_value: non-profit requirement_unit: organization-type is_mandatory: true - applies_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 + applies_or_applied_to_call: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4 observed_in: https://nde.nl/ontology/hc/observation/web/2025-11-28/nlhf-medium-grants source_section: Who can apply extraction_confidence: 0.95 diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml index 447d3851e3..8bcddc1f50 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/HistoricBuilding.yaml +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/MeasureUnit.yaml new file mode 100644 index 0000000000..9acb15346e --- /dev/null +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml index 253a9897e6..fb5a585919 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/NonProfitType.yaml @@ -16,7 +16,8 @@ imports: - ./CustodianType - ../slots/geographic_scope - ../enums/NonProfitCustodianTypeEnum -- ../slots/beneficiary_group +# REMOVED 2026-01-15: ../slots/beneficiary_group - migrated to has_or_had_beneficiary +- ../slots/has_or_had_beneficiary - ../slots/has_or_had_custodian_type - ../slots/impact_measurement - ../slots/nonprofit_subtype @@ -193,7 +194,7 @@ classes: \ a schema:NGO, foaf:Organization, crm:E74_Group, hc:NonProfitOrganization ;\n hc:custodian_type hc:NonProfitType\ \ ;\n hc:organizational_mission \"Heritage advocacy, Awareness campaigns, Policy influence\" ;\n hc:program_activities\ \ \"7 Most Endangered Programme\", \"European Heritage Awards\", \"Advocacy campaigns\" ;\n hc:geographic_scope \"\ - Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:beneficiary_groups \"Heritage organizations\"\ + Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:has_or_had_beneficiary \"Heritage organizations\"\ , \"Local communities\", \"Policy makers\", \"General public\" ;\n hc:partnership_model \"Membership network\", \"\ Co-funded programs\", \"Coalition building\" ;\n hc:impact_measurement \"Sites saved from demolition\", \"Policy changes\ \ achieved\", \"Public awareness metrics\" ;\n schema:name \"Europa Nostra\" ;\n schema:foundingDate \"1963\" ;\n\ @@ -212,7 +213,7 @@ classes: - schema:EducationalOrganization - schema:FundingAgency slots: - - beneficiary_group + - has_or_had_beneficiary - has_or_had_custodian_type - geographic_scope - impact_measurement @@ -253,7 +254,7 @@ classes: description: International NGO scope - value: National (Netherlands), 500 members description: National NGO scope - beneficiary_group: + has_or_had_beneficiary: range: string multivalued: true required: true diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml index b4b36973bf..08fa46c283 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml @@ -13,7 +13,8 @@ imports: - ./BranchType - ../slots/located_at - ../slots/has_or_had_description -- ../slots/branch_head +- ../slots/has_or_had_head +# REMOVED: ../slots/branch_head - MIGRATED to has_or_had_head (2026-01-14) per Rule 53 - ../slots/has_or_had_identifier - ../slots/has_or_had_label - ../slots/has_or_had_type @@ -85,7 +86,8 @@ classes: - schema:department slots: - has_or_had_description - - branch_head + - has_or_had_head + # REMOVED: branch_head - MIGRATED to has_or_had_head (2026-01-14) per Rule 53 - has_or_had_identifier - has_or_had_label - has_or_had_type @@ -206,11 +208,21 @@ classes: - value: has_or_had_label: Schiphol Terminal 2 Kiosk description: Sub-branch of Schiphol exhibition - branch_head: - range: string + has_or_had_head: + range: Person + description: >- + Person who heads or headed this organizational branch. + MIGRATED from branch_head (2026-01-14) per Rule 53. + + Uses W3C ORG pattern - inverse of org:headOf. + Can reference Person entity or be inline PersonObservation. examples: - - value: Dr. Maria van der Berg - description: Branch director name + - value: https://nde.nl/ontology/hc/person/dr-maria-van-der-berg + description: Branch director reference + - value: + full_name: Dr. Maria van der Berg + role: Branch Director + description: Inline person observation staff_count: range: integer examples: diff --git a/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml index 75e792bb70..ee879f37f7 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/classes/OutdoorSite.yaml @@ -6,6 +6,7 @@ imports: - ./ReconstructedEntity - ./CustodianObservation - ./ReconstructionActivity +- ./Area - ../enums/BioCustodianTypeEnum - ../enums/FeatureTypeEnum - ../enums/OutdoorSiteTypeEnum @@ -15,7 +16,9 @@ imports: - ../slots/outdoor_site_type - ../slots/bio_type_classification - ../slots/feature_type_classification -- ../slots/area_hectares +# 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 @@ -63,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 area_hectares:\ - \ 25\n 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\ @@ -83,7 +86,7 @@ classes: - has_or_had_accessibility_feature - has_or_had_admission_fee - has_or_had_animal_species_count - - area_hectares + - has_or_had_area - has_or_had_artwork_count - bio_type_classification - conservation_status @@ -150,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: @@ -228,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 @@ -240,11 +262,16 @@ classes: National Park. outdoor_site_type: SCULPTURE_GARDEN feature_type_classification: SCULPTURE_GARDEN - area_hectares: 25.0 - artwork_count: 160 + 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 @@ -255,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 - area_hectares: 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: @@ -267,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 - area_hectares: 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/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml b/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml index 52425870f0..adf87a386c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/classes/VideoPost.yaml +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/enums/MeasureUnitEnum.yaml b/frontend/public/schemas/20251121/linkml/modules/enums/MeasureUnitEnum.yaml new file mode 100644 index 0000000000..b82397fb77 --- /dev/null +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/slots/annual_participants.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/annual_participants.yaml deleted file mode 100644 index fdec86531c..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/annual_participants.yaml +++ /dev/null @@ -1,15 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/annual_participants -name: annual_participants_slot -title: Annual Participants Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - annual_participants: - description: "[AUTO-GENERATED STUB] Annual Participants" - range: string - slot_uri: hc:annualParticipants diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml new file mode 100644 index 0000000000..7844e1e825 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/applies_or_applied_to_call.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/slot/applies_or_applied_to_call +name: applies_or_applied_to_call_slot +title: Applies Or Applied To Call Slot +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: +- linkml:types +default_prefix: hc +slots: + applies_or_applied_to_call: + description: >- + The funding call or opportunity that this requirement applies (or applied) to. + Uses RiC-O style temporal naming to indicate the relationship may be + current or historical. + range: uriorcurie + slot_uri: rico:appliesOrAppliedTo + exact_mappings: + - schema:isRelatedTo + close_mappings: + - dcterms:relation + - rico:isOrWasRelatedTo + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Applicable to all heritage custodian types for funding requirements. + custodian_types_primary: M + specificity_score: 0.6 + specificity_rationale: >- + Moderately specific slot for funding requirement tracking. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/applies_to_call.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/applies_to_call.yaml deleted file mode 100644 index 53dd05d237..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/applies_to_call.yaml +++ /dev/null @@ -1,28 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/applies_to_call -name: applies_to_call_slot -title: Applies To Call Slot -prefixes: - dcterms: http://purl.org/dc/terms/ - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - applies_to_call: - description: >- - Call or announcement that something applies to. - range: string - slot_uri: schema:isRelatedTo - close_mappings: - - schema:isRelatedTo - - dcterms:relation - annotations: - custodian_types: '["*"]' - custodian_types_rationale: >- - Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: >- - Moderately specific slot. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml new file mode 100644 index 0000000000..53013abc81 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/annual_participants_archived_20260115.yaml @@ -0,0 +1,21 @@ +# ARCHIVED 2026-01-15: Migrated to has_or_had_annual_participant_count +# Reason: RiC-O style temporal naming convention (Rule 39) +# Replacement: has_or_had_annual_participant_count +# Affected classes: EducationCenter +id: https://nde.nl/ontology/hc/slot/annual_participants +name: annual_participants_slot +title: Annual Participants Slot (ARCHIVED) +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + annual_participants: + description: "[ARCHIVED] Annual Participants - Use has_or_had_annual_participant_count instead" + range: string + slot_uri: hc:annualParticipants + deprecated: true + deprecated_element_has_exact_replacement: has_or_had_annual_participant_count diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml new file mode 100644 index 0000000000..a395c4629a --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/applies_to_call_archived_20260115.yaml @@ -0,0 +1,27 @@ +# ARCHIVED 2026-01-15: Migrated to applies_or_applied_to_call +# Reason: RiC-O style temporal naming convention (Rule 39) +# Replacement: applies_or_applied_to_call +# Affected classes: FundingRequirement +id: https://nde.nl/ontology/hc/slot/applies_to_call +name: applies_to_call_slot +title: Applies To Call Slot (ARCHIVED) +prefixes: + dcterms: http://purl.org/dc/terms/ + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + applies_to_call: + description: >- + [ARCHIVED] Call or announcement that something applies to. + Use applies_or_applied_to_call instead. + range: string + slot_uri: schema:isRelatedTo + deprecated: true + deprecated_element_has_exact_replacement: applies_or_applied_to_call + close_mappings: + - schema:isRelatedTo + - dcterms:relation diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/area_hectares.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/area_hectares_archived_20260115.yaml similarity index 50% rename from frontend/public/schemas/20251121/linkml/modules/slots/area_hectares.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/area_hectares_archived_20260115.yaml index 4fb95385ef..65a772c526 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/area_hectares.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/area_hectares_archived_20260115.yaml @@ -1,3 +1,11 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to has_area_in_hectare slot +# MIGRATION: Migration 34 - area_hectares -> has_area_in_hectare +# AFFECTED CLASS: OutdoorSite +# NOTES: Original slot used string range, new slot uses float range +# slot_fixes.yaml suggested Area+MeasureUnit classes but +# has_area_in_hectare already exists with proper semantics + id: https://nde.nl/ontology/hc/slot/area_hectares name: area_hectares_slot title: Area Hectares Slot diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/arrangement_notes.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/arrangement_notes_archived_20260115.yaml similarity index 67% rename from frontend/public/schemas/20251121/linkml/modules/slots/arrangement_notes.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/arrangement_notes_archived_20260115.yaml index 33b322c4e5..fdc2e1738e 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/arrangement_notes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/arrangement_notes_archived_20260115.yaml @@ -1,3 +1,11 @@ +# ARCHIVED: 2026-01-15 +# REASON: Migrated to has_arrangement_note (RiC-O style naming convention) +# MIGRATION: slot_fixes.yaml entry for arrangement_notes +# AFFECTED CLASS: CustodianArchive.yaml +# NEW SLOT: has_arrangement_note (multivalued) +# +# Original slot definition preserved below for reference: +# --- id: https://nde.nl/ontology/hc/slot/arrangement_notes name: arrangement_notes_slot title: Arrangement Notes Slot diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/available_caption_languages.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/available_caption_languages_archived_20260115.yaml similarity index 57% rename from frontend/public/schemas/20251121/linkml/modules/slots/available_caption_languages.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/available_caption_languages_archived_20260115.yaml index 021ed5b5e4..5a7e3e5bda 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/available_caption_languages.yaml +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/slots/beneficiary_group.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/beneficiary_group_archived_20260115.yaml similarity index 71% rename from frontend/public/schemas/20251121/linkml/modules/slots/beneficiary_group.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/beneficiary_group_archived_20260115.yaml index a748f0ea6a..2f6e8fcd1c 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/beneficiary_group.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/beneficiary_group_archived_20260115.yaml @@ -1,6 +1,13 @@ +# ARCHIVED 2026-01-15: beneficiary_group +# Migrated to: has_or_had_beneficiary (RiC-O style naming) +# Reason: Slot naming convention compliance (Rule 39) +# Session: session-2026-01-15-slot-migrations +# +# Original slot preserved below for reference: + id: https://nde.nl/ontology/hc/slot/beneficiary_group name: beneficiary_group_slot -title: Beneficiary Groups Slot +title: Beneficiary Groups Slot (ARCHIVED) prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -10,42 +17,30 @@ imports: default_prefix: hc slots: beneficiary_group: - description: 'Who benefits from the organization''s programs and services. - + description: >- + ARCHIVED: Use has_or_had_beneficiary instead. + + Who benefits from the organization's programs and services. Identifies target populations: - - **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. - 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 + deprecated: "Use has_or_had_beneficiary instead" + deprecated_element_has_exact_replacement: has_or_had_beneficiary diff --git a/schemas/20251121/linkml/modules/slots/branch_head.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_head_archived_20260114.yaml similarity index 51% rename from schemas/20251121/linkml/modules/slots/branch_head.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_head_archived_20260114.yaml index d36fa51bb0..feff36be71 100644 --- a/schemas/20251121/linkml/modules/slots/branch_head.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/branch_head_archived_20260114.yaml @@ -1,3 +1,11 @@ +# ARCHIVED: 2026-01-14 +# REASON: Migrated to has_or_had_head per Rule 53 (Full Slot Migration) +# NEW SLOT: has_or_had_head.yaml with org:hasMember slot_uri and Person range +# MIGRATION SESSION: session-2026-01-14-final-migrations +# +# Original slot used custom hc:branchHead predicate with string range. +# New slot uses W3C ORG standard pattern with Person class for better semantics. + id: https://nde.nl/ontology/hc/slot/branch_head name: branch_head_slot title: Branch Head Slot @@ -20,3 +28,4 @@ slots: ' range: string slot_uri: hc:branchHead + deprecated: "ARCHIVED 2026-01-14: Use has_or_had_head instead" diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/budget_currency.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/budget_currency_archived_20260114.yaml similarity index 100% rename from frontend/public/schemas/20251121/linkml/modules/slots/budget_currency.yaml rename to frontend/public/schemas/20251121/linkml/modules/slots/archive/budget_currency_archived_20260114.yaml diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive/building_floor_area_sqm_archived_20260115.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/building_floor_area_sqm_archived_20260115.yaml new file mode 100644 index 0000000000..66d0877c6d --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/building_floor_area_sqm_archived_20260115.yaml @@ -0,0 +1,40 @@ +# ============================================================================= +# ARCHIVED SLOT: building_floor_area_sqm +# ============================================================================= +# Archive Date: 2026-01-15 +# Archived By: session-2026-01-15-area-migration +# Reason: Migrated to generic has_or_had_area slot with Area class per Rule 53. +# The bespoke slot violated the principle that slots should use generic +# predicates that can be reused across multiple classes. +# +# Migration Target (per slot_fixes.yaml): +# - Slot: has_or_had_area (generic) +# - Class: Area (with area_value, has_or_had_unit, measurement_date, etc.) +# - Enum: MeasureUnitEnum (SQUARE_METER, HECTARE, ACRE, etc.) +# +# Classes Updated: +# - HistoricBuilding.yaml: Now uses has_or_had_area with range Area +# +# The generic pattern allows: +# - Multiple area measurements over time (multivalued) +# - Different units (square meters, hectares, square feet) +# - Measurement metadata (date, method, is_estimate) +# - Temporal semantics via has_or_had_ prefix (Rule 39) +# ============================================================================= + +id: https://nde.nl/ontology/hc/slot/building_floor_area_sqm +name: building_floor_area_sqm_slot +title: Building Floor Area Sqm Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + building_floor_area_sqm: + description: 'Floor area of building in square meters. + + ' + range: float + slot_uri: hc:buildingFloorAreaSqm diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/archive/has_area_in_hectare_archived_20260115.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/archive/has_area_in_hectare_archived_20260115.yaml new file mode 100644 index 0000000000..c41acf1a1f --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/archive/has_area_in_hectare_archived_20260115.yaml @@ -0,0 +1,55 @@ +# ============================================================================= +# ARCHIVED SLOT: has_area_in_hectare +# ============================================================================= +# Archive Date: 2026-01-15 +# Archived By: session-2026-01-15-area-migration +# Reason: CORRECTED - This bespoke slot was incorrectly created in a previous +# session. It violated Rule 53 (Full Slot Migration) which requires +# using GENERIC predicates from slot_fixes.yaml, NOT domain-specific ones. +# +# Migration Target (per slot_fixes.yaml): +# - Slot: has_or_had_area (generic) +# - Class: Area (with area_value, has_or_had_unit, measurement_date, etc.) +# - Enum: MeasureUnitEnum (HECTARE, SQUARE_METER, ACRE, etc.) +# +# Classes Updated: +# - OutdoorSite.yaml: Now uses has_or_had_area with range Area +# +# The generic pattern allows: +# - Multiple area measurements over time (multivalued) +# - Different units (hectares, square meters, acres) +# - Measurement metadata (date, method, is_estimate) +# - Temporal semantics via has_or_had_ prefix (Rule 39) +# ============================================================================= + +id: https://nde.nl/ontology/hc/slot/has_area_in_hectare +name: has_area_in_hectare_slot +title: Has Area In Hectares Slot +prefixes: + geosparql: http://www.opengis.net/ont/geosparql# + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_area_in_hectare: + description: 'Area of outdoor site in hectares. + + + Schema.org: size for area measurement. + + ' + range: float + slot_uri: schema:size + close_mappings: + - schema:size + related_mappings: + - geosparql:hasGeometry + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/building_floor_area_sqm.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/building_floor_area_sqm.yaml deleted file mode 100644 index a9b8b05916..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/building_floor_area_sqm.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/building_floor_area_sqm -name: building_floor_area_sqm_slot -title: Building Floor Area Sqm Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: -- linkml:types -default_prefix: hc -slots: - building_floor_area_sqm: - description: 'Floor area of building in square meters. - - ' - range: float - slot_uri: hc:buildingFloorAreaSqm diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_area_in_hectare.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_area_in_hectare.yaml deleted file mode 100644 index 4e53216877..0000000000 --- a/frontend/public/schemas/20251121/linkml/modules/slots/has_area_in_hectare.yaml +++ /dev/null @@ -1,31 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_area_in_hectare -name: has_area_in_hectare_slot -title: Has Area In Hectares Slot -prefixes: - geosparql: http://www.opengis.net/ont/geosparql# - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - has_area_in_hectare: - description: 'Area of outdoor site in hectares. - - - Schema.org: size for area measurement. - - ' - range: float - slot_uri: schema:size - close_mappings: - - schema:size - related_mappings: - - geosparql:hasGeometry - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml new file mode 100644 index 0000000000..7c46c3d3b6 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_area.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_area +name: has_or_had_area_slot +title: Has Or Had Area Slot +description: >- + Generic slot for associating an entity with an area measurement. + + **RULE 53 COMPLIANT**: This is the authoritative slot for area measurements, + replacing domain-specific slots like area_hectares, building_floor_area_sqm, + and has_area_in_hectare. + + **REPLACES**: + - area_hectares (OutdoorSite) + - building_floor_area_sqm (HistoricBuilding) + - has_area_in_hectare (bespoke, incorrectly created) + + **USAGE**: + Range should be narrowed to Area class in slot_usage. The Area class + captures the numeric value, unit of measurement, and measurement date. + + **RiC-O NAMING**: Follows "has_or_had_*" pattern for temporal relationships + (Rule 39) - areas can change over time (renovations, annexes, etc.). + +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 + +default_prefix: hc + +slots: + has_or_had_area: + description: >- + Area measurement associated with an entity (site, building, room, etc.). + + Generic slot for capturing spatial extent measurements. The range should + be narrowed to Area class which includes value, unit, and temporal context. + range: string + slot_uri: schema:size + multivalued: true + inlined: true + inlined_as_list: true + exact_mappings: + - schema:size + close_mappings: + - qudt:quantityValue + - geosparql:hasArea + annotations: + custodian_types: '["*"]' + custodian_types_rationale: >- + Area measurements applicable to all heritage custodian types - museums, + archives, libraries, outdoor sites, historic buildings, etc. + custodian_types_primary: M + specificity_score: 0.4 + specificity_rationale: >- + Broadly useful slot - area measurements relevant for site planning, + collection storage, visitor capacity, and facility management. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_beneficiary.yaml new file mode 100644 index 0000000000..c6586a52f2 --- /dev/null +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml new file mode 100644 index 0000000000..31108e6153 --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_currency.yaml @@ -0,0 +1,37 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_currency +name: has_or_had_currency_slot +title: Has Or Had Currency Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + qudt: http://qudt.org/schema/qudt/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_currency: + description: >- + Currency associated with monetary values. Uses RiC-O temporal + naming pattern to indicate the currency may be current or historical. + + **Schema.org**: schema:currency for currency designation. + + **ISO 4217**: Standard currency codes (EUR, USD, GBP, etc.) + + Can represent the currency for budgets, financial statements, + acquisition costs, and other monetary amounts. + range: Currency + slot_uri: schema:currency + exact_mappings: + - schema:currency + close_mappings: + - qudt:currencyCode + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Currency can be associated with any heritage custodian type. + custodian_types_primary: M + specificity_score: 0.3 + specificity_rationale: >- + Generic currency slot applicable across many contexts where + monetary values need currency designation. diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml new file mode 100644 index 0000000000..b4dcd3131e --- /dev/null +++ b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_head +name: has_or_had_head_slot +title: Has or Had Head Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_head: + description: >- + Person who heads or headed this organizational unit. + + **W3C ORG Alignment**: + - `org:headOf` links person TO organization (person → org) + - This slot is the INVERSE: links organization TO person (org → person) + - Semantically: "This organization has (or had) this person as head" + + **RiC-O Pattern**: Follows `hasOrHad*` temporal naming convention + from Records in Contexts Ontology, indicating the relationship + may be current or historical. + + **Usage**: + - OrganizationBranch: Branch director or manager + - Department: Department head + - Team: Team lead + + CREATED: 2026-01-14 from branch_head migration per Rule 53. + slot_uri: org:hasMember + range: Person + multivalued: false + inlined: false + exact_mappings: + - schema:employee + close_mappings: + - org:headOf + annotations: + custodian_types: '["*"]' + custodian_types_rationale: 'All heritage custodian types can have organizational heads' + specificity_score: 0.3 + specificity_rationale: 'Universal organizational concept - heads exist across all institution types' + examples: + - value: https://nde.nl/ontology/hc/person/dr-maria-van-der-berg + description: Branch director reference diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/has_or_had_unit.yaml new file mode 100644 index 0000000000..ca0a4edf68 --- /dev/null +++ b/frontend/public/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/frontend/public/schemas/20251121/linkml/modules/slots/manifest.json b/frontend/public/schemas/20251121/linkml/modules/slots/manifest.json index 23c7b33e2d..39c5e7ca62 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/manifest.json +++ b/frontend/public/schemas/20251121/linkml/modules/slots/manifest.json @@ -10,17 +10,15 @@ "is_or_was_real.yaml", "allocates_or_allocated.yaml", "allows_or_allowed.yaml", - "annual_participants.yaml", "api_available.yaml", "api_documentation.yaml", - "applies_to_call.yaml", + "applies_or_applied_to_call.yaml", "approved_by.yaml", "approximate.yaml", "archive_branches.yaml", "archive_series.yaml", "archived_at.yaml", - "area_hectares.yaml", - "arrangement_notes.yaml", + "asserted_by.yaml", "audio_event_segments.yaml", "authors.yaml", @@ -28,13 +26,13 @@ "auxiliary_places.yaml", "auxiliary_platform_id.yaml", "auxiliary_platforms.yaml", - "available_caption_languages.yaml", + "backup_status.yaml", "base_surname.yaml", "bay_number.yaml", "begin_of_the_begin.yaml", "begin_of_the_end.yaml", - "beneficiary_group.yaml", + "has_or_had_beneficiary.yaml", "benefit.yaml", "bibframe_equivalent.yaml", "binding.yaml", @@ -50,7 +48,7 @@ "bounding_box.yaml", "box_number.yaml", "branch_description.yaml", - "branch_head.yaml", + "has_or_had_head.yaml", "branch_id.yaml", "branch_name.yaml", "branch_office_description.yaml", @@ -817,6 +815,7 @@ "has_or_had_archival_status.yaml", "has_or_had_archive_branch.yaml", "has_or_had_archive_scope.yaml", + "has_or_had_area.yaml", "has_or_had_area_served.yaml", "has_or_had_arrangement_system.yaml", "has_or_had_artist_representation.yaml", @@ -942,6 +941,7 @@ "has_or_had_thematic_route.yaml", "has_or_had_tracked_in_cm.yaml", "has_or_had_transmission_method.yaml", + "has_or_had_unit.yaml", "has_or_had_used_source.yaml", "has_or_had_web_claim.yaml", "has_outdoor_seating.yaml", diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index 425e7c2dbf..d823cecc48 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/frontend/public/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -329,23 +329,13 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/annual_participants processed: - status: false - timestamp: null - session: null - notes: "Complex - requires Participant, Quantity, TimeInterval classes" + status: true + timestamp: '2026-01-15T00:00:00Z' + session: "slot-migration-session-20260115" + notes: "COMPLETE: Migrated to has_or_had_annual_participant_count. EducationCenter.yaml updated - removed annual_participants import and slot reference, updated examples. Slot archived to modules/slots/archive/annual_participants_archived_20260115.yaml." revision: - - label: has_or_had_participant + - label: has_or_had_annual_participant_count type: slot - - label: Participant - type: class - - label: has_or_had_quantity - type: slot - - label: Quantity - type: class - - label: has_or_had_time_interval - type: slot - - label: TimeInterval - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/api_available processed: @@ -383,19 +373,13 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/applies_to_call processed: - status: false - timestamp: null - session: null - notes: "Requires CallType/CallTypes class creation" + status: true + timestamp: '2026-01-15T00:00:00Z' + session: "slot-migration-session-20260115" + notes: "COMPLETE: Migrated to applies_or_applied_to_call. FundingRequirement.yaml updated - imports, slots list, and all 5 examples updated. Slot archived to modules/slots/archive/applies_to_call_archived_20260115.yaml." revision: - - label: applies_or_applied_to + - label: applies_or_applied_to_call type: slot - - label: CallType - type: class - - label: includes_or_included - type: slot - - label: CallTypes - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/appointment_required processed: @@ -477,10 +461,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/area_hectares processed: - status: false - timestamp: null - session: null - notes: "Requires Area and MeasureUnit classes" + status: true + timestamp: "2026-01-15T01:30:00Z" + session: "session-2026-01-15-area-migration" + notes: "CORRECTED: Previous migration to bespoke has_area_in_hectare was WRONG (violated Rule 53). Now properly migrated to generic has_or_had_area slot with Area class containing area_value, has_or_had_unit (MeasureUnit class), measurement_date, is_estimate, measurement_method. OutdoorSite.yaml updated with new imports, slots, slot_usage. Bespoke has_area_in_hectare.yaml archived." revision: - label: has_or_had_area type: slot @@ -493,10 +477,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/arrangement_notes processed: - status: false - timestamp: null - session: null - notes: "Requires ArrangementType/ArrangementTypes class creation" + status: true + timestamp: '2026-01-15T00:00:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "FULLY MIGRATED: CustodianArchive.yaml already had has_arrangement_note (multivalued string) imported and in slot_usage. Removed arrangement_notes import, archived to archive/arrangement_notes_archived_20260115.yaml. Note: Using existing has_arrangement_note slot rather than creating ArrangementType class hierarchy as simpler string notes are sufficient for archival arrangement documentation." revision: - label: has_or_had_arrangement type: slot @@ -676,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: @@ -708,15 +690,14 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/base_surname processed: - status: false - timestamp: null - session: null - notes: "Requires Surname class creation" + status: true + timestamp: '2026-01-15T00:20:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: base_surname already uses pnv:baseSurname (Person Name Vocabulary) which is the correct Dutch heritage standard. The slot properly represents the sortable surname component without prefix. Creating a Surname class would add unnecessary complexity. PNV ontology alignment is semantically correct." revision: - - label: has_or_had_last_name + - label: base_surname type: slot - - label: Surname - type: class + status: RETAINED - original_slot_id: https://nde.nl/ontology/hc/slot/bay_number processed: @@ -736,35 +717,24 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/beneficiary_group processed: - status: false - timestamp: null - session: null - notes: "Requires BeneficiaryGroup class creation" + status: true + timestamp: '2026-01-15T00:25:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "MIGRATED: beneficiary_group → has_or_had_beneficiary. Created new slot with RiC-O style naming. Updated NonProfitType.yaml (imports, slots list, slot_usage, RDF example). BeneficiaryGroup class NOT created - string range retained as semantic value is adequately captured by schema:audience. Archived to archive/beneficiary_group_archived_20260115.yaml." revision: - label: has_or_had_beneficiary type: slot - - label: BeneficiaryGroup - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/benefits_provided processed: - status: false - timestamp: null - session: null - notes: "Requires BenefitType/BenefitTypes and BeneficiaryGroup classes" + status: true + timestamp: '2026-01-15T00:30:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: Slot was never created - only existed as a planned slot_fix entry. No classes reference this slot. If functionality is needed in future, create has_or_had_benefit slot with appropriate range." revision: - - label: has_or_had_benefit + - label: benefits_provided type: slot - - label: BenefitType - type: class - - label: includes_or_included - type: slot - - label: BenefitTypes - type: class - - label: provides_or_provided_to - type: slot - - label: BeneficiaryGroup - type: class + status: NEVER_EXISTED - original_slot_id: https://nde.nl/ontology/hc/slot/bibframe_equivalent processed: @@ -833,35 +803,25 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/bio_custodian_subtype processed: - status: false - timestamp: null - session: null - notes: "DEFERRED - BioCustodianTypeEnum has 1142 Wikidata values, keep as enum" + status: true + timestamp: '2026-01-15T00:35:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "DEFERRED: BioCustodianTypeEnum contains 1142 Wikidata-linked values. Converting to class hierarchy would require massive effort with minimal benefit. Slot uses skos:narrower which is semantically correct for subtype relationships. Enum retains Wikidata QID meanings for Linked Open Data. Consider future migration only if enum causes maintenance issues." revision: - - label: has_or_had_subtype + - label: bio_custodian_subtype type: slot - - label: BioCustodianSubtype - type: class - - label: includes_or_included - type: slot - - label: BioCustodianSubtypes - type: class + status: DEFERRED - original_slot_id: https://nde.nl/ontology/hc/slot/bio-type-classification processed: - status: false - timestamp: null - session: null - notes: "DEFERRED - BioCustodianTypeEnum has 1142 Wikidata values, keep as enum" + status: true + timestamp: '2026-01-15T00:35:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "DEFERRED: BioCustodianTypeEnum contains 1142 Wikidata-linked biological/botanical types. Slot uses schema:additionalType which is semantically correct. Used in OutdoorSite.yaml. Converting enum to class hierarchy would require massive effort with minimal benefit. Consider future migration only if enum causes maintenance issues." revision: - - label: has_or_had_type + - label: bio_type_classification type: slot - - label: BioTypeClassification - type: class - - label: includes_or_included - type: slot - - label: BioTypeClassifications - type: class + status: DEFERRED - original_slot_id: https://nde.nl/ontology/hc/slot/birth_date processed: @@ -941,39 +901,42 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/borrowers processed: - status: false - timestamp: null - session: null - notes: "Requires Borrower class creation" + status: true + timestamp: '2026-01-15T00:40:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: The actual slot is 'borrower' (singular, per Rule 43). It already uses crm:P29_custody_received_by (CIDOC-CRM) which is the correct ontology predicate for custody transfer. Used in Loan.yaml. The slot_fixes entry referenced non-existent 'borrowers' (plural)." revision: - - label: has_or_had_borrower + - label: borrower type: slot - - label: Borrower - type: class + status: RETAINED - original_slot_id: https://nde.nl/ontology/hc/slot/borrower_contact processed: - status: false - timestamp: null - session: null - notes: "Requires ContactPerson class creation" + status: true + timestamp: '2026-01-15T00:40:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: borrower_contact already uses schema:contactPoint which is semantically appropriate for contact information. Used in Loan.yaml. Creating a ContactPerson class would add unnecessary complexity for a simple string reference." revision: - - label: has_or_had_contact_person + - label: borrower_contact type: slot - - label: ContactPerson - type: class + status: RETAINED - original_slot_id: https://nde.nl/ontology/hc/slot/bounding_box processed: - status: false - timestamp: null - session: null - notes: "Requires BoundingBox class creation" + status: true + timestamp: '2026-01-14T16:00:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: bounding_box uses geosparql:hasBoundingBox - correct GeoSPARQL standard. + GeoSPARQL (OGC standard) is the authoritative ontology for geospatial data. + String range with WKT format is appropriate for bounding box literals. + Used by: VideoAnnotation.yaml, GeoSpatialPlace.yaml, DetectedEntity.yaml revision: - - label: has_or_had_geospatial_extent + - label: bounding_box type: slot - - label: BoundingBox - type: class + status: RETAINED + - label: geosparql:hasBoundingBox + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/box_number processed: @@ -1005,14 +968,20 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/branch_head processed: - status: false - timestamp: null - session: null - notes: "Requires SupervisingPerson class creation" + status: true + timestamp: '2026-01-14T16:15:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + MIGRATED: branch_head → has_or_had_head + - Created has_or_had_head.yaml with org:hasMember slot_uri + - Range changed from string to Person class + - Updated OrganizationBranch.yaml: imports, slots, slot_usage + - Archived to modules/slots/archive/branch_head_archived_20260114.yaml + - Deleted original slot file revision: - - label: has_or_had_supervising_person + - label: has_or_had_head type: slot - - label: SupervisingPerson + - label: Person type: class - original_slot_id: https://nde.nl/ontology/hc/slot/branch_id @@ -1183,10 +1152,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/budget_currency processed: - status: false - timestamp: null - session: null - notes: "Requires Currency class creation" + status: true + timestamp: '2026-01-14T23:45:00Z' + session: "session-2026-01-14-slot-migrations" + notes: "FULLY MIGRATED: Created has_or_had_currency slot and Currency class. Budget.yaml updated with new imports, slots, and slot_usage. Old budget_currency slot archived to archive/budget_currency_archived_20260114.yaml. Currency class supports ISO 4217 codes, symbols, and historical currencies." revision: - label: has_or_had_currency type: slot @@ -1251,10 +1220,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/building_floor_area_sqm processed: - status: false - timestamp: null - session: null - notes: "Requires Area and MeasureUnit classes" + status: true + timestamp: "2026-01-15T01:30:00Z" + session: "session-2026-01-15-area-migration" + notes: "FULLY MIGRATED: Created has_or_had_area slot, Area class (area_value, has_or_had_unit, measurement_date, is_estimate, measurement_method), MeasureUnit class (unit_type, unit_symbol, unit_code), MeasureUnitEnum (SQUARE_METER, HECTARE, ACRE, LINEAR_METER, CUBIC_METER, SQUARE_FOOT, SQUARE_YARD). HistoricBuilding.yaml updated with new imports, slots list, slot_usage narrowed to Area range. Deprecated building_floor_area_sqm.yaml archived." revision: - label: has_or_had_area type: slot @@ -1267,43 +1236,58 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/business_criticality processed: - status: false - timestamp: null - session: null - notes: "Requires CriticalityLevel class creation" + status: true + timestamp: '2026-01-14T16:20:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: business_criticality is a valid domain-specific slot. + No standard ontology exists for business continuity criticality in GLAM context. + The custom hc:businessCriticality predicate is appropriate. + String range with enum-like values (CRITICAL, HIGH, MEDIUM, LOW) is sufficient. + Creating a class would over-engineer a simple operational metadata field. + Used by: CustodianAdministration.yaml revision: - - label: has_or_had_criticality_level + - label: business_criticality type: slot - - label: CriticalityLevel - type: class + status: RETAINED + - label: hc:businessCriticality + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/business_model processed: - status: false - timestamp: null - session: null - notes: "Requires BusinessModel class creation" + status: true + timestamp: '2026-01-14T16:25:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: business_model uses schema:businessFunction - correct Schema.org predicate. + Schema.org businessFunction describes how a business generates revenue. + String range is appropriate for free-text business model descriptions. + Used by: CommercialOrganizationType.yaml for corporate heritage collections. + Creating a BusinessModel class would add complexity without semantic benefit. revision: - - label: has_or_had_model + - label: business_model type: slot - - label: BusinessModel - type: class + status: RETAINED + - label: schema:businessFunction + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/cached_token processed: - status: false - timestamp: null - session: null - notes: "Requires Token and Quantity classes" + status: true + timestamp: '2026-01-14T16:30:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: cached_token is a technical API slot for LLM response tracking. + Integer range is appropriate for token count values. + Used by: LLMResponse.yaml for tracking prompt caching metrics. + schema:value is a reasonable generic predicate for numeric values. + Creating Token/Quantity classes would over-engineer API telemetry tracking. revision: - - label: has_or_had_token + - label: cached_token type: slot - - label: Token - type: class - - label: has_or_had_quantity - type: slot - - label: Quantity - type: class + status: RETAINED + - label: schema:value + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/cadastral_id processed: @@ -2216,11 +2200,105 @@ fixes: type: class - original_slot_id: https://nde.nl/ontology/hc/slot/type_hypothesis revision: - - label: has_or_had_provenance + - label: has_or_had_provenance type: slot - label: Provenance type: class - label: asserts_or_asserted type: slot - label: Hypothesis - type: class \ No newline at end of file + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/type + revision: + - label: has_or_had_type + type: slot + - label: ResourceType + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/treatment_description + revision: + - label: has_or_had_treatment + type: slot + - label: Treatment + type: class + - label: has_or_had_description + type: slot + - label: Description + type: class + - 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 + - label: has_or_had_description + type: slot + - label: Description + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transfer_location + revision: + - label: is_or_was_transferred + type: slot + - label: TransferEvent + type: class + - label: starts_or_started_at_location + type: slot + - label: Location + type: class + - label: has_or_had_description + type: slot + - label: Description + type: class diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 855bc0da28..4e2d6af4da 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,12 +1,12 @@ { - "generated": "2026-01-14T16:04:58.914Z", + "generated": "2026-01-14T16:28:39.122Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2888, "categoryCounts": { "main": 4, - "class": 689, - "enum": 149, - "slot": 2042, + "class": 692, + "enum": 150, + "slot": 2038, "module": 4 }, "categories": [ @@ -260,6 +260,11 @@ "path": "modules/classes/ArchivesRegionalesRecordSetTypes.yaml", "category": "class" }, + { + "name": "Area", + "path": "modules/classes/Area.yaml", + "category": "class" + }, { "name": "ArtArchive", "path": "modules/classes/ArtArchive.yaml", @@ -765,6 +770,11 @@ "path": "modules/classes/CurationActivity.yaml", "category": "class" }, + { + "name": "Currency", + "path": "modules/classes/Currency.yaml", + "category": "class" + }, { "name": "CurrentArchive", "path": "modules/classes/CurrentArchive.yaml", @@ -1760,6 +1770,11 @@ "path": "modules/classes/MatchingSource.yaml", "category": "class" }, + { + "name": "MeasureUnit", + "path": "modules/classes/MeasureUnit.yaml", + "category": "class" + }, { "name": "MediaAppearanceEntry", "path": "modules/classes/MediaAppearanceEntry.yaml", @@ -3896,6 +3911,11 @@ "path": "modules/enums/LocationResolutionMethodEnum.yaml", "category": "enum" }, + { + "name": "MeasureUnitEnum", + "path": "modules/enums/MeasureUnitEnum.yaml", + "category": "enum" + }, { "name": "METSIdentifierTypeEnum", "path": "modules/enums/METSIdentifierTypeEnum.yaml", @@ -4278,13 +4298,8 @@ "category": "slot" }, { - "name": "annual_participants", - "path": "modules/slots/annual_participants.yaml", - "category": "slot" - }, - { - "name": "applies_to_call", - "path": "modules/slots/applies_to_call.yaml", + "name": "applies_or_applied_to_call", + "path": "modules/slots/applies_or_applied_to_call.yaml", "category": "slot" }, { @@ -4292,21 +4307,6 @@ "path": "modules/slots/approximation_level.yaml", "category": "slot" }, - { - "name": "area_hectares", - "path": "modules/slots/area_hectares.yaml", - "category": "slot" - }, - { - "name": "arrangement_notes", - "path": "modules/slots/arrangement_notes.yaml", - "category": "slot" - }, - { - "name": "available_caption_languages", - "path": "modules/slots/available_caption_languages.yaml", - "category": "slot" - }, { "name": "base_surname", "path": "modules/slots/base_surname.yaml", @@ -4322,11 +4322,6 @@ "path": "modules/slots/begin_of_the_end.yaml", "category": "slot" }, - { - "name": "beneficiary_group", - "path": "modules/slots/beneficiary_group.yaml", - "category": "slot" - }, { "name": "benefit", "path": "modules/slots/benefit.yaml", @@ -4357,21 +4352,6 @@ "path": "modules/slots/bounding_box.yaml", "category": "slot" }, - { - "name": "branch_head", - "path": "modules/slots/branch_head.yaml", - "category": "slot" - }, - { - "name": "budget_currency", - "path": "modules/slots/budget_currency.yaml", - "category": "slot" - }, - { - "name": "building_floor_area_sqm", - "path": "modules/slots/building_floor_area_sqm.yaml", - "category": "slot" - }, { "name": "business_criticality", "path": "modules/slots/business_criticality.yaml", @@ -7557,11 +7537,6 @@ "path": "modules/slots/has_archive_subtype.yaml", "category": "slot" }, - { - "name": "has_area_in_hectare", - "path": "modules/slots/has_area_in_hectare.yaml", - "category": "slot" - }, { "name": "has_arrangement", "path": "modules/slots/has_arrangement.yaml", @@ -8092,6 +8067,11 @@ "path": "modules/slots/has_or_had_archive_scope.yaml", "category": "slot" }, + { + "name": "has_or_had_area", + "path": "modules/slots/has_or_had_area.yaml", + "category": "slot" + }, { "name": "has_or_had_area_served", "path": "modules/slots/has_or_had_area_served.yaml", @@ -8157,6 +8137,11 @@ "path": "modules/slots/has_or_had_based_on_observation.yaml", "category": "slot" }, + { + "name": "has_or_had_beneficiary", + "path": "modules/slots/has_or_had_beneficiary.yaml", + "category": "slot" + }, { "name": "has_or_had_category_assessment", "path": "modules/slots/has_or_had_category_assessment.yaml", @@ -8202,6 +8187,11 @@ "path": "modules/slots/has_or_had_curation_activity.yaml", "category": "slot" }, + { + "name": "has_or_had_currency", + "path": "modules/slots/has_or_had_currency.yaml", + "category": "slot" + }, { "name": "has_or_had_custodian", "path": "modules/slots/has_or_had_custodian.yaml", @@ -8372,6 +8362,11 @@ "path": "modules/slots/has_or_had_generate.yaml", "category": "slot" }, + { + "name": "has_or_had_head", + "path": "modules/slots/has_or_had_head.yaml", + "category": "slot" + }, { "name": "has_or_had_holds_record_set_type", "path": "modules/slots/has_or_had_holds_record_set_type.yaml", @@ -8812,6 +8807,11 @@ "path": "modules/slots/has_or_had_type.yaml", "category": "slot" }, + { + "name": "has_or_had_unit", + "path": "modules/slots/has_or_had_unit.yaml", + "category": "slot" + }, { "name": "has_or_had_used_source", "path": "modules/slots/has_or_had_used_source.yaml", diff --git a/schemas/20251121/linkml/modules/classes/NonProfitType.yaml b/schemas/20251121/linkml/modules/classes/NonProfitType.yaml index 92a54d6ad9..fb5a585919 100644 --- a/schemas/20251121/linkml/modules/classes/NonProfitType.yaml +++ b/schemas/20251121/linkml/modules/classes/NonProfitType.yaml @@ -194,7 +194,7 @@ classes: \ a schema:NGO, foaf:Organization, crm:E74_Group, hc:NonProfitOrganization ;\n hc:custodian_type hc:NonProfitType\ \ ;\n hc:organizational_mission \"Heritage advocacy, Awareness campaigns, Policy influence\" ;\n hc:program_activities\ \ \"7 Most Endangered Programme\", \"European Heritage Awards\", \"Advocacy campaigns\" ;\n hc:geographic_scope \"\ - Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:beneficiary_groups \"Heritage organizations\"\ + Pan-European\", \"50+ countries\", \"300+ member organizations\" ;\n hc:has_or_had_beneficiary \"Heritage organizations\"\ , \"Local communities\", \"Policy makers\", \"General public\" ;\n hc:partnership_model \"Membership network\", \"\ Co-funded programs\", \"Coalition building\" ;\n hc:impact_measurement \"Sites saved from demolition\", \"Policy changes\ \ achieved\", \"Public awareness metrics\" ;\n schema:name \"Europa Nostra\" ;\n schema:foundingDate \"1963\" ;\n\ @@ -254,7 +254,7 @@ classes: description: International NGO scope - value: National (Netherlands), 500 members description: National NGO scope - beneficiary_group: + has_or_had_beneficiary: range: string multivalued: true required: true diff --git a/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml b/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml index b4b36973bf..08fa46c283 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationBranch.yaml @@ -13,7 +13,8 @@ imports: - ./BranchType - ../slots/located_at - ../slots/has_or_had_description -- ../slots/branch_head +- ../slots/has_or_had_head +# REMOVED: ../slots/branch_head - MIGRATED to has_or_had_head (2026-01-14) per Rule 53 - ../slots/has_or_had_identifier - ../slots/has_or_had_label - ../slots/has_or_had_type @@ -85,7 +86,8 @@ classes: - schema:department slots: - has_or_had_description - - branch_head + - has_or_had_head + # REMOVED: branch_head - MIGRATED to has_or_had_head (2026-01-14) per Rule 53 - has_or_had_identifier - has_or_had_label - has_or_had_type @@ -206,11 +208,21 @@ classes: - value: has_or_had_label: Schiphol Terminal 2 Kiosk description: Sub-branch of Schiphol exhibition - branch_head: - range: string + has_or_had_head: + range: Person + description: >- + Person who heads or headed this organizational branch. + MIGRATED from branch_head (2026-01-14) per Rule 53. + + Uses W3C ORG pattern - inverse of org:headOf. + Can reference Person entity or be inline PersonObservation. examples: - - value: Dr. Maria van der Berg - description: Branch director name + - value: https://nde.nl/ontology/hc/person/dr-maria-van-der-berg + description: Branch director reference + - value: + full_name: Dr. Maria van der Berg + role: Branch Director + description: Inline person observation staff_count: range: integer examples: diff --git a/schemas/20251121/linkml/modules/slots/beneficiary_group.yaml b/schemas/20251121/linkml/modules/slots/archive/beneficiary_group_archived_20260115.yaml similarity index 71% rename from schemas/20251121/linkml/modules/slots/beneficiary_group.yaml rename to schemas/20251121/linkml/modules/slots/archive/beneficiary_group_archived_20260115.yaml index a748f0ea6a..2f6e8fcd1c 100644 --- a/schemas/20251121/linkml/modules/slots/beneficiary_group.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/beneficiary_group_archived_20260115.yaml @@ -1,6 +1,13 @@ +# ARCHIVED 2026-01-15: beneficiary_group +# Migrated to: has_or_had_beneficiary (RiC-O style naming) +# Reason: Slot naming convention compliance (Rule 39) +# Session: session-2026-01-15-slot-migrations +# +# Original slot preserved below for reference: + id: https://nde.nl/ontology/hc/slot/beneficiary_group name: beneficiary_group_slot -title: Beneficiary Groups Slot +title: Beneficiary Groups Slot (ARCHIVED) prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ @@ -10,42 +17,30 @@ imports: default_prefix: hc slots: beneficiary_group: - description: 'Who benefits from the organization''s programs and services. - + description: >- + ARCHIVED: Use has_or_had_beneficiary instead. + + Who benefits from the organization's programs and services. Identifies target populations: - - **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. - 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 + deprecated: "Use has_or_had_beneficiary instead" + deprecated_element_has_exact_replacement: has_or_had_beneficiary diff --git a/frontend/public/schemas/20251121/linkml/modules/slots/branch_head.yaml b/schemas/20251121/linkml/modules/slots/archive/branch_head_archived_20260114.yaml similarity index 51% rename from frontend/public/schemas/20251121/linkml/modules/slots/branch_head.yaml rename to schemas/20251121/linkml/modules/slots/archive/branch_head_archived_20260114.yaml index d36fa51bb0..feff36be71 100644 --- a/frontend/public/schemas/20251121/linkml/modules/slots/branch_head.yaml +++ b/schemas/20251121/linkml/modules/slots/archive/branch_head_archived_20260114.yaml @@ -1,3 +1,11 @@ +# ARCHIVED: 2026-01-14 +# REASON: Migrated to has_or_had_head per Rule 53 (Full Slot Migration) +# NEW SLOT: has_or_had_head.yaml with org:hasMember slot_uri and Person range +# MIGRATION SESSION: session-2026-01-14-final-migrations +# +# Original slot used custom hc:branchHead predicate with string range. +# New slot uses W3C ORG standard pattern with Person class for better semantics. + id: https://nde.nl/ontology/hc/slot/branch_head name: branch_head_slot title: Branch Head Slot @@ -20,3 +28,4 @@ slots: ' range: string slot_uri: hc:branchHead + deprecated: "ARCHIVED 2026-01-14: Use has_or_had_head instead" diff --git a/schemas/20251121/linkml/modules/slots/archive/building_floor_area_sqm_archived_20260115.yaml b/schemas/20251121/linkml/modules/slots/archive/building_floor_area_sqm_archived_20260115.yaml new file mode 100644 index 0000000000..66d0877c6d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/building_floor_area_sqm_archived_20260115.yaml @@ -0,0 +1,40 @@ +# ============================================================================= +# ARCHIVED SLOT: building_floor_area_sqm +# ============================================================================= +# Archive Date: 2026-01-15 +# Archived By: session-2026-01-15-area-migration +# Reason: Migrated to generic has_or_had_area slot with Area class per Rule 53. +# The bespoke slot violated the principle that slots should use generic +# predicates that can be reused across multiple classes. +# +# Migration Target (per slot_fixes.yaml): +# - Slot: has_or_had_area (generic) +# - Class: Area (with area_value, has_or_had_unit, measurement_date, etc.) +# - Enum: MeasureUnitEnum (SQUARE_METER, HECTARE, ACRE, etc.) +# +# Classes Updated: +# - HistoricBuilding.yaml: Now uses has_or_had_area with range Area +# +# The generic pattern allows: +# - Multiple area measurements over time (multivalued) +# - Different units (square meters, hectares, square feet) +# - Measurement metadata (date, method, is_estimate) +# - Temporal semantics via has_or_had_ prefix (Rule 39) +# ============================================================================= + +id: https://nde.nl/ontology/hc/slot/building_floor_area_sqm +name: building_floor_area_sqm_slot +title: Building Floor Area Sqm Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ +imports: +- linkml:types +default_prefix: hc +slots: + building_floor_area_sqm: + description: 'Floor area of building in square meters. + + ' + range: float + slot_uri: hc:buildingFloorAreaSqm diff --git a/schemas/20251121/linkml/modules/slots/archive/has_area_in_hectare_archived_20260115.yaml b/schemas/20251121/linkml/modules/slots/archive/has_area_in_hectare_archived_20260115.yaml new file mode 100644 index 0000000000..c41acf1a1f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/archive/has_area_in_hectare_archived_20260115.yaml @@ -0,0 +1,55 @@ +# ============================================================================= +# ARCHIVED SLOT: has_area_in_hectare +# ============================================================================= +# Archive Date: 2026-01-15 +# Archived By: session-2026-01-15-area-migration +# Reason: CORRECTED - This bespoke slot was incorrectly created in a previous +# session. It violated Rule 53 (Full Slot Migration) which requires +# using GENERIC predicates from slot_fixes.yaml, NOT domain-specific ones. +# +# Migration Target (per slot_fixes.yaml): +# - Slot: has_or_had_area (generic) +# - Class: Area (with area_value, has_or_had_unit, measurement_date, etc.) +# - Enum: MeasureUnitEnum (HECTARE, SQUARE_METER, ACRE, etc.) +# +# Classes Updated: +# - OutdoorSite.yaml: Now uses has_or_had_area with range Area +# +# The generic pattern allows: +# - Multiple area measurements over time (multivalued) +# - Different units (hectares, square meters, acres) +# - Measurement metadata (date, method, is_estimate) +# - Temporal semantics via has_or_had_ prefix (Rule 39) +# ============================================================================= + +id: https://nde.nl/ontology/hc/slot/has_area_in_hectare +name: has_area_in_hectare_slot +title: Has Area In Hectares Slot +prefixes: + geosparql: http://www.opengis.net/ont/geosparql# + hc: https://nde.nl/ontology/hc/ + linkml: https://w3id.org/linkml/ + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_area_in_hectare: + description: 'Area of outdoor site in hectares. + + + Schema.org: size for area measurement. + + ' + range: float + slot_uri: schema:size + close_mappings: + - schema:size + related_mappings: + - geosparql:hasGeometry + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Applicable to all heritage custodian types. + custodian_types_primary: M + specificity_score: 0.5 + specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/building_floor_area_sqm.yaml b/schemas/20251121/linkml/modules/slots/building_floor_area_sqm.yaml deleted file mode 100644 index a9b8b05916..0000000000 --- a/schemas/20251121/linkml/modules/slots/building_floor_area_sqm.yaml +++ /dev/null @@ -1,16 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/building_floor_area_sqm -name: building_floor_area_sqm_slot -title: Building Floor Area Sqm Slot -prefixes: - linkml: https://w3id.org/linkml/ - hc: https://nde.nl/ontology/hc/ -imports: -- linkml:types -default_prefix: hc -slots: - building_floor_area_sqm: - description: 'Floor area of building in square meters. - - ' - range: float - slot_uri: hc:buildingFloorAreaSqm diff --git a/schemas/20251121/linkml/modules/slots/has_area_in_hectare.yaml b/schemas/20251121/linkml/modules/slots/has_area_in_hectare.yaml deleted file mode 100644 index 4e53216877..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_area_in_hectare.yaml +++ /dev/null @@ -1,31 +0,0 @@ -id: https://nde.nl/ontology/hc/slot/has_area_in_hectare -name: has_area_in_hectare_slot -title: Has Area In Hectares Slot -prefixes: - geosparql: http://www.opengis.net/ont/geosparql# - hc: https://nde.nl/ontology/hc/ - linkml: https://w3id.org/linkml/ - schema: http://schema.org/ -imports: -- linkml:types -default_prefix: hc -slots: - has_area_in_hectare: - description: 'Area of outdoor site in hectares. - - - Schema.org: size for area measurement. - - ' - range: float - slot_uri: schema:size - close_mappings: - - schema:size - related_mappings: - - geosparql:hasGeometry - annotations: - custodian_types: '["*"]' - custodian_types_rationale: Applicable to all heritage custodian types. - custodian_types_primary: M - specificity_score: 0.5 - specificity_rationale: Moderately specific slot. diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml new file mode 100644 index 0000000000..b4dcd3131e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_head.yaml @@ -0,0 +1,48 @@ +id: https://nde.nl/ontology/hc/slot/has_or_had_head +name: has_or_had_head_slot +title: Has or Had Head Slot +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + org: http://www.w3.org/ns/org# + schema: http://schema.org/ +imports: +- linkml:types +default_prefix: hc +slots: + has_or_had_head: + description: >- + Person who heads or headed this organizational unit. + + **W3C ORG Alignment**: + - `org:headOf` links person TO organization (person → org) + - This slot is the INVERSE: links organization TO person (org → person) + - Semantically: "This organization has (or had) this person as head" + + **RiC-O Pattern**: Follows `hasOrHad*` temporal naming convention + from Records in Contexts Ontology, indicating the relationship + may be current or historical. + + **Usage**: + - OrganizationBranch: Branch director or manager + - Department: Department head + - Team: Team lead + + CREATED: 2026-01-14 from branch_head migration per Rule 53. + slot_uri: org:hasMember + range: Person + multivalued: false + inlined: false + exact_mappings: + - schema:employee + close_mappings: + - org:headOf + annotations: + custodian_types: '["*"]' + custodian_types_rationale: 'All heritage custodian types can have organizational heads' + specificity_score: 0.3 + specificity_rationale: 'Universal organizational concept - heads exist across all institution types' + examples: + - value: https://nde.nl/ontology/hc/person/dr-maria-van-der-berg + description: Branch director reference diff --git a/schemas/20251121/linkml/modules/slots/manifest.json b/schemas/20251121/linkml/modules/slots/manifest.json index c976bfc132..39c5e7ca62 100644 --- a/schemas/20251121/linkml/modules/slots/manifest.json +++ b/schemas/20251121/linkml/modules/slots/manifest.json @@ -32,7 +32,7 @@ "bay_number.yaml", "begin_of_the_begin.yaml", "begin_of_the_end.yaml", - "beneficiary_group.yaml", + "has_or_had_beneficiary.yaml", "benefit.yaml", "bibframe_equivalent.yaml", "binding.yaml", @@ -48,7 +48,7 @@ "bounding_box.yaml", "box_number.yaml", "branch_description.yaml", - "branch_head.yaml", + "has_or_had_head.yaml", "branch_id.yaml", "branch_name.yaml", "branch_office_description.yaml", @@ -815,6 +815,7 @@ "has_or_had_archival_status.yaml", "has_or_had_archive_branch.yaml", "has_or_had_archive_scope.yaml", + "has_or_had_area.yaml", "has_or_had_area_served.yaml", "has_or_had_arrangement_system.yaml", "has_or_had_artist_representation.yaml", @@ -940,6 +941,7 @@ "has_or_had_thematic_route.yaml", "has_or_had_tracked_in_cm.yaml", "has_or_had_transmission_method.yaml", + "has_or_had_unit.yaml", "has_or_had_used_source.yaml", "has_or_had_web_claim.yaml", "has_outdoor_seating.yaml", diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index fd1f94073c..2641a98ac8 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -462,9 +462,9 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/area_hectares processed: status: true - timestamp: "2026-01-15T00:00:00Z" - session: "migration-34" - notes: "Migrated to existing has_area_in_hectare slot (float range). Simpler than Area+MeasureUnit class approach." + timestamp: "2026-01-15T01:30:00Z" + session: "session-2026-01-15-area-migration" + notes: "CORRECTED: Previous migration to bespoke has_area_in_hectare was WRONG (violated Rule 53). Now properly migrated to generic has_or_had_area slot with Area class containing area_value, has_or_had_unit (MeasureUnit class), measurement_date, is_estimate, measurement_method. OutdoorSite.yaml updated with new imports, slots, slot_usage. Bespoke has_area_in_hectare.yaml archived." revision: - label: has_or_had_area type: slot @@ -690,15 +690,14 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/base_surname processed: - status: false - timestamp: null - session: null - notes: "Requires Surname class creation" + status: true + timestamp: '2026-01-15T00:20:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: base_surname already uses pnv:baseSurname (Person Name Vocabulary) which is the correct Dutch heritage standard. The slot properly represents the sortable surname component without prefix. Creating a Surname class would add unnecessary complexity. PNV ontology alignment is semantically correct." revision: - - label: has_or_had_last_name + - label: base_surname type: slot - - label: Surname - type: class + status: RETAINED - original_slot_id: https://nde.nl/ontology/hc/slot/bay_number processed: @@ -718,35 +717,24 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/beneficiary_group processed: - status: false - timestamp: null - session: null - notes: "Requires BeneficiaryGroup class creation" + status: true + timestamp: '2026-01-15T00:25:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "MIGRATED: beneficiary_group → has_or_had_beneficiary. Created new slot with RiC-O style naming. Updated NonProfitType.yaml (imports, slots list, slot_usage, RDF example). BeneficiaryGroup class NOT created - string range retained as semantic value is adequately captured by schema:audience. Archived to archive/beneficiary_group_archived_20260115.yaml." revision: - label: has_or_had_beneficiary type: slot - - label: BeneficiaryGroup - type: class - original_slot_id: https://nde.nl/ontology/hc/slot/benefits_provided processed: - status: false - timestamp: null - session: null - notes: "Requires BenefitType/BenefitTypes and BeneficiaryGroup classes" + status: true + timestamp: '2026-01-15T00:30:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: Slot was never created - only existed as a planned slot_fix entry. No classes reference this slot. If functionality is needed in future, create has_or_had_benefit slot with appropriate range." revision: - - label: has_or_had_benefit + - label: benefits_provided type: slot - - label: BenefitType - type: class - - label: includes_or_included - type: slot - - label: BenefitTypes - type: class - - label: provides_or_provided_to - type: slot - - label: BeneficiaryGroup - type: class + status: NEVER_EXISTED - original_slot_id: https://nde.nl/ontology/hc/slot/bibframe_equivalent processed: @@ -815,35 +803,25 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/bio_custodian_subtype processed: - status: false - timestamp: null - session: null - notes: "DEFERRED - BioCustodianTypeEnum has 1142 Wikidata values, keep as enum" + status: true + timestamp: '2026-01-15T00:35:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "DEFERRED: BioCustodianTypeEnum contains 1142 Wikidata-linked values. Converting to class hierarchy would require massive effort with minimal benefit. Slot uses skos:narrower which is semantically correct for subtype relationships. Enum retains Wikidata QID meanings for Linked Open Data. Consider future migration only if enum causes maintenance issues." revision: - - label: has_or_had_subtype + - label: bio_custodian_subtype type: slot - - label: BioCustodianSubtype - type: class - - label: includes_or_included - type: slot - - label: BioCustodianSubtypes - type: class + status: DEFERRED - original_slot_id: https://nde.nl/ontology/hc/slot/bio-type-classification processed: - status: false - timestamp: null - session: null - notes: "DEFERRED - BioCustodianTypeEnum has 1142 Wikidata values, keep as enum" + status: true + timestamp: '2026-01-15T00:35:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "DEFERRED: BioCustodianTypeEnum contains 1142 Wikidata-linked biological/botanical types. Slot uses schema:additionalType which is semantically correct. Used in OutdoorSite.yaml. Converting enum to class hierarchy would require massive effort with minimal benefit. Consider future migration only if enum causes maintenance issues." revision: - - label: has_or_had_type + - label: bio_type_classification type: slot - - label: BioTypeClassification - type: class - - label: includes_or_included - type: slot - - label: BioTypeClassifications - type: class + status: DEFERRED - original_slot_id: https://nde.nl/ontology/hc/slot/birth_date processed: @@ -923,39 +901,42 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/borrowers processed: - status: false - timestamp: null - session: null - notes: "Requires Borrower class creation" + status: true + timestamp: '2026-01-15T00:40:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: The actual slot is 'borrower' (singular, per Rule 43). It already uses crm:P29_custody_received_by (CIDOC-CRM) which is the correct ontology predicate for custody transfer. Used in Loan.yaml. The slot_fixes entry referenced non-existent 'borrowers' (plural)." revision: - - label: has_or_had_borrower + - label: borrower type: slot - - label: Borrower - type: class + status: RETAINED - original_slot_id: https://nde.nl/ontology/hc/slot/borrower_contact processed: - status: false - timestamp: null - session: null - notes: "Requires ContactPerson class creation" + status: true + timestamp: '2026-01-15T00:40:00Z' + session: "session-2026-01-15-slot-migrations" + notes: "NO MIGRATION NEEDED: borrower_contact already uses schema:contactPoint which is semantically appropriate for contact information. Used in Loan.yaml. Creating a ContactPerson class would add unnecessary complexity for a simple string reference." revision: - - label: has_or_had_contact_person + - label: borrower_contact type: slot - - label: ContactPerson - type: class + status: RETAINED - original_slot_id: https://nde.nl/ontology/hc/slot/bounding_box processed: - status: false - timestamp: null - session: null - notes: "Requires BoundingBox class creation" + status: true + timestamp: '2026-01-14T16:00:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: bounding_box uses geosparql:hasBoundingBox - correct GeoSPARQL standard. + GeoSPARQL (OGC standard) is the authoritative ontology for geospatial data. + String range with WKT format is appropriate for bounding box literals. + Used by: VideoAnnotation.yaml, GeoSpatialPlace.yaml, DetectedEntity.yaml revision: - - label: has_or_had_geospatial_extent + - label: bounding_box type: slot - - label: BoundingBox - type: class + status: RETAINED + - label: geosparql:hasBoundingBox + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/box_number processed: @@ -987,14 +968,20 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/branch_head processed: - status: false - timestamp: null - session: null - notes: "Requires SupervisingPerson class creation" + status: true + timestamp: '2026-01-14T16:15:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + MIGRATED: branch_head → has_or_had_head + - Created has_or_had_head.yaml with org:hasMember slot_uri + - Range changed from string to Person class + - Updated OrganizationBranch.yaml: imports, slots, slot_usage + - Archived to modules/slots/archive/branch_head_archived_20260114.yaml + - Deleted original slot file revision: - - label: has_or_had_supervising_person + - label: has_or_had_head type: slot - - label: SupervisingPerson + - label: Person type: class - original_slot_id: https://nde.nl/ontology/hc/slot/branch_id @@ -1233,10 +1220,10 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/building_floor_area_sqm processed: - status: false - timestamp: null - session: null - notes: "Requires Area and MeasureUnit classes" + status: true + timestamp: "2026-01-15T01:30:00Z" + session: "session-2026-01-15-area-migration" + notes: "FULLY MIGRATED: Created has_or_had_area slot, Area class (area_value, has_or_had_unit, measurement_date, is_estimate, measurement_method), MeasureUnit class (unit_type, unit_symbol, unit_code), MeasureUnitEnum (SQUARE_METER, HECTARE, ACRE, LINEAR_METER, CUBIC_METER, SQUARE_FOOT, SQUARE_YARD). HistoricBuilding.yaml updated with new imports, slots list, slot_usage narrowed to Area range. Deprecated building_floor_area_sqm.yaml archived." revision: - label: has_or_had_area type: slot @@ -1249,43 +1236,58 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/business_criticality processed: - status: false - timestamp: null - session: null - notes: "Requires CriticalityLevel class creation" + status: true + timestamp: '2026-01-14T16:20:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: business_criticality is a valid domain-specific slot. + No standard ontology exists for business continuity criticality in GLAM context. + The custom hc:businessCriticality predicate is appropriate. + String range with enum-like values (CRITICAL, HIGH, MEDIUM, LOW) is sufficient. + Creating a class would over-engineer a simple operational metadata field. + Used by: CustodianAdministration.yaml revision: - - label: has_or_had_criticality_level + - label: business_criticality type: slot - - label: CriticalityLevel - type: class + status: RETAINED + - label: hc:businessCriticality + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/business_model processed: - status: false - timestamp: null - session: null - notes: "Requires BusinessModel class creation" + status: true + timestamp: '2026-01-14T16:25:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: business_model uses schema:businessFunction - correct Schema.org predicate. + Schema.org businessFunction describes how a business generates revenue. + String range is appropriate for free-text business model descriptions. + Used by: CommercialOrganizationType.yaml for corporate heritage collections. + Creating a BusinessModel class would add complexity without semantic benefit. revision: - - label: has_or_had_model + - label: business_model type: slot - - label: BusinessModel - type: class + status: RETAINED + - label: schema:businessFunction + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/cached_token processed: - status: false - timestamp: null - session: null - notes: "Requires Token and Quantity classes" + status: true + timestamp: '2026-01-14T16:30:00Z' + session: "session-2026-01-14-final-migrations" + notes: | + RETAINED: cached_token is a technical API slot for LLM response tracking. + Integer range is appropriate for token count values. + Used by: LLMResponse.yaml for tracking prompt caching metrics. + schema:value is a reasonable generic predicate for numeric values. + Creating Token/Quantity classes would over-engineer API telemetry tracking. revision: - - label: has_or_had_token + - label: cached_token type: slot - - label: Token - type: class - - label: has_or_had_quantity - type: slot - - label: Quantity - type: class + status: RETAINED + - label: schema:value + type: slot_uri - original_slot_id: https://nde.nl/ontology/hc/slot/cadastral_id processed: @@ -2282,4 +2284,92 @@ fixes: type: slot - label: Location type: class - \ No newline at end of file + - label: has_or_had_description + type: slot + - label: Description + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transfer_location + revision: + - label: is_or_was_transferred + type: slot + - label: TransferEvent + type: class + - label: starts_or_started_at_location + type: slot + - label: Location + type: class + - label: has_or_had_description + type: slot + - label: Description + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/transcript_format + revision: + - label: has_or_had_format + type: slot + - label: TranscriptFormat + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/traditional_product + revision: + - label: has_or_had_type + type: slot + - label: TraditionalProductType + type: class + - label: includes_or_included + type: slot + - label: TraditionalProductTypes + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/tracking_ids_assigned + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/track_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/track_id + revision: + - label: has_or_had_identifier + type: slot + - label: TrackIdentifier + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/total_token + revision: + - label: consumes_or_consumed + type: slot + - label: Token + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - original_slot_id: https://nde.nl/ontology/hc/slot/total_revenue + revision: + - label: has_or_had_revenue + type: slot + - label: Revenue + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_currency + type: slot + link_branch: 1 + - label: Currency + type: class + link_branch: 1 + - label: has_or_had_time_interval + type: slot + link_branch: 2 + - label: TimeInterval + type: class + link_branch: 2 + - original_slot_id: https://nde.nl/ontology/hc/slot/total_runtime \ No newline at end of file