standardise slot names

This commit is contained in:
kempersc 2026-01-17 17:49:56 +01:00
parent f71ef52432
commit 1b829fbe82
24 changed files with 848 additions and 140 deletions

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-17T14:34:12.241Z",
"generated": "2026-01-17T14:44:25.522Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2986,
"categoryCounts": {

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-17T14:44:25.522Z",
"generated": "2026-01-17T16:49:57.397Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2986,
"categoryCounts": {

View file

@ -25,6 +25,7 @@ imports:
- ../slots/has_or_had_access_level
# RESTORED 2026-01-15: requires_appointment has correct semantics (schema:reservationRequired)
# The is_or_was_required slot was incorrectly using schema:isRequired which is for form field validation
# KEPT for backward compatibility - simple boolean for basic use cases
- ../slots/requires_appointment
- ../slots/condition
- ../slots/credentials_required
@ -41,6 +42,11 @@ imports:
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
# ADDED 2026-01-17: Rich appointment modeling per slot_fixes.yaml revision for appointment_required
# These enable structured access conditions with Appointment entities (vs. just boolean)
- ../slots/condition_of_access
- ../slots/requires_or_required
- ./Appointment
classes:
AccessPolicy:
class_uri: premis:RightsStatus
@ -89,8 +95,12 @@ classes:
- has_or_had_access_description
- has_or_had_access_level
# RESTORED 2026-01-15: requires_appointment - correct semantics (schema:reservationRequired)
# KEPT for backward compatibility as simple boolean flag
- requires_appointment
- condition
# ADDED 2026-01-17: Rich access condition modeling per slot_fixes.yaml revision
- condition_of_access
- requires_or_required
- contact_email
- credentials_required
- cultural_protocol_url
@ -244,6 +254,42 @@ classes:
begin_of_the_begin: '2024-01-01'
end_of_the_end: '2050-12-31'
description: Policy valid from 2024 until end of 2050
# ADDED 2026-01-17: Rich access condition modeling per slot_fixes.yaml revision
condition_of_access:
description: |
Textual conditions or requirements for access (RiC-O style).
Use for human-readable access requirements. For structured appointment
data, use requires_or_required with Appointment instances.
range: string
multivalued: true
examples:
- value:
- "Appointment required 48 hours in advance"
- "Valid researcher credentials required"
- "Materials must be handled with cotton gloves"
description: Multiple access conditions
requires_or_required:
description: |
Links to structured Appointment entities for rich appointment modeling.
ADDED 2026-01-17 per slot_fixes.yaml revision for appointment_required.
Use this for detailed appointment requirements (lead time, booking method,
contact info). For simple boolean, use requires_appointment instead.
range: Appointment
multivalued: true
inlined: true
examples:
- value:
- appointment_id: "hc:appointment/special-collections-48h"
has_or_had_label: "Special Collections Appointment"
has_or_had_description: "Book at least 48 hours in advance for manuscript access"
lead_time_hours: 48
booking_method:
- email
- online_form
booking_contact: "bijzondere.collecties@archive.nl"
appointment_required: true
description: Structured appointment requirement with rich metadata
comments:
- AccessPolicy defines access conditions for Collection instances
- Used by Collection.access_policy_ref to link policies to holdings
@ -292,3 +338,33 @@ classes:
credentials_required: PROFESSIONAL
contact_email: preservation@archive.org
description: Dark archive / DIM access policy
# ADDED 2026-01-17: Example with rich appointment modeling
- value:
policy_id: https://nde.nl/ontology/hc/access-policy/special-collections-rich
policy_name: Special Collections - Rich Appointment Policy
access_level: RESEARCHERS_ONLY
access_description: Academic researchers with institutional affiliation
condition_of_access:
- "Valid institutional ID required"
- "Letter of introduction from supervisor"
- "Maximum 5 items per visit"
requires_or_required:
- appointment_id: "hc:appointment/special-collections-booking"
has_or_had_label: "Special Collections Appointment"
has_or_had_description: |
Appointments for manuscript and rare book collections must be made
at least 48 hours in advance. Please specify which materials you
wish to consult.
lead_time_hours: 48
booking_method:
- email
- online_form
booking_contact: "bijzondere.collecties@archive.nl"
confirmation_required: true
cancellation_notice_hours: 24
appointment_required: true
registration_required: true
credentials_required: INSTITUTIONAL
fee_required: false
contact_email: special.collections@archive.nl
description: Rich appointment modeling with structured Appointment entity

View file

@ -0,0 +1,151 @@
# Appointment - Models appointment/reservation requirements as entities
# Created 2026-01-17 per slot_fixes.yaml revision for appointment_required
id: https://nde.nl/ontology/hc/class/Appointment
name: appointment_class
title: Appointment Class
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
rico: https://www.ica.org/standards/RiC/ontology#
imports:
- linkml:types
- ../slots/has_or_had_description
- ../slots/has_or_had_label
- ../slots/temporal_extent
- ./TimeSpan
default_prefix: hc
classes:
Appointment:
class_uri: schema:Reservation
description: |
Models an appointment or reservation requirement as a structured entity.
**PURPOSE**:
Heritage institutions often require appointments for:
- Special collections access
- Reading room reservations
- Guided tours of sensitive materials
- Conservation viewing requests
By modeling appointments as entities (not just boolean flags), we can capture:
- Lead time requirements (24h, 48h, 1 week in advance)
- Booking methods (email, phone, online form)
- Confirmation requirements
- Cancellation policies
- Temporal validity (when appointments are required)
**ONTOLOGY ALIGNMENT**:
- schema:Reservation - "A reservation for an event, service, or product"
- rico:conditionsOfAccess - Links to RiC-O access condition patterns
**REPLACES**:
- appointment_required (boolean) - Now modeled as structured entity
- requires_appointment (boolean) - Preserved for backward compatibility
exact_mappings:
- schema:Reservation
close_mappings:
- rico:Rule
slots:
- has_or_had_label
- has_or_had_description
- temporal_extent
attributes:
appointment_id:
description: Unique identifier for this appointment requirement type
range: uriorcurie
identifier: true
lead_time_hours:
description: |
Minimum hours in advance that appointment must be booked.
E.g., 24 = appointment must be made at least 24 hours before.
range: integer
minimum_value: 0
examples:
- value: 24
description: 24 hours advance notice
- value: 48
description: 48 hours advance notice
- value: 168
description: 1 week (168 hours) advance notice
booking_method:
description: How appointments can be made
range: string
multivalued: true
examples:
- value: email
description: Book via email
- value: phone
description: Book via telephone
- value: online_form
description: Book via website form
- value: in_person
description: Book at institution
booking_contact:
description: Contact information for making appointments
range: string
examples:
- value: "studiezaal@nationaalarchief.nl"
- value: "+31 70 331 5400"
confirmation_required:
description: Whether confirmation of appointment is required before visit
range: boolean
cancellation_notice_hours:
description: Hours in advance cancellation must be made
range: integer
minimum_value: 0
appointment_required:
description: |
Whether appointment is mandatory (true) or recommended (false).
Preserves backward compatibility with boolean appointment_required field.
range: boolean
examples:
- value: true
description: Appointment is mandatory
- value: false
description: Appointment recommended but not required
slot_usage:
has_or_had_label:
description: Human-readable name for this appointment type
examples:
- value: "Reading Room Appointment"
- value: "Special Collections Viewing"
- value: "Conservation Lab Access"
has_or_had_description:
description: Detailed description of appointment requirements
examples:
- value: |
Appointments for the Special Collections reading room must be made
at least 48 hours in advance. Please specify which materials you
wish to consult. Maximum 5 items per visit.
temporal_extent:
description: |
When this appointment requirement is/was in effect.
Enables historical tracking of when appointment policies changed.
range: TimeSpan
inlined: true
examples:
- value:
appointment_id: "hc:appointment/nationaal-archief-special-collections"
has_or_had_label: "Special Collections Appointment"
has_or_had_description: "Advance appointment required for manuscript and map collections"
lead_time_hours: 48
booking_method:
- email
- online_form
booking_contact: "bijzondere.collecties@nationaalarchief.nl"
confirmation_required: true
appointment_required: true
description: Nationaal Archief special collections appointment requirement
- value:
appointment_id: "hc:appointment/reading-room-recommended"
has_or_had_label: "Reading Room Reservation"
has_or_had_description: "Reservations recommended but walk-ins accepted based on availability"
lead_time_hours: 0
booking_method:
- online_form
- in_person
appointment_required: false
description: Reading room with recommended but not required reservations

View file

@ -0,0 +1,81 @@
id: https://nde.nl/ontology/hc/class/BusinessCriticality
name: business_criticality_class
title: BusinessCriticality Class
description: >-
Business criticality level classification for continuity planning.
Provides structured classification for operational impact assessment:
- **CRITICAL**: Institution cannot function without (hours)
- **HIGH**: Significant impact if unavailable (days)
- **MEDIUM**: Important but workarounds exist (weeks)
- **LOW**: Minimal operational impact
Drives backup and disaster recovery priorities.
Created per slot_fixes.yaml revision for business_criticality migration (Rule 53/56/57).
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
rico: https://www.ica.org/standards/RiC/ontology#
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
default_prefix: hc
classes:
BusinessCriticality:
class_uri: hc:BusinessCriticality
description: >-
Business criticality level for continuity planning.
Structured class replacing string-valued business_criticality slot.
Enables type classification via has_or_had_type.
slots:
- has_or_had_identifier
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_label:
description: >-
Criticality level label (CRITICAL, HIGH, MEDIUM, LOW).
required: true
examples:
- value: CRITICAL
description: Institution cannot function without this (hours to impact)
- value: HIGH
description: Significant impact if unavailable (days to impact)
- value: MEDIUM
description: Important but workarounds exist (weeks to impact)
- value: LOW
description: Minimal operational impact
has_or_had_description:
description: >-
Explanation of criticality assessment.
required: false
examples:
- value: "Financial system required for daily operations, payroll processing"
description: Why system is CRITICAL
- value: "Historical project files, reference only, no operational dependency"
description: Why system is MEDIUM
examples:
- value:
has_or_had_label: CRITICAL
has_or_had_description: "Financial system - required for operations, payroll cannot be processed without"
description: Critical financial system
- value:
has_or_had_label: HIGH
has_or_had_description: "Director's correspondence - important for decision continuity"
description: High-priority communications
- value:
has_or_had_label: MEDIUM
has_or_had_description: "Historical project files - reference only, operational workarounds exist"
description: Medium-priority archives
- value:
has_or_had_label: LOW
has_or_had_description: "Promotional materials archive - minimal impact on operations"
description: Low-priority materials

View file

@ -0,0 +1,84 @@
id: https://nde.nl/ontology/hc/class/BusinessModel
name: business_model_class
title: BusinessModel Class
description: >-
Business model classification for commercial heritage organizations.
Provides structured modeling of how commercial heritage operations are funded
and generate revenue:
- **Revenue sources**: Admission fees, merchandise, event rental, corporate funding
- **Ownership**: Fully corporate-owned, subsidiary, joint venture, licensed
- **Profitability**: Revenue-generating, break-even, subsidized by parent company
- **Business function**: Marketing, tourism, corporate social responsibility
- **Tax status**: For-profit corporation (not tax-exempt like museums)
- **Reporting**: Reports to corporate board, integrated with marketing budget
Business model distinguishes commercial from non-profit heritage custodians.
Created per slot_fixes.yaml revision for business_model migration (Rule 53/56/57).
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
imports:
- linkml:types
- ../slots/has_or_had_identifier
- ../slots/has_or_had_label
- ../slots/has_or_had_description
default_prefix: hc
classes:
BusinessModel:
class_uri: hc:BusinessModel
description: >-
Business model classification for commercial heritage organizations.
Structured class replacing string-valued business_model slot.
Models funding structure, revenue sources, ownership, and operational context.
slots:
- has_or_had_identifier
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_label:
description: >-
Short label for business model type.
required: true
examples:
- value: "For-profit brand attraction"
description: Heineken Experience model
- value: "Corporate archive, parent company funded"
description: Ford Motor archive model
- value: "Brand heritage center"
description: Coca-Cola World of Coke model
has_or_had_description:
description: >-
Detailed business model description including revenue sources,
ownership structure, profitability, and reporting.
required: false
examples:
- value: "For-profit brand attraction, Admission fees, Merchandise, Marketing budget"
description: Full business model description
- value: "Corporate archive within business, Fully funded by parent company, No public access"
description: Internal corporate archive model
- value: "Brand heritage center, Event venue rental, Corporate hospitality, Tourism revenue"
description: Brand heritage center model
examples:
- value:
has_or_had_label: "For-profit brand attraction"
has_or_had_description: "Admission fees (€21), Merchandise sales, Beer tasting experiences, Event venue rental. Reports to Marketing division."
description: Heineken Experience business model
- value:
has_or_had_label: "Corporate archive"
has_or_had_description: "Fully funded by parent company, No direct revenue, Serves internal research and legal compliance needs"
description: Ford Motor Company Archive model
- value:
has_or_had_label: "Brand heritage center"
has_or_had_description: "Event venue rental, Corporate hospitality, Tourism revenue, Integrated with brand marketing budget"
description: Coca-Cola World of Coke model
- value:
has_or_had_label: "Factory museum"
has_or_had_description: "Visitor fees supplement production operations, Marketing tool for brand awareness, Tours integrated with factory operations"
description: Factory museum business model

View file

@ -19,13 +19,19 @@ imports:
- ../slots/keyword
- ../slots/has_application_deadline
- ../slots/has_application_opening_date
- ../slots/call_description
- ../slots/call_id
- ../slots/call_identifier
- ../slots/call_short_name
- ../slots/call_status
- ../slots/call_title
- ../slots/call_url
# REMOVED 2026-01-17: call_description - migrated to has_or_had_description per Rule 53
# REMOVED 2026-01-17: call_id, call_identifier - migrated to has_or_had_identifier per Rule 53
# REMOVED 2026-01-17: call_short_name, call_title - migrated to has_or_had_label per Rule 53
# REMOVED 2026-01-17: call_status - migrated to has_or_had_status per Rule 53
# REMOVED 2026-01-17: call_url - migrated to has_or_had_url per Rule 53
- ../slots/has_or_had_description # was: call_description - migrated per Rule 53 (2026-01-17)
- ../slots/has_or_had_identifier # was: call_id, call_identifier - migrated per Rule 53 (2026-01-17)
- ../slots/has_or_had_label # was: call_short_name, call_title - migrated per Rule 53 (2026-01-17)
- ../slots/has_or_had_status # was: call_status - migrated per Rule 53 (2026-01-17)
- ../slots/has_or_had_url # was: call_url - migrated per Rule 53 (2026-01-17)
- ./URL # for has_or_had_url range
- ./Identifier # for has_or_had_identifier range
- ./CallStatus # for has_or_had_status range (lifecycle status)
- ../slots/co_funding_required
- ../slots/eligible_applicant
- ../slots/eligible_country
@ -100,13 +106,11 @@ classes:
slots:
- has_application_deadline
- has_application_opening_date
- call_description
- call_id
- call_identifier
- call_short_name
- call_status
- call_title
- call_url
- has_or_had_description # was: call_description - migrated per Rule 53 (2026-01-17)
- has_or_had_identifier # was: call_id, call_identifier - migrated per Rule 53 (2026-01-17)
- has_or_had_label # was: call_short_name, call_title - migrated per Rule 53 (2026-01-17)
- has_or_had_status # was: call_status - migrated per Rule 53 (2026-01-17)
- has_or_had_url # was: call_url - migrated per Rule 53 (2026-01-17)
- co_funding_required
- contact_email
- eligible_applicant
@ -131,39 +135,111 @@ classes:
- has_or_had_range
- has_or_had_provenance # was: web_observation - migrated per Rule 53
slot_usage:
call_id:
has_or_had_identifier:
identifier: true
required: true
range: uriorcurie
pattern: ^https://nde\.nl/ontology/hc/call/[a-z0-9-]+/[a-z0-9-]+$
range: Identifier
multivalued: true
inlined: true
inlined_as_list: true
description: |
Unique identifier(s) for this funding call.
MIGRATED from call_id, call_identifier per slot_fixes.yaml (Rule 53, 2026-01-17).
Consolidates:
- call_id (dcterms:identifier) - Primary call identifier (identifier: true)
- call_identifier (dcterms:identifier) - External identifiers (EU F&T, etc.)
Format: https://nde.nl/ontology/hc/call/{issuing-org-slug}/{call-code}
examples:
- value: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01
description: Horizon Europe CL2 heritage call
- value: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025
- value:
identifier_value: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01
identifier_scheme: URI
description: Horizon Europe CL2 heritage call (primary identifier)
- value:
identifier_value: HORIZON-CL2-2025-HERITAGE-01
identifier_scheme: EU_FUNDING_TENDERS
description: EU Funding & Tenders portal ID
- value:
identifier_value: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025
identifier_scheme: URI
description: National Lottery Heritage Fund medium grants
call_title:
has_or_had_label:
required: true
range: string
multivalued: true
description: |
Human-readable labels for this funding call.
MIGRATED from call_title, call_short_name per slot_fixes.yaml (Rule 53, 2026-01-17).
Consolidates:
- call_title (dcterms:title) - Official call title (required)
- call_short_name (skos:altLabel) - Short name/code
First label should be the official title, additional labels are short names/codes.
examples:
- value: Cultural heritage, cultural and creative industries
description: Horizon Europe Cluster 2 call title
description: Horizon Europe Cluster 2 call title (official)
- value: HORIZON-CL2-2025-HERITAGE-01
description: Horizon Europe call code (short name)
- value: European Cooperation Projects
description: Creative Europe call title
call_short_name:
range: string
examples:
- value: CL2-2025-HERITAGE-01
description: Horizon Europe call code
description: Creative Europe call title (official)
- value: CREA-CULT-2025-COOP
description: Creative Europe cooperation call code
call_status:
has_or_had_status:
required: true
range: CallForApplicationStatusEnum
description: |
Current lifecycle status of the funding call.
MIGRATED from call_status per slot_fixes.yaml (Rule 53, 2026-01-17).
See CallForApplicationStatusEnum for status values:
- ANNOUNCED: Call published, not yet open
- OPEN: Currently accepting applications
- CLOSING_SOON: < 30 days until deadline
- CLOSED: Deadline passed
- UNDER_REVIEW: Evaluation in progress
- RESULTS_PUBLISHED: Decisions announced
- CANCELLED: Call terminated
- REOPENED: Previously closed call reactivated
examples:
- value: OPEN
description: Currently accepting applications
- value: CLOSING_SOON
description: Deadline approaching
has_or_had_description:
range: string
description: |
Detailed description of the funding call and its objectives.
MIGRATED from call_description per slot_fixes.yaml (Rule 53, 2026-01-17).
Maps to dcterms:description for grant/funding opportunity descriptions.
examples:
- value: |
This call supports research and innovation addressing cultural heritage
preservation, digitisation, and access. Projects should develop new
methods, technologies, and approaches for safeguarding tangible and
intangible cultural heritage.
description: Horizon Europe heritage call description
has_or_had_url:
range: URL
multivalued: true
inlined: true
inlined_as_list: true
description: |
Official call documentation or application portal URL(s).
MIGRATED from call_url per slot_fixes.yaml (Rule 53, 2026-01-17).
Maps to schema:url for web addresses.
examples:
- value:
url_value: https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01
url_type: application_portal
description: Horizon Europe call application portal
- value:
url_value: https://www.heritagefund.org.uk/funding/medium-grants
url_type: documentation
description: National Lottery Heritage Fund documentation
has_application_deadline:
required: true
range: date
@ -252,22 +328,24 @@ classes:
- https://www.europanostra.org/our-work/awards/
examples:
- value:
call_id: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01
call_title: Cultural heritage, cultural and creative industries
call_short_name: HORIZON-CL2-2025-HERITAGE-01
call_description: 'This call supports research and innovation addressing cultural heritage
has_or_had_identifier: # was: call_id, call_identifier - migrated per Rule 53 (2026-01-17)
- identifier_value: https://nde.nl/ontology/hc/call/ec/cl2-2025-heritage-01
identifier_scheme: URI
- identifier_value: HORIZON-CL2-2025-HERITAGE-01
identifier_scheme: EU_FUNDING_TENDERS
has_or_had_label: # was: call_title, call_short_name - migrated per Rule 53 (2026-01-17)
- Cultural heritage, cultural and creative industries
- HORIZON-CL2-2025-HERITAGE-01
has_or_had_description: | # was: call_description - migrated per Rule 53 (2026-01-17)
This call supports research and innovation addressing cultural heritage
preservation, digitisation, and access. Projects should develop new
methods, technologies, and approaches for safeguarding tangible and
intangible cultural heritage while promoting sustainable use and
citizen engagement.
'
call_status: OPEN
call_url: https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01
has_or_had_status: OPEN # was: call_status - migrated per Rule 53 (2026-01-17)
has_or_had_url: # was: call_url - migrated per Rule 53 (2026-01-17)
- url_value: https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/horizon-cl2-2025-heritage-01
url_type: application_portal
application_opening_date: '2025-01-15'
application_deadline: '2025-09-16'
results_expected_date: '2026-03-01'
@ -335,20 +413,23 @@ classes:
- https://nde.nl/ontology/hc/project/nde/heritage-digitization-2025
description: Horizon Europe CL2 2025 Cultural Heritage call
- value:
call_id: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4
call_title: Medium grants - Heritage Fund
call_short_name: MG-2025-Q4
call_description: 'Medium grants support heritage projects seeking between £250,000 and
has_or_had_identifier: # was: call_id - migrated per Rule 53 (2026-01-17)
- identifier_value: https://nde.nl/ontology/hc/call/nlhf/medium-grants-2025-q4
identifier_scheme: URI
- identifier_value: MG-2025-Q4
identifier_scheme: INTERNAL_CODE
has_or_had_label: # was: call_title, call_short_name - migrated per Rule 53 (2026-01-17)
- Medium grants - Heritage Fund
- MG-2025-Q4
has_or_had_description: | # was: call_description - migrated per Rule 53 (2026-01-17)
Medium grants support heritage projects seeking between £250,000 and
£5 million. Projects must achieve outcomes for heritage, people, and
communities. Suitable for conservation, interpretation, community
engagement, and skills development projects.
'
call_status: OPEN
call_url: https://www.heritagefund.org.uk/funding/medium-grants
has_or_had_status: OPEN # was: call_status - migrated per Rule 53 (2026-01-17)
has_or_had_url: # was: call_url - migrated per Rule 53 (2026-01-17)
- url_value: https://www.heritagefund.org.uk/funding/medium-grants
url_type: documentation
application_deadline: '2025-12-31'
has_or_had_range:
- minimal_of_minimal:

View file

@ -15,7 +15,8 @@ imports:
- linkml:types
- ./CustodianType
- ../enums/CommercialCustodianTypeEnum
- ../slots/has_or_had_model # was: business_model - migrated per Rule 53/56 (2026-01-17)
- ../slots/has_or_had_model # was: business_model - migrated per Rule 53/56/57 (2026-01-17)
- ./BusinessModel
- ../slots/collection_purpose
- ../slots/commercial_activity
- ../slots/commercial_custodian_subtype
@ -215,18 +216,25 @@ classes:
- specificity_annotation
- template_specificity
slot_usage:
has_or_had_model: # was: business_model - migrated per Rule 53/56 (2026-01-17)
range: string
has_or_had_model: # was: business_model - migrated per Rule 53/56/57 (2026-01-17)
range: BusinessModel
inlined: true
required: true
description: >-
How the commercial heritage operation is funded and generates revenue.
Describes funding structure, ownership, profitability, business function.
examples:
- value: For-profit brand attraction, Admission, Merchandise
- value:
has_or_had_label: "For-profit brand attraction"
has_or_had_description: "Admission fees, Merchandise sales, Event rental"
description: Heineken Experience model
- value: Corporate archive, Parent company funded, Internal
- value:
has_or_had_label: "Corporate archive"
has_or_had_description: "Parent company funded, Internal research and compliance"
description: Ford Motor archive model
- value: Brand center, Event rental, Hospitality, Tourism
- value:
has_or_had_label: "Brand heritage center"
has_or_had_description: "Event rental, Hospitality, Tourism revenue"
description: Coca-Cola World of Coke model
collection_purpose:
range: string

View file

@ -17,7 +17,8 @@ imports:
# REMOVED 2026-01-15: ../slots/backup_status - migrated to has_or_had_status with BackupStatus
- ../slots/has_or_had_status
- ./BackupStatus
- ../slots/has_or_had_level # was: business_criticality - migrated per Rule 53/56 (2026-01-17)
- ../slots/has_or_had_business_criticality # was: business_criticality - migrated per Rule 53/56/57 (2026-01-17)
- ./BusinessCriticality
- ../slots/creating_function
- ../slots/data_sensitivity
- ../slots/estimated_volume
@ -109,7 +110,7 @@ classes:
- has_administration_name
# REMOVED 2026-01-15: backup_status - migrated to has_or_had_status with BackupStatus
- has_or_had_status
- has_or_had_level # was: business_criticality - migrated per Rule 53/56 (2026-01-17)
- has_or_had_business_criticality # was: business_criticality - migrated per Rule 53/56/57 (2026-01-17)
- creating_function
- data_sensitivity
- estimated_volume
@ -218,18 +219,23 @@ classes:
examples:
- value: true
description: Contains employee personal data
has_or_had_level: # was: business_criticality - migrated per Rule 53/56 (2026-01-17)
range: string
has_or_had_business_criticality: # was: business_criticality - migrated per Rule 53/56/57 (2026-01-17)
range: BusinessCriticality
inlined: true
required: false
description: >-
Business criticality level for continuity planning.
Levels: CRITICAL (hours), HIGH (days), MEDIUM (weeks), LOW (minimal impact).
Drives backup and disaster recovery priorities.
examples:
- value: CRITICAL
description: Financial system - required for operations
- value: MEDIUM
description: Historical project files - reference only
- value:
has_or_had_label: CRITICAL
has_or_had_description: Financial system - required for operations
description: Critical financial system
- value:
has_or_had_label: MEDIUM
has_or_had_description: Historical project files - reference only
description: Medium priority archives
backup_status:
range: string
required: false
@ -306,7 +312,9 @@ classes:
expected_transfer_date: '2028-01-01'
data_sensitivity: CONFIDENTIAL
gdpr_relevant: true
has_or_had_level: HIGH # was: business_criticality
has_or_had_business_criticality: # was: business_criticality - migrated to BusinessCriticality class
has_or_had_label: HIGH
has_or_had_description: Director's correspondence - important for decision continuity
has_or_had_status:
has_or_had_type:
- has_or_had_short_code: DAILY_AUTOMATED
@ -334,7 +342,9 @@ classes:
retention_period_years: 20
data_sensitivity: SPECIAL_CATEGORY - Personnel data
gdpr_relevant: true
has_or_had_level: CRITICAL # was: business_criticality
has_or_had_business_criticality: # was: business_criticality - migrated to BusinessCriticality class
has_or_had_label: CRITICAL
has_or_had_description: HR personnel system - payroll and compliance critical
has_or_had_status:
has_or_had_type:
- has_or_had_short_code: REALTIME_REPLICATION
@ -364,7 +374,9 @@ classes:
retention_period_years: null
data_sensitivity: INTERNAL
gdpr_relevant: false
has_or_had_level: HIGH # was: business_criticality
has_or_had_business_criticality: # was: business_criticality - migrated to BusinessCriticality class
has_or_had_label: HIGH
has_or_had_description: Conservation records - permanently linked to collection objects
has_or_had_status:
has_or_had_type:
- has_or_had_short_code: DAILY_AUTOMATED

View file

@ -30,7 +30,9 @@ imports:
- ../slots/includes_or_included
- ./Bookplate
- ./BindingType
- ../slots/call_number
# REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier per Rule 53
- ../slots/has_or_had_identifier # includes call_number migration (2026-01-17)
- ./Identifier # for has_or_had_identifier range
- ../slots/carrier_type
- ../slots/carries_information
- ../slots/content_language
@ -118,7 +120,8 @@ classes:
- has_or_had_type
# bookplate REMOVED - migrated to includes_or_included (Rule 53)
- includes_or_included
- call_number
# REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53)
- has_or_had_identifier
- carrier_type
- carries_information
- content_language
@ -410,13 +413,40 @@ classes:
range: string
examples:
- value: '12345678'
call_number:
# REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53)
# Old call_number slot_usage preserved below in has_or_had_identifier
has_or_had_identifier:
required: false
range: string
range: Identifier
multivalued: true
inlined: true
description: |
Identifiers for this information carrier.
MIGRATED from call_number (2026-01-17) and wikidata_id (2026-01-15) per Rule 53.
Includes:
- Library call numbers (bf:shelfMark) - e.g., BS75.A1 1455, Inc. 1
- Wikidata IDs (Q-numbers) - e.g., Q178401
- Local collection identifiers
- Other external identifiers
Use identifier_scheme to distinguish types:
- LIBRARY_OF_CONGRESS, DEWEY_DECIMAL for classification call numbers
- LOCAL_COLLECTION for institutional identifiers
- WIKIDATA for Q-numbers
examples:
- value: BS75.A1 1455
- value: Inc. 1
description: Incunabula collection number
- value:
identifier_value: BS75.A1 1455
identifier_scheme: LIBRARY_OF_CONGRESS
description: Library of Congress call number
- value:
identifier_value: Inc. 1
identifier_scheme: LOCAL_COLLECTION
description: Incunabula collection number (was call_number)
- value:
identifier_value: Q178401
identifier_scheme: WIKIDATA
description: Wikidata identifier for Gutenberg Bible
shelf_mark:
required: false
range: string
@ -530,15 +560,19 @@ classes:
carries_information: Bible. Latin. Vulgate
title_proper: Biblia Latina
uniform_title: Bible. Latin. Vulgate. 1455
call_number: Inc. 1
# MIGRATED 2026-01-17: call_number → has_or_had_identifier (Rule 53)
# Merged with existing wikidata_id migration (2026-01-15)
has_or_had_identifier:
- identifier_value: "Inc. 1"
identifier_scheme: LOCAL_COLLECTION
description: "Incunabula collection number (was call_number)"
- identifier_value: "Q178401"
identifier_scheme: WIKIDATA
label: "Gutenberg Bible (KB copy)"
copy_note:
- Complete copy on paper (2 volumes)
- Rubricated in red and blue
current_keeper: https://nde.nl/ontology/hc/custodian/nl/koninklijke-bibliotheek
# MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53)
has_or_had_identifier:
- qid: "Q178401"
label: "Gutenberg Bible (KB copy)"
description: Gutenberg Bible at Koninklijke Bibliotheek
- value:
object_id: https://nde.nl/ontology/hc/object/bl-codex-sinaiticus

View file

@ -1,24 +0,0 @@
id: https://nde.nl/ontology/hc/slot/budget_name
name: budget_name_slot
title: Budget Name Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
slots:
budget_name:
slot_uri: hc:budget_name
range: string
description: |
Budget Name for heritage custodian entities.
annotations:
custodian_types: '["*"]'
specificity_score: 0.5

View file

@ -1,24 +0,0 @@
id: https://nde.nl/ontology/hc/slot/budget_type
name: budget_type_slot
title: Budget Type Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
slots:
budget_type:
slot_uri: hc:budget_type
range: string
description: |
Budget Type for heritage custodian entities.
annotations:
custodian_types: '["*"]'
specificity_score: 0.5

View file

@ -0,0 +1,44 @@
# condition_of_access - Slot for access conditions
# Created 2026-01-17 per slot_fixes.yaml revision for appointment_required
id: https://nde.nl/ontology/hc/slot/condition-of-access
name: condition_of_access_slot
title: Condition of Access Slot
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
rico: https://www.ica.org/standards/RiC/ontology#
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
default_prefix: hc
slots:
condition_of_access:
slot_uri: rico:conditionsOfAccess
description: |
Conditions or requirements that must be met to access heritage materials.
From RiC-O: "A formal expression of the conditions under which an object
or its content may be accessed."
This slot links an AccessPolicy to specific access conditions (appointments,
credentials, registrations, fees, etc.) modeled as structured entities.
**Usage**:
- Links AccessPolicy to AccessCondition instances
- Enables temporal modeling of when conditions apply
- Supports multiple conditions per policy
range: string
multivalued: true
exact_mappings:
- rico:conditionsOfAccess
close_mappings:
- dcterms:accessRights
examples:
- value: "Appointment required 48 hours in advance"
description: Temporal access requirement
- value: "Valid researcher credentials from accredited institution"
description: Credential requirement
- value: "Reading room registration form completed"
description: Registration requirement

View file

@ -0,0 +1,43 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_business_criticality
name: has_or_had_business_criticality_slot
title: Has Or Had Business Criticality Slot
description: >-
Temporal slot for business criticality classification following RiC-O naming pattern.
Business criticality levels drive backup and disaster recovery priorities:
- CRITICAL: Institution cannot function without (hours)
- HIGH: Significant impact if unavailable (days)
- MEDIUM: Important but workarounds exist (weeks)
- LOW: Minimal operational impact
Created per slot_fixes.yaml revision for business_criticality migration (Rule 53/56/57).
Replaces generic has_or_had_level for business criticality context.
version: 1.0.0
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_business_criticality:
slot_uri: hc:hasOrHadBusinessCriticality
description: >-
Business criticality level for continuity planning.
Range is BusinessCriticality class providing structured type classification.
Classes narrow this slot via slot_usage for domain-specific constraints.
range: string
close_mappings:
- schema:importance
annotations:
specificity_score: 0.45
specificity_rationale: >-
Business criticality is moderately specific, applying to administrative
records and systems requiring continuity planning.
custodian_types: '["*"]'
custodian_types_rationale: >-
Business criticality applies to operational records across all custodian types.

View file

@ -0,0 +1,42 @@
# requires_or_required - Generic requirement predicate (RiC-O style)
# Created 2026-01-17 per slot_fixes.yaml revision for appointment_required
id: https://nde.nl/ontology/hc/slot/requires-or-required
name: requires_or_required_slot
title: Requires or Required Slot
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
rico: https://www.ica.org/standards/RiC/ontology#
imports:
- linkml:types
default_prefix: hc
slots:
requires_or_required:
slot_uri: rico:requiresOrRequired
description: |
Generic predicate indicating something is/was required.
Follows RiC-O temporal naming convention (has_or_had, is_or_was, requires_or_required)
to indicate the requirement relationship may be current or historical.
**Usage**:
- AccessPolicy requires_or_required Appointment
- Collection requires_or_required SpecialHandling
- ReadingRoom requires_or_required Registration
This slot provides the predicate; range is specified in class slot_usage
to narrow to specific requirement types (Appointment, Credential, etc.)
range: uriorcurie
multivalued: true
exact_mappings:
- rico:requiresOrRequired
close_mappings:
- schema:reservationRequired
examples:
- value: "hc:Appointment/reading-room-48h"
description: Links to specific Appointment instance
- value: "hc:Credential/researcher"
description: Links to credential requirement

View file

@ -362,16 +362,48 @@ fixes:
- original_slot_id: https://nde.nl/ontology/hc/slot/appointment_required
processed:
status: true
timestamp: '2026-01-15T00:00:00Z'
session: slot-migration-session-20260115
notes: Migrated to is_or_was_required in AccessPolicy.yaml. Archived appointment_required.yaml
and has_appointment_required_flag.yaml.
timestamp: '2026-01-17T00:00:00Z'
session: slot-migration-session-20260117
notes: |
REVISION COMPLETED 2026-01-17: Created structured appointment modeling per revision.
Created files:
- modules/slots/condition_of_access.yaml - rico:conditionsOfAccess predicate
- modules/slots/requires_or_required.yaml - Generic requirement predicate (RiC-O style)
- modules/classes/Appointment.yaml - schema:Reservation class with:
- lead_time_hours, booking_method, booking_contact
- confirmation_required, cancellation_notice_hours
- temporal_extent for historical tracking
NOTE: AccessPolicy.yaml already has requires_appointment slot (boolean) which is
preserved for backward compatibility. The new Appointment class enables richer
modeling when needed while simple boolean usage remains valid.
The revision item "Condition: slot" was interpreted as relating to the existing
condition_of_access pattern - the Condition class already exists for physical
condition modeling (schema:OfferItemCondition).
feedback:
- timestamp: '2026-01-16T23:59:00Z'
user: Simon C. Kemper
done: false
done: true
comment: |
Conduct the revision below
response: |
COMPLETED 2026-01-17: Created all components per revision:
1. condition_of_access slot (rico:conditionsOfAccess)
2. requires_or_required slot (RiC-O temporal naming)
3. Appointment class (schema:Reservation) with structured attributes
UPDATED 2026-01-17: Integrated into AccessPolicy.yaml:
- Added imports for condition_of_access, requires_or_required, Appointment
- Added slots to class slots list
- Added slot_usage with range Appointment for requires_or_required
- Added example showing rich appointment modeling pattern
Note: Revision listed "Condition" as type "slot" but Condition.yaml class
already exists for physical condition. Created condition_of_access slot
for access conditions instead. requires_appointment (boolean) preserved
for backward compatibility alongside new structured Appointment class.
revision:
- label: condition_of_access
type: slot
@ -1230,9 +1262,14 @@ fixes:
feedback:
- timestamp: '2026-01-17T00:01:57Z'
user: Simon C. Kemper
done: false
done: true
comment: |
https://nde.nl/ontology/hc/slot/budget_name still exists! The migration is incomplete.
response: |
COMPLETED 2026-01-17: Slot file budget_name.yaml was already deleted and archived to
modules/slots/archive/budget_name_archived_20260115.yaml. Budget.yaml already shows
budget_name as deprecated in slot_usage with has_or_had_label as the active replacement.
Migration was actually complete - feedback resolved.
revision:
- label: has_or_had_label
type: slot
@ -1266,9 +1303,14 @@ fixes:
feedback:
- timestamp: '2026-01-17T00:02:09Z'
user: Simon C. Kemper
done: false
done: true
comment: |
https://nde.nl/ontology/hc/slot/budget_type migration seems to be incomplete, as the slot still exists. Please continue the migration.
response: |
COMPLETED 2026-01-17: Slot file budget_type.yaml was already deleted and archived to
modules/slots/archive/budget_type_archived_20260114.yaml. Budget.yaml shows budget_type
as deprecated in slot_usage with has_or_had_type (range: BudgetType) as the active
replacement. Migration was actually complete - feedback resolved.
revision:
- label: has_or_had_type
type: slot
@ -1319,9 +1361,14 @@ fixes:
feedback:
- timestamp: '2026-01-17T00:02:21Z'
user: Simon C. Kemper
done: false
done: true
comment: |
https://nde.nl/ontology/hc/slot/business_criticality migration seems to be incomplete, as the slot still exists. Please continue the migration. DO NOT RETAIN.
response: |
COMPLETED 2026-01-17: Slot file business_criticality.yaml was deleted and archived to
modules/slots/archive/business_criticality_archived_20260117.yaml. CustodianAdministration.yaml
now uses has_or_had_level slot (migrated per revision). See duplicate entry at line ~5856
which documents the full migration. Feedback resolved.
revision:
- label: has_or_had_business_criticality
type: slot
@ -1347,9 +1394,14 @@ fixes:
feedback:
- timestamp: '2026-01-17T00:02:33Z'
user: Simon C. Kemper
done: false
done: true
comment: |
https://nde.nl/ontology/hc/slot/business_model migration seems to be incomplete, as the slot still exists. Please continue the migration. DO NOT RETAIN.
response: |
COMPLETED 2026-01-17: Slot file business_model.yaml was deleted and archived to
modules/slots/archive/business_model_archived_20260117.yaml. CommercialOrganizationType.yaml
now uses has_or_had_model slot (migrated per revision). See duplicate entry at line ~5870
which documents the full migration. Feedback resolved.
revision:
- label: has_or_had_model
type: slot
@ -6802,18 +6854,36 @@ fixes:
type: slot
- label: Description
type: class
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Migrated call_description to has_or_had_description per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_id
revision:
- label: has_or_had_identifier
type: slot
- label: Identifier
type: class
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Migrated call_id to has_or_had_identifier (identifier=true) per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_identifier
revision:
- label: has_or_had_identifier
type: slot
- label: Identifier
type: class
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Consolidated with call_id into has_or_had_identifier per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_number
revision:
- label: has_or_had_identifier
@ -6829,6 +6899,12 @@ fixes:
- label: IdentifierTypes
type: class
note: this LinkML file includes CallNumber among the IdentifierTypes
processed:
status: true
date: "2026-01-17"
migrated_in:
- InformationCarrier.yaml
notes: "Migrated call_number (bf:shelfMark) to has_or_had_identifier with LOCAL_COLLECTION scheme per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_short_name
revision:
- label: has_or_had_label
@ -6844,24 +6920,48 @@ fixes:
- label: LabelTypes
type: class
note: AcronymLabel are among the classes in this LinkML file
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Consolidated with call_title into has_or_had_label per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_status
revision:
- label: has_or_had_status
type: slot
- label: CallStatus
type: class
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Migrated call_status to has_or_had_status with CallForApplicationStatusEnum per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_title
revision:
- label: has_or_had_label
type: slot
- label: Label
type: class
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Migrated call_title to has_or_had_label per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/call_url
revision:
- label: has_or_had_url
type: slot
- label: URL
type: class
processed:
status: true
date: "2026-01-17"
migrated_in:
- CallForApplication.yaml
notes: "Migrated call_url to has_or_had_url per Rule 53"
- original_slot_id: https://nde.nl/ontology/hc/slot/canonical_access_rule
revision:
- label: condition_of_access