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", "schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2969, "totalFiles": 2969,
"categoryCounts": { "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", "schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2969, "totalFiles": 2969,
"categoryCounts": { "categoryCounts": {

View file

@ -102,17 +102,7 @@ classes:
annotations: annotations:
specificity_score: "0.55" specificity_score: "0.55"
specificity_rationale: "Moderately specific - classrooms common in education centers." specificity_rationale: "Moderately specific - classrooms common in education centers."
template_specificity: 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}'
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: examples:
- value: - value:

View file

@ -78,20 +78,10 @@ classes:
Room counting most relevant for education providers (E), libraries (L), Room counting most relevant for education providers (E), libraries (L),
archives (A), museums (M), and research centers (R). archives (A), museums (M), and research centers (R).
custodian_types_primary: "E" custodian_types_primary: "E"
specificity_score: 0.45 specificity_score: "0.45"
specificity_rationale: >- specificity_rationale: >-
Moderately specific - room counting common in education/facility contexts. Moderately specific - room counting common in education/facility contexts.
template_specificity: 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}'
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: examples:
- value: - value:

View file

@ -9744,12 +9744,35 @@ fixes:
type: slot type: slot
- label: CMSTypes - label: CMSTypes
type: class 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 - original_slot_id: https://nde.nl/ontology/hc/slot/cms_detected
revision: revision:
- label: is_or_was_based_on - label: is_or_was_based_on
type: slot type: slot
- label: CMS - label: CMS
type: class 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 - original_slot_id: https://nde.nl/ontology/hc/slot/cms_id
revision: revision:
- label: has_or_had_identifier - label: has_or_had_identifier
@ -9784,12 +9807,64 @@ fixes:
type: slot type: slot
- label: Version - label: Version
type: class 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 - original_slot_id: https://nde.nl/ontology/hc/slot/co_funding_required
revision: revision:
- label: requires_or_required - label: requires_or_required
type: slot type: slot
- label: CoFunding - label: CoFunding
type: class 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 - original_slot_id: https://nde.nl/ontology/hc/slot/co_organized_by
revision: revision:
- label: has_or_had_organizer - label: has_or_had_organizer
@ -9800,6 +9875,40 @@ fixes:
type: slot type: slot
- label: OrganizerRole - label: OrganizerRole
type: class 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 - original_slot_id: https://nde.nl/ontology/hc/slot/collected_in
revision: revision:
- label: is_or_was_included_in - label: is_or_was_included_in
@ -9828,6 +9937,11 @@ fixes:
type: slot type: slot
- label: Access - label: Access
type: class 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 - original_slot_id: https://nde.nl/ontology/hc/slot/collection_broader_type
revision: revision:
- label: has_or_had_hypernym - label: has_or_had_hypernym
@ -10786,6 +10900,210 @@ fixes:
type: slot type: slot
- label: DeceasedStatus - label: DeceasedStatus
type: class type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/decommission_date
revision:
# https://nde.nl/ontology/hc/slot/decommission_date - 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