Add new slots and update existing ones for heritage ontology

- Introduced new slots for administrative context, CMS categories, detected CMS, product version, co-funding requirements, co-organizers, collection access, collection dates, characteristics, class definitions, Dutch context, example locations, names, notes, and Wikidata IDs.
- Enhanced existing slots such as has_or_had_organizer and offers_or_offered_access to align with RiC-O naming conventions and improve temporal semantics.
- Migrated and restructured descriptions for clarity and consistency across various slots, ensuring alignment with Schema.org and other ontological standards.
- Implemented multivalued and inlined options for several slots to accommodate complex data structures.
- Updated annotations and examples to reflect the latest usage scenarios and best practices in the heritage sector.
This commit is contained in:
kempersc 2026-01-19 16:05:32 +01:00
parent d0e5a5092d
commit f622450304
55 changed files with 2677 additions and 145 deletions

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

@ -1,5 +1,5 @@
{
"generated": "2026-01-19T14:55:27.224Z",
"generated": "2026-01-19T15:05:33.164Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 2969,
"categoryCounts": {

View file

@ -0,0 +1,254 @@
# Access class
# Structured access information for heritage collections and services
#
# Created per slot_fixes.yaml revision for collection_access migration
# Generation date: 2026-01-19
# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming)
id: https://nde.nl/ontology/hc/class/Access
name: Access
title: Access Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
crm: http://www.cidoc-crm.org/cidoc-crm/
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ./TimeSpan
classes:
Access:
class_uri: dcterms:RightsStatement
description: |
Structured access information for heritage collections, services, or facilities.
**Purpose**:
Replaces simple string descriptions of access conditions with structured
data capturing access types, eligible users, conditions, and restrictions.
**Key Properties**:
- `access_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.)
- `eligible_users`: Who can access (public, students, faculty, researchers)
- `access_conditions`: Conditions or requirements for access
- `access_restrictions`: Specific restrictions that apply
- `temporal_extent`: When this access policy applies
**Access Types**:
- PUBLIC: Open to general public
- BY_APPOINTMENT: Requires advance appointment
- ACADEMIC: Restricted to academic community
- RESEARCHER: Restricted to credentialed researchers
- MEMBER: Requires membership
- RESTRICTED: Limited access with specific conditions
- CLOSED: Not currently accessible
- DIGITAL_ONLY: Available only in digital form
**Ontological Alignment**:
- **Primary**: `dcterms:RightsStatement` - Dublin Core rights statement
- **Close**: `schema:publicAccess` - Schema.org access indicator
- **Related**: `crm:E30_Right` - CIDOC-CRM rights
exact_mappings:
- dcterms:RightsStatement
close_mappings:
- schema:publicAccess
related_mappings:
- crm:E30_Right
slots:
- access_type
- eligible_users
- access_conditions
- access_restrictions
- access_description
- temporal_extent
- is_digital_access
slot_usage:
access_type:
required: true
range: AccessTypeEnum
description: Type of access offered
examples:
- value: PUBLIC
- value: BY_APPOINTMENT
- value: ACADEMIC
eligible_users:
required: false
range: string
multivalued: true
description: |
Categories of users eligible for this access.
Examples: "enrolled students", "faculty", "visiting scholars",
"credentialed researchers", "general public"
examples:
- value: "enrolled students"
- value: "faculty and staff"
- value: "visiting researchers with credentials"
access_conditions:
required: false
range: string
multivalued: true
description: |
Conditions that must be met for access.
Examples: "valid university ID", "advance booking required",
"handling training completed"
examples:
- value: "valid university ID required"
- value: "24-hour advance booking required"
access_restrictions:
required: false
range: string
multivalued: true
description: |
Specific restrictions on access.
Examples: "conservation concerns limit handling",
"donor restrictions apply", "high-value items in secure storage"
examples:
- value: "fragile materials limited to supervised viewing"
- value: "donor bequest restricts reproduction"
access_description:
required: false
range: string
description: |
Free-text description of access policy.
For backward compatibility with string-based collection_access.
examples:
- value: "Open to enrolled students and faculty; public by appointment"
temporal_extent:
required: false
range: TimeSpan
inlined: true
description: |
Time period during which this access policy applies.
Useful for temporary restrictions or seasonal access.
is_digital_access:
required: false
range: boolean
description: Whether this access is for digital materials
annotations:
specificity_score: 0.50
specificity_rationale: "Moderately specific - applies to collection and service access contexts"
custodian_types: '["*"]'
custodian_types_rationale: "All institution types offer some form of access"
comments:
- "Created per slot_fixes.yaml revision for collection_access migration"
- "Replaces string-based collection_access with structured access data"
- "RULE 53: Part of collection_access → offers_or_offered_access + Access migration"
examples:
- value:
access_type: PUBLIC
access_description: "Open to general public during gallery hours"
eligible_users:
- "general public"
access_conditions:
- "during posted gallery hours"
description: "Public access during gallery hours"
- value:
access_type: BY_APPOINTMENT
eligible_users:
- "credentialed researchers"
- "graduate students with faculty sponsor"
access_conditions:
- "48-hour advance booking required"
- "handling training required for original materials"
access_restrictions:
- "fragile materials limited to supervised viewing only"
description: "Research access by appointment with conditions"
- value:
access_type: ACADEMIC
access_description: "Open to enrolled students and faculty; public by appointment"
eligible_users:
- "enrolled students"
- "faculty"
- "research staff"
access_conditions:
- "valid university ID"
is_digital_access: false
description: "Academic community access with public by appointment"
- value:
access_type: DIGITAL_ONLY
access_description: "Collection accessible only through online database"
eligible_users:
- "anyone with internet access"
is_digital_access: true
description: "Digital-only access"
slots:
access_type:
slot_uri: dcterms:accessRights
description: Type of access offered
range: string
required: true
eligible_users:
slot_uri: schema:eligibleRegion
description: Categories of users eligible for access
range: string
multivalued: true
access_conditions:
slot_uri: schema:termsOfService
description: Conditions for access
range: string
multivalued: true
access_restrictions:
slot_uri: schema:usageInfo
description: Restrictions on access
range: string
multivalued: true
access_description:
slot_uri: schema:description
description: Free-text description of access policy
range: string
is_digital_access:
slot_uri: schema:isAccessibleForFree
description: Whether this is digital access
range: boolean
enums:
AccessTypeEnum:
description: Types of access to collections or services
permissible_values:
PUBLIC:
description: Open to general public
BY_APPOINTMENT:
description: Requires advance appointment
ACADEMIC:
description: Restricted to academic community
RESEARCHER:
description: Restricted to credentialed researchers
MEMBER:
description: Requires membership
RESTRICTED:
description: Limited access with specific conditions
CLOSED:
description: Not currently accessible
DIGITAL_ONLY:
description: Available only in digital form
MIXED:
description: Multiple access types apply

View file

@ -0,0 +1,168 @@
id: https://nde.nl/ontology/hc/class/Acquisition
name: acquisition_class
title: Acquisition Class
# Created per slot_fixes.yaml revision for collection_date migration
# RULE 53: Structured acquisition event with temporal extent
# CIDOC-CRM E8 Acquisition pattern
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
dwc: http://rs.tdwg.org/dwc/terms/
rico: https://www.ica.org/standards/RiC/ontology#
imports:
- linkml:types
- ../slots/temporal_extent
- ./TimeSpan
- ../slots/specificity_annotation
- ../slots/has_or_had_score
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
default_range: string
enums:
AcquisitionMethodEnum:
description: Methods by which items are acquired for collections.
permissible_values:
FIELD_COLLECTION:
description: Collected in the field (biological, geological specimens)
meaning: dwc:Occurrence
PURCHASE:
description: Acquired through purchase
meaning: schema:BuyAction
DONATION:
description: Given as a gift or donation
meaning: schema:DonateAction
BEQUEST:
description: Received through will or estate
TRANSFER:
description: Transferred from another institution
meaning: crm:E10_Transfer_of_Custody
EXCHANGE:
description: Exchanged with another institution (specimen exchange)
EXCAVATION:
description: Recovered through archaeological excavation
LOAN:
description: On long-term loan (not owned)
CONFISCATION:
description: Seized or confiscated (legal action)
FOUND:
description: Found object (no prior owner)
COMMISSION:
description: Commissioned work (created for the collection)
UNKNOWN:
description: Acquisition method unknown
classes:
Acquisition:
class_uri: crm:E8_Acquisition
description: >-
Represents an acquisition event - how and when an object or specimen was obtained for a collection.
CIDOC-CRM E8 Acquisition models the transfer of legal ownership rights.
**Key properties**:
- `temporal_extent`: When the acquisition occurred (TimeSpan with fuzzy boundaries for historical items)
- `acquisition_method`: How the item was acquired (field collection, purchase, donation, etc.)
- `acquisition_source`: From whom/where acquired (collector, dealer, previous owner, field location)
- `acquisition_agent`: Who performed the acquisition (collector, curator, institution)
**Darwin Core alignment**: For biological specimens:
- `temporal_extent` replaces `dwc:eventDate` (collection date)
- `acquisition_source` can capture `dwc:locality` and `dwc:recordedBy`
**Use cases**:
- Museum object provenance (purchase from dealer, 1923)
- Biological specimen collection (field collection, Amazon basin, 1750s)
- Archival transfer (transferred from ministry archives, 2001)
- Art donation (donated by artist's estate, 2015)
exact_mappings:
- crm:E8_Acquisition
close_mappings:
- prov:Activity
- schema:AcquireAction
related_mappings:
- rico:Event
- dwc:Event
slots:
- temporal_extent
- specificity_annotation
- has_or_had_score
attributes:
acquisition_method:
range: AcquisitionMethodEnum
description: >-
Method by which the item was acquired (field collection, purchase, donation, etc.).
acquisition_source:
range: string
description: >-
Source from which item was acquired. Can be:
- Person name (collector, donor, seller)
- Institution name (transferring institution)
- Location (field collection locality)
- Dealer or auction house
acquisition_agent:
range: string
description: >-
Agent who performed the acquisition (collector name, curator, institution).
For biological specimens, maps to dwc:recordedBy.
acquisition_location:
range: string
description: >-
Location where acquisition occurred (field collection site, auction house location).
For biological specimens, can capture field locality.
acquisition_reference:
range: string
description: >-
Reference number or identifier for the acquisition (accession number, lot number).
acquisition_notes:
range: string
description: >-
Additional notes about the acquisition event.
acquisition_date_text:
range: string
description: >-
Original date text as recorded (e.g., "1750s", "pre-1662", "circa 1900").
For backward compatibility with string-based collection_date.
The structured date should be in temporal_extent.
comments:
- "Created per slot_fixes.yaml revision for collection_date migration"
- "Replaces simple collection_date string with structured acquisition event"
- "RULE 53: Part of collection_date → was_acquired_through + Acquisition migration"
annotations:
specificity_score: 0.70
specificity_rationale: "Fairly specific - applies to items with acquisition provenance"
examples:
- value: |
# Biological specimen collected in the field
acquisition_method: FIELD_COLLECTION
temporal_extent:
begin_of_the_begin: "1750-01-01"
end_of_the_end: "1759-12-31"
notes: "Collected sometime in the 1750s"
acquisition_source: "Amazon basin, Brazil"
acquisition_agent: "Unknown Dutch collector"
acquisition_date_text: "1750s"
- value: |
# Museum object purchased from dealer
acquisition_method: PURCHASE
temporal_extent:
begin_of_the_begin: "1923-03-15"
end_of_the_end: "1923-03-15"
acquisition_source: "Sotheby's London"
acquisition_reference: "Lot 245, Sale of March 1923"
- value: |
# Historical specimen with uncertain date
acquisition_method: FIELD_COLLECTION
temporal_extent:
begin_of_the_begin: "1600-01-01"
end_of_the_end: "1662-12-31"
notes: "Pre-1662 (before Great Fire of London)"
acquisition_date_text: "pre-1662"

View file

@ -30,7 +30,10 @@ imports:
- ../slots/has_or_had_archival_status
- ../slots/has_or_had_identifier
- ../slots/has_auxiliary_platform_type
- ../slots/cms_detected
# REMOVED 2026-01-19: ../slots/cms_detected - migrated to is_or_was_based_on + CMS (Rule 53)
- ../slots/is_or_was_based_on # was: cms_detected - migrated per Rule 53 (2026-01-19)
- ./CMS
- ./CMSType
- ../slots/fixity_info
- ../slots/iiif_support
- ../slots/is_auxiliary_of_platform
@ -122,7 +125,7 @@ classes:
- is_or_was_archived_at # MIGRATED: was archived_at (2026-01-15)
- has_or_had_identifier
- has_auxiliary_platform_type
- cms_detected
- is_or_was_based_on # was: cms_detected - migrated per Rule 53 (2026-01-19)
- has_or_had_data_service_endpoint
- fixity_info
- funding_source
@ -299,14 +302,36 @@ classes:
examples:
- value: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
description: SHA-256 checksum of archived content
cms_detected:
range: boolean
# DEPRECATED 2026-01-19: cms_detected - migrated to is_or_was_based_on + CMS
# Old: cms_detected: true/false (boolean flag)
# New: is_or_was_based_on: CMS instance with name, version, detection method
is_or_was_based_on: # was: cms_detected - migrated per Rule 53 (2026-01-19)
description: |
CMS detected on this platform (replaces boolean cms_detected).
MIGRATED from boolean flag to structured CMS reference.
If present, a CMS was detected; if absent, no CMS detected.
**Migration**:
- Old: cms_detected: true
- New: is_or_was_based_on: {cms_name: WordPress, cms_version: "6.4"}
range: CMS
multivalued: true
inlined_as_list: true
required: false
examples:
- value: true
description: CMS backend detected
- value: false
description: No CMS detected (static site)
- value:
cms_name: WordPress
cms_version: "6.4.2"
has_or_had_type: CustomCMS
detected_at: "2026-01-19T12:00:00Z"
detection_method: HTTP_HEADER
description: CMS detected via HTTP header
- value:
cms_name: Omeka S
cms_version: "4.0.1"
has_or_had_type: MuseumCMS
detection_method: URL_PATTERN
description: Omeka S detected via URL pattern
has_or_had_powered_by_cm:
range: CollectionManagementSystem
multivalued: true

View file

@ -28,7 +28,9 @@ imports:
# cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix class (Rule 53, 2026-01-19)
- ../slots/is_or_was_listed_in
- ./CITESAppendix
- ../slots/collection_date
# REMOVED 2026-01-19: collection_date - migrated to was_acquired_through + Acquisition (Rule 53)
- ../slots/was_acquired_through
- ./Acquisition
- ../slots/collection_locality_text
- ../slots/collection_location
- ../slots/collector
@ -122,7 +124,8 @@ classes:
- has_or_had_identifier
# cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix (Rule 53, 2026-01-19)
- is_or_was_listed_in
- collection_date
# collection_date REMOVED - migrated to was_acquired_through + Acquisition (Rule 53, 2026-01-19)
- was_acquired_through
- collection_locality_text
- collection_location
- collector
@ -374,15 +377,36 @@ classes:
examples:
- value: Natural History Museum Preparation Lab
- value: J. van der Berg
collection_date:
# MIGRATED 2026-01-19: collection_date → was_acquired_through + Acquisition (Rule 53)
was_acquired_through:
required: false
range: string
range: Acquisition
inlined: true
inlined_as_list: true
description: >-
Acquisition event capturing when and how specimen was collected.
Replaces simple collection_date with structured acquisition data.
examples:
- value: '2020-06-15'
- value: 2020-06/2020-07
description: Collected sometime in June-July 2020
- value: 1870s
description: Historical specimen with approximate date
- value: |
acquisition_method: FIELD_COLLECTION
temporal_extent:
begin_of_the_begin: "2020-06-15"
end_of_the_end: "2020-06-15"
acquisition_date_text: "2020-06-15"
- value: |
acquisition_method: FIELD_COLLECTION
temporal_extent:
begin_of_the_begin: "2020-06-01"
end_of_the_end: "2020-07-31"
acquisition_date_text: "2020-06/2020-07"
acquisition_notes: "Collected sometime in June-July 2020"
- value: |
acquisition_method: FIELD_COLLECTION
temporal_extent:
begin_of_the_begin: "1870-01-01"
end_of_the_end: "1879-12-31"
acquisition_date_text: "1870s"
acquisition_notes: "Historical specimen with approximate date"
collection_location:
required: false
range: CustodianPlace
@ -514,7 +538,14 @@ classes:
- HEAD
- FOOT
preservation_method: DRIED_WHOLE
collection_date: pre-1662
# MIGRATED 2026-01-19: collection_date → was_acquired_through (Rule 53)
was_acquired_through:
- acquisition_method: FIELD_COLLECTION
acquisition_date_text: "pre-1662"
temporal_extent:
begin_of_the_begin: "1600-01-01"
end_of_the_end: "1662-12-31"
notes: "Pre-1662 (before Great Fire of London destroyed records)"
collection_location:
place_name: Mauritius
country: MU
@ -578,7 +609,14 @@ classes:
- LEAF
- FLOWER
preservation_method: DRIED_PRESSED
collection_date: 1750s
# MIGRATED 2026-01-19: collection_date → was_acquired_through (Rule 53)
was_acquired_through:
- acquisition_method: FIELD_COLLECTION
acquisition_date_text: "1750s"
temporal_extent:
begin_of_the_begin: "1750-01-01"
end_of_the_end: "1759-12-31"
notes: "Collected by Linnaeus in the 1750s"
collector:
- Carl Linnaeus
current_keeper: https://nde.nl/ontology/hc/custodian/uk/royal-botanic-gardens-kew

View file

@ -0,0 +1,142 @@
id: https://nde.nl/ontology/hc/class/CMS
name: cms_class
title: CMS Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
doap: http://usefulinc.com/ns/doap#
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_version
- ../slots/has_or_had_type
- ./CMSType
default_prefix: hc
classes:
CMS:
class_uri: schema:SoftwareApplication
description: |
A detected Content Management System (CMS) on a digital platform.
**Purpose**: Represents a CMS instance detected through automated discovery
or manual identification. Used when a platform is_or_was_based_on a CMS.
**Distinction from CollectionManagementSystem**:
- **CMS**: Lightweight detection record (what CMS was found)
- **CollectionManagementSystem**: Full institutional CMS deployment profile
(configuration, collections managed, custodian relationships)
**Detection Methods** (from original cms_detected documentation):
- HTTP response headers (X-Powered-By, Server)
- HTML meta tags (generator)
- URL patterns (e.g., /providence/, /omeka/)
- JavaScript libraries or framework signatures
- Admin panel detection
**Use Cases**:
1. "What CMS powers this auxiliary platform?" → Check is_or_was_based_on
2. Technical survey: Identify platforms by CMS type
3. Migration planning: Prioritize platforms by CMS technology
**Example**:
```yaml
AuxiliaryDigitalPlatform:
platform_name: Heritage Blog
is_or_was_based_on:
- cms_name: WordPress
cms_version: "6.4.2"
cms_type: CustomCMS
detected_at: "2026-01-19T12:00:00Z"
detection_method: HTTP_HEADER
```
**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).
Supports migration from boolean cms_detected to structured CMS reference.
exact_mappings:
- schema:SoftwareApplication
close_mappings:
- doap:Project
slots:
- cms_name
- has_or_had_version
- has_or_had_type
- detected_at
- detection_method
slot_usage:
cms_name:
description: Name of the detected CMS (e.g., WordPress, Drupal, Omeka)
range: string
required: true
examples:
- value: WordPress
description: WordPress CMS
- value: Omeka S
description: Omeka S digital collections platform
- value: CollectiveAccess
description: CollectiveAccess museum CMS
has_or_had_version:
description: Detected version of the CMS
range: string
required: false
examples:
- value: "6.4.2"
description: WordPress version
- value: "4.0.1"
description: Omeka S version
has_or_had_type:
description: CMS type classification (maps to CMSType hierarchy)
range: CMSType
required: false
examples:
- value: MuseumCMS
description: Museum-focused CMS
- value: ArchiveCMS
description: Archive-focused CMS
detected_at:
description: ISO 8601 timestamp when CMS was detected
range: datetime
required: false
examples:
- value: "2026-01-19T12:00:00Z"
description: Detection timestamp
detection_method:
description: Method used to detect the CMS
range: string
required: false
examples:
- value: HTTP_HEADER
description: Detected via X-Powered-By header
- value: META_TAG
description: Detected via HTML generator meta tag
- value: URL_PATTERN
description: Detected via URL structure
- value: MANUAL
description: Manually identified
annotations:
custodian_types: '["D"]'
custodian_types_rationale: Digital platforms (D) are the primary users of CMS detection
specificity_score: 0.70
specificity_rationale: Specific to digital platform CMS detection context
slots:
cms_name:
slot_uri: schema:name
description: Name of the Content Management System
range: string
exact_mappings:
- schema:name
- doap:name
detected_at:
slot_uri: prov:generatedAtTime
description: Timestamp when the CMS was detected
range: datetime
exact_mappings:
- prov:generatedAtTime
detection_method:
slot_uri: prov:wasGeneratedBy
description: Method used to detect the CMS (HTTP_HEADER, META_TAG, URL_PATTERN, MANUAL)
range: string

View file

@ -0,0 +1,120 @@
# CMSType class
# Abstract base class for CMS type taxonomy
#
# Generation date: 2026-01-19
# Rule compliance: 0b (Type/Types pattern), 53 (slot_fixes.yaml), 39 (RiC-O naming)
#
# This is the SINGULAR "Type" class - abstract base for the type hierarchy
# Concrete types are in CMSTypes.yaml (plural)
id: https://nde.nl/ontology/hc/class/cms_type
name: cms_type_class
title: CMS Type Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/includes_or_included
classes:
CMSType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for Collection Management System type taxonomy.
**DESIGN PATTERN** (Rule 0b - Type/Types Naming):
This file (`CMSType.yaml`) defines the **singular abstract base class**.
Concrete subclasses are defined in `CMSTypes.yaml` (plural).
**TYPE HIERARCHY**:
```
CMSType (abstract base)
├── MUSEUM_CMS - Museum collection management (MuseumPlus, TMS, CollectiveAccess)
├── ARCHIVE_CMS - Archival description (ArchivesSpace, MAIS, Calm)
├── LIBRARY_CMS - Library management (Koha, Alma, WorldShare)
├── DAM - Digital asset management (ResourceSpace, DAMsimple)
├── REPOSITORY - Digital repository (DSpace, Fedora, EPrints)
├── MIXED - Multi-domain (Omeka S, CollectiveAccess)
└── CUSTOM - Institution-specific/custom-built
```
**ONTOLOGICAL ALIGNMENT**:
- **Primary** (`class_uri`): `skos:Concept` - SKOS concept scheme
- **Related**: `schema:applicationCategory` - Schema.org software categorization
**USE CASES**:
The CMSType is used as the range for the `has_or_had_type`
slot in the CollectionManagementSystem class:
```yaml
CollectionManagementSystem:
has_or_had_identifier:
identifier_scheme: CMS_URI
identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib"
has_or_had_type: MUSEUM_CMS # ← CMSType
```
exact_mappings:
- skos:Concept
related_mappings:
- schema:applicationCategory
slots:
- has_or_had_label
- has_or_had_description
- includes_or_included
slot_usage:
has_or_had_label:
description: |
Display label for this CMS type.
range: string
required: true
examples:
- value: "MUSEUM_CMS"
description: Museum collection management system
has_or_had_description:
description: |
Description of what this CMS type covers.
examples:
- value:
description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management."
description_type: definition
description: Museum CMS type definition
includes_or_included:
description: |
Subtypes included in this CMS type (for hierarchical types).
range: CMSType
multivalued: true
annotations:
type_types_pattern: |
This is the SINGULAR "Type" class per Rule 0b.
Concrete subclasses in CMSTypes.yaml (plural).
custodian_types: '["*"]'
custodian_types_rationale: CMS types apply to all heritage custodian contexts.
specificity_score: 0.55
specificity_rationale: Type taxonomy - moderately specific to software categorization.
replaces_slots: "cms_category (the old string-valued slot)"
migration_date: "2026-01-19"
comments:
- "Abstract base class for CMS type hierarchy"
- "Follows Rule 0b Type/Types naming pattern"
- "Concrete types: MUSEUM_CMS, ARCHIVE_CMS, LIBRARY_CMS, DAM, REPOSITORY, MIXED, CUSTOM"
- "See CMSTypes.yaml for subclass definitions"

View file

@ -0,0 +1,258 @@
# CMSTypes class
# Concrete subclasses for CMS type taxonomy
#
# Generation date: 2026-01-19
# Rule compliance: 0b (Type/Types pattern), 53 (slot_fixes.yaml), 39 (RiC-O naming)
#
# This is the PLURAL "Types" file - contains all concrete subclasses
# Abstract base is in CMSType.yaml (singular)
id: https://nde.nl/ontology/hc/class/cms_types
name: cms_types_class
title: CMS Types Classes
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ./CMSType
classes:
# ========================================================================
# MUSEUM_CMS - Museum collection management
# ========================================================================
MuseumCMS:
is_a: CMSType
class_uri: hc:MuseumCMS
description: |
Collection management systems designed for museum collections.
**TYPICAL FEATURES**:
- Object cataloging and registration
- Provenance tracking
- Exhibition management
- Loan management
- Conservation records
- SPECTRUM workflow support
**EXAMPLES**:
- MuseumPlus (Zetcom)
- TMS - The Museum System (Gallery Systems)
- CollectiveAccess
- Adlib (Axiell)
- EMu (Axiell)
- PastPerfect
annotations:
cms_type_code: "MUSEUM_CMS"
primary_domain: "museums"
examples:
- value:
has_or_had_label: "MUSEUM_CMS"
has_or_had_description:
description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management."
description: Museum CMS type
# ========================================================================
# ARCHIVE_CMS - Archival description systems
# ========================================================================
ArchiveCMS:
is_a: CMSType
class_uri: hc:ArchiveCMS
description: |
Systems for archival description and records management.
**TYPICAL FEATURES**:
- Hierarchical description (fonds, series, files, items)
- ISAD(G) compliance
- EAD export
- Access restrictions management
- Finding aid generation
**EXAMPLES**:
- ArchivesSpace
- MAIS-Flexis (De Ree)
- Calm (Axiell)
- AtoM (Access to Memory)
- Archivist's Toolkit (legacy)
annotations:
cms_type_code: "ARCHIVE_CMS"
primary_domain: "archives"
examples:
- value:
has_or_had_label: "ARCHIVE_CMS"
has_or_had_description:
description_text: "Archival description systems supporting hierarchical arrangement, ISAD(G) compliance, and EAD export."
description: Archive CMS type
# ========================================================================
# LIBRARY_CMS - Library management systems
# ========================================================================
LibraryCMS:
is_a: CMSType
class_uri: hc:LibraryCMS
description: |
Integrated library systems (ILS) and library service platforms.
**TYPICAL FEATURES**:
- Cataloging (MARC21, RDA)
- Circulation management
- Acquisitions
- Serials management
- OPAC (public catalog)
- Interlibrary loan
**EXAMPLES**:
- Alma (Ex Libris)
- Koha (open-source)
- WorldShare (OCLC)
- Folio (open-source)
- Sierra (III)
- Symphony (SirsiDynix)
annotations:
cms_type_code: "LIBRARY_CMS"
primary_domain: "libraries"
examples:
- value:
has_or_had_label: "LIBRARY_CMS"
has_or_had_description:
description_text: "Integrated library systems supporting MARC21 cataloging, circulation, acquisitions, and OPAC functionality."
description: Library CMS type
# ========================================================================
# DAM - Digital Asset Management
# ========================================================================
DigitalAssetManagement:
is_a: CMSType
class_uri: hc:DigitalAssetManagement
description: |
Digital asset management systems for media files.
**TYPICAL FEATURES**:
- Image, video, audio management
- Metadata extraction
- Format conversion
- Rights management
- Distribution workflows
**EXAMPLES**:
- ResourceSpace
- DAMsimple
- Razuna
- Pimcore
- Bynder
- Canto
annotations:
cms_type_code: "DAM"
primary_domain: "digital_assets"
examples:
- value:
has_or_had_label: "DAM"
has_or_had_description:
description_text: "Digital asset management systems for organizing, storing, and distributing media files including images, video, and audio."
description: DAM type
# ========================================================================
# REPOSITORY - Digital repository systems
# ========================================================================
DigitalRepository:
is_a: CMSType
class_uri: hc:DigitalRepository
description: |
Digital repository systems for long-term preservation and access.
**TYPICAL FEATURES**:
- Long-term preservation
- OAI-PMH harvesting
- DOI/Handle assignment
- Bitstream management
- OAIS compliance
**EXAMPLES**:
- DSpace
- Fedora (Flexible Extensible Digital Object Repository Architecture)
- EPrints
- Islandora (Drupal + Fedora)
- Samvera (formerly Hydra)
- Preservica
annotations:
cms_type_code: "REPOSITORY"
primary_domain: "digital_preservation"
examples:
- value:
has_or_had_label: "REPOSITORY"
has_or_had_description:
description_text: "Digital repository systems for long-term preservation, OAI-PMH harvesting, and OAIS-compliant storage."
description: Digital repository type
# ========================================================================
# MIXED - Multi-domain systems
# ========================================================================
MixedCMS:
is_a: CMSType
class_uri: hc:MixedCMS
description: |
Multi-domain systems that serve museums, archives, and/or libraries.
**TYPICAL FEATURES**:
- Flexible data models
- Multiple metadata standards
- Cross-domain searching
- Configurable workflows
**EXAMPLES**:
- Omeka S (museums, archives, libraries)
- CollectiveAccess (museums, archives)
- ArchivesSpace + plugins
- ResourceSpace with customization
annotations:
cms_type_code: "MIXED"
primary_domain: "multi-domain"
examples:
- value:
has_or_had_label: "MIXED"
has_or_had_description:
description_text: "Multi-domain collection management systems that can serve museums, archives, and/or libraries with flexible data models."
description: Mixed CMS type
# ========================================================================
# CUSTOM - Institution-specific/custom-built
# ========================================================================
CustomCMS:
is_a: CMSType
class_uri: hc:CustomCMS
description: |
Institution-specific or custom-built collection management systems.
**TYPICAL FEATURES**:
- Tailored to institutional needs
- May be legacy systems
- Often lack standard API/export
- Proprietary data models
**EXAMPLES**:
- In-house developed systems
- Heavily customized commercial systems
- Legacy database applications
- Spreadsheet-based systems (transitional)
annotations:
cms_type_code: "CUSTOM"
primary_domain: "custom"
examples:
- value:
has_or_had_label: "CUSTOM"
has_or_had_description:
description_text: "Institution-specific or custom-built collection management systems, often legacy or heavily customized."
description: Custom CMS type

View file

@ -32,7 +32,9 @@ imports:
- ./URL # for has_or_had_url range
- ./Identifier # for has_or_had_identifier range
# NOTE: has_or_had_status uses CallForApplicationStatusEnum (imported above), not a CallStatus class
- ../slots/co_funding_required
# REMOVED 2026-01-19: co_funding_required - migrated to requires_or_required + CoFunding (Rule 53)
- ../slots/requires_or_required # was: co_funding_required - migrated per Rule 53 (2026-01-19)
- ./CoFunding # for requires_or_required range (co-funding requirements)
- ../slots/eligible_applicant
- ../slots/eligible_country
- ../slots/funded_project
@ -115,7 +117,8 @@ classes:
- 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
# REMOVED 2026-01-19: co_funding_required - migrated to requires_or_required + CoFunding (Rule 53)
- requires_or_required # was: co_funding_required - migrated per Rule 53 (2026-01-19)
- contact_email
- eligible_applicant
- eligible_country
@ -317,6 +320,27 @@ classes:
description: Project funded by this call
- value: https://nde.nl/ontology/hc/project/europeana/common-culture-2024
description: Europeana project funded through Horizon Europe
requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19)
range: CoFunding
multivalued: false
inlined: true
description: |
Co-funding/match funding requirement for this call.
MIGRATED from co_funding_required (boolean) to structured CoFunding class per Rule 53 (2026-01-19).
Now captures whether co-funding is required, percentage/amount requirements, and human-readable descriptions.
examples:
- value:
is_or_was_required: true
has_or_had_description: "Partnership funding 5-50% depending on grant size"
description: NLHF co-funding requirement with percentage range
- value:
is_or_was_required: true
has_or_had_quantity:
- quantity_value: 20
has_or_had_measurement_unit:
unit_label: "%"
has_or_had_description: "Minimum 20% co-funding from applicant organization"
description: Co-funding with specific percentage requirement
comments:
- CallForApplication links FundingOrganisation to heritage custodian funding opportunities
- Lifecycle tracked via CallForApplicationStatusEnum (ANNOUNCED through RESULTS_PUBLISHED)
@ -466,7 +490,9 @@ classes:
- Natural heritage
- Intangible heritage
- Industrial heritage
co_funding_required: true
requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19)
is_or_was_required: true
has_or_had_description: "Partnership funding 5-50% depending on grant size"
partnership_required: false
issuing_organisation: https://nde.nl/ontology/hc/encompassing-body/funding/nlhf
parent_programme: National Lottery Heritage Fund

View file

@ -0,0 +1,137 @@
# CoFunding - Co-funding/match funding requirement
# Created 2026-01-19 per slot_fixes.yaml revision for co_funding_required
# Rule 53: Generic slot + structured class pattern
id: https://nde.nl/ontology/hc/class/CoFunding
name: CoFunding
title: CoFunding Class
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
- ../slots/has_or_had_description
- ../slots/is_or_was_required
- ../slots/has_or_had_quantity
- ./Quantity
- ./MeasureUnit
- ../enums/MeasureUnitEnum
default_prefix: hc
classes:
CoFunding:
class_uri: schema:MonetaryAmount
description: |
Co-funding or match funding requirement for a funding call or grant.
Co-funding represents the financial contribution that an applicant must
provide alongside the grant funding. This may be expressed as:
- A percentage of total project cost (e.g., 30% co-funding required)
- A minimum absolute amount (e.g., €50,000 minimum co-funding)
- In-kind contributions (staff time, facilities, equipment)
**ONTOLOGY ALIGNMENT**:
- schema:MonetaryAmount - For monetary co-funding amounts
- schema:percentageValue - For percentage-based requirements
**MIGRATION NOTE**:
Replaces simple boolean `co_funding_required` slot with structured class
that captures co-funding amount, percentage, and type information.
**USAGE**:
- CallForApplication requires_or_required CoFunding
- Grant has_or_had_cofunding CoFunding
**EXAMPLES**:
- Horizon Europe: 0% co-funding for academic partners (100% funding rate)
- National Lottery Heritage Fund: 5-50% partnership funding required
- Creative Europe: 40% co-funding required (60% EU contribution)
exact_mappings:
- schema:MonetaryAmount
close_mappings:
- schema:percentageValue
related_mappings:
- schema:Grant
- schema:FundingScheme
slots:
- is_or_was_required
- has_or_had_description
- has_or_had_quantity
slot_usage:
is_or_was_required:
required: true
range: boolean
description: |
Whether co-funding is required for this funding opportunity.
True = applicants must provide matching funds.
False = full funding provided (no co-funding required).
examples:
- value: true
description: Co-funding required (e.g., 30% match)
- value: false
description: Full funding provided (100% grant rate)
has_or_had_description:
range: string
description: |
Human-readable description of co-funding requirements.
May include eligibility notes, in-kind contribution rules, etc.
examples:
- value: "30% co-funding required; in-kind contributions accepted up to 10%"
description: Mixed co-funding with in-kind allowance
- value: "Partnership funding required ranging from 5% to 50% depending on grant size"
description: Sliding scale co-funding
has_or_had_quantity:
range: Quantity
multivalued: true
inlined: true
inlined_as_list: true
description: |
Quantified co-funding requirements expressed as:
- Percentage (e.g., 30% of total project cost)
- Minimum amount (e.g., €50,000)
- Maximum amount (e.g., up to €1,000,000)
examples:
- value:
quantity_value: 30
has_or_had_measurement_unit:
unit_label: "%"
description: 30% co-funding percentage
- value:
quantity_value: 50000
has_or_had_measurement_unit:
unit_label: EUR
description: Minimum €50,000 co-funding
comments:
- Replaces simple co_funding_required boolean with structured class
- Captures both percentage and absolute co-funding amounts
- In-kind contributions tracked via description field
- Links to Quantity for precise numerical requirements
see_also:
- https://schema.org/MonetaryAmount
- https://ec.europa.eu/research/participants/docs/h2020-funding-guide/grants/applying-for-funding/find-a-call/what-you-need-to-know_en.htm
examples:
- value:
is_or_was_required: true
has_or_had_description: "30% co-funding required for all project costs"
has_or_had_quantity:
- quantity_value: 30
has_or_had_measurement_unit:
unit_label: "%"
description: EU Creative Europe style co-funding (30%)
- value:
is_or_was_required: true
has_or_had_description: "Partnership funding 5-50% depending on grant size; in-kind contributions permitted"
has_or_had_quantity:
- quantity_value: 5
has_or_had_measurement_unit:
unit_label: "%"
- quantity_value: 50
has_or_had_measurement_unit:
unit_label: "%"
description: NLHF sliding scale co-funding range
- value:
is_or_was_required: false
has_or_had_description: "100% funding rate for academic and non-profit partners"
description: Horizon Europe full funding (no co-funding)

View file

@ -12,12 +12,17 @@ imports:
- ../slots/documentation_url
- ./ReconstructedEntity
- ../slots/is_or_was_available # MIGRATED: was ../slots/api_available (2026-01-15)
- ../slots/cms_category
# REMOVED 2026-01-19: ../slots/cms_category - migrated to has_or_had_type + CMSType (Rule 53)
- ../slots/has_or_had_type # was: cms_category - migrated per Rule 53 (2026-01-19)
- ./CMSType
- ./CMSTypes
# REMOVED 2026-01-18: ../slots/cms_id - migrated to has_or_had_identifier + Identifier (Rule 53)
- ../slots/has_or_had_identifier # was: cms_id - migrated per Rule 53 (2026-01-18)
- ./Identifier
# REMOVED 2026-01-18: ../slots/cms_product_name - migrated to has_or_had_label with Label (type: product_name)
- ../slots/cms_product_version
# REMOVED 2026-01-19: ../slots/cms_product_version - migrated to has_or_had_version + Version (Rule 53)
- ../slots/has_or_had_version # was: cms_product_version - migrated per Rule 53 (2026-01-19)
- ./Version
- ../slots/has_or_had_custodian_type
- ../slots/deployment_date
- ../slots/iiif_compatible
@ -114,10 +119,12 @@ classes:
- rico:Activity
slots:
- is_or_was_available # MIGRATED: was api_available (2026-01-15)
- cms_category
# REMOVED 2026-01-19: cms_category - migrated to has_or_had_type with CMSType
- has_or_had_type # was: cms_category - migrated per Rule 53 (2026-01-19)
- has_or_had_identifier # was: cms_id - migrated per Rule 53 (2026-01-18)
# REMOVED 2026-01-18: cms_product_name - migrated to has_or_had_label with Label (type: product_name)
- cms_product_version
# REMOVED 2026-01-19: cms_product_version - migrated to has_or_had_version + Version (Rule 53)
- has_or_had_version # was: cms_product_version - migrated per Rule 53 (2026-01-19)
- has_or_had_custodian_type
- deployment_date
- documentation_url
@ -177,18 +184,65 @@ classes:
See has_or_had_label slot_usage for current pattern.
deprecated: "Use has_or_had_label with Label(has_or_had_type='product_name')"
cms_product_version:
range: string
description: |
DEPRECATED 2026-01-19: Migrated to has_or_had_version slot with Version class.
This slot_usage entry retained for documentation only.
See has_or_had_version slot_usage for current pattern.
deprecated: "Use has_or_had_version with Version class"
has_or_had_version: # was: cms_product_version - migrated per Rule 53 (2026-01-19)
description: |
MIGRATED from cms_product_version per slot_fixes.yaml (Rule 53, 2026-01-19).
Version of the CMS software deployed.
Uses Version class for structured version representation:
- version_string: Full version (e.g., "1.8.0", "7.4")
- major_version, minor_version, patch_version: Semantic versioning components
- release_date: When this version was released
- temporal_extent: When this version was deployed at the custodian
range: Version
multivalued: true
inlined_as_list: true
examples:
- value: 1.8.0
description: CollectiveAccess version
- value: '7.0'
- value:
version_string: "1.8.0"
major_version: 1
minor_version: 8
patch_version: 0
description: CollectiveAccess version with semantic components
- value:
version_string: "7.4"
major_version: 7
minor_version: 4
description: MuseumPlus version
cms_category:
range: string
description: |
DEPRECATED 2026-01-19: Migrated to has_or_had_type slot with CMSType class.
This slot_usage entry retained for documentation only.
See has_or_had_type slot_usage for current pattern.
deprecated: "Use has_or_had_type with CMSType class"
has_or_had_type: # was: cms_category - migrated per Rule 53 (2026-01-19)
description: |
MIGRATED from cms_category per slot_fixes.yaml (Rule 53, 2026-01-19).
The type of collection management system.
Uses CMSType class hierarchy for structured type representation:
- MuseumCMS: Museum-focused collection management (e.g., TMS, CollectiveAccess)
- ArchiveCMS: Archives-focused (e.g., ArchivesSpace, MAIS-Flexis)
- LibraryCMS: Library-focused (e.g., Koha, Alma)
- DigitalAssetManagement: DAM systems (e.g., ResourceSpace)
- DigitalRepository: Repository platforms (e.g., DSpace, Fedora)
- MixedCMS: Multi-domain systems
- CustomCMS: Institution-specific systems
range: CMSType
inlined: true
examples:
- value: MUSEUM_CMS
- value:
has_or_had_label: Museum CMS
has_or_had_type: museum_cms
description: Museum-focused CMS
- value: ARCHIVE_CMS
- value:
has_or_had_label: Archive CMS
has_or_had_type: archive_cms
description: Archives-focused CMS
open_source:
range: boolean
@ -382,15 +436,20 @@ classes:
- http://www.cidoc-crm.org/cidoc-crm/E29_Design_or_Procedure
- http://usefulinc.com/ns/doap#Project
examples:
# Examples updated for migrated slots (Rule 53) - 2026-01-14, 2026-01-16, 2026-01-18
# Examples updated for migrated slots (Rule 53) - 2026-01-14, 2026-01-16, 2026-01-18, 2026-01-19
- value:
# cms_id migrated to has_or_had_identifier with Identifier class (2026-01-18)
has_or_had_identifier:
identifier_scheme: CMS_URI
identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib"
# cms_product_name migrated to has_or_had_label with type: product_name (2026-01-18)
cms_product_version: '7.4'
cms_category: MUSEUM_CMS
# cms_product_version migrated to has_or_had_version with Version class (2026-01-19)
has_or_had_version:
version_string: "7.4"
major_version: 7
minor_version: 4
# cms_category migrated to has_or_had_type with CMSType (2026-01-19)
has_or_had_type: MuseumCMS # was: cms_category: MUSEUM_CMS
open_source: false
license: Proprietary
has_or_had_label: # was: vendor_name AND cms_product_name - now uses Label with type discrimination
@ -425,8 +484,14 @@ classes:
identifier_scheme: CMS_URI
identifier_value: "https://nde.nl/ontology/hc/cms/example-museum-collectiveaccess"
# cms_product_name migrated to has_or_had_label with type: product_name (2026-01-18)
cms_product_version: 1.8.0
cms_category: MUSEUM_CMS
# cms_product_version migrated to has_or_had_version with Version class (2026-01-19)
has_or_had_version:
version_string: "1.8.0"
major_version: 1
minor_version: 8
patch_version: 0
# cms_category migrated to has_or_had_type with CMSType (2026-01-19)
has_or_had_type: MuseumCMS # was: cms_category: MUSEUM_CMS
open_source: true
license: GPL-3.0
has_or_had_label: # was: vendor_name AND cms_product_name - now uses Label with type discrimination
@ -462,8 +527,10 @@ classes:
identifier_scheme: CMS_URI
identifier_value: "https://nde.nl/ontology/hc/cms/nationaal-archief-mais"
# cms_product_name migrated to has_or_had_label with type: product_name (2026-01-18)
cms_product_version: null
cms_category: ARCHIVE_CMS
# cms_product_version migrated to has_or_had_version with Version class (2026-01-19)
# Version unknown for this CMS deployment
# cms_category migrated to has_or_had_type with CMSType (2026-01-19)
has_or_had_type: ArchiveCMS # was: cms_category: ARCHIVE_CMS
open_source: false
license: Proprietary
has_or_had_label: # was: vendor_name AND cms_product_name - now uses Label with type discrimination

View file

@ -66,7 +66,8 @@ imports:
- ./TemplateSpecificityTypes
- ../slots/education_level
- ../slots/has_or_had_academic_program
- ../slots/collection_access
- ../slots/offers_or_offered_access
- ./Access
# REMOVED 2026-01-15: teaching_collection, student_service imports - defined locally as attributes, slots archived
- ../slots/has_or_had_accreditation
- ../slots/education_provider_subtype
@ -367,77 +368,15 @@ classes:
range: string
multivalued: true
slot_uri: aiiso:programme
collection_access:
description: 'Access policies for heritage collections, especially concerning student and faculty use.
Academic Community Access:
- Students enrolled: Undergraduate, graduate, doctoral students
- Faculty and staff: Teaching faculty, research faculty, emeritus
- Academic affiliates: Visiting scholars, postdocs, adjuncts
Curriculum Integration:
- Class visits: Scheduled visits as part of coursework
- Hands-on learning: Object-based teaching with collection items
- Laboratory access: Specimen examination for science students
- Research use: Thesis/dissertation research, faculty research projects
External Access:
- Public visiting hours: Open to general public (specific days/times)
- Appointment required: By-appointment access for researchers
- Restricted access: Academic credentials required
- Membership programs: Community membership for non-affiliated users
Digital Access:
- Online catalog: Searchable collection database
- Digital collections: Digitized materials available online
- Virtual exhibitions: Online exhibition programming
- Learning management integration: Collections in course management systems
Special Restrictions:
- Conservation concerns: Fragile materials limited access
- Donor restrictions: Bequest conditions limiting use
- Privacy restrictions: Student records, personnel files
- Security restrictions: High-value items in secure storage
Examples:
- "Open to enrolled students and faculty; public by appointment"
- "Class visits scheduled through instructors; public gallery hours Wednesday-Saturday"
- "Digital collections open access; physical materials require university ID"
This field maps to Schema.org and CIDOC-CRM access properties.
'
range: string
slot_uri: schema:publicAccess
offers_or_offered_access:
description: >-
Access offerings for heritage collections, especially concerning student and faculty use.
Uses structured Access class to capture access type, eligible users, conditions, and restrictions.
Education providers typically offer multiple access types for different user groups.
range: Access
multivalued: true
inlined: true
inlined_as_list: true
teaching_collection:
description: 'Description of collections specifically maintained for educational purposes and

View file

@ -25,7 +25,10 @@ imports:
- ../slots/has_or_had_identifier
- ./WikiDataIdentifier
- ../slots/exhibition_type
- ../slots/co_organized_by
# REMOVED 2026-01-19: co_organized_by - migrated to has_or_had_organizer + Organizer (Rule 53)
- ../slots/has_or_had_organizer
- ./Organizer
- ./OrganizerRole
- ../slots/curated_by
- ../slots/has_or_had_custodian_type
- ../slots/exhibition_catalog_url
@ -92,7 +95,8 @@ classes:
- schema:Event
- crm:E4_Period
slots:
- co_organized_by
# REMOVED 2026-01-19: co_organized_by - migrated to has_or_had_organizer + Organizer (Rule 53)
- has_or_had_organizer
- curated_by
- has_or_had_custodian_type
- end_date
@ -168,13 +172,42 @@ classes:
examples:
- value: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
- value: https://nde.nl/ontology/hc/custodian/nl/mauritshuis
co_organized_by:
# REMOVED 2026-01-19: co_organized_by - migrated to has_or_had_organizer + Organizer (Rule 53)
# co_organized_by:
# required: false
# range: uriorcurie
# multivalued: true
# inlined: false
# examples:
# - value: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington
has_or_had_organizer:
required: false
range: uriorcurie
range: Organizer
multivalued: true
inlined: false
inlined: true
inlined_as_list: true
description: |
Organizations that organize this exhibition.
MIGRATED 2026-01-19: Replaces co_organized_by slot per Rule 53.
Includes primary organizers, co-organizers, sponsors with curatorial input.
examples:
- value: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington
- value:
organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
has_or_had_role:
role_type: PRIMARY
description: "Rijksmuseum as primary organizer"
- value:
organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis
has_or_had_role:
role_type: CO_ORGANIZER
organizer_contribution: "Provided key loans including Girl with a Pearl Earring"
description: "Mauritshuis as co-organizer"
- value:
organizer_entity: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington
has_or_had_role:
role_type: LENDING_INSTITUTION
organizer_contribution: "Lent Woman Holding a Balance"
description: "National Gallery Washington as lending institution"
curated_by:
required: false
range: string
@ -360,10 +393,15 @@ classes:
'
exhibition_type: BLOCKBUSTER
organized_by:
- https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
co_organized_by:
- https://nde.nl/ontology/hc/custodian/nl/mauritshuis
# MIGRATED 2026-01-19: organized_by/co_organized_by → has_or_had_organizer + Organizer (Rule 53)
has_or_had_organizer:
- organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
has_or_had_role:
role_type: PRIMARY
- organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis
has_or_had_role:
role_type: CO_ORGANIZER
organizer_contribution: "Provided Girl with a Pearl Earring and 5 other Vermeers"
curated_by:
- Pieter Roelofs
- Gregor J.M. Weber
@ -407,8 +445,10 @@ classes:
exhibition_name: Voices from the War
exhibition_subtitle: Personal Stories from World War II Archives
exhibition_type: ARCHIVAL
organized_by:
- https://nde.nl/ontology/hc/custodian/nl/nationaal-archief
has_or_had_organizer:
- organizer_entity: https://nde.nl/ontology/hc/custodian/nl/nationaal-archief
has_or_had_role:
role_type: PRIMARY
start_date: '2024-05-04'
end_date: '2024-11-11'
exhibition_location:
@ -428,8 +468,10 @@ classes:
'
exhibition_type: PERMANENT
organized_by:
- https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
has_or_had_organizer:
- organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
has_or_had_role:
role_type: PRIMARY
exhibition_venue: Gallery of Honour (Eregalerij)
featured_work:
- The Night Watch (Rembrandt)

View file

@ -0,0 +1,32 @@
id: https://nde.nl/ontology/hc/class/NotableExample
name: NotableExample-class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/example_name
- ../slots/example_location
- ../slots/example_wikidata_id
- ../slots/example_note
classes:
NotableExample:
class_uri: hc:NotableExample
description: |
A real-world example of a heritage institution of this type.
Provides concrete instances for understanding the class scope.
slots:
- example_name
- example_location
- example_wikidata_id
- example_note
annotations:
specificity_score: 0.3
specificity_rationale: "Universal utility for concrete examples"

View file

@ -0,0 +1,162 @@
# Organizer class
# Entity that organizes events, exhibitions, programs with role specification
#
# Created per slot_fixes.yaml revision for co_organized_by migration
# Generation date: 2026-01-19
# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming)
id: https://nde.nl/ontology/hc/class/Organizer
name: Organizer
title: Organizer Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
org: http://www.w3.org/ns/org#
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ../slots/has_or_had_role
- ./OrganizerRole
classes:
Organizer:
class_uri: schema:Organization
description: |
An entity that organizes or organized an event, exhibition, program, or activity.
**Purpose**:
Captures the organizing entity along with their role, replacing simple
uriorcurie references like `co_organized_by` or `organized_by`.
**Key Properties**:
- `organizer_entity`: Reference to the organizing institution (Custodian, Organization)
- `has_or_had_role`: Role of the organizer (PRIMARY, CO_ORGANIZER, etc.)
- `organizer_contribution`: Description of organizational contribution
**Pattern**:
Instead of separate `organized_by` and `co_organized_by` slots with plain URIs,
use a single `has_or_had_organizer` slot with Organizer instances that specify roles.
**Example Migration**:
```yaml
# OLD (deprecated):
organized_by:
- https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
co_organized_by:
- https://nde.nl/ontology/hc/custodian/nl/mauritshuis
# NEW (Rule 53):
has_or_had_organizer:
- organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum
has_or_had_role:
role_type: PRIMARY
- organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis
has_or_had_role:
role_type: CO_ORGANIZER
```
**Ontological Alignment**:
- **Primary**: `schema:Organization` (organizer is an organization)
- **Close**: `org:Organization` (W3C Org vocabulary)
- **Related**: `prov:Agent` (PROV-O agent in activity)
exact_mappings:
- schema:Organization
close_mappings:
- org:Organization
related_mappings:
- prov:Agent
slots:
- organizer_entity
- has_or_had_role
- organizer_contribution
slot_usage:
organizer_entity:
required: true
range: uriorcurie
description: |
Reference to the organizing institution (Custodian, Organization).
This is the entity that actually does the organizing.
examples:
- value: "https://nde.nl/ontology/hc/custodian/nl/rijksmuseum"
description: "Rijksmuseum as organizer"
has_or_had_role:
required: false
range: OrganizerRole
inlined: true
description: |
Role of this organizer (PRIMARY, CO_ORGANIZER, SPONSOR_ORGANIZER, etc.).
If omitted, implies general organizational involvement.
examples:
- value:
role_type: PRIMARY
description: "Primary organizer role"
organizer_contribution:
required: false
range: string
description: |
Description of organizational contribution.
Examples: "Provided 15 works from permanent collection",
"Funded conservation of borrowed works", "Curatorial expertise"
examples:
- value: "Provided 15 works from permanent collection and curatorial expertise"
description: "Description of Mauritshuis contribution to Vermeer exhibition"
annotations:
specificity_score: 0.55
specificity_rationale: "Moderately specific - applies to any event organization context"
custodian_types: '["*"]'
custodian_types_rationale: "Any institution type can organize events/exhibitions"
comments:
- "Created per slot_fixes.yaml revision for co_organized_by migration"
- "Replaces separate organized_by/co_organized_by with role-based discrimination"
- "RULE 53: Part of co_organized_by → has_or_had_organizer + Organizer migration"
examples:
- value:
organizer_entity: "https://nde.nl/ontology/hc/custodian/nl/rijksmuseum"
has_or_had_role:
role_type: PRIMARY
role_description: "Main organizing institution"
description: "Rijksmuseum as primary organizer of Vermeer exhibition"
- value:
organizer_entity: "https://nde.nl/ontology/hc/custodian/nl/mauritshuis"
has_or_had_role:
role_type: CO_ORGANIZER
role_description: "Partner institution providing key loans"
organizer_contribution: "Provided Girl with a Pearl Earring and 5 other Vermeers"
description: "Mauritshuis as co-organizer with specific contribution"
- value:
organizer_entity: "https://nde.nl/ontology/hc/custodian/us/national-gallery-washington"
has_or_had_role:
role_type: LENDING_INSTITUTION
organizer_contribution: "Lent Woman Holding a Balance"
description: "National Gallery Washington as lending institution"
slots:
organizer_entity:
slot_uri: schema:organizer
description: Reference to the organizing institution
range: uriorcurie
required: true
organizer_contribution:
slot_uri: schema:description
description: Description of organizational contribution
range: string
required: false

View file

@ -0,0 +1,121 @@
# OrganizerRole class
# Enumeration-like class for organizer roles in events/exhibitions
#
# Created per slot_fixes.yaml revision for co_organized_by migration
# Generation date: 2026-01-19
# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming), 0b (Type/Types pattern)
id: https://nde.nl/ontology/hc/class/OrganizerRole
name: OrganizerRole
title: Organizer Role Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
skos: http://www.w3.org/2004/02/skos/core#
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
- ../metadata
classes:
OrganizerRole:
class_uri: schema:Role
description: |
Role of an organizer in an event, exhibition, or program.
**Purpose**:
Distinguishes between different types of organizational involvement:
- PRIMARY: Main organizing institution
- CO_ORGANIZER: Partner institution with significant organizational role
- SPONSOR_ORGANIZER: Sponsor with curatorial/organizational input
- LENDING_INSTITUTION: Institution lending objects with exhibition involvement
- HOST_VENUE: Venue hosting a traveling exhibition
**Pattern**:
Used with Organizer class to specify the role of an organizing entity.
**Ontological Alignment**:
- **Primary**: `schema:Role` - Schema.org role
- **Close**: `prov:Role` - PROV-O role in activity
exact_mappings:
- schema:Role
close_mappings:
- prov:Role
slots:
- role_type
- role_description
slot_usage:
role_type:
required: true
range: OrganizerRoleTypeEnum
description: Type of organizer role (PRIMARY, CO_ORGANIZER, etc.)
role_description:
required: false
range: string
description: Additional description of the role
annotations:
specificity_score: 0.65
specificity_rationale: "Fairly specific - applies to event/exhibition organization contexts"
custodian_types: '["M", "G", "A", "L", "R"]'
custodian_types_rationale: "Primarily used by museums, galleries, archives, libraries, research centers that organize exhibitions"
comments:
- "Created per slot_fixes.yaml revision for co_organized_by migration"
- "Used with Organizer class to specify organizational involvement"
- "RULE 53: Part of co_organized_by → has_or_had_organizer + Organizer migration"
examples:
- value:
role_type: PRIMARY
role_description: "Main organizing institution"
description: "Primary organizer role"
- value:
role_type: CO_ORGANIZER
role_description: "Partner institution contributing loans and curatorial expertise"
description: "Co-organizer role with description"
- value:
role_type: LENDING_INSTITUTION
role_description: "Major lender with exhibition advisory role"
description: "Lending institution with organizational involvement"
slots:
role_type:
slot_uri: schema:roleName
description: Type of organizer role
range: string
required: true
role_description:
slot_uri: schema:description
description: Additional description of the organizational role
range: string
required: false
enums:
OrganizerRoleTypeEnum:
description: Types of organizer roles
permissible_values:
PRIMARY:
description: Main organizing institution
CO_ORGANIZER:
description: Partner institution with significant organizational role
SPONSOR_ORGANIZER:
description: Sponsor with curatorial/organizational input
LENDING_INSTITUTION:
description: Institution lending objects with exhibition involvement
HOST_VENUE:
description: Venue hosting a traveling exhibition
SUPPORTING_PARTNER:
description: Supporting partner institution
ADVISOR:
description: Advisory organization

View file

@ -0,0 +1,33 @@
id: https://nde.nl/ontology/hc/class/RelatedType
name: RelatedType-class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
- ../slots/related_type_name
- ../slots/related_type_wikidata
- ../slots/related_type_relationship
- ../slots/related_type_note
classes:
RelatedType:
class_uri: hc:RelatedType
description: |
A reference to a related class in the heritage ontology.
Used for documenting relationships between types.
slots:
- related_type_name
- related_type_wikidata
- related_type_relationship
- related_type_note
annotations:
specificity_score: 0.3
specificity_rationale: "Universal utility for type relationships"

View file

@ -0,0 +1,168 @@
id: https://nde.nl/ontology/hc/class/Version
name: version_class
title: Version Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
doap: http://usefulinc.com/ns/doap#
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_identifier
- ../slots/temporal_extent
- ./TimeSpan
default_prefix: hc
classes:
Version:
class_uri: schema:SoftwareApplication
description: |
A version identifier for software, documents, schemas, or other entities.
**Purpose**: Represents a structured version record with version number,
release date, and semantic versioning components.
**Semantic Versioning Support**:
- major_version: Breaking changes
- minor_version: New features (backwards compatible)
- patch_version: Bug fixes
**Use Cases**:
1. **CMS Product Version**: Version of deployed CMS software
2. **API Version**: REST API version
3. **Schema Version**: Ontology/schema version
4. **Document Version**: Document revision number
**Example**:
```yaml
CollectionManagementSystem:
cms_name: CollectiveAccess
has_or_had_version:
version_string: "1.8.0"
major_version: 1
minor_version: 8
patch_version: 0
release_date: "2023-06-15"
```
**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).
Replaces simple string cms_product_version with structured Version class.
exact_mappings:
- schema:version
- doap:Version
slots:
- version_string
- major_version
- minor_version
- patch_version
- prerelease_tag
- build_metadata
- release_date
- temporal_extent
slot_usage:
version_string:
description: Full version string (e.g., "1.8.0", "v3.2.1-beta")
range: string
required: true
examples:
- value: "1.8.0"
description: Semantic version
- value: "7.4"
description: Two-part version
- value: "v3.2.1-beta"
description: Version with prerelease tag
major_version:
description: Major version number (breaking changes)
range: integer
required: false
examples:
- value: 1
description: Major version 1
minor_version:
description: Minor version number (new features)
range: integer
required: false
examples:
- value: 8
description: Minor version 8
patch_version:
description: Patch version number (bug fixes)
range: integer
required: false
examples:
- value: 0
description: Patch version 0
prerelease_tag:
description: Prerelease identifier (e.g., "alpha", "beta", "rc1")
range: string
required: false
examples:
- value: beta
description: Beta prerelease
- value: rc1
description: Release candidate 1
build_metadata:
description: Build metadata (e.g., git commit hash)
range: string
required: false
examples:
- value: "20230615.abc123"
description: Build date and commit hash
release_date:
description: Date this version was released
range: date
required: false
examples:
- value: "2023-06-15"
description: Release date
temporal_extent:
description: Validity period for this version (when deployed)
range: TimeSpan
required: false
examples:
- value:
begin_of_the_begin: "2023-06-15"
end_of_the_end: null
description: Version deployed since June 2023
annotations:
custodian_types: '["D"]'
custodian_types_rationale: Primarily used by digital platforms (D) for software versioning
specificity_score: 0.55
specificity_rationale: Moderately specific to software/document version contexts
slots:
version_string:
slot_uri: schema:version
description: Full version string
range: string
exact_mappings:
- schema:version
major_version:
slot_uri: doap:revision
description: Major version number
range: integer
minor_version:
description: Minor version number
range: integer
patch_version:
description: Patch version number
range: integer
prerelease_tag:
description: Prerelease identifier
range: string
build_metadata:
description: Build metadata
range: string
release_date:
slot_uri: schema:datePublished
description: Release date
range: date
exact_mappings:
- schema:datePublished

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/administrative_context
name: administrative_context-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
administrative_context:
slot_uri: hc:administrativeContext
description: |
Administrative and governmental context.
Documents how this type relates to government structures and public administration.
**Migrated from**: `**Administrative Context**:` sections.
range: string
annotations:
source_section: "**Administrative Context**:"

View file

@ -0,0 +1,26 @@
id: https://nde.nl/ontology/hc/slot/characteristics
name: characteristics-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
slots:
characteristics:
slot_uri: dcterms:description
description: |
Key characteristics and features of this class.
Documents defining traits and capabilities.
**Migrated from**: `**Characteristics**:` and `**CHARACTERISTICS**:` sections.
range: string
multivalued: true
inlined_as_list: true
annotations:
source_section: "**Characteristics**:"

View file

@ -0,0 +1,24 @@
id: https://nde.nl/ontology/hc/slot/class_definition
name: class_definition-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
slots:
class_definition:
slot_uri: skos:definition
description: |
Formal definition of this class.
Used primarily for RecordSetType classes.
**Migrated from**: `**Definition**:` and `**DEFINITION**:` sections.
range: string
annotations:
source_section: "**Definition**:"

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/dutch_context
name: dutch_context-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
dutch_context:
slot_uri: hc:dutchContext
description: |
Netherlands-specific context and terminology.
Documents Dutch heritage sector conventions, terminology, and institutional context.
**Migrated from**: `**Dutch Context**:` sections.
range: string
annotations:
source_section: "**Dutch Context**:"

View file

@ -0,0 +1,18 @@
id: https://nde.nl/ontology/hc/slot/example_location
name: example_location-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
slots:
example_location:
slot_uri: schema:location
description: Location of the example institution (city, country)
range: string

View file

@ -0,0 +1,19 @@
id: https://nde.nl/ontology/hc/slot/example_name
name: example_name-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
slots:
example_name:
slot_uri: schema:name
description: Name of the example institution
range: string
required: true

View file

@ -0,0 +1,18 @@
id: https://nde.nl/ontology/hc/slot/example_note
name: example_note-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
slots:
example_note:
slot_uri: skos:note
description: Additional note about the example
range: string

View file

@ -0,0 +1,18 @@
id: https://nde.nl/ontology/hc/slot/example_wikidata_id
name: example_wikidata_id-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
example_wikidata_id:
slot_uri: hc:wikidataId
description: Wikidata Q-number for the example institution
range: string
pattern: "^Q[0-9]+$"

View file

@ -0,0 +1,89 @@
# has_or_had_organizer slot
# Generic slot for entities that organize events, exhibitions, programs, etc.
#
# Following RiC-O naming convention (Rule 39): "hasOrHad..." pattern
# for temporal relationships in heritage domain.
#
# Generation date: 2026-01-19
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml)
id: https://nde.nl/ontology/hc/slot/has_or_had_organizer
name: has_or_had_organizer_slot
title: Has Or Had Organizer Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
owl: http://www.w3.org/2002/07/owl#
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
org: http://www.w3.org/ns/org#
default_prefix: hc
imports:
- linkml:types
slots:
has_or_had_organizer:
slot_uri: schema:organizer
description: |
Entity that organizes or organized an event, exhibition, program, or activity.
**Temporal Semantics** (RiC-O Pattern):
The "hasOrHad" naming follows RiC-O convention indicating this relationship
may be historical - an event's organizers change over time or the event is completed.
**Ontological Alignment**:
- **Primary** (`slot_uri`): `schema:organizer` - Schema.org organizer
- **Close**: `schema:contributor` - contributor to event
- **Related**: `prov:wasAssociatedWith` - PROV-O association
**Usage**:
- Primary organizer: main institution organizing an exhibition
- Co-organizer: partner institutions with organizational role
- Sponsor-organizer: sponsors with curatorial/organizational input
**Pattern**:
Uses Organizer class to capture both the organizing entity and their role.
This replaces simple uriorcurie references to allow role discrimination.
**Range**: `uriorcurie` (Rule 55) - broadened for flexibility.
Classes narrow via slot_usage to Organizer class.
range: uriorcurie
implements:
- owl:ObjectProperty # Force OWL ObjectProperty to avoid ambiguous type warning
required: false
multivalued: true
exact_mappings:
- schema:organizer
close_mappings:
- schema:contributor
related_mappings:
- prov:wasAssociatedWith
- org:hasMember
annotations:
rico_naming_convention: |
Follows RiC-O "hasOrHad" pattern for temporal predicates.
See Rule 39: Slot Naming Convention (RiC-O Style)
replaces_slots: >-
co_organized_by, organized_by (partial - role discrimination)
migration_date: "2026-01-19"
comments:
- "Generic organizer slot for events, exhibitions, programs"
- "Maps to schema:organizer as primary URI"
- "Range: uriorcurie (Rule 55) - allows Organizer class via slot_usage"
- "RiC-O naming: hasOrHad indicates potentially historical relationship"
- "RULE 53: Created per slot_fixes.yaml revision for co_organized_by"
examples:
- value: "https://nde.nl/ontology/hc/organizer/rijksmuseum-vermeer-2023"
description: "Rijksmuseum as primary organizer of Vermeer exhibition"
- value: "https://nde.nl/ontology/hc/organizer/mauritshuis-vermeer-2023"
description: "Mauritshuis as co-organizer of Vermeer exhibition"

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/heritage_sector_usage
name: heritage_sector_usage-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
heritage_sector_usage:
slot_uri: hc:heritageSectorUsage
description: |
How this class/technology is used in the heritage sector.
Documents adoption patterns, best practices, and sector conventions.
**Migrated from**: `**Heritage Sector Usage**:` and `**Heritage use cases**:` sections.
range: string
annotations:
source_section: "**Heritage Sector Usage**:"

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/historical_significance
name: historical_significance-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
historical_significance:
slot_uri: hc:historicalSignificance
description: |
Historical importance and context of this type of institution.
Documents the heritage value and historical role.
**Migrated from**: `**Historical Significance**:` sections.
range: string
annotations:
source_section: "**Historical Significance**:"

View file

@ -0,0 +1,61 @@
id: https://nde.nl/ontology/hc/slot/is_or_was_based_on
name: is_or_was_based_on_slot
title: Is Or Was Based On Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
rico: https://www.ica.org/standards/RiC/ontology#
imports:
- linkml:types
default_prefix: hc
slots:
is_or_was_based_on:
slot_uri: prov:wasDerivedFrom
description: |
Entity or resource this item is or was based on (temporal relationship).
**Semantic Pattern**: RiC-O temporal naming convention (Rule 39)
- "is_or_was" indicates the relationship may be current or historical
- Supports temporal modeling where dependencies change over time
**PROV-O Alignment**:
prov:wasDerivedFrom - "A derivation is a transformation of an entity into another"
**Use Cases**:
1. **CMS Detection**: Platform is_or_was_based_on a detected CMS
2. **Software Dependencies**: Application based on framework/library
3. **Content Derivation**: Document based on template/source
4. **Infrastructure**: Service based on platform/technology
**Temporal Semantics**:
- Current: "This platform IS based on WordPress 6.4"
- Historical: "This platform WAS based on Drupal 7 (now migrated)"
- Use temporal_extent for precise validity periods
**Examples**:
```yaml
AuxiliaryDigitalPlatform:
platform_name: Museum Blog
is_or_was_based_on:
cms_name: WordPress
cms_version: "6.4"
detected_at: "2026-01-19T12:00:00Z"
```
**Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53).
Replaces boolean cms_detected with structured CMS reference.
range: string
multivalued: true
inlined_as_list: true
exact_mappings:
- prov:wasDerivedFrom
close_mappings:
- schema:isBasedOn
- rico:isOrWasBasedOn
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Universal relationship for any entity based on another
specificity_score: 0.25
specificity_rationale: Broadly applicable derivation/dependency relationship

View file

@ -0,0 +1,24 @@
id: https://nde.nl/ontology/hc/slot/key_distinction
name: key_distinction-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
slots:
key_distinction:
slot_uri: skos:note
description: |
The primary distinguishing characteristic of this class.
What sets it apart from similar or related types.
**Migrated from**: `**Key Distinction**:` and `**Key Distinctions from Other Types**:` sections.
range: string
annotations:
source_section: "**Key Distinction**:"

View file

@ -77,15 +77,8 @@
"based_on_claim.yaml",
"classifies_or_classified.yaml",
"closed_space_id.yaml",
"cms_category.yaml",
"cms_detected.yaml",
"cms_id.yaml",
"cms_product_name.yaml",
"cms_product_version.yaml",
"co_funding_required.yaml",
"co_organized_by.yaml",
"collection_access.yaml",
"collection_date.yaml",
"collection_description.yaml",
"collection_discovery_score.yaml",
"collection_focus.yaml",
@ -860,6 +853,7 @@
"has_or_had_operate.yaml",
"has_or_had_operates_platform_type.yaml",
"has_or_had_operates_storage_type.yaml",
"has_or_had_organizer.yaml",
"has_or_had_organizational_change_event.yaml",
"has_or_had_organizational_structure.yaml",
"has_or_had_owner.yaml",
@ -1112,6 +1106,7 @@
"is_or_was_asserted_by.yaml",
"is_or_was_associated_with.yaml",
"is_or_was_available.yaml",
"is_or_was_based_on.yaml",
"is_or_was_categorized_as.yaml",
"is_or_was_collection_of.yaml",
"is_or_was_created_through.yaml",
@ -1407,6 +1402,7 @@
"oclc_number.yaml",
"offered_by.yaml",
"offers_donation_scheme.yaml",
"offers_or_offered_access.yaml",
"official_institution_subtype.yaml",
"online_shop.yaml",
"open_source.yaml",
@ -1934,6 +1930,7 @@
"track_id.yaml",
"uses_or_used_technique.yaml",
"was_archived_at.yaml",
"was_acquired_through.yaml",
"was_derived_from.yaml",
"was_generated_by.yaml",
"was_last_updated_at.yaml",

View file

@ -0,0 +1,29 @@
id: https://nde.nl/ontology/hc/slot/notable_examples
name: notable_examples-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../classes/NotableExample
slots:
notable_examples:
slot_uri: skos:example
description: |
Real-world examples of institutions of this type.
Provides concrete instances for understanding the class.
**Migrated from**: `**Notable Examples**:` sections.
**Format**: List of NotableExample objects with name, location, and optional Wikidata ID.
range: NotableExample
multivalued: true
inlined_as_list: true
annotations:
source_section: "**Notable Examples**:"

View file

@ -0,0 +1,88 @@
# offers_or_offered_access slot
# Generic slot for access offerings by heritage institutions
#
# Following RiC-O naming convention (Rule 39): "offersOrOffered..." pattern
# for temporal relationships in heritage domain.
#
# Generation date: 2026-01-19
# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml)
id: https://nde.nl/ontology/hc/slot/offers_or_offered_access
name: offers_or_offered_access_slot
title: Offers Or Offered Access Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
owl: http://www.w3.org/2002/07/owl#
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
slots:
offers_or_offered_access:
slot_uri: schema:publicAccess
description: |
Access offerings provided by a heritage institution or collection.
**Temporal Semantics** (RiC-O Pattern):
The "offersOrOffered" naming follows RiC-O convention indicating this relationship
may be historical - access conditions change over time.
**Ontological Alignment**:
- **Primary** (`slot_uri`): `schema:publicAccess` - Schema.org public access flag
- **Close**: `dcterms:accessRights` - Dublin Core access rights
- **Related**: `schema:isAccessibleForFree` - accessibility information
**Usage**:
- Collection access: Policies for accessing heritage collections
- Research access: Conditions for scholarly research use
- Public access: General public visiting policies
- Digital access: Online collection availability
**Pattern**:
Uses Access class to capture structured access information including
access types, conditions, restrictions, and temporal applicability.
**Range**: `uriorcurie` (Rule 55) - broadened for flexibility.
Classes narrow via slot_usage to Access class.
range: uriorcurie
implements:
- owl:ObjectProperty # Force OWL ObjectProperty to avoid ambiguous type warning
required: false
multivalued: true
exact_mappings:
- schema:publicAccess
close_mappings:
- dcterms:accessRights
related_mappings:
- schema:isAccessibleForFree
annotations:
rico_naming_convention: |
Follows RiC-O "offersOrOffered" pattern for temporal predicates.
See Rule 39: Slot Naming Convention (RiC-O Style)
replaces_slots: >-
collection_access
migration_date: "2026-01-19"
comments:
- "Generic access slot for collections, services, facilities"
- "Maps to schema:publicAccess as primary URI"
- "Range: uriorcurie (Rule 55) - allows Access class via slot_usage"
- "RiC-O naming: offersOrOffered indicates potentially historical relationship"
- "RULE 53: Created per slot_fixes.yaml revision for collection_access"
examples:
- value: "https://nde.nl/ontology/hc/access/public-by-appointment"
description: "Public access by appointment"
- value: "https://nde.nl/ontology/hc/access/academic-community-only"
description: "Access restricted to academic community"

View file

@ -1,19 +1,29 @@
id: https://nde.nl/ontology/hc/slot/purpose
name: purpose_slot
title: Purpose Slot
name: purpose-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
default_prefix: hc
slots:
purpose:
description: 'Purpose and use case for this IoT device/network.
Dublin Core: description for purpose statement.
'
slot_uri: schema:description
description: |
Primary purpose and function of this class or entity.
Documents the main reason this type or instance exists.
**Migrated from**: `**Purpose**:` and `**PURPOSE**:` sections in description text.
**Use cases**:
- Purpose of heritage institution types
- Purpose of IoT devices/networks
- Purpose of technical systems
range: string
slot_uri: hc:purpose
annotations:
source_section: "**Purpose**:"

View file

@ -0,0 +1,19 @@
id: https://nde.nl/ontology/hc/slot/related_type_name
name: related_type_name-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
slots:
related_type_name:
slot_uri: schema:name
description: Name of the related class
range: string
required: true

View file

@ -0,0 +1,18 @@
id: https://nde.nl/ontology/hc/slot/related_type_note
name: related_type_note-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
slots:
related_type_note:
slot_uri: dcterms:description
description: Explanation of how this type relates
range: string

View file

@ -0,0 +1,19 @@
id: https://nde.nl/ontology/hc/slot/related_type_relationship
name: related_type_relationship-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
slots:
related_type_relationship:
slot_uri: skos:note
description: |
Nature of the relationship (e.g., "broader", "narrower", "related", "contrast")
range: string

View file

@ -0,0 +1,18 @@
id: https://nde.nl/ontology/hc/slot/related_type_wikidata
name: related_type_wikidata-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
related_type_wikidata:
slot_uri: hc:wikidataId
description: Wikidata Q-number for the related type
range: string
pattern: "^Q[0-9]+$"

View file

@ -0,0 +1,27 @@
id: https://nde.nl/ontology/hc/slot/related_types
name: related_types-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../classes/RelatedType
slots:
related_types:
slot_uri: skos:related
description: |
Related heritage institution types with context.
Documents associations with other classes in the ontology.
**Migrated from**: `**Related Types**:` sections.
range: RelatedType
multivalued: true
inlined_as_list: true
annotations:
source_section: "**Related Types**:"

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/research_value
name: research_value-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
research_value:
slot_uri: hc:researchValue
description: |
Research and scholarly value of this type of institution or collection.
Documents what types of research this class supports.
**Migrated from**: `**Research Value**:` sections.
range: string
annotations:
source_section: "**Research Value**:"

View file

@ -0,0 +1,29 @@
id: https://nde.nl/ontology/hc/slot/scope_description
name: scope_description-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
rico: https://www.ica.org/standards/RiC/ontology#
default_prefix: hc
imports:
- linkml:types
slots:
scope_description:
slot_uri: rico:scopeAndContent
description: |
Detailed description of what this class encompasses.
Explains the boundaries and coverage of this heritage type.
**Migrated from**: `**Scope**:` sections in description text.
**Example content**:
- What types of materials/collections are included
- Geographic or temporal scope
- Organizational or institutional scope
range: string
annotations:
source_section: "**Scope**:"

View file

@ -9963,6 +9963,11 @@ fixes:
type: slot
- label: TimeSpan
type: class
processed:
status: true
notes: '2026-01-19: Migrated in BiologicalObject.yaml. Created was_acquired_through.yaml slot and Acquisition.yaml class
(CIDOC-CRM E8 Acquisition with AcquisitionMethodEnum). Uses existing temporal_extent slot and TimeSpan class. Updated imports,
slots list, slot_usage with examples. Archived collection_date.yaml to archive/collection_date_archived_20260119.yaml.'
- original_slot_id: https://nde.nl/ontology/hc/slot/collection_description
revision:
- label: has_or_had_description

View file

@ -0,0 +1,23 @@
id: https://nde.nl/ontology/hc/slot/temporal_dynamics
name: temporal_dynamics-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
slots:
temporal_dynamics:
slot_uri: hc:temporalDynamics
description: |
Time-based change patterns and evolution of this type.
Documents how institutions of this type change over time.
**Migrated from**: `**Temporal Dynamics**:` sections.
range: string
annotations:
source_section: "**Temporal Dynamics**:"

View file

@ -0,0 +1,26 @@
id: https://nde.nl/ontology/hc/slot/typical_contents
name: typical_contents-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
rico: https://www.ica.org/standards/RiC/ontology#
default_prefix: hc
imports:
- linkml:types
slots:
typical_contents:
slot_uri: rico:hasContentOfType
description: |
Typical contents or holdings for this type of institution.
Lists common record types, materials, or collection types.
**Migrated from**: `**Typical Contents**:` sections.
range: string
multivalued: true
inlined_as_list: true
annotations:
source_section: "**Typical Contents**:"

View file

@ -0,0 +1,26 @@
id: https://nde.nl/ontology/hc/slot/use_cases
name: use_cases-slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
slots:
use_cases:
slot_uri: schema:usageInfo
description: |
Application scenarios and use cases for this class.
Documents how this type is used in practice.
**Migrated from**: `**Use Cases**:` and `**USE CASES**:` sections.
range: string
multivalued: true
inlined_as_list: true
annotations:
source_section: "**Use Cases**:"

View file

@ -0,0 +1,54 @@
id: https://nde.nl/ontology/hc/slot/was_acquired_through
name: was_acquired_through_slot
title: Was Acquired Through Slot
# Created per slot_fixes.yaml revision for collection_date migration
# RULE 53: Generic acquisition relationship pattern
# RULE 39: RiC-O temporal naming convention (was_* for past events)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
rico: https://www.ica.org/standards/RiC/ontology#
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
imports:
- linkml:types
default_prefix: hc
slots:
was_acquired_through:
description: >-
Links an object or specimen to its acquisition event, capturing how and when it was obtained.
Acquisition encompasses various methods of obtaining items for collections:
- Field collection (biological/geological specimens)
- Purchase (art, manuscripts, artifacts)
- Donation/bequest (gifts, estate donations)
- Transfer (from other institutions)
- Exchange (inter-institutional specimen exchange)
- Excavation (archaeological contexts)
The Acquisition class captures temporal extent via TimeSpan, allowing for uncertain dates
common with historical specimens (e.g., "collected sometime in the 1750s").
**Darwin Core alignment**: For biological specimens, this replaces the simpler `dwc:eventDate`
with a structured acquisition event that can capture collector, location, method, and date.
range: Acquisition
slot_uri: crm:P24i_changed_ownership_through
multivalued: true
inlined: true
inlined_as_list: true
exact_mappings:
- crm:P24i_changed_ownership_through
close_mappings:
- rico:hasOrHadHolder
- prov:wasGeneratedBy
related_mappings:
- schema:acquiredFrom
- dwc:eventDate
annotations:
rule_53_migration: "Replaces collection_date with structured Acquisition event"
darwin_core_note: "For biological specimens, Acquisition.temporal_extent replaces dwc:eventDate"