fix(schema): annotation format fixes and add slot_fixes revisions

- 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
This commit is contained in:
kempersc 2026-01-19 15:55:27 +01:00
parent 1a665e343f
commit d0e5a5092d
5 changed files with 326 additions and 28 deletions

View file

@ -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": {

View file

@ -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": {

View file

@ -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:

View file

@ -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:

View file

@ -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
- 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