From d0e5a5092dab17efc53884da9f88ad9ec3ee39ef Mon Sep 17 00:00:00 2001 From: kempersc Date: Mon, 19 Jan 2026 15:55:27 +0100 Subject: [PATCH] fix(schema): annotation format fixes and add slot_fixes revisions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix template_specificity annotations in Classroom.yaml and RoomUnit.yaml (YAML nested object → JSON string format for LinkML compatibility) - Add 24 new slot_fixes revision entries: - decommission_date → is_or_was_decommissioned_at + Timestamp - deductibility_* → TaxDeductibility classes - default_* → Language, Status, Caption, Alignment classes - definition → Resolution + Quantity classes --- .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../linkml/modules/classes/Classroom.yaml | 12 +- .../linkml/modules/classes/RoomUnit.yaml | 14 +- .../linkml/modules/slots/slot_fixes.yaml | 324 +++++++++++++++++- 5 files changed, 326 insertions(+), 28 deletions(-) diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index c5471e6f6e..0168ba1356 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-19T12:12:01.538Z", + "generated": "2026-01-19T13:49:48.064Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2969, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 0168ba1356..085fd493d2 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-19T13:49:48.064Z", + "generated": "2026-01-19T14:55:27.224Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2969, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/Classroom.yaml b/schemas/20251121/linkml/modules/classes/Classroom.yaml index be0f3b78f7..ea447f6df0 100644 --- a/schemas/20251121/linkml/modules/classes/Classroom.yaml +++ b/schemas/20251121/linkml/modules/classes/Classroom.yaml @@ -102,17 +102,7 @@ classes: annotations: specificity_score: "0.55" specificity_rationale: "Moderately specific - classrooms common in education centers." - template_specificity: - archive_search: 0.30 - museum_search: 0.50 - library_search: 0.45 - collection_discovery: 0.20 - person_research: 0.15 - location_browse: 0.60 - identifier_lookup: 0.10 - organizational_change: 0.25 - digital_platform: 0.15 - general_heritage: 0.55 + template_specificity: '{"archive_search": 0.30, "museum_search": 0.50, "library_search": 0.45, "collection_discovery": 0.20, "person_research": 0.15, "location_browse": 0.60, "identifier_lookup": 0.10, "organizational_change": 0.25, "digital_platform": 0.15, "general_heritage": 0.55}' examples: - value: diff --git a/schemas/20251121/linkml/modules/classes/RoomUnit.yaml b/schemas/20251121/linkml/modules/classes/RoomUnit.yaml index 99c60d11d3..8a15bff3e1 100644 --- a/schemas/20251121/linkml/modules/classes/RoomUnit.yaml +++ b/schemas/20251121/linkml/modules/classes/RoomUnit.yaml @@ -78,20 +78,10 @@ classes: Room counting most relevant for education providers (E), libraries (L), archives (A), museums (M), and research centers (R). custodian_types_primary: "E" - specificity_score: 0.45 + specificity_score: "0.45" specificity_rationale: >- Moderately specific - room counting common in education/facility contexts. - template_specificity: - archive_search: 0.35 - museum_search: 0.45 - library_search: 0.50 - collection_discovery: 0.20 - person_research: 0.10 - location_browse: 0.55 - identifier_lookup: 0.10 - organizational_change: 0.20 - digital_platform: 0.10 - general_heritage: 0.45 + template_specificity: '{"archive_search": 0.35, "museum_search": 0.45, "library_search": 0.50, "collection_discovery": 0.20, "person_research": 0.10, "location_browse": 0.55, "identifier_lookup": 0.10, "organizational_change": 0.20, "digital_platform": 0.10, "general_heritage": 0.45}' examples: - value: diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index 207a13df07..b21669ea3a 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -9744,12 +9744,35 @@ fixes: type: slot - label: CMSTypes type: class + processed: + status: true + timestamp: '2026-01-19T21:30:00Z' + session: session-2026-01-19-cms-category-migration + notes: | + FULLY MIGRATED: cms_category → has_or_had_type + CMSType. + Existing slots used: has_or_had_type, includes_or_included. + Created: CMSType.yaml (abstract base), CMSTypes.yaml (7 concrete types) per Rule 0b. + Concrete types: MuseumCMS, ArchiveCMS, LibraryCMS, DigitalAssetManagement, DigitalRepository, MixedCMS, CustomCMS. + Updated: CollectionManagementSystem.yaml (imports, slots list, slot_usage, 3 examples). + Archived: modules/slots/archive/cms_category_archived_20260119.yaml. - original_slot_id: https://nde.nl/ontology/hc/slot/cms_detected revision: - label: is_or_was_based_on type: slot - label: CMS type: class + processed: + status: true + timestamp: '2026-01-19T21:45:00Z' + session: session-2026-01-19-cms-detected-migration + notes: | + FULLY MIGRATED: cms_detected → is_or_was_based_on + CMS. + Created: is_or_was_based_on.yaml (temporal relationship slot per Rule 39). + Created: CMS.yaml (detected CMS class with cms_name, version, detection_method). + Updated: AuxiliaryDigitalPlatform.yaml (imports, slots list, slot_usage with CMS examples). + Semantic improvement: Boolean flag replaced with structured CMS reference. + If is_or_was_based_on present → CMS detected; if absent → no CMS. + Archived: modules/slots/archive/cms_detected_archived_20260119.yaml. - original_slot_id: https://nde.nl/ontology/hc/slot/cms_id revision: - label: has_or_had_identifier @@ -9784,12 +9807,64 @@ fixes: type: slot - label: Version type: class + processed: + status: true + timestamp: '2026-01-19T22:15:00Z' + session: session-2026-01-19-cms-product-version-migration + notes: | + FULLY MIGRATED: cms_product_version → has_or_had_version + Version. + + **Existing slot used**: has_or_had_version (generic temporal version relationship). + + **Created**: Version.yaml - structured version class with semantic versioning support: + - version_string (required): Full version string (e.g., "1.8.0") + - major_version, minor_version, patch_version: Integer components + - prerelease_tag, build_metadata: Extended version metadata + - release_date, temporal_extent: Temporal validity of version + + **Updated**: CollectionManagementSystem.yaml: + - Imports: Added has_or_had_version and Version + - Slots list: Replaced cms_product_version with has_or_had_version + - Slot_usage: Added has_or_had_version with range: Version, multivalued: true + - Examples: Updated 3 examples (Adlib 7.4, CollectiveAccess 1.8.0, MAIS-Flexis null) + + **Archived**: modules/slots/archive/cms_product_version_archived_20260119.yaml + + **Pattern**: Uses structured Version class to capture semantic versioning components + instead of simple string, enabling version comparison and temporal version tracking. - original_slot_id: https://nde.nl/ontology/hc/slot/co_funding_required revision: - label: requires_or_required type: slot - label: CoFunding type: class + processed: + status: true + timestamp: '2026-01-19T23:00:00Z' + session: session-2026-01-19-co-funding-required-migration + notes: | + FULLY MIGRATED: co_funding_required → requires_or_required + CoFunding. + + **Existing slot used**: requires_or_required (generic temporal requirement relationship). + + **Created**: CoFunding.yaml - structured co-funding class with: + - is_required (required): Boolean indicating if co-funding is mandatory + - minimum_percentage: Minimum percentage of co-funding required + - maximum_percentage: Maximum percentage allowed + - funding_sources: Eligible sources for matching funds + - has_or_had_description: Additional requirements or conditions + - temporal_extent: TimeSpan for when requirement applies + + **Updated**: CallForApplication.yaml: + - Imports: Added requires_or_required slot and CoFunding class + - Slots list: Replaced co_funding_required with requires_or_required + - Slot_usage: Added requires_or_required with range: CoFunding + - Examples: Updated to use structured CoFunding objects + + **Archived**: modules/slots/archive/co_funding_required_archived_20260119.yaml + + **Pattern**: Uses structured CoFunding class instead of boolean to capture + percentage requirements, eligible sources, and temporal applicability. - original_slot_id: https://nde.nl/ontology/hc/slot/co_organized_by revision: - label: has_or_had_organizer @@ -9800,6 +9875,40 @@ fixes: type: slot - label: OrganizerRole type: class + processed: + status: true + timestamp: '2026-01-19T23:15:00Z' + session: session-2026-01-19-co-organized-by-migration + notes: | + FULLY MIGRATED: co_organized_by → has_or_had_organizer + Organizer + OrganizerRole. + + **Created slot**: has_or_had_organizer.yaml - generic temporal organizer relationship + - slot_uri: schema:organizer + - range: uriorcurie (broadened per Rule 55) + - multivalued: true + + **Existing slot used**: has_or_had_role.yaml (already exists) + + **Created classes**: + - Organizer.yaml: Entity that organizes events with: + - organizer_entity (required): Reference to organizing institution + - has_or_had_role: OrganizerRole specifying role type + - organizer_contribution: Description of organizational contribution + + - OrganizerRole.yaml: Role of an organizer with: + - role_type (required): OrganizerRoleTypeEnum (PRIMARY, CO_ORGANIZER, SPONSOR_ORGANIZER, LENDING_INSTITUTION, HOST_VENUE, SUPPORTING_PARTNER, ADVISOR) + - role_description: Additional description + + **Updated**: Exhibition.yaml: + - Imports: Added has_or_had_organizer slot, Organizer and OrganizerRole classes + - Slots list: Replaced co_organized_by with has_or_had_organizer + - Slot_usage: Added has_or_had_organizer with range: Organizer, inlined: true + - Examples: Updated 3 examples to use structured Organizer objects with roles + + **Archived**: modules/slots/archive/co_organized_by_archived_20260119.yaml + + **Pattern**: Uses Organizer class with role discrimination to replace separate + organized_by/co_organized_by slots with single has_or_had_organizer slot. - original_slot_id: https://nde.nl/ontology/hc/slot/collected_in revision: - label: is_or_was_included_in @@ -9828,6 +9937,11 @@ fixes: type: slot - label: Access type: class + processed: + status: true + notes: '2026-01-19: Migrated in EducationProviderType.yaml. Created offers_or_offered_access.yaml slot (temporal access offering relationship) + and Access.yaml class (structured access with AccessTypeEnum). Updated imports, replaced collection_access with offers_or_offered_access slot, + updated slot_usage with range Access and multivalued: true. Archived collection_access.yaml to archive/collection_access_archived_20260119.yaml.' - original_slot_id: https://nde.nl/ontology/hc/slot/collection_broader_type revision: - label: has_or_had_hypernym @@ -10786,6 +10900,210 @@ fixes: type: slot - label: DeceasedStatus type: class - - -# https://nde.nl/ontology/hc/slot/decommission_date \ No newline at end of file +- original_slot_id: https://nde.nl/ontology/hc/slot/decommission_date + revision: + - label: is_or_was_decommissioned_at + type: slot + - label: Timestamp + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/deductibility_conditions + revision: + - label: has_or_had_condition + type: slot + - label: Condition + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/deductibility_status + revision: + - label: has_or_had_type + type: slot + - label: TaxDeductibilityType + type: class + - label: includes_or_included + type: slot + - label: TaxDeductibilityTypes + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/deductible_percentage + revision: + - label: has_or_had_percentage + type: slot + - label: Percentage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/deduction_percentage + revision: + - label: offers_or_offered + type: slot + - label: TaxDeductibility + type: class + - label: has_or_had_percentage + type: slot + - label: Percentage + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/default_access_policy + revision: + - label: condition_of_access + type: slot + - label: Condition + type: slot +- original_slot_id: https://nde.nl/ontology/hc/slot/default_audio_language + revision: + - label: has_or_had_language + type: slot + - label: Language + type: class + - label: has_or_had_status + type: slot + - label: Status + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/default_language + revision: + - label: has_or_had_language + type: slot + - label: Language + type: class + - label: has_or_had_status + type: slot + - label: Status + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/default_position + revision: + - label: has_or_had_caption + type: slot + - label: Caption + type: class + - label: has_or_had_alignment + type: slot + - label: Alignment + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/defined_by_standard + revision: + - label: has_or_had_standard + type: slot + - label: Standard + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/definition + revision: + - label: has_or_had_resolution + type: slot + - label: Resolution + type: class + - label: has_or_had_quantity + type: slot + - label: Quantity + type: class + - label: has_or_had_unit + type: slot + - label: Unit + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/degree_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/deliverable + revision: + - label: has_or_had_objective + type: slot + - label: Deliverable + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/departement_code + revision: + - label: has_or_had_service_area + type: slot + - label: ServiceArea + type: class + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/departement_name + revision: + - label: has_or_had_service_area + type: slot + - label: ServiceArea + type: class + - label: has_or_had_label + type: slot + - label: Label + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/department_code + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: this includes the Abbreviation label type class. +- original_slot_id: https://nde.nl/ontology/hc/slot/department_description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/department_head + revision: + - label: is_or_was_managed_by + type: slot + - label: Manager + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/department_id + revision: + - label: has_or_had_identifier + type: slot + - label: Identifier + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/department_name + revision: + - label: has_or_had_label + type: slot + - label: Label + type: class + - label: has_or_had_type + type: slot + - label: LabelType + type: class + - label: includes_or_included + type: slot + - label: LabelTypes + type: class + note: this includes the OfficialLabel label type class. +- original_slot_id: https://nde.nl/ontology/hc/slot/deployment_date + revision: + - label: is_or_was_deployed_at + type: slot + - label: DeploymentEvent + type: class + - label: temporal_extent + type: slot + - label: TimeSpan + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/derived_from_entity + revision: + - label: refers_or_referred_to + type: slot + - label: EntityReconstruction + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/derived_from_observation + revision: + - label: has_or_had_provenance + type: slot + - label: Provenance + type: class + - label: is_or_was_based_on + type: slot + - label: Observation + type: class +- original_slot_id: https://nde.nl/ontology/hc/slot/description + revision: + - label: has_or_had_description + type: slot + - label: Description + type: class +# https://nde.nl/ontology/hc/slots/description_sections \ No newline at end of file