feat: Add PriceRange, Publication, and TaxDeductibility classes

- Introduced PriceRange class to categorize price levels for hospitality services, including structured metadata for various price categories.
- Added Publication class to represent publication events, capturing details like publisher, publication place, and edition.
- Created TaxDeductibilityType as an abstract class for tax deductibility status, promoting previous enum values to a class hierarchy for richer metadata.
- Implemented TaxDeductibilityTypes with concrete subclasses detailing various tax deductibility statuses.
- Archived previous DeductibilityStatusEnum and related slots, transitioning to a more structured approach for tax deductibility classification.
- Updated multiple slot definitions to align with new class structures and naming conventions, including has_or_had_measurement and has_or_had_price.
- Enhanced documentation and examples across new and existing slots for clarity and compliance with naming conventions.
This commit is contained in:
kempersc 2026-01-24 17:41:06 +01:00
parent 9a0e56e23a
commit 511fc99847
125 changed files with 8396 additions and 541 deletions

View file

@ -1,12 +1,12 @@
{
"generated": "2026-01-23T22:15:43.772Z",
"generated": "2026-01-24T12:26:12.079Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 3035,
"totalFiles": 3044,
"categoryCounts": {
"main": 4,
"class": 982,
"enum": 155,
"slot": 1890,
"class": 1004,
"enum": 154,
"slot": 1878,
"module": 4
},
"categories": [
@ -325,6 +325,11 @@
"path": "modules/classes/ArtArchiveRecordSetTypes.yaml",
"category": "class"
},
{
"name": "ArtDealer",
"path": "modules/classes/ArtDealer.yaml",
"category": "class"
},
{
"name": "ArticlesOfAssociation",
"path": "modules/classes/ArticlesOfAssociation.yaml",
@ -610,6 +615,21 @@
"path": "modules/classes/CareerEntry.yaml",
"category": "class"
},
{
"name": "Carrier",
"path": "modules/classes/Carrier.yaml",
"category": "class"
},
{
"name": "CarrierType",
"path": "modules/classes/CarrierType.yaml",
"category": "class"
},
{
"name": "CarrierTypes",
"path": "modules/classes/CarrierTypes.yaml",
"category": "class"
},
{
"name": "CastCollection",
"path": "modules/classes/CastCollection.yaml",
@ -620,11 +640,31 @@
"path": "modules/classes/CatalogingStandard.yaml",
"category": "class"
},
{
"name": "CatalogSystem",
"path": "modules/classes/CatalogSystem.yaml",
"category": "class"
},
{
"name": "CatalogSystemType",
"path": "modules/classes/CatalogSystemType.yaml",
"category": "class"
},
{
"name": "CatalogSystemTypes",
"path": "modules/classes/CatalogSystemTypes.yaml",
"category": "class"
},
{
"name": "Category",
"path": "modules/classes/Category.yaml",
"category": "class"
},
{
"name": "CategoryStatus",
"path": "modules/classes/CategoryStatus.yaml",
"category": "class"
},
{
"name": "CateringPlace",
"path": "modules/classes/CateringPlace.yaml",
@ -1110,6 +1150,16 @@
"path": "modules/classes/Content.yaml",
"category": "class"
},
{
"name": "ContentType",
"path": "modules/classes/ContentType.yaml",
"category": "class"
},
{
"name": "ContentTypes",
"path": "modules/classes/ContentTypes.yaml",
"category": "class"
},
{
"name": "ContributingAgency",
"path": "modules/classes/ContributingAgency.yaml",
@ -1155,6 +1205,11 @@
"path": "modules/classes/CourtRecords.yaml",
"category": "class"
},
{
"name": "CreationEvent",
"path": "modules/classes/CreationEvent.yaml",
"category": "class"
},
{
"name": "CulturalInstitution",
"path": "modules/classes/CulturalInstitution.yaml",
@ -1330,6 +1385,11 @@
"path": "modules/classes/DataTierSummary.yaml",
"category": "class"
},
{
"name": "DatePrecision",
"path": "modules/classes/DatePrecision.yaml",
"category": "class"
},
{
"name": "DeceasedStatus",
"path": "modules/classes/DeceasedStatus.yaml",
@ -2075,16 +2135,36 @@
"path": "modules/classes/IconographicArchivesRecordSetTypes.yaml",
"category": "class"
},
{
"name": "IdentificationEvent",
"path": "modules/classes/IdentificationEvent.yaml",
"category": "class"
},
{
"name": "Identifier",
"path": "modules/classes/Identifier.yaml",
"category": "class"
},
{
"name": "IdentifierType",
"path": "modules/classes/IdentifierType.yaml",
"category": "class"
},
{
"name": "IdentifierTypes",
"path": "modules/classes/IdentifierTypes.yaml",
"category": "class"
},
{
"name": "IIPImageServer",
"path": "modules/classes/IIPImageServer.yaml",
"category": "class"
},
{
"name": "Image",
"path": "modules/classes/Image.yaml",
"category": "class"
},
{
"name": "Index",
"path": "modules/classes/Index.yaml",
@ -2470,6 +2550,21 @@
"path": "modules/classes/MaterialTypes.yaml",
"category": "class"
},
{
"name": "Measurement",
"path": "modules/classes/Measurement.yaml",
"category": "class"
},
{
"name": "MeasurementType",
"path": "modules/classes/MeasurementType.yaml",
"category": "class"
},
{
"name": "MeasurementTypes",
"path": "modules/classes/MeasurementTypes.yaml",
"category": "class"
},
{
"name": "MeasurementUnit",
"path": "modules/classes/MeasurementUnit.yaml",
@ -3310,6 +3405,11 @@
"path": "modules/classes/PublicArchivesInFranceRecordSetTypes.yaml",
"category": "class"
},
{
"name": "Publication",
"path": "modules/classes/Publication.yaml",
"category": "class"
},
{
"name": "PublicationEntry",
"path": "modules/classes/PublicationEntry.yaml",
@ -4065,6 +4165,16 @@
"path": "modules/classes/TaxDeductibility.yaml",
"category": "class"
},
{
"name": "TaxDeductibilityType",
"path": "modules/classes/TaxDeductibilityType.yaml",
"category": "class"
},
{
"name": "TaxDeductibilityTypes",
"path": "modules/classes/TaxDeductibilityTypes.yaml",
"category": "class"
},
{
"name": "Taxon",
"path": "modules/classes/Taxon.yaml",
@ -5126,11 +5236,6 @@
"path": "modules/enums/DatePrecisionEnum.yaml",
"category": "enum"
},
{
"name": "DeductibilityStatusEnum",
"path": "modules/enums/DeductibilityStatusEnum.yaml",
"category": "enum"
},
{
"name": "DetectionLevelEnum",
"path": "modules/enums/DetectionLevelEnum.yaml",
@ -5797,56 +5902,6 @@
"path": "modules/slots/begin_of_the_end.yaml",
"category": "slot"
},
{
"name": "card_image_url",
"path": "modules/slots/card_image_url.yaml",
"category": "slot"
},
{
"name": "card_title",
"path": "modules/slots/card_title.yaml",
"category": "slot"
},
{
"name": "card_title_en",
"path": "modules/slots/card_title_en.yaml",
"category": "slot"
},
{
"name": "card_url",
"path": "modules/slots/card_url.yaml",
"category": "slot"
},
{
"name": "carrier_type",
"path": "modules/slots/carrier_type.yaml",
"category": "slot"
},
{
"name": "carries_information",
"path": "modules/slots/carries_information.yaml",
"category": "slot"
},
{
"name": "catalog_raisonne_number",
"path": "modules/slots/catalog_raisonne_number.yaml",
"category": "slot"
},
{
"name": "catalog_system",
"path": "modules/slots/catalog_system.yaml",
"category": "slot"
},
{
"name": "category_measurement",
"path": "modules/slots/category_measurement.yaml",
"category": "slot"
},
{
"name": "category_status",
"path": "modules/slots/category_status.yaml",
"category": "slot"
},
{
"name": "catering_price_range",
"path": "modules/slots/catering_price_range.yaml",
@ -6527,66 +6582,6 @@
"path": "modules/slots/date.yaml",
"category": "slot"
},
{
"name": "date_created",
"path": "modules/slots/date_created.yaml",
"category": "slot"
},
{
"name": "date_identified",
"path": "modules/slots/date_identified.yaml",
"category": "slot"
},
{
"name": "date_of_death",
"path": "modules/slots/date_of_death.yaml",
"category": "slot"
},
{
"name": "date_of_publication",
"path": "modules/slots/date_of_publication.yaml",
"category": "slot"
},
{
"name": "date_precision",
"path": "modules/slots/date_precision.yaml",
"category": "slot"
},
{
"name": "dealer_name",
"path": "modules/slots/dealer_name.yaml",
"category": "slot"
},
{
"name": "death_place",
"path": "modules/slots/death_place.yaml",
"category": "slot"
},
{
"name": "deceased",
"path": "modules/slots/deceased.yaml",
"category": "slot"
},
{
"name": "decommission_date",
"path": "modules/slots/decommission_date.yaml",
"category": "slot"
},
{
"name": "deductibility_conditions",
"path": "modules/slots/deductibility_conditions.yaml",
"category": "slot"
},
{
"name": "deductibility_status",
"path": "modules/slots/deductibility_status.yaml",
"category": "slot"
},
{
"name": "deductible_percentage",
"path": "modules/slots/deductible_percentage.yaml",
"category": "slot"
},
{
"name": "deduction_percentage",
"path": "modules/slots/deduction_percentage.yaml",
@ -6627,6 +6622,11 @@
"path": "modules/slots/degree_name.yaml",
"category": "slot"
},
{
"name": "degree_of_certainty",
"path": "modules/slots/degree_of_certainty.yaml",
"category": "slot"
},
{
"name": "deliverable",
"path": "modules/slots/deliverable.yaml",
@ -9037,6 +9037,11 @@
"path": "modules/slots/has_or_had_caption.yaml",
"category": "slot"
},
{
"name": "has_or_had_carrier",
"path": "modules/slots/has_or_had_carrier.yaml",
"category": "slot"
},
{
"name": "has_or_had_category",
"path": "modules/slots/has_or_had_category.yaml",
@ -9387,6 +9392,11 @@
"path": "modules/slots/has_or_had_identify.yaml",
"category": "slot"
},
{
"name": "has_or_had_image",
"path": "modules/slots/has_or_had_image.yaml",
"category": "slot"
},
{
"name": "has_or_had_implementing_organisation",
"path": "modules/slots/has_or_had_implementing_organisation.yaml",
@ -9482,6 +9492,16 @@
"path": "modules/slots/has_or_had_manages_collection.yaml",
"category": "slot"
},
{
"name": "has_or_had_measurement",
"path": "modules/slots/has_or_had_measurement.yaml",
"category": "slot"
},
{
"name": "has_or_had_measurement_type",
"path": "modules/slots/has_or_had_measurement_type.yaml",
"category": "slot"
},
{
"name": "has_or_had_measurement_unit",
"path": "modules/slots/has_or_had_measurement_unit.yaml",
@ -10952,6 +10972,11 @@
"path": "modules/slots/is_or_was_created_through.yaml",
"category": "slot"
},
{
"name": "is_or_was_decommissioned_at",
"path": "modules/slots/is_or_was_decommissioned_at.yaml",
"category": "slot"
},
{
"name": "is_or_was_derived_from",
"path": "modules/slots/is_or_was_derived_from.yaml",
@ -10982,6 +11007,11 @@
"path": "modules/slots/is_or_was_generated_by.yaml",
"category": "slot"
},
{
"name": "is_or_was_identified_through",
"path": "modules/slots/is_or_was_identified_through.yaml",
"category": "slot"
},
{
"name": "is_or_was_included_in",
"path": "modules/slots/is_or_was_included_in.yaml",
@ -11047,6 +11077,11 @@
"path": "modules/slots/is_or_was_platform_of.yaml",
"category": "slot"
},
{
"name": "is_or_was_published",
"path": "modules/slots/is_or_was_published.yaml",
"category": "slot"
},
{
"name": "is_or_was_published_at",
"path": "modules/slots/is_or_was_published_at.yaml",
@ -12462,6 +12497,11 @@
"path": "modules/slots/occupation.yaml",
"category": "slot"
},
{
"name": "occurs_or_occurred_at",
"path": "modules/slots/occurs_or_occurred_at.yaml",
"category": "slot"
},
{
"name": "oclc_number",
"path": "modules/slots/oclc_number.yaml",
@ -15127,6 +15167,11 @@
"path": "modules/slots/use_cases.yaml",
"category": "slot"
},
{
"name": "uses_or_used",
"path": "modules/slots/uses_or_used.yaml",
"category": "slot"
},
{
"name": "uses_or_used_technique",
"path": "modules/slots/uses_or_used_technique.yaml",

View file

@ -0,0 +1,111 @@
# ArtDealer class
# Created per slot_fixes.yaml revision for: dealer_name
#
# MIGRATION NOTE (2026-01-24): Created as part of dealer_name migration per Rule 53.
# Provides structured representation of art dealers in provenance events.
id: https://nde.nl/ontology/hc/class/ArtDealer
name: art_dealer_class
title: Art Dealer Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
foaf: http://xmlns.com/foaf/0.1/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../slots/has_or_had_name
- ./Name
default_prefix: hc
classes:
ArtDealer:
class_uri: crm:E39_Actor
description: |
An art dealer or gallery involved in the sale or transfer of art objects.
**MIGRATION NOTE** (2026-01-24):
Created per slot_fixes.yaml migration from `dealer_name` string
to structured ArtDealer class per Rule 53.
**Purpose**:
Provides structured representation for art dealers including:
- The dealer's name (via has_or_had_name)
- Future extensibility for dealer location, active dates, etc.
**Ontological Alignment**:
- **Primary** (`class_uri`): `crm:E39_Actor` - CIDOC-CRM Actor class
- **Close**: `foaf:Agent`, `schema:Organization` - Agent/organization classes
**Use Cases**:
- Provenance events involving art sales (DEALER_SALE type)
- Tracking art market participants in heritage provenance research
- Linking objects to dealers who handled them
**Pattern**:
```yaml
is_or_was_associated_with:
- has_or_had_name:
has_or_had_label: "Duveen Brothers"
```
slots:
- has_or_had_name
slot_usage:
has_or_had_name:
description: The name of the art dealer or gallery.
range: Name
inlined: true
required: false
examples:
- value:
has_or_had_label: "Duveen Brothers"
description: Famous art dealer firm
exact_mappings:
- crm:E39_Actor
close_mappings:
- foaf:Agent
- schema:Organization
annotations:
custodian_types: '["M", "G"]'
custodian_types_rationale: Art dealers primarily relevant to museums and galleries with provenance research.
custodian_types_primary: M
specificity_score: 0.75
specificity_rationale: >-
Highly specific to art market provenance research - primarily used in
museum and gallery contexts for tracking object ownership history.
template_specificity:
collection_discovery: 0.80
museum_search: 0.85
general_heritage: 0.60
migration_info:
source_slot: dealer_name
migration_date: "2026-01-24"
rule: "Rule 53"
comments:
- "Structured art dealer representation for provenance events"
- "Replaces simple string-valued dealer_name slot"
- "Extensible for dealer location, active dates, gallery affiliation"
- "Created 2026-01-24 from dealer_name migration (Rule 53)"
examples:
- value:
has_or_had_name:
has_or_had_label: "Duveen Brothers"
description: Famous art dealer firm (early 20th century)
- value:
has_or_had_name:
has_or_had_label: "Paul Cassirer"
description: German art dealer (Impressionism specialist)
- value:
has_or_had_name:
has_or_had_label: "Jacques Goudstikker"
description: Dutch art dealer (notable Nazi-looted art case)

View file

@ -47,7 +47,8 @@ imports:
- ./NameType
- ./NameTypes
- ../slots/has_or_had_custodian_type
- ../slots/date_identified
- ./IdentificationEvent
- ../slots/is_or_was_identified_through # was: date_identified - migrated per Rule 53 (2026-01-23)
- ../slots/field_number
- ../slots/gbif_id
- ../slots/genbank_accession
@ -145,7 +146,7 @@ classes:
# REMOVED 2026-01-22: common_name, common_name_language - migrated to has_or_had_name + Name (Rule 53)
- has_or_had_name
- has_or_had_custodian_type
- date_identified
- is_or_was_identified_through # was: date_identified - migrated per Rule 53 (2026-01-23)
- field_number
- gbif_id
- genbank_accession
@ -318,11 +319,21 @@ classes:
multivalued: true
examples:
- value: Dr. Jane Smith
date_identified:
is_or_was_identified_through: # was: date_identified - migrated per Rule 53 (2026-01-23)
required: false
range: date
range: IdentificationEvent
inlined: true
description: |
Identification event for this specimen.
MIGRATED from date_identified per slot_fixes.yaml (Rule 53).
Uses IdentificationEvent class with temporal_extent for dates.
examples:
- value: '2020-03-15'
- value:
temporal_extent:
begin_of_the_begin: '2020-03-15'
identified_by:
- agent_name: "Dr. Jane Smith"
description: "Was date_identified: 2020-03-15"
specimen_type:
required: false
range: string

View file

@ -0,0 +1,95 @@
# Carrier class
# Physical carrier for information-bearing objects
#
# Created: 2026-01-23 per slot_fixes.yaml F24 (carrier_type migration)
# Rule compliance: 0b (Type/Types pattern), 38, 39, 42, 53
id: https://nde.nl/ontology/hc/class/Carrier
name: Carrier
title: Carrier Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
bf: http://id.loc.gov/ontologies/bibframe/
rda: http://rdaregistry.info/termList/
crm: http://www.cidoc-crm.org/cidoc-crm/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ../slots/has_or_had_type
- ../slots/has_or_had_description
- ../slots/has_or_had_note
- ./CarrierType
classes:
Carrier:
class_uri: bf:Carrier
description: >-
A physical medium on which information can be recorded or stored.
Models the physical carrier (codex, scroll, disc, etc.) as distinct
from the content it carries. Supports the FRBR/LRM conceptual model
distinction between Work/Expression/Manifestation/Item.
**Type Classification**:
Use has_or_had_type with CarrierType subclasses (Rule 0b pattern):
- CodexCarrier, ScrollCarrier, SheetCarrier (traditional)
- OpticalDiscCarrier, MagneticTapeCarrier (modern media)
- DigitalCarrier (born-digital content)
MIGRATED from carrier_type enum (2026-01-23) per Rule 53.
exact_mappings:
- bf:Carrier
- rda:Carrier
close_mappings:
- crm:E84_Information_Carrier
slots:
- has_or_had_type
- has_or_had_description
- has_or_had_note
slot_usage:
has_or_had_type:
description: >-
The type of physical carrier from the CarrierType taxonomy.
Use CarrierType subclasses per Rule 0b (Type/Types pattern).
range: CarrierType
required: true
examples:
- value:
carrier_type_code: CODEX
carrier_type_label: Codex
description: Bound volume form
- value:
carrier_type_code: VINYL_DISC
carrier_type_label: Vinyl Disc
description: Audio recording medium
has_or_had_description:
description: >-
Description of the physical carrier characteristics.
Includes material, condition, dimensions, etc.
range: string
required: false
examples:
- value: "Paper codex with leather binding, 324 leaves"
has_or_had_note:
description: Additional notes about the carrier.
range: string
required: false
examples:
- value:
has_or_had_type:
carrier_type_code: CODEX
carrier_type_label: Codex
has_or_had_description: "Paper codex, 18th-century red morocco binding"
description: Bound book carrier
- value:
has_or_had_type:
carrier_type_code: VINYL_DISC
carrier_type_label: Vinyl Disc
has_or_had_description: "12-inch 33⅓ RPM long-playing record"
description: Audio carrier

View file

@ -0,0 +1,77 @@
# CarrierType class (abstract base)
# Type taxonomy for physical information carriers
#
# Created: 2026-01-23 per slot_fixes.yaml F24 (carrier_type migration)
# Rule compliance: 0b (Type/Types pattern - this is the Type file)
id: https://nde.nl/ontology/hc/class/CarrierType
name: CarrierType
title: Carrier Type Class (Abstract Base)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
bf: http://id.loc.gov/ontologies/bibframe/
rda: http://rdaregistry.info/termList/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ../slots/has_or_had_code
- ../slots/has_or_had_label
- ../slots/has_or_had_description
classes:
CarrierType:
class_uri: bf:Carrier
abstract: true
description: >-
Abstract base class for carrier type taxonomy.
**Rule 0b Compliance**: This is the abstract TYPE file.
Concrete carrier types are defined in CarrierTypes.yaml (plural).
Categories of physical carriers:
- **Codex forms**: Bound volumes, pamphlets, notebooks
- **Sheet forms**: Single sheets, broadsides, maps, photographs
- **Scroll forms**: Rolled manuscripts, papyrus
- **Ancient forms**: Clay tablets, wax tablets, inscriptions
- **Audio carriers**: Vinyl, cassette, compact disc
- **Visual carriers**: Film reels, videotape, microfilm
- **Digital carriers**: Floppy disk, optical disc, hard drive
MIGRATED from CarrierTypeEnum (2026-01-23) per Rule 53.
Enum-to-class promotion provides richer semantics and extensibility.
exact_mappings:
- bf:Carrier
- rda:Carrier
close_mappings:
- skos:Concept
slots:
- has_or_had_code
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_code:
description: Short code for the carrier type (e.g., CODEX, SCROLL, VINYL_DISC).
range: string
required: true
identifier: true
pattern: '^[A-Z][A-Z0-9_]*$'
has_or_had_label:
description: Human-readable label for the carrier type.
range: string
required: true
has_or_had_description:
description: Definition and scope of this carrier type.
range: string
required: false
comments:
- "Abstract base class - use concrete subclasses from CarrierTypes.yaml"
- "Replaces CarrierTypeEnum per Rule 53 (enum-to-class promotion)"
see_also:
- https://www.loc.gov/bibframe/docs/
- http://www.rdaregistry.info/termList/RDACarrierType/

View file

@ -0,0 +1,299 @@
# CarrierTypes class (concrete subclasses)
# Concrete carrier type subclasses per Rule 0b (Type/Types pattern)
#
# Created: 2026-01-23 per slot_fixes.yaml F24 (carrier_type migration)
# Rule compliance: 0b (Type/Types pattern - this is the Types file)
id: https://nde.nl/ontology/hc/class/CarrierTypes
name: CarrierTypes
title: Carrier Types (Concrete Subclasses)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
bf: http://id.loc.gov/ontologies/bibframe/
rda: http://rdaregistry.info/termList/
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ./CarrierType
classes:
# === CODEX FORMS (Bound Volumes) ===
CodexCarrier:
is_a: CarrierType
class_uri: hc:CodexCarrier
description: >-
A book consisting of stacked, bound leaves/pages.
The dominant form for Western manuscripts and printed books since antiquity.
slot_usage:
has_or_had_code:
equals_string: CODEX
has_or_had_label:
equals_string: Codex
BoundVolumeCarrier:
is_a: CarrierType
class_uri: hc:BoundVolumeCarrier
description: General bound volume, broader than codex.
slot_usage:
has_or_had_code:
equals_string: BOUND_VOLUME
has_or_had_label:
equals_string: Bound Volume
PamphletCarrier:
is_a: CarrierType
class_uri: hc:PamphletCarrier
description: Unbound or loosely bound publication, typically few pages.
slot_usage:
has_or_had_code:
equals_string: PAMPHLET
has_or_had_label:
equals_string: Pamphlet
NotebookCarrier:
is_a: CarrierType
class_uri: hc:NotebookCarrier
description: Bound blank or ruled pages for writing.
slot_usage:
has_or_had_code:
equals_string: NOTEBOOK
has_or_had_label:
equals_string: Notebook
# === SHEET FORMS ===
SheetCarrier:
is_a: CarrierType
class_uri: hc:SheetCarrier
description: Single flat sheet, unbound.
slot_usage:
has_or_had_code:
equals_string: SHEET
has_or_had_label:
equals_string: Sheet
BroadsideCarrier:
is_a: CarrierType
class_uri: hc:BroadsideCarrier
description: Large single sheet printed on one side.
slot_usage:
has_or_had_code:
equals_string: BROADSIDE
has_or_had_label:
equals_string: Broadside
MapSheetCarrier:
is_a: CarrierType
class_uri: hc:MapSheetCarrier
description: Cartographic material on a single sheet.
slot_usage:
has_or_had_code:
equals_string: MAP_SHEET
has_or_had_label:
equals_string: Map Sheet
PhotographCarrier:
is_a: CarrierType
class_uri: hc:PhotographCarrier
description: Photographic print or negative.
slot_usage:
has_or_had_code:
equals_string: PHOTOGRAPH
has_or_had_label:
equals_string: Photograph
ParchmentLeafCarrier:
is_a: CarrierType
class_uri: hc:ParchmentLeafCarrier
description: Single parchment or vellum leaf.
slot_usage:
has_or_had_code:
equals_string: PARCHMENT_LEAF
has_or_had_label:
equals_string: Parchment Leaf
# === SCROLL FORMS ===
ScrollCarrier:
is_a: CarrierType
class_uri: hc:ScrollCarrier
description: Rolled manuscript form.
slot_usage:
has_or_had_code:
equals_string: SCROLL
has_or_had_label:
equals_string: Scroll
PapyrusScrollCarrier:
is_a: CarrierType
class_uri: hc:PapyrusScrollCarrier
description: Scroll made from papyrus plant material.
slot_usage:
has_or_had_code:
equals_string: PAPYRUS_SCROLL
has_or_had_label:
equals_string: Papyrus Scroll
# === ANCIENT FORMS ===
ClayTabletCarrier:
is_a: CarrierType
class_uri: hc:ClayTabletCarrier
description: Cuneiform tablet made from clay.
slot_usage:
has_or_had_code:
equals_string: CLAY_TABLET
has_or_had_label:
equals_string: Clay Tablet
WaxTabletCarrier:
is_a: CarrierType
class_uri: hc:WaxTabletCarrier
description: Wooden tablet with wax coating for writing.
slot_usage:
has_or_had_code:
equals_string: WAX_TABLET
has_or_had_label:
equals_string: Wax Tablet
InscriptionCarrier:
is_a: CarrierType
class_uri: hc:InscriptionCarrier
description: Text carved or incised into stone, metal, or other durable material.
slot_usage:
has_or_had_code:
equals_string: INSCRIPTION
has_or_had_label:
equals_string: Inscription
# === AUDIO CARRIERS ===
VinylDiscCarrier:
is_a: CarrierType
class_uri: hc:VinylDiscCarrier
description: Analog audio recording on vinyl record.
slot_usage:
has_or_had_code:
equals_string: VINYL_DISC
has_or_had_label:
equals_string: Vinyl Disc
AudioCassetteCarrier:
is_a: CarrierType
class_uri: hc:AudioCassetteCarrier
description: Compact cassette tape for audio recording.
slot_usage:
has_or_had_code:
equals_string: AUDIO_CASSETTE
has_or_had_label:
equals_string: Audio Cassette
CompactDiscCarrier:
is_a: CarrierType
class_uri: hc:CompactDiscCarrier
description: Digital optical disc for audio (CD).
slot_usage:
has_or_had_code:
equals_string: COMPACT_DISC
has_or_had_label:
equals_string: Compact Disc
# === VISUAL CARRIERS ===
FilmReelCarrier:
is_a: CarrierType
class_uri: hc:FilmReelCarrier
description: Motion picture film on reel.
slot_usage:
has_or_had_code:
equals_string: FILM_REEL
has_or_had_label:
equals_string: Film Reel
VideotapeCarrier:
is_a: CarrierType
class_uri: hc:VideotapeCarrier
description: Magnetic tape for video recording.
slot_usage:
has_or_had_code:
equals_string: VIDEOTAPE
has_or_had_label:
equals_string: Videotape
MicrofilmCarrier:
is_a: CarrierType
class_uri: hc:MicrofilmCarrier
description: Microform on film for preservation/access.
slot_usage:
has_or_had_code:
equals_string: MICROFILM
has_or_had_label:
equals_string: Microfilm
MicroficheCarrier:
is_a: CarrierType
class_uri: hc:MicroficheCarrier
description: Flat microform sheet.
slot_usage:
has_or_had_code:
equals_string: MICROFICHE
has_or_had_label:
equals_string: Microfiche
# === DIGITAL CARRIERS ===
FloppyDiskCarrier:
is_a: CarrierType
class_uri: hc:FloppyDiskCarrier
description: Magnetic floppy disk storage medium.
slot_usage:
has_or_had_code:
equals_string: FLOPPY_DISK
has_or_had_label:
equals_string: Floppy Disk
OpticalDiscCarrier:
is_a: CarrierType
class_uri: hc:OpticalDiscCarrier
description: Optical storage disc (CD-ROM, DVD, Blu-ray).
slot_usage:
has_or_had_code:
equals_string: OPTICAL_DISC
has_or_had_label:
equals_string: Optical Disc
HardDriveCarrier:
is_a: CarrierType
class_uri: hc:HardDriveCarrier
description: Magnetic or solid-state hard drive.
slot_usage:
has_or_had_code:
equals_string: HARD_DRIVE
has_or_had_label:
equals_string: Hard Drive
USBDriveCarrier:
is_a: CarrierType
class_uri: hc:USBDriveCarrier
description: USB flash drive storage medium.
slot_usage:
has_or_had_code:
equals_string: USB_DRIVE
has_or_had_label:
equals_string: USB Drive
MemoryCardCarrier:
is_a: CarrierType
class_uri: hc:MemoryCardCarrier
description: Flash memory card (SD, CompactFlash, etc.).
slot_usage:
has_or_had_code:
equals_string: MEMORY_CARD
has_or_had_label:
equals_string: Memory Card

View file

@ -0,0 +1,89 @@
id: https://nde.nl/ontology/hc/class/CatalogSystem
name: CatalogSystem
title: Catalog System
description: |
Represents an integrated library system (ILS), library management system (LMS),
or catalog system used by heritage institutions for managing collections.
This class captures metadata about catalog/management systems including:
- System name and vendor
- System type (ILS, LMS, DAM, CMS, etc.)
- Temporal usage (when adopted, when deprecated)
Created per slot_fixes.yaml revision for catalog_system migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_type
- ../slots/has_or_had_description
- ../slots/has_or_had_url
- ./CatalogSystemType
default_prefix: hc
classes:
CatalogSystem:
class_uri: schema:SoftwareApplication
description: |
An integrated library system, catalog system, or collection management system
used by a heritage institution.
Common systems include:
- ALMA (Ex Libris) - Cloud-based library services platform
- Koha - Open-source ILS
- Sierra (Innovative Interfaces) - ILS for academic/public libraries
- Aleph (Ex Libris) - Legacy ILS
- FOLIO - Open-source library platform
- OCLC WorldShare - Cloud-based library management
- Adlib/Axiell Collections - Museum collection management
- The Museum System (TMS) - Art museum collections
- CollectiveAccess - Open-source collections management
slots:
- has_or_had_name
- has_or_had_type
- has_or_had_description
- has_or_had_url
slot_usage:
has_or_had_name:
description: The name of the catalog or collection management system.
required: true
examples:
- value: ALMA
- value: Koha
- value: Sierra
- value: Adlib
has_or_had_type:
description: The type of catalog system (ILS, CMS, DAM, etc.).
range: CatalogSystemType
inlined: true
has_or_had_url:
description: URL to the system vendor or documentation.
exact_mappings:
- schema:SoftwareApplication
close_mappings:
- prov:SoftwareAgent
examples:
- value:
has_or_had_name: ALMA
has_or_had_type:
has_or_had_name: Integrated Library System
has_or_had_description: Ex Libris ALMA cloud-based library services platform
has_or_had_url: https://exlibrisgroup.com/products/alma-library-services-platform/
description: Ex Libris ALMA library platform
- value:
has_or_had_name: Koha
has_or_had_type:
has_or_had_name: Integrated Library System
has_or_had_description: Open-source integrated library system
has_or_had_url: https://koha-community.org/
description: Koha open-source ILS
- value:
has_or_had_name: Adlib
has_or_had_type:
has_or_had_name: Collection Management System
has_or_had_description: Axiell Adlib museum collection management system
has_or_had_url: https://www.axiell.com/solutions/product/axiell-collections/
description: Adlib/Axiell Collections for museums

View file

@ -0,0 +1,49 @@
id: https://nde.nl/ontology/hc/class/CatalogSystemType
name: CatalogSystemType
title: Catalog System Type (Abstract Base)
description: |
Abstract base class for catalog and collection management system types.
This class defines the taxonomy of system types used by heritage institutions
for managing their collections and catalogs. Concrete subclasses are defined
in CatalogSystemTypes.yaml following the Type/Types naming convention (Rule 0b).
Created per slot_fixes.yaml revision for catalog_system migration (Rule 53/56).
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/
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_description
default_prefix: hc
classes:
CatalogSystemType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for types of catalog and collection management systems.
System type categories include:
- Integrated Library Systems (ILS)
- Library Management Systems (LMS)
- Collection Management Systems (CMS)
- Digital Asset Management (DAM)
- Archives Management Systems
- Discovery Platforms
- Repository Systems
slots:
- has_or_had_name
- has_or_had_description
slot_usage:
has_or_had_name:
description: The name of this catalog system type category.
required: true
has_or_had_description:
description: Description of this catalog system type and its typical use cases.
exact_mappings:
- skos:Concept
close_mappings:
- schema:SoftwareApplicationCategory

View file

@ -0,0 +1,210 @@
id: https://nde.nl/ontology/hc/class/CatalogSystemTypes
name: CatalogSystemTypes
title: Catalog System Types (Concrete Subclasses)
description: |
Concrete subclasses of CatalogSystemType representing specific categories of
catalog and collection management systems used by heritage institutions.
Follows the Type/Types naming convention (Rule 0b):
- CatalogSystemType.yaml: Abstract base class
- CatalogSystemTypes.yaml: This file with concrete subclasses
Created per slot_fixes.yaml revision for catalog_system migration (Rule 53/56).
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/
imports:
- linkml:types
- ./CatalogSystemType
default_prefix: hc
classes:
# === Library Systems ===
IntegratedLibrarySystemType:
is_a: CatalogSystemType
class_uri: hc:IntegratedLibrarySystemType
description: |
Integrated Library System (ILS) - comprehensive software for library operations
including cataloging, circulation, acquisitions, and patron management.
Examples: ALMA, Koha, Sierra, Aleph, Voyager, Symphony, Millennium
slot_usage:
has_or_had_name:
equals_string: Integrated Library System
aliases:
- ILS
- Library Automation System
LibraryServicesPlattformType:
is_a: CatalogSystemType
class_uri: hc:LibraryServicesPlatformType
description: |
Library Services Platform (LSP) - next-generation cloud-based library management
combining ILS functionality with electronic resource management.
Examples: ALMA, FOLIO, OCLC WorldShare, Sierra DNA
slot_usage:
has_or_had_name:
equals_string: Library Services Platform
aliases:
- LSP
- Next-Generation ILS
DiscoverySystemType:
is_a: CatalogSystemType
class_uri: hc:DiscoverySystemType
description: |
Discovery system or discovery layer providing unified search across
library catalogs, databases, and digital collections.
Examples: Primo, Summon, EDS, VuFind, Blacklight
slot_usage:
has_or_had_name:
equals_string: Discovery System
aliases:
- Discovery Layer
- Discovery Platform
- OPAC
# === Museum/Collection Systems ===
CollectionManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:CollectionManagementSystemType
description: |
Collection Management System (CMS) for museums and cultural heritage
institutions to manage object records, provenance, exhibitions, and loans.
Examples: Adlib/Axiell Collections, TMS, CollectiveAccess, PastPerfect, EMu
slot_usage:
has_or_had_name:
equals_string: Collection Management System
aliases:
- CMS
- Collections Database
- Museum Management System
DigitalAssetManagementType:
is_a: CatalogSystemType
class_uri: hc:DigitalAssetManagementType
description: |
Digital Asset Management (DAM) system for organizing, storing, and
retrieving digital media files (images, video, audio, documents).
Examples: ResourceSpace, NetX, Bynder, Canto, Portfolio
slot_usage:
has_or_had_name:
equals_string: Digital Asset Management
aliases:
- DAM
- Media Asset Management
- Digital Media Library
# === Archive Systems ===
ArchivesManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:ArchivesManagementSystemType
description: |
Archives Management System for managing archival collections following
archival standards (ISAD(G), EAD, DACS).
Examples: ArchivesSpace, Atom (Access to Memory), Archivematica, CALM
slot_usage:
has_or_had_name:
equals_string: Archives Management System
aliases:
- AMS
- Archival Management System
DigitalPreservationSystemType:
is_a: CatalogSystemType
class_uri: hc:DigitalPreservationSystemType
description: |
Digital Preservation System for long-term preservation of digital objects
following standards like OAIS (Open Archival Information System).
Examples: Archivematica, Preservica, Rosetta, DSpace (preservation mode)
slot_usage:
has_or_had_name:
equals_string: Digital Preservation System
aliases:
- Preservation Repository
- OAIS Repository
# === Repository Systems ===
InstitutionalRepositoryType:
is_a: CatalogSystemType
class_uri: hc:InstitutionalRepositoryType
description: |
Institutional Repository for managing and providing access to scholarly
outputs, research data, and institutional publications.
Examples: DSpace, EPrints, Fedora, Islandora, Samvera
slot_usage:
has_or_had_name:
equals_string: Institutional Repository
aliases:
- IR
- Digital Repository
- Research Repository
ContentManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:ContentManagementSystemType
description: |
Content Management System for managing website content and digital
publishing, often integrated with collection systems.
Examples: Drupal, WordPress, Omeka, CollectiveAccess
slot_usage:
has_or_had_name:
equals_string: Content Management System
aliases:
- CMS
- Web CMS
# === Specialized Systems ===
LinkedDataPlatformType:
is_a: CatalogSystemType
class_uri: hc:LinkedDataPlatformType
description: |
Linked Data Platform for publishing and managing linked open data
about collections, using semantic web technologies.
Examples: Wikibase, ResearchSpace, Metaphacts, Neptune
slot_usage:
has_or_had_name:
equals_string: Linked Data Platform
aliases:
- Knowledge Graph Platform
- Semantic Platform
ExhibitionManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:ExhibitionManagementSystemType
description: |
Exhibition Management System for planning, organizing, and tracking
museum exhibitions, loans, and installation.
Examples: Gallery Systems, ExhibitDay, MuseumPlus
slot_usage:
has_or_had_name:
equals_string: Exhibition Management System
aliases:
- EMS
- Gallery Management
RegistrationSystemType:
is_a: CatalogSystemType
class_uri: hc:RegistrationSystemType
description: |
Registration System for tracking object movement, conditions,
and custody within a museum or archive.
Examples: TMS Registration module, CollectionSpace
slot_usage:
has_or_had_name:
equals_string: Registration System
aliases:
- Object Tracking System
- Movement Control

View file

@ -0,0 +1,64 @@
id: https://nde.nl/ontology/hc/class/CategoryStatus
name: CategoryStatus
title: Category Status
description: |
Represents the status of a storage condition category assessment.
This class wraps the StorageConditionStatusEnum with additional metadata
capabilities such as notes, timestamps, and assessor information.
Created per slot_fixes.yaml revision for category_status migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../enums/StorageConditionStatusEnum
- ../slots/has_or_had_name
- ../slots/has_or_had_description
- ../slots/has_or_had_value
default_prefix: hc
classes:
CategoryStatus:
class_uri: crm:E55_Type
description: |
The status classification for a storage condition category assessment.
Status values follow the StorageConditionStatusEnum:
- EXCELLENT: Optimal conditions, no concerns
- GOOD: Acceptable conditions, minor issues
- FAIR: Some concerns requiring attention
- POOR: Significant issues requiring remediation
- CRITICAL: Immediate action required
- NOT_ASSESSED: Category not evaluated
- NOT_APPLICABLE: Category does not apply to this storage
slots:
- has_or_had_name
- has_or_had_description
- has_or_had_value
slot_usage:
has_or_had_value:
description: The status value from StorageConditionStatusEnum.
range: StorageConditionStatusEnum
required: true
has_or_had_name:
description: Human-readable name for this status (e.g., "Good", "Poor").
has_or_had_description:
description: Additional context or notes about this status assessment.
exact_mappings:
- crm:E55_Type
close_mappings:
- skos:Concept
examples:
- value:
has_or_had_value: GOOD
has_or_had_name: Good
has_or_had_description: Acceptable temperature control with minor fluctuations
description: Good status with explanatory note
- value:
has_or_had_value: CRITICAL
has_or_had_name: Critical
has_or_had_description: Immediate pest treatment required
description: Critical status requiring action

View file

@ -3,7 +3,8 @@
#
# Created: 2026-01-16
# Migration: temporal_coverage slot → has_or_had_content + Content (Rule 53/56)
# Rule compliance: 38, 39, 53
# Updated: 2026-01-23 - Added has_or_had_type for ContentType per F25 migration
# Rule compliance: 0b, 38, 39, 53
id: https://nde.nl/ontology/hc/class/Content
name: Content
@ -25,8 +26,11 @@ imports:
- ../metadata
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_type
- ../slots/temporal_extent
- ./TimeSpan
- ./ContentType
- ./ContentTypes
classes:
Content:
@ -62,11 +66,30 @@ classes:
- has_or_had_description: "Shipping manifests, correspondence, and financial records..."
**Migrated From**: temporal_coverage slot (2026-01-16) per Rule 53/56
**Updated 2026-01-23**: Added has_or_had_type for ContentType per F25 migration
slots:
- has_or_had_label
- has_or_had_description
- has_or_had_type
- temporal_extent
slot_usage:
has_or_had_type:
description: >-
The type of intellectual content from ContentType taxonomy.
Uses ContentType subclasses per Rule 0b (Type/Types pattern).
Added 2026-01-23 per F25 migration.
range: ContentType
required: false
examples:
- value:
has_or_had_code: RELIGIOUS
has_or_had_label: Religious Content
description: Religious text content
- value:
has_or_had_code: CARTOGRAPHIC
has_or_had_label: Cartographic Content
description: Maps and geographic content
has_or_had_label:
description: Label or title for the content scope
examples:

View file

@ -0,0 +1,73 @@
# ContentType class (abstract base)
# Type taxonomy for intellectual content carried by information carriers
#
# Created: 2026-01-23 per slot_fixes.yaml F25 (carries_information migration)
# Rule compliance: 0b (Type/Types pattern - this is the Type file)
id: https://nde.nl/ontology/hc/class/ContentType
name: ContentType
title: Content Type Class (Abstract Base)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
dcterms: http://purl.org/dc/terms/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ../slots/has_or_had_code
- ../slots/has_or_had_label
- ../slots/has_or_had_description
classes:
ContentType:
class_uri: crm:E55_Type
abstract: true
description: >-
Abstract base class for content type taxonomy.
**Rule 0b Compliance**: This is the abstract TYPE file.
Concrete content types are defined in ContentTypes.yaml (plural).
Categories of intellectual content:
- **Textual**: Books, articles, manuscripts, documents
- **Visual**: Images, photographs, drawings, maps
- **Audio**: Music, speech recordings, oral histories
- **Audiovisual**: Films, videos, multimedia
- **Data**: Datasets, databases, structured information
- **Mixed**: Combinations of above categories
CIDOC-CRM Alignment: E55_Type as a controlled vocabulary for content types.
exact_mappings:
- crm:E55_Type
close_mappings:
- dcterms:type
- skos:Concept
slots:
- has_or_had_code
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_code:
description: Short code for the content type.
range: string
required: true
identifier: true
pattern: '^[A-Z][A-Z0-9_]*$'
has_or_had_label:
description: Human-readable label for the content type.
range: string
required: true
has_or_had_description:
description: Definition and scope of this content type.
range: string
required: false
comments:
- "Abstract base class - use concrete subclasses from ContentTypes.yaml"
see_also:
- https://www.cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E55

View file

@ -0,0 +1,243 @@
# ContentTypes class (concrete subclasses)
# Concrete content type subclasses per Rule 0b (Type/Types pattern)
#
# Created: 2026-01-23 per slot_fixes.yaml F25 (carries_information migration)
# Rule compliance: 0b (Type/Types pattern - this is the Types file)
id: https://nde.nl/ontology/hc/class/ContentTypes
name: ContentTypes
title: Content Types (Concrete Subclasses)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ./ContentType
classes:
# === TEXTUAL CONTENT ===
TextualContent:
is_a: ContentType
class_uri: hc:TextualContent
description: Written or printed textual information.
slot_usage:
has_or_had_code:
equals_string: TEXTUAL
has_or_had_label:
equals_string: Textual Content
LiteraryContent:
is_a: ContentType
class_uri: hc:LiteraryContent
description: Literary works including novels, poetry, drama.
slot_usage:
has_or_had_code:
equals_string: LITERARY
has_or_had_label:
equals_string: Literary Content
ScientificContent:
is_a: ContentType
class_uri: hc:ScientificContent
description: Scientific and technical publications.
slot_usage:
has_or_had_code:
equals_string: SCIENTIFIC
has_or_had_label:
equals_string: Scientific Content
ReligiousContent:
is_a: ContentType
class_uri: hc:ReligiousContent
description: Religious texts, scriptures, liturgical works.
slot_usage:
has_or_had_code:
equals_string: RELIGIOUS
has_or_had_label:
equals_string: Religious Content
LegalContent:
is_a: ContentType
class_uri: hc:LegalContent
description: Legal documents, laws, contracts, court records.
slot_usage:
has_or_had_code:
equals_string: LEGAL
has_or_had_label:
equals_string: Legal Content
AdministrativeContent:
is_a: ContentType
class_uri: hc:AdministrativeContent
description: Administrative and governmental records.
slot_usage:
has_or_had_code:
equals_string: ADMINISTRATIVE
has_or_had_label:
equals_string: Administrative Content
CorrespondenceContent:
is_a: ContentType
class_uri: hc:CorrespondenceContent
description: Letters, emails, and other correspondence.
slot_usage:
has_or_had_code:
equals_string: CORRESPONDENCE
has_or_had_label:
equals_string: Correspondence
# === VISUAL CONTENT ===
VisualContent:
is_a: ContentType
class_uri: hc:VisualContent
description: Visual information including images and graphics.
slot_usage:
has_or_had_code:
equals_string: VISUAL
has_or_had_label:
equals_string: Visual Content
PhotographicContent:
is_a: ContentType
class_uri: hc:PhotographicContent
description: Photographs and photographic reproductions.
slot_usage:
has_or_had_code:
equals_string: PHOTOGRAPHIC
has_or_had_label:
equals_string: Photographic Content
CartographicContent:
is_a: ContentType
class_uri: hc:CartographicContent
description: Maps, atlases, geographic visualizations.
slot_usage:
has_or_had_code:
equals_string: CARTOGRAPHIC
has_or_had_label:
equals_string: Cartographic Content
ArtisticContent:
is_a: ContentType
class_uri: hc:ArtisticContent
description: Artistic works including drawings, prints, paintings.
slot_usage:
has_or_had_code:
equals_string: ARTISTIC
has_or_had_label:
equals_string: Artistic Content
# === AUDIO CONTENT ===
AudioContent:
is_a: ContentType
class_uri: hc:AudioContent
description: Sound recordings of any type.
slot_usage:
has_or_had_code:
equals_string: AUDIO
has_or_had_label:
equals_string: Audio Content
MusicContent:
is_a: ContentType
class_uri: hc:MusicContent
description: Musical recordings and compositions.
slot_usage:
has_or_had_code:
equals_string: MUSIC
has_or_had_label:
equals_string: Music Content
SpokenWordContent:
is_a: ContentType
class_uri: hc:SpokenWordContent
description: Spoken word recordings, speeches, oral histories.
slot_usage:
has_or_had_code:
equals_string: SPOKEN_WORD
has_or_had_label:
equals_string: Spoken Word Content
# === AUDIOVISUAL CONTENT ===
AudiovisualContent:
is_a: ContentType
class_uri: hc:AudiovisualContent
description: Combined audio and visual media.
slot_usage:
has_or_had_code:
equals_string: AUDIOVISUAL
has_or_had_label:
equals_string: Audiovisual Content
FilmContent:
is_a: ContentType
class_uri: hc:FilmContent
description: Motion picture films.
slot_usage:
has_or_had_code:
equals_string: FILM
has_or_had_label:
equals_string: Film Content
VideoContent:
is_a: ContentType
class_uri: hc:VideoContent
description: Video recordings.
slot_usage:
has_or_had_code:
equals_string: VIDEO
has_or_had_label:
equals_string: Video Content
# === DATA CONTENT ===
DataContent:
is_a: ContentType
class_uri: hc:DataContent
description: Structured data and datasets.
slot_usage:
has_or_had_code:
equals_string: DATA
has_or_had_label:
equals_string: Data Content
StatisticalContent:
is_a: ContentType
class_uri: hc:StatisticalContent
description: Statistical data and analyses.
slot_usage:
has_or_had_code:
equals_string: STATISTICAL
has_or_had_label:
equals_string: Statistical Content
# === MIXED/OTHER ===
MixedContent:
is_a: ContentType
class_uri: hc:MixedContent
description: Combination of multiple content types.
slot_usage:
has_or_had_code:
equals_string: MIXED
has_or_had_label:
equals_string: Mixed Content
MultimediaContent:
is_a: ContentType
class_uri: hc:MultimediaContent
description: Interactive multimedia combining multiple formats.
slot_usage:
has_or_had_code:
equals_string: MULTIMEDIA
has_or_had_label:
equals_string: Multimedia Content

View file

@ -0,0 +1,143 @@
# CreationEvent - Event representing the creation of an object or work
#
# Created per slot_fixes.yaml migration for: date_created
# Creation date: 2026-01-23
# Rule compliance: 39 (RiC-O naming), 50 (ontology mapping), 53 (generic slot reuse)
id: https://nde.nl/ontology/hc/class/CreationEvent
name: creation_event
title: Creation Event
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/
default_prefix: hc
imports:
- linkml:types
- ./TimeSpan
- ./Agent
- ../slots/temporal_extent
- ../slots/has_or_had_description
- ../slots/has_or_had_place
classes:
CreationEvent:
class_uri: crm:E65_Creation
description: |
Event representing the creation of an object, work, or artifact.
**DEFINITION**:
CreationEvent models the act of bringing an object into existence,
capturing when, where, and by whom it was created.
**ONTOLOGY ALIGNMENT**:
- **Primary** (`class_uri`): `crm:E65_Creation` - CIDOC-CRM creation event
- **Close**: `prov:Activity` - PROV-O activity
- **Close**: `schema:CreateAction` - Schema.org create action
**USAGE**:
Replaces simple `date_created` strings with structured event data:
- Temporal extent (including approximate dates like "c. 1665")
- Creator/artist information
- Place of creation
- Creation circumstances
**Example**:
```yaml
is_or_was_created_through:
temporal_extent:
begin_of_the_begin: "1665-01-01"
end_of_the_end: "1665-12-31"
display_date: "c. 1665"
has_or_had_creator:
- agent_name: "Johannes Vermeer"
agent_role: "artist"
has_or_had_place:
place_name: "Delft"
country: "NL"
```
close_mappings:
- prov:Activity
- schema:CreateAction
slots:
- temporal_extent
- has_or_had_description
- has_or_had_place
- has_or_had_creator
- creation_method
- display_date
slot_usage:
temporal_extent:
range: TimeSpan
inlined: true
description: |
When the creation occurred, using CIDOC-CRM TimeSpan.
Supports fuzzy/approximate dates via display_date.
examples:
- value:
begin_of_the_begin: "1665-01-01"
end_of_the_end: "1665-12-31"
display_date: "c. 1665"
description: Approximate creation date
has_or_had_creator:
range: Agent
multivalued: true
inlined_as_list: true
description: Person(s) or organization(s) who created the object.
examples:
- value:
- agent_name: "Johannes Vermeer"
description: Single artist
has_or_had_place:
range: Place
inlined: true
description: Location where creation occurred.
examples:
- value:
place_name: "Delft"
description: City of creation
display_date:
range: string
description: |
Human-readable date string for display purposes.
Preserves original date expressions like "c. 1665", "17th century",
"196 BCE", "1642".
examples:
- value: "c. 1665"
description: Circa date
- value: "17th century"
description: Century-level precision
- value: "196 BCE"
description: Historical date
creation_method:
range: string
description: Technique or method used in creation.
examples:
- value: "oil on canvas"
description: Painting technique
attributes:
has_or_had_creator:
range: Agent
multivalued: true
inlined_as_list: true
display_date:
range: string
description: Human-readable date for display.
creation_method:
range: string
description: Technique or method of creation.
annotations:
custodian_types: '["G", "M", "L", "A"]'
custodian_types_rationale: "Creation events primarily relevant to galleries, museums, libraries, archives with collections."
specificity_score: 0.70
specificity_rationale: "Fairly specific to collection object contexts."

View file

@ -28,7 +28,8 @@ imports:
- ../slots/has_archive_path
- ../slots/has_or_had_level # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
- ./DataTierLevel
- ../slots/date_precision
- ../slots/degree_of_certainty # was: date_precision - migrated per Rule 53/56/57 (2026-01-23)
- ./DatePrecision
- ../slots/description
- ../slots/event_date
- ../slots/event_type
@ -60,7 +61,7 @@ classes:
\ Scope decrease (ingekrompen)\n- REORGANIZATION: Complex restructuring (herstructurering)\n\n**EXCLUDED EVENT TYPES**\n\
\nSome patterns are NOT mapped to events:\n- predecessor: This is a relationship, not an event\n- friends_org: Separate\
\ organization (Vrienden van...)\n- reopening: Not in OrganizationalChangeEventTypeEnum\n\n**EXAMPLE USAGE**\n\n```yaml\n\
timeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n date_precision: day\n is_or_was_approximate:\n\
timeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n degree_of_certainty:\n has_or_had_short_code: DAY\n is_or_was_approximate:\n\
\ approximation_level: EXACT\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting\
\ van het Rijksarchief in Drenthe (sinds 2000).\n source_url:\n - \"https://nl.wikipedia.org/wiki/Drents_Archief\"\
\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method:\
@ -79,7 +80,7 @@ classes:
- is_or_was_approximate
- archive_path
- has_or_had_level # was: data_tier - migrated per Rule 53/56/57 (2026-01-23)
- date_precision
- degree_of_certainty # was: date_precision - migrated per Rule 53/56/57 (2026-01-23)
- description
- event_date
- event_type
@ -95,8 +96,22 @@ classes:
required: true
event_date:
required: false
date_precision:
degree_of_certainty: # was: date_precision - migrated per Rule 53/56/57 (2026-01-23)
range: DatePrecision
inlined: true
required: true
description: >-
Precision level of the event date.
Standard codes: DAY, MONTH, YEAR, DECADE, CENTURY, UNKNOWN
examples:
- value:
has_or_had_short_code: DAY
has_or_had_description: Full date with day precision
description: Day precision
- value:
has_or_had_short_code: YEAR
has_or_had_description: Year-only precision
description: Year precision
# REMOVED - migrated to is_or_was_approximate (Rule 53)
# is_approximate:
# required: true
@ -156,9 +171,9 @@ classes:
value_presence: PRESENT
postconditions:
slot_conditions:
date_precision:
degree_of_certainty: # was: date_precision
value_presence: PRESENT
description: If event_date is provided, date_precision must be specified
description: If event_date is provided, degree_of_certainty (precision) must be specified
comments:
- 'Source-agnostic design - see Rule 37: Provenance Separation'
- Use observation_ref to link to detailed source provenance
@ -175,7 +190,9 @@ classes:
- value:
event_type: FOUNDING
event_date: '2005-04-30'
date_precision: day
degree_of_certainty: # was: date_precision
has_or_had_short_code: DAY
has_or_had_description: Full date with day precision
is_or_was_approximate:
approximation_level: EXACT
description: Het RHC Drents Archief werd opgericht op 30 april 2005.
@ -192,7 +209,9 @@ classes:
- value:
event_type: MERGER
event_date: '2005'
date_precision: year
degree_of_certainty: # was: date_precision
has_or_had_short_code: YEAR
has_or_had_description: Year-only precision
is_or_was_approximate:
approximation_level: EXACT
description: In 2005 ging het Gemeentearchief Assen op in het Drents Archief.
@ -207,7 +226,9 @@ classes:
- value:
event_type: FOUNDING
event_date: '1810'
date_precision: year
degree_of_certainty: # was: date_precision
has_or_had_short_code: YEAR
has_or_had_description: Year-only precision
is_or_was_approximate:
approximation_level: EXACT
description: The Rijksmuseum was founded in 1810 as the Royal Museum.
@ -223,7 +244,9 @@ classes:
- value:
event_type: TRANSFER
event_date: '1885'
date_precision: year
degree_of_certainty: # was: date_precision
has_or_had_short_code: YEAR
has_or_had_description: Year-only precision
is_or_was_approximate:
approximation_level: EXACT
description: The Rijksmuseum moved to its current building designed by Cuypers.
@ -240,7 +263,9 @@ classes:
- value:
event_type: FOUNDING
event_date: '1880'
date_precision: year
degree_of_certainty: # was: date_precision
has_or_had_short_code: YEAR
has_or_had_description: Year-only precision
is_or_was_approximate:
approximation_level: APPROXIMATE
has_or_had_label: "circa 1880"

View file

@ -0,0 +1,105 @@
id: https://nde.nl/ontology/hc/class/DatePrecision
name: date_precision_class
title: DatePrecision Class
description: >-
Represents the precision level of a date value.
Used to indicate how specific date information is, from full day
precision to century-level approximations.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
time: http://www.w3.org/2006/time#
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_short_code
default_prefix: hc
classes:
DatePrecision:
class_uri: hc:DatePrecision
description: >-
Date precision level classification.
**Standard Precision Levels**:
| Level | Short Code | Format | Example |
|-------|------------|--------|---------|
| Day | DAY | YYYY-MM-DD | 2005-04-30 |
| Month | MONTH | YYYY-MM | 2005-04 |
| Year | YEAR | YYYY | 2005 |
| Decade | DECADE | YYYY0s | 2000s |
| Century | CENTURY | YYth century | 21st century |
| Unknown | UNKNOWN | - | Date mentioned but precision unclear |
**CIDOC-CRM Alignment**: Related to time dimension concepts in CRM.
**OWL Time Alignment**: Related to time:TemporalUnit for precision levels.
close_mappings:
- time:TemporalUnit
- crm:E52_Time-Span
slots:
- has_or_had_label
- has_or_had_short_code
- has_or_had_description
slot_usage:
has_or_had_label:
description: Human-readable name for the precision level.
range: string
required: true
examples:
- value: "Day"
description: Full date with day precision
- value: "Year"
description: Year-only precision
has_or_had_short_code:
description: >-
Short code identifier for the precision level.
Standard codes: DAY, MONTH, YEAR, DECADE, CENTURY, UNKNOWN
range: string
required: true
pattern: "^[A-Z]+$"
examples:
- value: "DAY"
description: Full date precision (YYYY-MM-DD)
- value: "YEAR"
description: Year-only precision (YYYY)
- value: "UNKNOWN"
description: Precision cannot be determined
has_or_had_description:
description: Detailed description of what this precision level means.
range: string
required: false
examples:
- value: "Full date with day precision (YYYY-MM-DD format)"
description: Day precision explanation
annotations:
specificity_score: 0.40
specificity_rationale: >-
Date precision is moderately specific - used primarily in
temporal data contexts.
custodian_types: '["*"]'
custodian_types_rationale: >-
Date precision applies universally to all custodian types.
examples:
- value:
has_or_had_label: "Day"
has_or_had_short_code: "DAY"
has_or_had_description: "Full date with day precision (YYYY-MM-DD)"
description: Day precision level
- value:
has_or_had_label: "Year"
has_or_had_short_code: "YEAR"
has_or_had_description: "Year-only precision (YYYY format)"
description: Year precision level
- value:
has_or_had_label: "Unknown"
has_or_had_short_code: "UNKNOWN"
has_or_had_description: "Date mentioned but precision cannot be determined"
description: Unknown precision level

View file

@ -25,8 +25,11 @@ imports:
- ../slots/is_or_was_caused_by
- ../slots/temporal_extent
- ../slots/has_or_had_description
# ADDED 2026-01-24: occurs_or_occurred_at for death_place migration (Rule 53)
- ../slots/occurs_or_occurred_at
- ./CauseOfDeath
- ./TimeSpan
- ./Place
classes:
DeceasedStatus:
@ -91,6 +94,8 @@ classes:
- is_or_was_caused_by
- temporal_extent
- has_or_had_description
# ADDED 2026-01-24: For death_place migration (Rule 53)
- occurs_or_occurred_at
slot_usage:
is_or_was_caused_by:
@ -111,6 +116,24 @@ classes:
description: |
Additional narrative description of the death circumstances,
commemorative information, or source documentation.
# ADDED 2026-01-24: For death_place migration (Rule 53)
occurs_or_occurred_at:
range: Place
inlined: true
description: |
The place where the death occurred.
Replaces the simple death_place string slot.
Use Place class for structured location with coordinates, GeoNames ID, etc.
examples:
- value:
place_name: Auschwitz concentration camp
country: PL
description: Historical location
- value:
place_name: Gaza City
country: PS
geonames_id: "281133"
description: Conflict zone death with GeoNames link
comments:
- "Structured death information for heritage workers"

View file

@ -33,7 +33,9 @@ imports:
- ../slots/has_or_had_provenance # was: provenance_text - migrated per Rule 53/56 (2026-01-18)
- ./Provenance
- ./Description
- ../slots/catalog_raisonne_number
# REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26
- ./IdentifierType
- ./IdentifierTypes
- ../slots/has_or_had_condition_note
- ../slots/conservation_history
- ../slots/has_or_had_conservation_record
@ -43,7 +45,8 @@ imports:
- ../slots/current_keeper
- ../slots/current_location
- ../slots/has_or_had_custodian_type
- ../slots/date_created
- ./CreationEvent
- ../slots/is_or_was_created_through # was: date_created - migrated per Rule 53 (2026-01-23)
- ../slots/dimension
- ../slots/exhibited_in
- ../slots/iconography
@ -124,7 +127,7 @@ classes:
- has_accession_number
- has_acquisition_date
- has_acquisition_method
- catalog_raisonne_number
# REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26
- has_or_had_condition_note
- conservation_history
- has_or_had_conservation_record
@ -135,7 +138,7 @@ classes:
- current_keeper
- current_location
- has_or_had_custodian_type
- date_created
- is_or_was_created_through # was: date_created - migrated per Rule 53 (2026-01-23)
- dimension
- exhibited_in
- external_identifier
@ -219,13 +222,30 @@ classes:
- value: Workshop of
- value: Attributed to
- value: Circle of
date_created:
is_or_was_created_through: # was: date_created - migrated per Rule 53 (2026-01-23)
required: false
range: string
range: CreationEvent
inlined: true
description: |
Creation event for this object, including temporal extent and creator.
MIGRATED from date_created per slot_fixes.yaml (Rule 53).
Uses CreationEvent class with TimeSpan for temporal modeling.
examples:
- value: c. 1665
- value: '1642'
- value: 12th century BCE
- value:
display_date: "c. 1665"
temporal_extent:
begin_of_the_begin: "1664-01-01"
end_of_the_end: "1667-12-31"
description: "Was date_created: c. 1665"
- value:
display_date: "1642"
temporal_extent:
begin_of_the_begin: "1642-01-01"
end_of_the_end: "1642-12-31"
description: "Was date_created: 1642"
- value:
display_date: "12th century BCE"
description: "Was date_created: 12th century BCE"
creation_timespan:
required: false
range: TimeSpan
@ -389,25 +409,46 @@ classes:
multivalued: true
examples:
- value: https://www.mauritshuis.nl/media/670-large.jpg
# MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier + WikiDataIdentifier (Rule 53)
# MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53)
# MIGRATED 2026-01-23: catalog_raisonne_number → has_or_had_identifier (Rule 53/F26)
has_or_had_identifier:
description: |
Wikidata entity identifier (Q-number) for this exhibited object.
External identifiers for this exhibited object.
MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53.
MIGRATED 2026-01-23: Also includes catalog raisonné numbers per Rule 53/F26.
Use has_or_had_type with IdentifierType subclasses to specify identifier type.
required: false
range: WikiDataIdentifier
range: Identifier
multivalued: true
inlined: true
inlined_as_list: true
examples:
- value:
qid: "Q81858"
label: "Girl with a Pearl Earring"
identifier_value: "Q81858"
has_or_had_type:
has_or_had_code: WIKIDATA
has_or_had_label: Wikidata ID
description: Girl with a Pearl Earring Wikidata identifier
- value:
qid: "Q219831"
label: "The Night Watch"
identifier_value: "Q219831"
has_or_had_type:
has_or_had_code: WIKIDATA
has_or_had_label: Wikidata ID
description: The Night Watch Wikidata identifier
- value:
identifier_value: "Hofstede de Groot 1907, no. 44"
has_or_had_type:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
description: Catalog raisonné reference (was catalog_raisonne_number)
- value:
identifier_value: "Bredius 410"
has_or_had_type:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
description: Bredius catalog reference
external_identifier:
required: false
range: string
@ -415,12 +456,7 @@ classes:
examples:
- value: rkdimages:23903
- value: getty_ulan:500121212
catalog_raisonne_number:
required: false
range: string
examples:
- value: Hofstede de Groot 1907, no. 44
- value: Bredius 410
# REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26
has_or_had_conservation_record:
required: false
range: ConservationRecord
@ -499,10 +535,11 @@ classes:
- Johannes Vermeer
creator_role:
- Artist
date_created: c. 1665
creation_timespan:
begin_of_the_begin: '1664-01-01'
end_of_the_end: '1667-12-31'
is_or_was_created_through: # was: date_created - migrated per Rule 53 (2026-01-23)
display_date: "c. 1665"
temporal_extent:
begin_of_the_begin: '1664-01-01'
end_of_the_end: '1667-12-31'
creation_place:
place_name: Delft
country: NL
@ -543,7 +580,11 @@ classes:
object_type: PAINTING
creator:
- Rembrandt van Rijn
date_created: '1642'
is_or_was_created_through: # was: date_created - migrated per Rule 53 (2026-01-23)
display_date: "1642"
temporal_extent:
begin_of_the_begin: '1642-01-01'
end_of_the_end: '1642-12-31'
medium: Oil on canvas
dimensions: 363 × 437 cm
inscription:
@ -558,7 +599,8 @@ classes:
object_id: https://nde.nl/ontology/hc/object/british-museum-rosetta-stone
object_name: Rosetta Stone
object_type: ARCHAEOLOGICAL_ARTIFACT
date_created: 196 BCE
is_or_was_created_through: # was: date_created - migrated per Rule 53 (2026-01-23)
display_date: "196 BCE"
medium: Granodiorite
dimensions: 114.4 × 72.3 × 27.9 cm, 762 kg
current_keeper: https://nde.nl/ontology/hc/custodian/uk/british-museum

View file

@ -71,10 +71,13 @@ imports:
- ../slots/is_or_was_access_restricted
- ../slots/has_or_had_comprehensive_overview
# REMOVED 2026-01-22: card_description, card_description_en → has_or_had_description + Description (with language tag) per slot_fixes.yaml
- ../slots/card_image_url
- ../slots/card_title
- ../slots/card_title_en
- ../slots/card_url
# MIGRATED 2026-01-22: card_image_url → has_or_had_image + Image per slot_fixes.yaml
- ../slots/has_or_had_image
- ./Image
# MIGRATED 2026-01-22: card_title, card_title_en → has_or_had_label + Label (multivalued with language) per slot_fixes.yaml
# NOTE: has_or_had_label already imported elsewhere in this file
# MIGRATED 2026-01-22: card_url → has_or_had_url + URL per slot_fixes.yaml
# NOTE: has_or_had_url already imported elsewhere in this file
- ../slots/has_or_had_quantity # was: claims_count - migrated per Rule 53 (2026-01-19)
# REMOVED 2026-01-22: ../slots/colonial - migrated to includes_or_included + GeoSpatialPlace + is_or_was_categorized_as + ColonialStatus (Rule 53)
- ../slots/includes_or_included
@ -1038,10 +1041,12 @@ classes:
slots:
# MIGRATED 2026-01-22: card_description, card_description_en → has_or_had_description + Description (multivalued with language tag)
- has_or_had_description
- card_image_url
- card_title
- card_title_en
- card_url
# MIGRATED 2026-01-22: card_image_url → has_or_had_image + Image
- has_or_had_image
# MIGRATED 2026-01-22: card_title, card_title_en → has_or_had_label + Label (multivalued with language tag)
- has_or_had_label
# MIGRATED 2026-01-22: card_url → has_or_had_url + URL
- has_or_had_url
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- has_or_had_provenance_path # was: xpath - migrated per Rule 53 (2026-01-15)
@ -1065,12 +1070,47 @@ classes:
description_type: card
language: en
description: English card description
card_title:
has_or_had_image:
range: Image
multivalued: true
inlined: true
description: |
Card thumbnail/preview image(s).
MIGRATED 2026-01-22: Replaces card_image_url with structured Image class.
examples:
- value:
has_or_had_url:
has_or_had_value: "https://archive.org/images/card.jpg"
image_format: JPEG
description: Card thumbnail image
has_or_had_label:
range: Label
multivalued: true
inlined: true
required: true
card_url:
range: uri
card_image_url:
range: uri
description: |
Card title(s) with language tagging.
MIGRATED 2026-01-22: Replaces card_title and card_title_en.
Use Label.language to distinguish Dutch/English titles.
examples:
- value:
has_or_had_text: "Kaart titel"
language: nl
description: Dutch card title
- value:
has_or_had_text: "Card title"
language: en
description: English card title
has_or_had_url:
range: URL
inlined: true
description: |
URL the card links to.
MIGRATED 2026-01-22: Replaces card_url with structured URL class.
examples:
- value:
has_or_had_value: "https://archive.org/page"
description: Card destination URL
has_or_had_provenance_path:
range: XPath
inlined: true

View file

@ -0,0 +1,133 @@
# IdentificationEvent - Event representing taxonomic/specimen identification
#
# Created per slot_fixes.yaml migration for: date_identified
# Creation date: 2026-01-23
# Rule compliance: 39 (RiC-O naming), 50 (ontology mapping), 53 (generic slot reuse)
id: https://nde.nl/ontology/hc/class/IdentificationEvent
name: identification_event
title: Identification Event
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dwc: http://rs.tdwg.org/dwc/terms/
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
- ./TimeSpan
- ./Agent
- ../slots/temporal_extent
- ../slots/has_or_had_description
classes:
IdentificationEvent:
class_uri: hc:IdentificationEvent
description: |
Event representing the taxonomic or specimen identification.
**DEFINITION**:
IdentificationEvent models when and by whom a biological specimen,
object, or artifact was identified or classified.
**ONTOLOGY ALIGNMENT**:
- **Primary** (`class_uri`): `hc:IdentificationEvent` - Heritage Custodian class
- **Close**: `dwc:Identification` - Darwin Core identification
- **Close**: `prov:Activity` - PROV-O activity
**USAGE**:
Replaces simple `date_identified` dates with structured event data:
- When the identification was made (temporal_extent)
- Who made the identification (identified_by)
- Methodology used
- Confidence level
- References consulted
**Example**:
```yaml
is_or_was_identified_through:
temporal_extent:
begin_of_the_begin: "2023-05-15"
identified_by:
- agent_name: "Dr. Jane Smith"
agent_role: "taxonomist"
identification_method: "Morphological analysis"
identification_confidence: "high"
```
close_mappings:
- dwc:Identification
- prov:Activity
slots:
- temporal_extent
- has_or_had_description
- identified_by
- identification_method
- identification_confidence
- identification_references
slot_usage:
temporal_extent:
range: TimeSpan
inlined: true
description: When the identification was made.
examples:
- value:
begin_of_the_begin: "2023-05-15"
description: Date of identification
identified_by:
range: Agent
multivalued: true
inlined_as_list: true
description: Person(s) who performed the identification.
examples:
- value:
- agent_name: "Dr. J. Smith"
description: Taxonomist
identification_method:
range: string
description: Method used for identification.
examples:
- value: "Morphological analysis"
- value: "DNA barcoding"
- value: "Comparison with type specimen"
identification_confidence:
range: string
description: Confidence level of the identification.
examples:
- value: "high"
- value: "medium"
- value: "tentative"
identification_references:
range: string
multivalued: true
description: References consulted for identification.
examples:
- value: "Flora of North America, Vol. 3"
attributes:
identified_by:
range: Agent
multivalued: true
inlined_as_list: true
description: Person(s) who performed the identification.
identification_method:
range: string
description: Method used for identification.
identification_confidence:
range: string
description: Confidence level.
identification_references:
range: string
multivalued: true
description: References consulted.
annotations:
custodian_types: '["M", "R", "B"]'
custodian_types_rationale: "Identification events primarily for natural history museums, research centers, botanical gardens."
specificity_score: 0.75
specificity_rationale: "Specific to biological/natural history collection contexts."

View file

@ -1,6 +1,7 @@
id: https://nde.nl/ontology/hc/class/Identifier
name: identifier_classes
title: Identifier Classes (Generic and Custodian-Specific)
# Updated: 2026-01-23 - Added has_or_had_type for IdentifierType per F26 migration
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -22,6 +23,10 @@ imports:
# MIGRATED 2026-01-22: canonical_value → has_or_had_canonical_form + CanonicalForm per slot_fixes.yaml feedback
- ../slots/has_or_had_canonical_form
- ./CanonicalForm
# ADDED 2026-01-23: has_or_had_type for IdentifierType per F26 migration
- ../slots/has_or_had_type
- ./IdentifierType
- ./IdentifierTypes
- ../slots/has_or_had_secondary_label
- ../slots/has_allocation_date
- ../slots/specificity_annotation
@ -65,12 +70,33 @@ classes:
slots:
- identifier_scheme
- identifier_value
- has_or_had_type
slot_usage:
has_or_had_type:
description: >-
The type of identifier from IdentifierType taxonomy.
Uses IdentifierType subclasses per Rule 0b (Type/Types pattern).
Added 2026-01-23 per F26 migration.
Provides structured alternative to string-based identifier_scheme.
Prefer has_or_had_type for new data; identifier_scheme retained for compatibility.
range: IdentifierType
required: false
examples:
- value:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
description: Art catalog reference
- value:
has_or_had_code: ISIL
has_or_had_label: ISIL Code
description: Library identifier
identifier_scheme:
range: string
required: true
required: false
description: |
The identifier scheme or namespace (e.g., ISIL, Wikidata, URI, INTERNAL_CODE).
Note: Prefer has_or_had_type for new data (structured IdentifierType).
examples:
- value: ISIL
description: ISIL identifier scheme

View file

@ -0,0 +1,76 @@
# IdentifierType class (abstract base)
# Type taxonomy for identifier schemes and types
#
# Created: 2026-01-23 per slot_fixes.yaml F26 (catalog_raisonne_number migration)
# Rule compliance: 0b (Type/Types pattern - this is the Type file)
id: https://nde.nl/ontology/hc/class/IdentifierType
name: IdentifierType
title: Identifier Type Class (Abstract Base)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
adms: http://www.w3.org/ns/adms#
dcterms: http://purl.org/dc/terms/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ../slots/has_or_had_code
- ../slots/has_or_had_label
- ../slots/has_or_had_description
classes:
IdentifierType:
class_uri: adms:Identifier
abstract: true
description: >-
Abstract base class for identifier type taxonomy.
**Rule 0b Compliance**: This is the abstract TYPE file.
Concrete identifier types are defined in IdentifierTypes.yaml (plural).
Categories of identifiers:
- **Authority identifiers**: ISIL, VIAF, ISNI, ROR, ORCID
- **Cultural heritage identifiers**: Wikidata, GND, ULAN
- **Registration identifiers**: KvK, EU VAT, Legal Entity
- **Bibliographic identifiers**: ISBN, ISSN, DOI
- **Art/Museum identifiers**: Catalog Raisonné, Inventory Number
- **Archival identifiers**: Finding Aid ID, Fonds Number
- **Internal identifiers**: Local codes, System IDs
This taxonomy replaces string-based identifier_scheme with
structured class-based typing per Rule 53.
exact_mappings:
- adms:Identifier
close_mappings:
- dcterms:identifier
- skos:Concept
slots:
- has_or_had_code
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_code:
description: Short code for the identifier type (e.g., ISIL, VIAF, CATALOG_RAISONNE).
range: string
required: true
identifier: true
pattern: '^[A-Z][A-Z0-9_]*$'
has_or_had_label:
description: Human-readable label for the identifier type.
range: string
required: true
has_or_had_description:
description: Definition and scope of this identifier type.
range: string
required: false
comments:
- "Abstract base class - use concrete subclasses from IdentifierTypes.yaml"
see_also:
- https://www.w3.org/ns/adms
- https://www.iso.org/standard/77849.html

View file

@ -0,0 +1,307 @@
# IdentifierTypes class (concrete subclasses)
# Concrete identifier type subclasses per Rule 0b (Type/Types pattern)
#
# Created: 2026-01-23 per slot_fixes.yaml F26 (catalog_raisonne_number migration)
# Rule compliance: 0b (Type/Types pattern - this is the Types file)
id: https://nde.nl/ontology/hc/class/IdentifierTypes
name: IdentifierTypes
title: Identifier Types (Concrete Subclasses)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ./IdentifierType
classes:
# === AUTHORITY IDENTIFIERS ===
ISILIdentifierType:
is_a: IdentifierType
class_uri: hc:ISILIdentifierType
description: International Standard Identifier for Libraries and Related Organizations (ISO 15511).
slot_usage:
has_or_had_code:
equals_string: ISIL
has_or_had_label:
equals_string: ISIL Code
VIAFIdentifierType:
is_a: IdentifierType
class_uri: hc:VIAFIdentifierType
description: Virtual International Authority File identifier.
slot_usage:
has_or_had_code:
equals_string: VIAF
has_or_had_label:
equals_string: VIAF ID
ISNIIdentifierType:
is_a: IdentifierType
class_uri: hc:ISNIIdentifierType
description: International Standard Name Identifier (ISO 27729).
slot_usage:
has_or_had_code:
equals_string: ISNI
has_or_had_label:
equals_string: ISNI
RORIdentifierType:
is_a: IdentifierType
class_uri: hc:RORIdentifierType
description: Research Organization Registry identifier.
slot_usage:
has_or_had_code:
equals_string: ROR
has_or_had_label:
equals_string: ROR ID
ORCIDIdentifierType:
is_a: IdentifierType
class_uri: hc:ORCIDIdentifierType
description: Open Researcher and Contributor ID.
slot_usage:
has_or_had_code:
equals_string: ORCID
has_or_had_label:
equals_string: ORCID
# === CULTURAL HERITAGE IDENTIFIERS ===
WikidataIdentifierType:
is_a: IdentifierType
class_uri: hc:WikidataIdentifierType
description: Wikidata entity identifier (Q-number).
slot_usage:
has_or_had_code:
equals_string: WIKIDATA
has_or_had_label:
equals_string: Wikidata ID
GNDIdentifierType:
is_a: IdentifierType
class_uri: hc:GNDIdentifierType
description: Gemeinsame Normdatei (German authority file).
slot_usage:
has_or_had_code:
equals_string: GND
has_or_had_label:
equals_string: GND ID
ULANIdentifierType:
is_a: IdentifierType
class_uri: hc:ULANIdentifierType
description: Union List of Artist Names (Getty).
slot_usage:
has_or_had_code:
equals_string: ULAN
has_or_had_label:
equals_string: ULAN ID
AATIdentifierType:
is_a: IdentifierType
class_uri: hc:AATIdentifierType
description: Art & Architecture Thesaurus (Getty).
slot_usage:
has_or_had_code:
equals_string: AAT
has_or_had_label:
equals_string: AAT ID
TGNIdentifierType:
is_a: IdentifierType
class_uri: hc:TGNIdentifierType
description: Thesaurus of Geographic Names (Getty).
slot_usage:
has_or_had_code:
equals_string: TGN
has_or_had_label:
equals_string: TGN ID
# === REGISTRATION IDENTIFIERS ===
KvKIdentifierType:
is_a: IdentifierType
class_uri: hc:KvKIdentifierType
description: Dutch Chamber of Commerce (Kamer van Koophandel) registration number.
slot_usage:
has_or_had_code:
equals_string: KVK
has_or_had_label:
equals_string: KvK Number
LEIIdentifierType:
is_a: IdentifierType
class_uri: hc:LEIIdentifierType
description: Legal Entity Identifier (ISO 17442).
slot_usage:
has_or_had_code:
equals_string: LEI
has_or_had_label:
equals_string: LEI
VATIdentifierType:
is_a: IdentifierType
class_uri: hc:VATIdentifierType
description: VAT registration number.
slot_usage:
has_or_had_code:
equals_string: VAT
has_or_had_label:
equals_string: VAT Number
# === BIBLIOGRAPHIC IDENTIFIERS ===
ISBNIdentifierType:
is_a: IdentifierType
class_uri: hc:ISBNIdentifierType
description: International Standard Book Number (ISO 2108).
slot_usage:
has_or_had_code:
equals_string: ISBN
has_or_had_label:
equals_string: ISBN
ISSNIdentifierType:
is_a: IdentifierType
class_uri: hc:ISSNIdentifierType
description: International Standard Serial Number (ISO 3297).
slot_usage:
has_or_had_code:
equals_string: ISSN
has_or_had_label:
equals_string: ISSN
DOIIdentifierType:
is_a: IdentifierType
class_uri: hc:DOIIdentifierType
description: Digital Object Identifier (ISO 26324).
slot_usage:
has_or_had_code:
equals_string: DOI
has_or_had_label:
equals_string: DOI
OCLCIdentifierType:
is_a: IdentifierType
class_uri: hc:OCLCIdentifierType
description: OCLC WorldCat record number.
slot_usage:
has_or_had_code:
equals_string: OCLC
has_or_had_label:
equals_string: OCLC Number
# === ART/MUSEUM IDENTIFIERS ===
CatalogRaisonneIdentifierType:
is_a: IdentifierType
class_uri: hc:CatalogRaisonneIdentifierType
description: >-
Reference number in a catalogue raisonné (comprehensive catalog of an artist's work).
MIGRATED from catalog_raisonne_number slot (2026-01-23) per Rule 53/F26.
slot_usage:
has_or_had_code:
equals_string: CATALOG_RAISONNE
has_or_had_label:
equals_string: Catalogue Raisonné Number
InventoryNumberIdentifierType:
is_a: IdentifierType
class_uri: hc:InventoryNumberIdentifierType
description: Museum or collection inventory number.
slot_usage:
has_or_had_code:
equals_string: INVENTORY_NUMBER
has_or_had_label:
equals_string: Inventory Number
AccessionNumberIdentifierType:
is_a: IdentifierType
class_uri: hc:AccessionNumberIdentifierType
description: Accession number assigned upon acquisition.
slot_usage:
has_or_had_code:
equals_string: ACCESSION_NUMBER
has_or_had_label:
equals_string: Accession Number
# === ARCHIVAL IDENTIFIERS ===
FindingAidIdentifierType:
is_a: IdentifierType
class_uri: hc:FindingAidIdentifierType
description: Finding aid or archival guide identifier.
slot_usage:
has_or_had_code:
equals_string: FINDING_AID_ID
has_or_had_label:
equals_string: Finding Aid ID
FondsNumberIdentifierType:
is_a: IdentifierType
class_uri: hc:FondsNumberIdentifierType
description: Archival fonds or collection number.
slot_usage:
has_or_had_code:
equals_string: FONDS_NUMBER
has_or_had_label:
equals_string: Fonds Number
EADIdentifierType:
is_a: IdentifierType
class_uri: hc:EADIdentifierType
description: Encoded Archival Description identifier.
slot_usage:
has_or_had_code:
equals_string: EAD_ID
has_or_had_label:
equals_string: EAD ID
# === INTERNAL/LOCAL IDENTIFIERS ===
LocalCollectionIdentifierType:
is_a: IdentifierType
class_uri: hc:LocalCollectionIdentifierType
description: Local collection or institutional identifier.
slot_usage:
has_or_had_code:
equals_string: LOCAL_COLLECTION
has_or_had_label:
equals_string: Local Collection ID
InternalCodeIdentifierType:
is_a: IdentifierType
class_uri: hc:InternalCodeIdentifierType
description: Internal system code or database ID.
slot_usage:
has_or_had_code:
equals_string: INTERNAL_CODE
has_or_had_label:
equals_string: Internal Code
URIIdentifierType:
is_a: IdentifierType
class_uri: hc:URIIdentifierType
description: Uniform Resource Identifier.
slot_usage:
has_or_had_code:
equals_string: URI
has_or_had_label:
equals_string: URI
URLIdentifierType:
is_a: IdentifierType
class_uri: hc:URLIdentifierType
description: Uniform Resource Locator (web address).
slot_usage:
has_or_had_code:
equals_string: URL
has_or_had_label:
equals_string: URL

View file

@ -0,0 +1,98 @@
id: https://nde.nl/ontology/hc/class/Image
name: image_class
title: Image Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
foaf: http://xmlns.com/foaf/0.1/
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
- ../slots/has_or_had_url
- ./URL
- ../slots/has_or_had_label
- ./Label
default_prefix: hc
classes:
Image:
class_uri: schema:ImageObject
description: >-
Represents a visual image with URL and metadata.
**PURPOSE**:
Image provides structured representation for visual content including:
- Thumbnail images for cards/previews
- Collection representative images
- Institutional logos and branding
- Digital object reproductions
**ONTOLOGY ALIGNMENT**:
| Ontology | Mapping | Rationale |
|----------|---------|-----------|
| Schema.org | schema:ImageObject | Primary class for images |
| FOAF | foaf:Image | Alternative image class |
**USE CASES**:
- Card preview thumbnails (card_image_url migration)
- Collection highlight images
- Object photographs
MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for card_image_url.
exact_mappings:
- schema:ImageObject
- foaf:Image
slots:
- has_or_had_url
- has_or_had_label
slot_usage:
has_or_had_url:
range: URL
required: true
inlined: true
description: >-
URL where the image can be accessed.
URL.has_or_had_value contains the actual URI.
has_or_had_label:
range: Label
required: false
inlined: true
description: >-
Alt text or caption for the image.
Label.has_or_had_text contains the description.
attributes:
image_format:
range: string
required: false
description: >-
Image format (e.g., "JPEG", "PNG", "WEBP", "SVG").
width:
range: integer
required: false
description: Width in pixels.
height:
range: integer
required: false
description: Height in pixels.
examples:
- value:
has_or_had_url:
has_or_had_value: "https://example.org/images/card_thumb.jpg"
has_or_had_label:
has_or_had_text: "Collection preview thumbnail"
image_format: JPEG
width: 300
height: 200
description: Card thumbnail image with metadata
- value:
has_or_had_url:
has_or_had_value: "https://museum.nl/logo.svg"
image_format: SVG
description: Institutional logo
annotations:
specificity_score: 0.35
specificity_rationale: >-
Images are broadly useful across heritage contexts for visual representation.

View file

@ -33,15 +33,25 @@ imports:
# 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
# REMOVED 2026-01-23: carrier_type - migrated to has_or_had_carrier per Rule 53/F24
- ../slots/has_or_had_carrier
- ./Carrier
- ./CarrierType
- ./CarrierTypes
# REMOVED 2026-01-23: carries_information - migrated to has_or_had_content per Rule 53/F25
- ../slots/has_or_had_content
- ./Content
- ./ContentType
- ./ContentTypes
- ../slots/content_language
- ../slots/content_summary
- ../slots/copy_note
- ../slots/copy_number
- ../slots/cover_material
- ../slots/has_or_had_custodian_type
- ../slots/date_of_publication
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
- ../slots/is_or_was_published
- ./Publication
- ../slots/doi
- ../slots/duration
- ../slots/edition_statement
@ -126,15 +136,18 @@ classes:
- includes_or_included
# REMOVED 2026-01-17: call_number - migrated to has_or_had_identifier (Rule 53)
- has_or_had_identifier
- carrier_type
- carries_information
# REMOVED 2026-01-23: carrier_type - migrated to has_or_had_carrier (Rule 53/F24)
- has_or_had_carrier
# REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25)
- has_or_had_content
- content_language
- content_summary
- copy_note
- copy_number
- cover_material
- has_or_had_custodian_type
- date_of_publication
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
- is_or_was_published
- doi
- duration
- edition_statement
@ -164,13 +177,31 @@ classes:
- has_or_had_label # was: uniform_title
- has_or_had_writing_system
slot_usage:
carrier_type:
# REMOVED 2026-01-23: carrier_type - migrated to has_or_had_carrier (Rule 53/F24)
has_or_had_carrier:
required: true
range: CarrierTypeEnum
range: Carrier
inlined: true
description: >-
The physical carrier type and characteristics.
MIGRATED from carrier_type (2026-01-23) per Rule 53/F24.
Uses Carrier class with CarrierType taxonomy per Rule 0b.
examples:
- value: CODEX
- value: SCROLL
- value: VINYL_DISC
- value:
has_or_had_type:
has_or_had_code: CODEX
has_or_had_label: Codex
description: Bound volume (codex form)
- value:
has_or_had_type:
has_or_had_code: SCROLL
has_or_had_label: Scroll
description: Rolled manuscript
- value:
has_or_had_type:
has_or_had_code: VINYL_DISC
has_or_had_label: Vinyl Disc
description: Audio recording
material_composition:
required: false
range: string
@ -322,12 +353,26 @@ classes:
- value:
place_name: Mainz
country: DE
date_of_publication:
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
is_or_was_published:
required: false
range: string
range: Publication
inlined: true
multivalued: true
description: >-
Publication event(s) for this information carrier.
Use publication_date_string for approximate dates (c. 1455, 16th century).
examples:
- value: c. 1455
- value: '1623'
- value:
publication_date_string: "c. 1455"
publisher: "Johannes Gutenberg"
publication_place: "Mainz"
description: Approximate date with publisher info
- value:
temporal_extent:
begin_of_the_begin: "1623-01-01"
publication_date_string: "1623"
description: Year-level precision
edition_statement:
required: false
range: string
@ -485,12 +530,28 @@ classes:
examples:
- value: ITEM
- value: FILE
carries_information:
# REMOVED 2026-01-23: carries_information - migrated to has_or_had_content (Rule 53/F25)
has_or_had_content:
required: false
range: string
range: Content
inlined: true
description: >-
The intellectual content carried by this information carrier.
MIGRATED from carries_information (2026-01-23) per Rule 53/F25.
Uses Content class with ContentType taxonomy per Rule 0b.
examples:
- value: Vulgate Latin Bible
- value: Hamlet by William Shakespeare
- value:
has_or_had_label: Vulgate Latin Bible
has_or_had_type:
has_or_had_code: RELIGIOUS
has_or_had_label: Religious Content
description: Religious text content
- value:
has_or_had_label: Hamlet by William Shakespeare
has_or_had_type:
has_or_had_code: LITERARY
has_or_had_label: Literary Content
description: Literary work
has_or_had_label: # was: title_proper and uniform_title (merged 2026-01-15)
required: false
range: string
@ -538,7 +599,11 @@ classes:
object_name: Gutenberg Bible (KB copy)
object_description: "One of fewer than 50 surviving copies of the Gutenberg Bible, \nthe first substantial book printed\
\ with movable metal type.\nThis paper copy was acquired by the Koninklijke Bibliotheek in 1807.\n"
carrier_type: CODEX
# MIGRATED 2026-01-23: carrier_type → has_or_had_carrier (Rule 53/F24)
has_or_had_carrier:
has_or_had_type:
has_or_had_code: CODEX
has_or_had_label: Codex
material_composition:
- Paper (handmade, watermarked)
folio_count: 641
@ -554,14 +619,23 @@ classes:
place_of_publication:
place_name: Mainz
country: DE
date_of_publication: c. 1455
# MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53)
is_or_was_published:
- publication_date_string: "c. 1455"
publisher: "Johannes Gutenberg"
publication_place: "Mainz"
script_type: PRINTED
has_or_had_writing_system:
has_or_had_code: "Latn"
script_name: "Latin"
content_language:
- lat
carries_information: Bible. Latin. Vulgate
# MIGRATED 2026-01-23: carries_information → has_or_had_content (Rule 53/F25)
has_or_had_content:
has_or_had_label: Bible. Latin. Vulgate
has_or_had_type:
has_or_had_code: RELIGIOUS
has_or_had_label: Religious Content
title_proper: Biblia Latina
uniform_title: Bible. Latin. Vulgate. 1455
# MIGRATED 2026-01-17: call_number → has_or_had_identifier (Rule 53)
@ -583,7 +657,11 @@ classes:
object_name: Codex Sinaiticus (British Library portion)
object_description: "4th-century manuscript of the Greek Bible, one of the oldest \nand most important Biblical manuscripts.\
\ The British Library \nholds 347 leaves of this codex.\n"
carrier_type: CODEX
# MIGRATED 2026-01-23: carrier_type → has_or_had_carrier (Rule 53/F24)
has_or_had_carrier:
has_or_had_type:
has_or_had_code: CODEX
has_or_had_label: Codex
material_composition:
- Parchment (vellum)
folio_count: 347
@ -593,8 +671,15 @@ classes:
script_name: "Greek uncial"
content_language:
- grc
date_of_publication: 4th century CE
carries_information: Septuagint and Greek New Testament
# MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53)
is_or_was_published:
- publication_date_string: "4th century CE"
# MIGRATED 2026-01-23: carries_information → has_or_had_content (Rule 53/F25)
has_or_had_content:
has_or_had_label: Septuagint and Greek New Testament
has_or_had_type:
has_or_had_code: RELIGIOUS
has_or_had_label: Religious Content
uniform_title: Bible. Greek
shelf_mark: Add. MS 43725
current_keeper: https://nde.nl/ontology/hc/custodian/uk/british-library
@ -608,7 +693,11 @@ classes:
object_name: Declaration of Independence (engrossed parchment)
object_description: "The official engrossed parchment copy of the Declaration of \nIndependence, signed by 56 delegates\
\ to the Continental Congress.\n"
carrier_type: PARCHMENT_LEAF
# MIGRATED 2026-01-23: carrier_type → has_or_had_carrier (Rule 53/F24)
has_or_had_carrier:
has_or_had_type:
has_or_had_code: PARCHMENT_LEAF
has_or_had_label: Parchment Leaf
material_composition:
- Parchment (sheepskin)
script_type: MANUSCRIPT
@ -617,7 +706,13 @@ classes:
script_name: "Latin"
content_language:
- eng
date_of_publication: '1776-08-02'
# MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53)
is_or_was_published:
- temporal_extent:
begin_of_the_begin: "1776-08-02"
end_of_the_end: "1776-08-02"
publisher: "John Dunlap"
publication_place: "Philadelphia"
archival_reference: NARA 1419
fonds: Records of the Continental and Confederation Congresses
arrangement_level: ITEM

View file

@ -17,7 +17,8 @@ imports:
- ./DataFormat
- ../slots/has_or_had_output
# REMOVED 2026-01-22: data_format migrated to has_or_had_output + OutputData (Rule 53)
- ../slots/decommission_date
- ../slots/is_or_was_decommissioned_at # was: decommission_date - migrated per Rule 53 (2026-01-23)
- ./Timestamp # Range for is_or_was_decommissioned_at
- ../slots/device_count
- ../slots/device_id
- ../slots/device_manufacturer
@ -104,7 +105,7 @@ classes:
- connectivity_type
- coverage_area
- has_or_had_output # was: data_format - migrated per Rule 53 (2026-01-22)
- decommission_date
- is_or_was_decommissioned_at # was: decommission_date - migrated per Rule 53 (2026-01-23)
- device_count
- device_id
- device_manufacturer
@ -273,11 +274,18 @@ classes:
examples:
- value: '2023-06-15'
description: Installation date
decommission_date:
range: date
is_or_was_decommissioned_at: # was: decommission_date - migrated per Rule 53 (2026-01-23)
range: Timestamp
inlined: true
description: |
Timestamp when the IoT device was or will be decommissioned.
NULL if still operational.
MIGRATED from decommission_date per slot_fixes.yaml (Rule 53).
examples:
- value: '2028-12-31'
description: Planned decommission date
- value:
has_or_had_timestamp: "2028-12-31"
has_or_had_precision: day
description: Planned decommission date for device
temporal_extent:
range: TimeSpan
examples:

View file

@ -8,7 +8,11 @@ imports:
- ../slots/complies_or_complied_with
- ./CatalogingStandard
- ../enums/LibraryTypeEnum
- ../slots/catalog_system
# - ../slots/catalog_system # ARCHIVED 2026-01-24: migrated to uses_or_used + CatalogSystem per Rule 53/56
- ../slots/uses_or_used
- ./CatalogSystem
- ./CatalogSystemType
- ./CatalogSystemTypes
- ../slots/has_or_had_custodian_type
- ../slots/interlibrary_loan
- ../slots/lending_policy
@ -105,10 +109,10 @@ classes:
\ org:classification :LibraryType_NationalLibrary_Q22806 .\n\n:LibraryType_NationalLibrary_Q22806\n a glamtype:LibraryType,\
\ crm:E55_Type, skos:Concept ;\n skos:prefLabel \"National Library\"@en, \"nationale bibliotheek\"@nl ;\n skos:broader\
\ :LibraryType_Library_Q7075 ;\n schema:additionalType <http://www.wikidata.org/entity/Q22806> ;\n glamtype:glamorcubesfixphdnt_code\
\ \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:catalog_system \"ALMA\" ;\n glamtype:special_collections\
\ \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:uses_or_used [ a glamtype:CatalogSystem ; glamtype:has_or_had_name \"ALMA\" ] ;\n glamtype:special_collections\
\ [\"incunabula\", \"manuscripts\", \"maps\"] ;\n glamtype:interlibrary_loan true ;\n glamtype:cataloging_standard\
\ \"RDA\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds library-specific metadata beyond base CustodianType:\n\
- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `catalog_system`\
- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `uses_or_used` (was: catalog_system)\
\ - Integrated library system (ALMA, Sierra, Koha, Aleph, etc.)\n- `special_collections` - Notable collections (rare\
\ books, manuscripts, archives, maps, music)\n- `membership_required` - Whether library requires membership for access\n\
- `interlibrary_loan` - Whether participates in interlibrary loan networks\n- `cataloging_standard` - Metadata standards\
@ -123,7 +127,7 @@ classes:
- Information literacy instruction - User education programs\n\n**Data Population**:\nLibrary subtypes extracted from\
\ 60 Wikidata entities with type='L'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n"
slots:
- catalog_system
- uses_or_used # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
- complies_or_complied_with # was: cataloging_standard - migrated per Rule 53/56 (2026-01-17)
- has_or_had_custodian_type
- interlibrary_loan
@ -135,6 +139,14 @@ classes:
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- has_or_had_identifier # was: wikidata_entity - migrated per Rule 53 (2026-01-16)
slot_usage:
uses_or_used: # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
description: |
The catalog system or integrated library system (ILS) used by this library.
MIGRATED from catalog_system per Rule 53/56 (2026-01-24).
Common systems: ALMA, Koha, Sierra, Aleph, FOLIO, OCLC WorldShare.
range: CatalogSystem
inlined: true
multivalued: true
has_or_had_identifier: # was: wikidata_entity - migrated per Rule 53 (2026-01-16)
pattern: ^Q[0-9]+$
required: true
@ -182,7 +194,10 @@ classes:
has_or_had_description: library specifically established by the government of a country # was: type_description - migrated per Rule 53/56 (2026-01-16)
has_or_had_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 # was: broader_type - migrated per Rule 53 (2026-01-17)
lending_policy: reference-only
catalog_system: ALMA
uses_or_used: # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
- has_or_had_name: ALMA
has_or_had_type:
has_or_had_name: Library Services Platform
special_collection:
- incunabula
- manuscripts
@ -206,7 +221,10 @@ classes:
has_or_had_description: public library in the Netherlands with a secondary research function (Wetenschappelijke en Speciale Functies) # was: type_description - migrated per Rule 53/56 (2026-01-16)
has_or_had_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 # was: broader_type - migrated per Rule 53 (2026-01-17)
lending_policy: open
catalog_system: OCLC
uses_or_used: # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
- has_or_had_name: OCLC WorldShare
has_or_had_type:
has_or_had_name: Library Services Platform
special_collection:
- local history
- genealogy

View file

@ -0,0 +1,82 @@
id: https://nde.nl/ontology/hc/class/Measurement
name: Measurement
title: Measurement
description: |
Represents a measurement observation with value, type, unit, and timestamp.
This class captures environmental and condition measurements for heritage
storage monitoring, including temperature, humidity, light levels, etc.
Created per slot_fixes.yaml revision for category_measurement migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
crm: http://www.cidoc-crm.org/cidoc-crm/
sosa: http://www.w3.org/ns/sosa/
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_measurement_type
- ../slots/has_or_had_measurement_unit
- ./MeasurementType
- ./MeasureUnit
default_prefix: hc
classes:
Measurement:
class_uri: sosa:Observation
description: |
A measurement observation capturing a specific value, its type, and unit.
Used for:
- Storage condition monitoring (temperature, humidity)
- Environmental assessments (light levels, UV radiation)
- Conservation observations (pest counts, air quality)
slots:
- has_or_had_value
- has_or_had_measurement_type
- has_or_had_measurement_unit
slot_usage:
has_or_had_value:
description: |
The measured value as a string (e.g., "19.5", "48", "250").
String type allows for special notation (±, <, >, ranges).
required: true
has_or_had_measurement_type:
description: The type/category of measurement (temperature, humidity, etc.).
range: MeasurementType
inlined: true
has_or_had_measurement_unit:
description: The unit of measurement (°C, % RH, lux, etc.).
range: MeasureUnit
inlined: true
exact_mappings:
- sosa:Observation
- qudt:QuantityValue
close_mappings:
- crm:E16_Measurement
examples:
- value:
has_or_had_value: "19.5"
has_or_had_measurement_type:
has_or_had_name: Temperature
has_or_had_measurement_unit:
has_or_had_name: Degree Celsius
has_or_had_symbol: "°C"
description: Temperature measurement of 19.5°C
- value:
has_or_had_value: "48"
has_or_had_measurement_type:
has_or_had_name: Relative Humidity
has_or_had_measurement_unit:
has_or_had_name: Percent
has_or_had_symbol: "%"
description: Humidity measurement of 48% RH
- value:
has_or_had_value: "250"
has_or_had_measurement_type:
has_or_had_name: Light Level
has_or_had_measurement_unit:
has_or_had_name: Lux
has_or_had_symbol: "lx"
description: Light level measurement of 250 lux

View file

@ -0,0 +1,58 @@
id: https://nde.nl/ontology/hc/class/MeasurementType
name: MeasurementType
title: Measurement Type (Abstract Base)
description: |
Abstract base class for types of measurements relevant to heritage conservation
and storage conditions.
This class defines the taxonomy of measurement categories used for monitoring
storage environments and conservation conditions. Concrete subclasses are
defined in MeasurementTypes.yaml following the Type/Types naming convention (Rule 0b).
Created per slot_fixes.yaml revision for category_measurement migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
qudt: http://qudt.org/schema/qudt/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_description
- ../slots/has_or_had_measurement_unit
- ./MeasureUnit
default_prefix: hc
classes:
MeasurementType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for types of measurements in heritage conservation contexts.
Common measurement type categories:
- Temperature measurements (°C, °F)
- Humidity measurements (% RH)
- Light level measurements (lux)
- UV radiation measurements
- Air quality measurements
- Vibration measurements
- Pest monitoring counts
slots:
- has_or_had_name
- has_or_had_description
- has_or_had_measurement_unit
slot_usage:
has_or_had_name:
description: The name of this measurement type category.
required: true
has_or_had_description:
description: Description of this measurement type and what it measures.
has_or_had_measurement_unit:
description: The standard unit(s) of measurement for this type.
range: MeasureUnit
exact_mappings:
- skos:Concept
close_mappings:
- qudt:QuantityKind
- crm:E55_Type

View file

@ -0,0 +1,202 @@
id: https://nde.nl/ontology/hc/class/MeasurementTypes
name: MeasurementTypes
title: Measurement Types (Concrete Subclasses)
description: |
Concrete subclasses of MeasurementType representing specific categories of
measurements used in heritage conservation and storage monitoring.
Follows the Type/Types naming convention (Rule 0b):
- MeasurementType.yaml: Abstract base class
- MeasurementTypes.yaml: This file with concrete subclasses
Created per slot_fixes.yaml revision for category_measurement migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
qudt: http://qudt.org/schema/qudt/
imports:
- linkml:types
- ./MeasurementType
default_prefix: hc
classes:
# === Environmental Measurements ===
TemperatureMeasurementType:
is_a: MeasurementType
class_uri: hc:TemperatureMeasurementType
description: |
Temperature measurement type for monitoring storage and display environments.
Standard units: degrees Celsius (°C) or Fahrenheit (°F).
Typical conservation ranges:
- Archives/libraries: 18-22°C
- Museums (general): 18-22°C
- Cold storage (photographs): 2-8°C
- Freezer storage (textiles): -20°C
slot_usage:
has_or_had_name:
equals_string: Temperature
exact_mappings:
- qudt:Temperature
aliases:
- Temp
- Air Temperature
HumidityMeasurementType:
is_a: MeasurementType
class_uri: hc:HumidityMeasurementType
description: |
Relative humidity measurement type for monitoring moisture in storage environments.
Standard unit: percentage relative humidity (% RH).
Typical conservation ranges:
- Archives/libraries: 45-55% RH
- Museums (general): 45-55% RH
- Metals: 30-40% RH
- Photographs: 30-40% RH
slot_usage:
has_or_had_name:
equals_string: Relative Humidity
exact_mappings:
- qudt:RelativeHumidity
aliases:
- RH
- Humidity
- Moisture
LightLevelMeasurementType:
is_a: MeasurementType
class_uri: hc:LightLevelMeasurementType
description: |
Light level measurement type for monitoring illumination in display and storage areas.
Standard unit: lux (lx).
Typical conservation limits:
- Light-sensitive materials (textiles, works on paper): 50 lux max
- Medium sensitivity (oil paintings): 150-200 lux max
- Low sensitivity (stone, ceramics): 300 lux max
slot_usage:
has_or_had_name:
equals_string: Light Level
exact_mappings:
- qudt:Illuminance
aliases:
- Illuminance
- Lux
UVRadiationMeasurementType:
is_a: MeasurementType
class_uri: hc:UVRadiationMeasurementType
description: |
Ultraviolet radiation measurement type for monitoring harmful UV exposure.
Standard unit: microwatts per lumen (µW/lm).
Conservation standard: UV should be below 75 µW/lm for most materials.
slot_usage:
has_or_had_name:
equals_string: UV Radiation
aliases:
- UV Level
- Ultraviolet
# === Air Quality Measurements ===
AirQualityMeasurementType:
is_a: MeasurementType
class_uri: hc:AirQualityMeasurementType
description: |
General air quality measurement type for monitoring pollutants and particulates.
May include PM2.5, PM10, or composite air quality indices.
slot_usage:
has_or_had_name:
equals_string: Air Quality
aliases:
- AQI
- Particulate Matter
CO2MeasurementType:
is_a: MeasurementType
class_uri: hc:CO2MeasurementType
description: |
Carbon dioxide measurement type for monitoring air quality and ventilation.
Standard unit: parts per million (ppm).
Typical thresholds:
- Good: <800 ppm
- Acceptable: 800-1000 ppm
- Poor: >1000 ppm
slot_usage:
has_or_had_name:
equals_string: Carbon Dioxide
aliases:
- CO2
- Carbon Dioxide Level
VOCMeasurementType:
is_a: MeasurementType
class_uri: hc:VOCMeasurementType
description: |
Volatile organic compounds measurement type for monitoring off-gassing
from materials, paints, adhesives, and storage materials.
slot_usage:
has_or_had_name:
equals_string: Volatile Organic Compounds
aliases:
- VOC
- Off-gassing
# === Structural Measurements ===
VibrationMeasurementType:
is_a: MeasurementType
class_uri: hc:VibrationMeasurementType
description: |
Vibration measurement type for monitoring mechanical disturbances
that may affect fragile objects.
slot_usage:
has_or_had_name:
equals_string: Vibration
aliases:
- Shock
- Mechanical Disturbance
# === Pest Monitoring ===
PestCountMeasurementType:
is_a: MeasurementType
class_uri: hc:PestCountMeasurementType
description: |
Pest monitoring measurement type for tracking insect and rodent activity.
Typically recorded as count per trap per time period.
slot_usage:
has_or_had_name:
equals_string: Pest Count
aliases:
- Insect Count
- Trap Count
- IPM Reading
# === Water/Moisture ===
WaterActivityMeasurementType:
is_a: MeasurementType
class_uri: hc:WaterActivityMeasurementType
description: |
Water activity (aw) measurement type for monitoring moisture content
in materials, particularly important for organic materials.
Scale: 0 to 1 (dimensionless).
slot_usage:
has_or_had_name:
equals_string: Water Activity
aliases:
- aw
- Moisture Content
# === Other ===
DewPointMeasurementType:
is_a: MeasurementType
class_uri: hc:DewPointMeasurementType
description: |
Dew point temperature measurement type for assessing condensation risk.
Standard unit: degrees Celsius (°C).
slot_usage:
has_or_had_name:
equals_string: Dew Point
aliases:
- Dew Point Temperature

View file

@ -25,9 +25,10 @@ imports:
# - ../slots/birth_place
- ../slots/has_or_had_place_of_birth
- ./BirthPlace
- ../slots/death_place
- ../slots/date_of_death
- ../slots/deceased
# REMOVED 2026-01-24: ../slots/death_place - migrated to is_deceased.occurs_or_occurred_at (Rule 53)
# REMOVED 2026-01-23: ../slots/date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
- ../slots/is_deceased # was: deceased - migrated per Rule 53/56/57 (2026-01-23)
- ./DeceasedStatus
- ../slots/has_age
- ../slots/occupation
- ../slots/religion
@ -119,9 +120,9 @@ classes:
- has_or_had_place_of_birth
- contact_email
- created
- date_of_death
- death_place
- deceased
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-24: death_place - migrated to is_deceased.occurs_or_occurred_at (Rule 53)
- is_deceased # was: deceased - migrated per Rule 53/56/57 (2026-01-23)
- expertise_area
- extraction_metadata
- gender_identity
@ -212,15 +213,22 @@ classes:
modern_place_name: Jakarta
country_code: ID
description: Historical place name
death_place:
range: string
required: false
date_of_death:
range: TimeSpan
required: false
deceased:
range: boolean
# REMOVED 2026-01-24: death_place - migrated to is_deceased.occurs_or_occurred_at (Rule 53)
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
is_deceased: # was: deceased - migrated per Rule 53/56/57 (2026-01-23)
range: DeceasedStatus
inlined: true
required: false
description: >-
Structured information about death status.
Includes cause of death, date, and narrative description.
examples:
- value:
is_or_was_caused_by:
cause_type: NATURAL
temporal_extent:
begin_of_the_begin: "2020-03-15"
description: Natural death with known date
has_age:
range: string
required: false

View file

@ -30,7 +30,9 @@ imports:
- ../slots/has_or_had_level # was: certainty_level, certainty_note - migrated per Rule 53/56 (2026-01-18)
- ./CertaintyLevel
- ../slots/has_or_had_custodian_type
- ../slots/dealer_name
# REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53)
- ../slots/is_or_was_associated_with
- ./ArtDealer
- ../slots/documentation
- ../slots/documentation_url
- ../slots/event_date_text
@ -88,7 +90,8 @@ classes:
- has_auction_sale_name
- has_or_had_level # was: certainty_level, certainty_note - migrated per Rule 53/56 (2026-01-18)
- has_or_had_custodian_type
- dealer_name
# REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53)
- is_or_was_associated_with
- documentation
- documentation_url
- event_date
@ -278,12 +281,24 @@ classes:
examples:
- value: '36'
- value: Lot 127A
dealer_name:
# REMOVED 2026-01-24: dealer_name - migrated to is_or_was_associated_with + ArtDealer (Rule 53)
is_or_was_associated_with:
description: |
Art dealer(s) involved in this provenance event (for DEALER_SALE events).
Range narrowed to ArtDealer for dealer-specific provenance.
required: false
range: string
range: ArtDealer
inlined: true
multivalued: true
examples:
- value: Paul Cassirer
- value: Goupil & Cie
- value:
has_or_had_name:
has_or_had_label: "Paul Cassirer"
description: German art dealer
- value:
has_or_had_name:
has_or_had_label: "Goupil & Cie"
description: French art dealing firm
documentation:
required: false
range: string

View file

@ -0,0 +1,73 @@
id: https://nde.nl/ontology/hc/class/Publication
name: Publication_class
title: Publication Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
bf: http://id.loc.gov/ontologies/bibframe/
imports:
- linkml:types
- ../slots/temporal_extent
- ../slots/has_or_had_name
- ../slots/description
default_prefix: hc
classes:
Publication:
description: >-
A publication event representing when an information carrier or creative work
was published or produced. Captures the temporal extent of publication,
publisher information, place of publication, and edition details.
Replaces the simple date_of_publication string slot per Rule 53.
class_uri: schema:PublicationEvent
mixins: []
slots:
- temporal_extent
- has_or_had_name
- description
attributes:
publisher:
description: >-
The publisher or producer of this publication.
Can be an organization name or reference.
range: string
slot_uri: schema:publisher
publication_place:
description: >-
The place where the publication was issued.
range: string
slot_uri: schema:locationCreated
edition:
description: >-
Edition or version identifier (e.g., "First Edition", "2nd ed.", "Revised").
range: string
slot_uri: bf:editionStatement
publication_date_string:
description: >-
Human-readable date string for historical or approximate dates
(e.g., "c. 1455", "16th century", "4th century CE").
Use temporal_extent for structured date representation.
range: string
slot_uri: schema:datePublished
annotations:
replaces: date_of_publication
migration_date: '2026-01-23'
migration_rule: Rule 53 - No bespoke slots
examples:
- value:
publication_date_string: "c. 1455"
publisher: "Johannes Gutenberg"
publication_place: "Mainz"
description: Gutenberg Bible approximate publication
- value:
temporal_extent:
begin_of_the_begin: "1776-08-02"
end_of_the_end: "1776-08-02"
publisher: "John Dunlap"
publication_place: "Philadelphia"
description: US Declaration of Independence with precise date
- value:
publication_date_string: "4th century CE"
description: Ancient manuscript with century-level precision

View file

@ -14,8 +14,8 @@ imports:
- ../metadata
- ../slots/description
- ../slots/martyred
- ../slots/deceased
- ../slots/date_of_death
# REMOVED 2026-01-23: ../slots/deceased - migrated to is_deceased with DeceasedStatus (Rule 53)
# REMOVED 2026-01-23: ../slots/date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-19: ../slots/circumstances_of_death - migrated to is_deceased with DeceasedStatus
- ../slots/is_deceased
- ./DeceasedStatus
@ -171,8 +171,8 @@ classes:
# REMOVED 2026-01-22: common_variant - migrated to has_or_had_type + VariantType + VariantTypes (Rule 53)
- has_or_had_type
- includes_or_included
- date_of_death
- deceased
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-23: deceased - migrated to is_deceased with DeceasedStatus (Rule 53)
- description
- martyred
- requires_qualification
@ -196,12 +196,10 @@ classes:
required: false
role_category:
required: false
deceased:
required: false
# REMOVED 2026-01-23: deceased - migrated to is_deceased with DeceasedStatus (Rule 53)
martyred:
required: false
date_of_death:
required: false
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-19: circumstances_of_death - migrated to is_deceased
is_deceased:
required: false
@ -268,9 +266,9 @@ classes:
- A person may hold multiple roles simultaneously
- Each role observation has independent temporal extent
- Links to PersonObservation via role_type slot
- deceased/martyred slots track vital status of staff member holding this role
- is_deceased with DeceasedStatus tracks vital status of staff member holding this role
- martyred flag specifically for information workers killed due to conflict or persecution
- date_of_death uses TimeSpan for fuzzy temporal bounds when exact date unknown
- DeceasedStatus.temporal_extent uses TimeSpan for fuzzy temporal bounds when exact date unknown
see_also:
- https://www.w3.org/TR/vocab-org/#class-role
- https://schema.org/Role

View file

@ -27,10 +27,16 @@ imports:
- ../slots/follow_up_date
- ../slots/has_assessment_category
- ../slots/has_or_had_category_assessment
- ../slots/category_measurement
# - ../slots/category_measurement # ARCHIVED 2026-01-24: migrated to has_or_had_measurement + Measurement per Rule 53/56
- ../slots/has_or_had_measurement
- ./Measurement
- ./MeasurementType
- ./MeasurementTypes
- ../slots/has_or_had_measurement_type
- ../slots/has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18)
- ./Note # for has_or_had_note range
- ../slots/category_status
# - ../slots/category_status # ARCHIVED 2026-01-24: migrated to has_or_had_status + CategoryStatus per Rule 53/56
- ./CategoryStatus
# REMOVED 2026-01-22: ../slots/compliance_status - migrated to has_or_had_status + ComplianceStatus (Rule 53)
- ../slots/has_or_had_status
- ./ComplianceStatus
@ -369,20 +375,29 @@ classes:
'
slots:
- has_assessment_category
- category_measurement
- has_or_had_measurement # was: category_measurement - migrated per Rule 53/56 (2026-01-24)
- has_or_had_note # was: category_note - migrated per Rule 53/56 (2026-01-18)
- category_status
- has_or_had_status # was: category_status - migrated per Rule 53/56 (2026-01-24)
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
slot_usage:
has_assessment_category:
range: string
required: true
category_status:
range: StorageConditionStatusEnum
has_or_had_status: # was: category_status - migrated per Rule 53/56 (2026-01-24)
description: |
MIGRATED from category_status per Rule 53/56 (2026-01-24).
Status classification for this category assessment.
range: CategoryStatus
required: true
category_measurement:
range: string
inlined: true
has_or_had_measurement: # was: category_measurement - migrated per Rule 53/56 (2026-01-24)
description: |
MIGRATED from category_measurement per Rule 53/56 (2026-01-24).
Structured measurement with value, type, and unit.
range: Measurement
inlined: true
multivalued: true
has_or_had_note: # was: category_note - migrated per Rule 53/56 (2026-01-18)
description: |
MIGRATED from category_note per Rule 53/56 (2026-01-18).

View file

@ -11,15 +11,18 @@ imports:
- ../slots/has_or_had_type
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/deductibility_status # Centralized per Rule 48 (2026-01-17)
- ../slots/deductibility_conditions # Centralized per Rule 48 (2026-01-17)
# REMOVED 2026-01-23: deductibility_status migrated to has_or_had_type + TaxDeductibilityType
- ./TaxDeductibilityType # was: DeductibilityStatusEnum - migrated per Rule 53 (2026-01-23)
- ./TaxDeductibilityTypes # Concrete subclasses per Rule 0b
- ../slots/has_or_had_condition # was: deductibility_conditions - migrated per Rule 53 (2026-01-23)
- ./Condition # Range for has_or_had_condition
- ../slots/minimum_donation # Centralized per Rule 48 (2026-01-17)
- ../slots/jurisdiction
- ../slots/deductible_percentage
- ../slots/has_or_had_percentage # was: deductible_percentage - migrated per Rule 53 (2026-01-23)
- ./Percentage # Range for has_or_had_percentage
- ../slots/effective_from
- ../slots/effective_until
- ./Jurisdiction
- ../enums/DeductibilityStatusEnum # Enum moved to separate file per Rule 48 (2026-01-17)
default_prefix: hc
classes:
@ -47,11 +50,11 @@ classes:
```
TaxDeductibility
├── deductibility_status ──→ DeductibilityStatusEnum (FULLY_DEDUCTIBLE, etc.)
├── has_or_had_type ──→ TaxDeductibilityType (FullyDeductible, etc.)
├── jurisdiction ──→ Jurisdiction class
├── deductibility_conditions ──→ "Donation must exceed €25"
├── has_or_had_condition ──→ Condition (structured conditions)
└── effective_from / effective_until ──→ dates
```
@ -78,18 +81,27 @@ classes:
close_mappings:
- prov:Entity
slots:
- deductibility_status
- has_or_had_type # was: deductibility_status - migrated per Rule 53 (2026-01-23)
- jurisdiction
- deductibility_conditions
- deductible_percentage
- has_or_had_condition # was: deductibility_conditions - migrated per Rule 53 (2026-01-23)
- has_or_had_percentage # was: deductible_percentage - migrated per Rule 53 (2026-01-23)
- minimum_donation
- effective_from
- effective_until
slot_usage:
deductibility_status:
range: DeductibilityStatusEnum
has_or_had_type: # was: deductibility_status - migrated per Rule 53 (2026-01-23)
range: TaxDeductibilityType
required: true
description: The deductibility classification.
inlined: true
description: |
The deductibility classification type.
MIGRATED from deductibility_status per slot_fixes.yaml (Rule 53).
Uses TaxDeductibilityType class hierarchy per Rule 0b.
examples:
- value:
has_or_had_label: "Fully Deductible"
has_or_had_description: "100% of donation is tax-deductible"
description: Full deductibility type
jurisdiction:
range: Jurisdiction
inlined: true
@ -105,23 +117,47 @@ classes:
jurisdiction_code: UK
jurisdiction_name: United Kingdom
description: United Kingdom
deductibility_conditions:
range: string
has_or_had_condition: # was: deductibility_conditions - migrated per Rule 53 (2026-01-23)
range: Condition
inlined: true
multivalued: true
description: |
Conditions that must be met for tax deductibility.
MIGRATED from deductibility_conditions per slot_fixes.yaml (Rule 53).
Uses Condition class for structured condition representation.
examples:
- value: Donation must exceed €25 minimum
description: Dutch minimum threshold
- value: Must complete Gift Aid declaration
description: UK Gift Aid requirement
- value: Benefits received reduce deductible amount
description: Fair market value adjustment
deductible_percentage:
range: integer
- value:
has_or_had_type: TAX_THRESHOLD
has_or_had_description:
description_text: "Donation must exceed €25 minimum"
description_type: condition
description: Dutch minimum threshold condition
- value:
has_or_had_type: DECLARATION_REQUIRED
has_or_had_description:
description_text: "Must complete Gift Aid declaration"
description_type: condition
description: UK Gift Aid requirement condition
has_or_had_percentage: # was: deductible_percentage - migrated per Rule 53 (2026-01-23)
range: Percentage
inlined: true
description: |
Percentage of donation that is deductible (0-100).
MIGRATED from deductible_percentage per slot_fixes.yaml (Rule 53).
Uses Percentage class for structured representation.
For enhanced cultural deductions (e.g., 125%), use 100 here
and document the enhancement in regulated_by_scheme.
examples:
- value:
percentage_value: 100
percentage_display: "100%"
percentage_context: "deductibility"
description: Fully deductible (100%)
- value:
percentage_value: 70
percentage_display: "70%"
percentage_context: "deductibility"
description: Partially deductible (70%)
minimum_donation:
range: decimal
description: |
@ -137,35 +173,61 @@ classes:
- https://www.gov.uk/donating-to-charity/gift-aid
examples:
- value:
deductibility_status: FULLY_DEDUCTIBLE
has_or_had_type:
has_or_had_label: "Fully Deductible"
has_or_had_description: "100% of donation is tax-deductible"
jurisdiction:
jurisdiction_code: NL
jurisdiction_name: Netherlands
deductibility_conditions: Donation must exceed €25 minimum
deductible_percentage: 100
has_or_had_condition:
- has_or_had_type: TAX_THRESHOLD
has_or_had_description:
description_text: "Donation must exceed €25 minimum"
has_or_had_percentage:
percentage_value: 100
percentage_display: "100%"
description: Dutch ANBI fully deductible donation
- value:
deductibility_status: CONDITIONALLY_DEDUCTIBLE
has_or_had_type:
has_or_had_label: "Conditionally Deductible"
has_or_had_description: "Deductible if conditions are met"
jurisdiction:
jurisdiction_code: UK
jurisdiction_name: United Kingdom
deductibility_conditions: Donor must complete Gift Aid declaration
deductible_percentage: 100
has_or_had_condition:
- has_or_had_type: DECLARATION_REQUIRED
has_or_had_description:
description_text: "Donor must complete Gift Aid declaration"
has_or_had_percentage:
percentage_value: 100
percentage_display: "100%"
description: UK Gift Aid conditional deductibility
- value:
deductibility_status: PARTIALLY_DEDUCTIBLE
has_or_had_type:
has_or_had_label: "Partially Deductible"
has_or_had_description: "Only portion of donation is deductible"
jurisdiction:
jurisdiction_code: US
jurisdiction_name: United States
deductibility_conditions: Fair market value of benefits received is subtracted
deductible_percentage: 70
has_or_had_condition:
- has_or_had_type: FAIR_MARKET_VALUE
has_or_had_description:
description_text: "Fair market value of benefits received is subtracted"
has_or_had_percentage:
percentage_value: 70
percentage_display: "70%"
description: US gala ticket with partial deductibility
- value:
deductibility_status: NOT_DEDUCTIBLE
has_or_had_type:
has_or_had_label: "Not Deductible"
has_or_had_description: "No tax benefit for this donation"
jurisdiction:
jurisdiction_code: NL
jurisdiction_name: Netherlands
deductibility_conditions: Membership benefits exceed donation value
has_or_had_condition:
- has_or_had_type: BENEFIT_EXCEEDS_VALUE
has_or_had_description:
description_text: "Membership benefits exceed donation value"
description: Museum membership not tax-deductible
annotations:
specificity_score: 0.50

View file

@ -0,0 +1,80 @@
# TaxDeductibilityType - Abstract base class for tax deductibility status types
#
# Generation date: 2026-01-23
# Rule compliance: 0b (Type/Types pattern), 9 (enum-to-class promotion), 53 (slot_fixes.yaml)
#
# Replaces: DeductibilityStatusEnum
# Part of migration: deductibility_status → has_or_had_type + TaxDeductibilityType
id: https://nde.nl/ontology/hc/class/TaxDeductibilityType
name: tax_deductibility_type_class
title: Tax Deductibility 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
classes:
TaxDeductibilityType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for tax deductibility status classifications.
**Purpose**:
Provides type-safe classification of donation tax deductibility status,
replacing the previous DeductibilityStatusEnum.
**Rule 0b Compliance**:
This is the singular "Type" class (abstract base). Concrete subclasses
are defined in TaxDeductibilityTypes.yaml (plural "Types" file).
**Rule 9 Compliance**:
Promoted from enum to class hierarchy to enable:
- Richer metadata per classification
- Extensibility without schema changes
- Better ontology alignment (SKOS Concept)
**Subclasses** (in TaxDeductibilityTypes.yaml):
- FullyDeductible: 100% tax-deductible
- PartiallyDeductible: Portion is deductible
- NotDeductible: No tax benefit
- ConditionallyDeductible: Deductible if conditions met
- JurisdictionDependent: Varies by jurisdiction
- UnknownDeductibility: Status undetermined
exact_mappings:
- skos:Concept
close_mappings:
- schema:PropertyValue
slots:
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_label:
description: Human-readable label for the deductibility type.
range: string
required: true
has_or_had_description:
description: Detailed explanation of this deductibility classification.
range: string
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Tax deductibility applies to all heritage institution types.
specificity_score: 0.45
specificity_rationale: Moderately specific - relevant for donation/funding queries.
replaces_enum: DeductibilityStatusEnum
migration_date: "2026-01-23"

View file

@ -0,0 +1,151 @@
# TaxDeductibilityTypes - Concrete subclasses for tax deductibility status
#
# Generation date: 2026-01-23
# Rule compliance: 0b (Type/Types pattern), 9 (enum-to-class promotion), 53 (slot_fixes.yaml)
#
# Replaces: DeductibilityStatusEnum permissible values
# Part of migration: deductibility_status → has_or_had_type + TaxDeductibilityType
id: https://nde.nl/ontology/hc/class/TaxDeductibilityTypes
name: tax_deductibility_types_class
title: Tax Deductibility Types Classes
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
- ./TaxDeductibilityType
classes:
FullyDeductible:
is_a: TaxDeductibilityType
class_uri: hc:FullyDeductible
description: |
100% of the donation is tax-deductible.
The donor can deduct the full donation amount from their taxable income,
subject to any percentage limits set by their tax jurisdiction.
**Examples**:
- Donation to Dutch ANBI (Algemeen Nut Beogende Instelling)
- Donation to US 501(c)(3) organization
- Donation to UK registered charity
annotations:
replaces_enum_value: FULLY_DEDUCTIBLE
examples:
- value:
has_or_had_label: "Fully Deductible"
has_or_had_description: "100% of donation is tax-deductible"
description: Full deductibility classification
PartiallyDeductible:
is_a: TaxDeductibilityType
class_uri: hc:PartiallyDeductible
description: |
Only a portion of the donation is tax-deductible.
Common when donor receives benefits (e.g., gala dinner ticket)
where fair market value of benefits must be subtracted.
**Examples**:
- Gala ticket where meal/entertainment value is subtracted
- Auction item purchased above fair market value
annotations:
replaces_enum_value: PARTIALLY_DEDUCTIBLE
examples:
- value:
has_or_had_label: "Partially Deductible"
has_or_had_description: "Only portion of donation is deductible"
description: Partial deductibility classification
NotDeductible:
is_a: TaxDeductibilityType
class_uri: hc:NotDeductible
description: |
The donation provides no tax benefit to the donor.
**Examples**:
- Museum membership where benefits exceed donation value
- Donation to organization without tax-exempt status
- Political contributions in jurisdictions where not deductible
annotations:
replaces_enum_value: NOT_DEDUCTIBLE
examples:
- value:
has_or_had_label: "Not Deductible"
has_or_had_description: "No tax benefit for this donation"
description: Non-deductible classification
ConditionallyDeductible:
is_a: TaxDeductibilityType
class_uri: hc:ConditionallyDeductible
description: |
Tax-deductible only if specific conditions are met.
**Examples**:
- UK Gift Aid requiring donor declaration
- Donations requiring donor to itemize deductions
- Contributions requiring documentation threshold
annotations:
replaces_enum_value: CONDITIONALLY_DEDUCTIBLE
examples:
- value:
has_or_had_label: "Conditionally Deductible"
has_or_had_description: "Deductible if conditions are met"
description: Conditional deductibility classification
JurisdictionDependent:
is_a: TaxDeductibilityType
class_uri: hc:JurisdictionDependent
description: |
Deductibility varies based on the donor's tax jurisdiction.
Common for international donations where deductibility depends
on tax treaties and donor's country of residence.
**Examples**:
- US donor to European museum (may require US friends organization)
- Cross-border donations within EU
- Donations to organizations with multiple country registrations
annotations:
replaces_enum_value: JURISDICTION_DEPENDENT
examples:
- value:
has_or_had_label: "Jurisdiction Dependent"
has_or_had_description: "Varies by donor's tax jurisdiction"
description: Jurisdiction-dependent classification
UnknownDeductibility:
is_a: TaxDeductibilityType
class_uri: hc:UnknownDeductibility
description: |
Deductibility status has not been determined.
Used when:
- Organization's tax status is pending
- Information not yet collected
- Status requires legal review
annotations:
replaces_enum_value: UNKNOWN
examples:
- value:
has_or_had_label: "Unknown"
has_or_had_description: "Deductibility status not determined"
description: Unknown deductibility classification

View file

@ -15,4 +15,5 @@ slots:
Breakdown of heritage-relevant connections by type code.
Keys are single-letter GLAMORCUBESFIXPHDNT codes.
slot_uri: hc:connectionsByHeritageType
range: string
multivalued: true

View file

@ -0,0 +1,40 @@
id: https://nde.nl/ontology/hc/slot/degree_of_certainty
name: degree_of_certainty_slot
title: Degree of Certainty Slot
description: >-
The degree of certainty or precision associated with a value.
Used to indicate how specific or certain information is, particularly
for temporal data (dates) and other values that may have varying
levels of precision.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
default_prefix: hc
slots:
degree_of_certainty:
description: >-
The degree of certainty or precision for a value.
Used to qualify values that may have varying levels of specificity,
such as dates (day, month, year, decade, century) or confidence
levels for inferred data.
slot_uri: crm:P91_has_unit
range: string
close_mappings:
- crm:P91_has_unit
annotations:
specificity_score: 0.30
specificity_rationale: >-
Certainty/precision levels are broadly applicable across temporal,
quantitative, and qualitative contexts.
custodian_types: '["*"]'
custodian_types_rationale: >-
Degree of certainty applies universally to all custodian types.

View file

@ -28,3 +28,5 @@ slots:
'
slot_uri: prov:wasDerivedFrom
range: uriorcurie
multivalued: true

View file

@ -0,0 +1,49 @@
# has_or_had_carrier slot
# Generic slot for linking physical carriers to information carrier instances
#
# Following RiC-O naming convention (Rule 39): "hasOrHad..." pattern
# for temporal relationships in heritage domain.
#
# Created: 2026-01-23 per slot_fixes.yaml F24 (carrier_type migration)
# Rule compliance: 38, 39, 42, 53
id: https://nde.nl/ontology/hc/slot/has_or_had_carrier
name: has_or_had_carrier_slot
title: Has Or Had Carrier Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
bf: http://id.loc.gov/ontologies/bibframe/
rda: http://rdaregistry.info/termList/
crm: http://www.cidoc-crm.org/cidoc-crm/
dcterms: http://purl.org/dc/terms/
default_prefix: hc
imports:
- linkml:types
slots:
has_or_had_carrier:
description: >-
The physical carrier on which information is recorded.
Links information-bearing objects to their physical carrier characteristics
including material type, format, and physical properties.
MIGRATED from carrier_type (2026-01-23) per Rule 53.
Replaces direct enum reference with structured Carrier class
for richer metadata and Type/Types pattern compliance (Rule 0b).
slot_uri: bf:carrier
range: Carrier
multivalued: false
inlined: true
exact_mappings:
- bf:carrier
- rda:P60048
close_mappings:
- crm:P46_is_composed_of
annotations:
custodian_types: '["L", "A", "R", "M"]'
custodian_types_rationale: 'Primarily used by libraries, archives, research centers, and museums with documentary collections'

View file

@ -0,0 +1,38 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_image
name: has_or_had_image_slot
title: Has or Had Image Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
foaf: http://xmlns.com/foaf/0.1/
imports:
- linkml:types
default_range: string
slots:
has_or_had_image:
slot_uri: schema:image
description: >-
Links to an Image representing visual content.
**USE CASES**:
- Card thumbnail images
- Collection preview images
- Institutional logos
- Digital object representations
**ONTOLOGY ALIGNMENT**:
- slot_uri: schema:image (primary)
- Also maps to foaf:depiction
MIGRATED 2026-01-22: Created per slot_fixes.yaml revision for card_image_url.
range: Image
inlined: true
multivalued: true
exact_mappings:
- schema:image
- foaf:depiction
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Images are universal across all heritage contexts

View file

@ -0,0 +1,34 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_measurement
name: has_or_had_measurement_slot
title: Has or Had Measurement Slot
description: |
Slot file for has_or_had_measurement following Rule 53 (slot_fixes.yaml).
Links an entity to its measurement observations.
Created per slot_fixes.yaml revision for category_measurement migration.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
sosa: http://www.w3.org/ns/sosa/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
default_prefix: hc
slots:
has_or_had_measurement:
slot_uri: sosa:hasMember
description: |
A measurement observation associated with this entity.
Follows RiC-O temporal naming convention (Rule 39) to indicate the
relationship may be current or historical.
Replaces category_measurement (simple string) with structured
Measurement class per Rule 53/56.
range: uriorcurie
multivalued: true
required: false
exact_mappings:
- sosa:hasMember
close_mappings:
- crm:P39_measured

View file

@ -0,0 +1,31 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_measurement_type
name: has_or_had_measurement_type_slot
title: Has or Had Measurement Type Slot
description: |
Slot file for has_or_had_measurement_type following Rule 53 (slot_fixes.yaml).
Links a measurement to its type classification (temperature, humidity, etc.).
Created per slot_fixes.yaml revision for category_measurement migration.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
default_prefix: hc
slots:
has_or_had_measurement_type:
slot_uri: crm:P2_has_type
description: |
The type or category of a measurement (e.g., temperature, humidity,
light level, air quality).
Follows RiC-O temporal naming convention (Rule 39) to indicate the
relationship may be current or historical.
range: uriorcurie
required: false
exact_mappings:
- crm:P2_has_type
close_mappings:
- qudt:quantityKind

View file

@ -0,0 +1,73 @@
# is_or_was_decommissioned_at slot
# Timestamp when an entity was or will be decommissioned
#
# Generation date: 2026-01-23
# Rule compliance: 39 (RiC-O temporal naming), 53 (slot_fixes.yaml)
#
# Replaces: decommission_date
# Target class: Timestamp
id: https://nde.nl/ontology/hc/slot/is_or_was_decommissioned_at
name: is_or_was_decommissioned_at_slot
title: Is Or Was Decommissioned At Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
prov: http://www.w3.org/ns/prov#
dcterms: http://purl.org/dc/terms/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
slots:
is_or_was_decommissioned_at:
description: |
Timestamp when an entity was or will be decommissioned.
**Purpose**:
Records the date/time when an IoT device, system, or other entity
was taken out of service or is scheduled for decommissioning.
NULL if still operational.
**Temporal Semantics** (Rule 39 - RiC-O style):
The "is_or_was_" prefix indicates this timestamp applies to both:
- Past events: device was decommissioned on this date
- Future events: device is scheduled to be decommissioned
**Use Cases**:
- IoT device lifecycle management
- Equipment retirement tracking
- System sunset planning
- Infrastructure decommissioning records
**Replaces**: decommission_date (per slot_fixes.yaml)
range: Timestamp
slot_uri: prov:invalidatedAtTime
exact_mappings:
- prov:invalidatedAtTime
close_mappings:
- schema:expires
- dcterms:date
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Generic timestamp applicable to any decommissionable entity.
specificity_score: 0.45
specificity_rationale: Specific to lifecycle management but applicable across entity types.
examples:
- value:
has_or_had_timestamp: "2028-12-31"
has_or_had_precision: day
description: Planned decommission date for IoT device
- value:
has_or_had_timestamp: "2024-06-15"
has_or_had_precision: day
description: Actual decommission date when device was retired

View file

@ -0,0 +1,61 @@
# is_or_was_identified_through - Identification event slot
#
# Created per slot_fixes.yaml migration for: date_identified
# Creation date: 2026-01-23
# Rule compliance: 39 (RiC-O naming), 50 (ontology mapping), 53 (generic slot reuse)
id: https://nde.nl/ontology/hc/slot/is_or_was_identified_through
name: is_or_was_identified_through_slot
title: Is Or Was Identified Through Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dwc: http://rs.tdwg.org/dwc/terms/
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
slots:
is_or_was_identified_through:
slot_uri: hc:isOrWasIdentifiedThrough
description: |
Identification event that determined the identity of a specimen or object.
**SEMANTIC PATTERN**:
This slot follows the RiC-O temporal predicate pattern (is_or_was_*)
to indicate that identification is a historical event that may be
superseded by later identifications.
**REPLACES**:
- `date_identified` - Simple date string for identification
**RANGE**: IdentificationEvent
Structured event class capturing who, when, where, and how
the identification was made.
**ONTOLOGY ALIGNMENT**:
- **Close**: `dwc:dateIdentified` - Darwin Core identification date
- **Close**: `prov:wasGeneratedBy` - PROV-O activity
range: IdentificationEvent
inlined: true
close_mappings:
- dwc:dateIdentified
- prov:wasGeneratedBy
examples:
- value:
temporal_extent:
begin_of_the_begin: "2023-05-15"
identified_by:
agent_name: "Dr. J. Smith"
description: Specimen identification event
annotations:
custodian_types: '["M", "R", "B"]'
custodian_types_rationale: "Identification events primarily relevant to museums, research centers, and botanical/zoological collections."

View file

@ -0,0 +1,29 @@
id: https://nde.nl/ontology/hc/slot/is_or_was_published
name: is_or_was_published_slot
title: Is Or Was Published Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
default_prefix: hc
slots:
is_or_was_published:
description: >-
Links an information carrier or creative work to its publication event(s).
Follows RiC-O temporal naming convention (Rule 39) to indicate the publication
may be historical. The Publication class captures date via temporal_extent,
publisher, place of publication, and edition information.
range: Publication
slot_uri: schema:publication
multivalued: true
inlined: true
inlined_as_list: true
exact_mappings:
- schema:datePublished
annotations:
replaces: date_of_publication
migration_date: '2026-01-23'
migration_rule: Rule 53 - No bespoke slots

View file

@ -22,16 +22,12 @@
"capacity_type.yaml",
"has_or_had_main_part.yaml",
"has_or_had_caption.yaml",
"card_image_url.yaml",
"card_title.yaml",
"card_title_en.yaml",
"card_url.yaml",
"carrier_type.yaml",
"carries_information.yaml",
"catalog_raisonne_number.yaml",
"catalog_system.yaml",
"category_measurement.yaml",
"category_status.yaml",
"has_or_had_image.yaml",
"has_or_had_carrier.yaml",
"uses_or_used.yaml",
"has_or_had_measurement.yaml",
"has_or_had_measurement_type.yaml",
"catering_price_range.yaml",
"catering_type.yaml",
"cessation_observed_in.yaml",
@ -189,16 +185,16 @@
"date_identified.yaml",
"date_of_death.yaml",
"date_of_publication.yaml",
"date_precision.yaml",
"__ARCHIVED_20260123__date_precision.yaml",
"__ARCHIVED_20260123__date_retrieved.yaml",
"__ARCHIVED_20260123__de.yaml",
"dealer_name.yaml",
"death_place.yaml",
"deceased.yaml",
"decommission_date.yaml",
"deductibility_conditions.yaml",
"deductibility_status.yaml",
"deductible_percentage.yaml",
"__ARCHIVED_20260123__deceased.yaml",
"__ARCHIVED_20260123__decommission_date.yaml",
"__ARCHIVED_20260123__deductibility_conditions.yaml",
"__ARCHIVED_20260123__deductibility_status.yaml",
"__ARCHIVED_20260123__deductible_percentage.yaml",
"deduction_percentage.yaml",
"default_access_policy.yaml",
"default_audio_language.yaml",
@ -207,6 +203,7 @@
"defined_by_standard.yaml",
"definition.yaml",
"degree_name.yaml",
"degree_of_certainty.yaml",
"deliverable.yaml",
"departement_code.yaml",
"departement_name.yaml",
@ -1066,6 +1063,7 @@
"is_or_was_collection_of.yaml",
"is_or_was_created_through.yaml",
"is_or_was_derived_from.yaml",
"is_or_was_decommissioned_at.yaml",
"is_or_was_encompassed_by.yaml",
"is_or_was_equivalent_to.yaml",
"is_or_was_extracted_using.yaml",

View file

@ -16,3 +16,4 @@ slots:
Aggregated statistics about a connection network.
Contains summary metrics like total count, heritage-relevant percentage, etc.
slot_uri: schema:mainEntity
range: string

View file

@ -0,0 +1,45 @@
id: https://nde.nl/ontology/hc/slot/occurs_or_occurred_at
name: occurs_or_occurred_at_slot
title: Occurs Or Occurred At Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
crm: http://www.cidoc-crm.org/cidoc-crm/
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
default_prefix: hc
slots:
occurs_or_occurred_at:
description: >-
The place where an event occurred. Follows RiC-O temporal naming convention
(Rule 39) to indicate the event may be historical.
**Semantic Distinction**:
- `occurs_or_occurred_at` is for **events** (death event, birth event, ceremony)
- `has_or_had_location` is for **entities** (organization location, object location)
**Ontological Alignment**:
- Primary: `crm:P7_took_place_at` - CIDOC-CRM event location
- Close: `prov:atLocation` - PROV-O activity location
- Close: `schema:location` - Schema.org generic location
**Use Cases**:
- Death events (DeceasedStatus)
- Birth events
- Organizational change events
- Provenance events
range: Place
slot_uri: crm:P7_took_place_at
multivalued: false
inlined: true
exact_mappings:
- crm:P7_took_place_at
close_mappings:
- prov:atLocation
- schema:location
annotations:
replaces: death_place
migration_date: '2026-01-24'
migration_rule: Rule 53 - No bespoke slots

View file

@ -22,3 +22,4 @@ slots:
'
slot_uri: dcterms:references
range: uriorcurie

View file

@ -0,0 +1,35 @@
id: https://nde.nl/ontology/hc/slot/uses_or_used
name: uses_or_used_slot
title: Uses or Used Slot
description: |
Generic temporal slot for systems, tools, software, or methodologies used by an entity.
Follows RiC-O temporal naming convention (Rule 39) to indicate relationship may be
current or historical.
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
default_prefix: hc
slots:
uses_or_used:
slot_uri: prov:used
description: |
A system, tool, software, methodology, or resource that the entity uses or used.
This is a generic temporal relationship following RiC-O naming conventions.
Examples:
- Library catalog systems (ALMA, Koha, Sierra)
- Collection management systems (Adlib, TMS, CollectiveAccess)
- Digital preservation systems (Archivematica, Preservica)
- Metadata standards (Dublin Core, MARC21, EAD)
range: uriorcurie
multivalued: true
required: false
exact_mappings:
- prov:used
close_mappings:
- schema:usesDevice
- schema:softwareApplication

View file

@ -1438,7 +1438,9 @@ class LinkMLSchemaService {
* - Classes using slots with this range (computed reverse lookup)
*/
async getClassExportInfo(className: string): Promise<ClassExportInfo> {
console.log(`[getClassExportInfo] Starting for class: ${className}`);
await this.initialize();
console.log(`[getClassExportInfo] Initialized. classSchemas size: ${this.classSchemas.size}, slotSchemas size: ${this.slotSchemas.size}`);
const exportInfo: ClassExportInfo = {
className,
@ -1451,7 +1453,9 @@ class LinkMLSchemaService {
};
// Scan all classes for references to this class
let classesScanned = 0;
for (const [otherClassName, schema] of this.classSchemas.entries()) {
classesScanned++;
if (otherClassName === className) continue; // Skip self
const classDef = schema.classes?.[otherClassName];
@ -1470,7 +1474,7 @@ class LinkMLSchemaService {
// Check slot_usage for references to this class as range
if (classDef.slot_usage) {
for (const [_slotName, slotUsage] of Object.entries(classDef.slot_usage)) {
if (slotUsage.range === className) {
if (slotUsage && slotUsage.range === className) {
if (!exportInfo.classesReferencingInSlotUsage.includes(otherClassName)) {
exportInfo.classesReferencingInSlotUsage.push(otherClassName);
}
@ -1516,6 +1520,15 @@ class LinkMLSchemaService {
);
exportInfo.linkedCollectionTypes.sort();
console.log(`[getClassExportInfo] Completed for ${className}:`, {
subclasses: exportInfo.subclasses.length,
mixinUsers: exportInfo.mixinUsers.length,
slotsWithThisRange: exportInfo.slotsWithThisRange.length,
classesReferencingInSlotUsage: exportInfo.classesReferencingInSlotUsage.length,
classesUsingSlotWithThisRange: exportInfo.classesUsingSlotWithThisRange.length,
linkedCollectionTypes: exportInfo.linkedCollectionTypes.length,
});
return exportInfo;
}
@ -1740,7 +1753,7 @@ class LinkMLSchemaService {
if (classDef.slot_usage) {
debugLog(`[LinkMLSchemaService] Checking ${Object.keys(classDef.slot_usage).length} slot_usage entries for ${className}`);
for (const [slotName, slotUsage] of Object.entries(classDef.slot_usage)) {
if (slotUsage.range) {
if (slotUsage && slotUsage.range) {
// Check if range is a class or enum
const isClass = this.classSchemas.has(slotUsage.range);
const isEnum = this.enumSchemas.has(slotUsage.range);
@ -2018,7 +2031,7 @@ class LinkMLSchemaService {
// Slot usage ranges
if (classDef.slot_usage) {
for (const [_slotName, slotUsage] of Object.entries(classDef.slot_usage)) {
if (slotUsage.range && !primitiveTypes.has(slotUsage.range.toLowerCase())) {
if (slotUsage && slotUsage.range && !primitiveTypes.has(slotUsage.range.toLowerCase())) {
if (!slotRanges.has(slotUsage.range)) {
classCount.importCount += 1;
}

View file

@ -1478,52 +1478,69 @@ const LinkMLViewerPage: React.FC = () => {
// Toggle UML diagram section for a class
// Loads both exports AND imports data since UML diagram can show both directions
const toggleUML = useCallback(async (className: string) => {
console.log(`[toggleUML] Called for class: ${className}`);
console.log(`[toggleUML] State: isSchemaServiceComplete=${isSchemaServiceComplete}, hasExports=${!!classExports[className]}, hasImports=${!!classImports[className]}`);
console.log(`[toggleUML] Loading state: loadingExports=${loadingExports.has(className)}, loadingImports=${loadingImports.has(className)}`);
setExpandedUML(prev => {
const next = new Set(prev);
if (next.has(className)) {
next.delete(className);
console.log(`[toggleUML] Collapsing UML for ${className}`);
} else {
next.add(className);
console.log(`[toggleUML] Expanding UML for ${className}`);
}
return next;
});
// Load exports data if not already loaded (for "Show Exports" checkbox)
if (!classExports[className] && !loadingExports.has(className) && isSchemaServiceComplete) {
console.log(`[toggleUML] Starting to load exports for ${className}`);
setLoadingExports(prev => new Set(prev).add(className));
try {
const exportInfo = await linkmlSchemaService.getClassExportInfo(className);
console.log(`[toggleUML] Loaded exports for ${className}:`, exportInfo);
setClassExports(prev => ({ ...prev, [className]: exportInfo }));
} catch (error) {
console.error(`Error loading export info for ${className}:`, error);
console.error(`[toggleUML] Error loading export info for ${className}:`, error);
} finally {
setLoadingExports(prev => {
const next = new Set(prev);
next.delete(className);
return next;
});
console.log(`[toggleUML] Finished loading exports for ${className}`);
}
} else {
console.log(`[toggleUML] Skipping exports load: hasExports=${!!classExports[className]}, isLoading=${loadingExports.has(className)}, serviceComplete=${isSchemaServiceComplete}`);
}
// Load imports data if not already loaded (for "Show Imports" checkbox)
if (!classImports[className] && !loadingImports.has(className) && isSchemaServiceComplete) {
console.log(`[toggleUML] Starting to load imports for ${className}`);
setLoadingImports(prev => new Set(prev).add(className));
try {
const importInfo = await linkmlSchemaService.getClassImportInfo(className);
console.log(`[toggleUML] Loaded imports for ${className}:`, importInfo);
setClassImports(prev => ({ ...prev, [className]: importInfo }));
// Also load primitive slots for UML attributes
const primitiveSlots = await linkmlSchemaService.getClassPrimitiveSlots(className);
console.log(`[toggleUML] Loaded primitive slots for ${className}:`, primitiveSlots);
setClassPrimitiveSlots(prev => ({ ...prev, [className]: primitiveSlots }));
} catch (error) {
console.error(`Error loading import info for ${className}:`, error);
console.error(`[toggleUML] Error loading import info for ${className}:`, error);
} finally {
setLoadingImports(prev => {
const next = new Set(prev);
next.delete(className);
return next;
});
console.log(`[toggleUML] Finished loading imports for ${className}`);
}
} else {
console.log(`[toggleUML] Skipping imports load: hasImports=${!!classImports[className]}, isLoading=${loadingImports.has(className)}, serviceComplete=${isSchemaServiceComplete}`);
}
}, [classExports, classImports, loadingExports, loadingImports, isSchemaServiceComplete]);

View file

@ -1,12 +1,12 @@
{
"generated": "2026-01-24T12:14:38.489Z",
"generated": "2026-01-24T16:41:07.363Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 3035,
"totalFiles": 3044,
"categoryCounts": {
"main": 4,
"class": 982,
"enum": 155,
"slot": 1890,
"class": 1004,
"enum": 154,
"slot": 1878,
"module": 4
},
"categories": [
@ -325,6 +325,11 @@
"path": "modules/classes/ArtArchiveRecordSetTypes.yaml",
"category": "class"
},
{
"name": "ArtDealer",
"path": "modules/classes/ArtDealer.yaml",
"category": "class"
},
{
"name": "ArticlesOfAssociation",
"path": "modules/classes/ArticlesOfAssociation.yaml",
@ -610,6 +615,21 @@
"path": "modules/classes/CareerEntry.yaml",
"category": "class"
},
{
"name": "Carrier",
"path": "modules/classes/Carrier.yaml",
"category": "class"
},
{
"name": "CarrierType",
"path": "modules/classes/CarrierType.yaml",
"category": "class"
},
{
"name": "CarrierTypes",
"path": "modules/classes/CarrierTypes.yaml",
"category": "class"
},
{
"name": "CastCollection",
"path": "modules/classes/CastCollection.yaml",
@ -620,11 +640,31 @@
"path": "modules/classes/CatalogingStandard.yaml",
"category": "class"
},
{
"name": "CatalogSystem",
"path": "modules/classes/CatalogSystem.yaml",
"category": "class"
},
{
"name": "CatalogSystemType",
"path": "modules/classes/CatalogSystemType.yaml",
"category": "class"
},
{
"name": "CatalogSystemTypes",
"path": "modules/classes/CatalogSystemTypes.yaml",
"category": "class"
},
{
"name": "Category",
"path": "modules/classes/Category.yaml",
"category": "class"
},
{
"name": "CategoryStatus",
"path": "modules/classes/CategoryStatus.yaml",
"category": "class"
},
{
"name": "CateringPlace",
"path": "modules/classes/CateringPlace.yaml",
@ -1110,6 +1150,16 @@
"path": "modules/classes/Content.yaml",
"category": "class"
},
{
"name": "ContentType",
"path": "modules/classes/ContentType.yaml",
"category": "class"
},
{
"name": "ContentTypes",
"path": "modules/classes/ContentTypes.yaml",
"category": "class"
},
{
"name": "ContributingAgency",
"path": "modules/classes/ContributingAgency.yaml",
@ -1155,6 +1205,11 @@
"path": "modules/classes/CourtRecords.yaml",
"category": "class"
},
{
"name": "CreationEvent",
"path": "modules/classes/CreationEvent.yaml",
"category": "class"
},
{
"name": "CulturalInstitution",
"path": "modules/classes/CulturalInstitution.yaml",
@ -1330,6 +1385,11 @@
"path": "modules/classes/DataTierSummary.yaml",
"category": "class"
},
{
"name": "DatePrecision",
"path": "modules/classes/DatePrecision.yaml",
"category": "class"
},
{
"name": "DeceasedStatus",
"path": "modules/classes/DeceasedStatus.yaml",
@ -2075,16 +2135,36 @@
"path": "modules/classes/IconographicArchivesRecordSetTypes.yaml",
"category": "class"
},
{
"name": "IdentificationEvent",
"path": "modules/classes/IdentificationEvent.yaml",
"category": "class"
},
{
"name": "Identifier",
"path": "modules/classes/Identifier.yaml",
"category": "class"
},
{
"name": "IdentifierType",
"path": "modules/classes/IdentifierType.yaml",
"category": "class"
},
{
"name": "IdentifierTypes",
"path": "modules/classes/IdentifierTypes.yaml",
"category": "class"
},
{
"name": "IIPImageServer",
"path": "modules/classes/IIPImageServer.yaml",
"category": "class"
},
{
"name": "Image",
"path": "modules/classes/Image.yaml",
"category": "class"
},
{
"name": "Index",
"path": "modules/classes/Index.yaml",
@ -2470,6 +2550,21 @@
"path": "modules/classes/MaterialTypes.yaml",
"category": "class"
},
{
"name": "Measurement",
"path": "modules/classes/Measurement.yaml",
"category": "class"
},
{
"name": "MeasurementType",
"path": "modules/classes/MeasurementType.yaml",
"category": "class"
},
{
"name": "MeasurementTypes",
"path": "modules/classes/MeasurementTypes.yaml",
"category": "class"
},
{
"name": "MeasurementUnit",
"path": "modules/classes/MeasurementUnit.yaml",
@ -3310,6 +3405,11 @@
"path": "modules/classes/PublicArchivesInFranceRecordSetTypes.yaml",
"category": "class"
},
{
"name": "Publication",
"path": "modules/classes/Publication.yaml",
"category": "class"
},
{
"name": "PublicationEntry",
"path": "modules/classes/PublicationEntry.yaml",
@ -4065,6 +4165,16 @@
"path": "modules/classes/TaxDeductibility.yaml",
"category": "class"
},
{
"name": "TaxDeductibilityType",
"path": "modules/classes/TaxDeductibilityType.yaml",
"category": "class"
},
{
"name": "TaxDeductibilityTypes",
"path": "modules/classes/TaxDeductibilityTypes.yaml",
"category": "class"
},
{
"name": "Taxon",
"path": "modules/classes/Taxon.yaml",
@ -5126,11 +5236,6 @@
"path": "modules/enums/DatePrecisionEnum.yaml",
"category": "enum"
},
{
"name": "DeductibilityStatusEnum",
"path": "modules/enums/DeductibilityStatusEnum.yaml",
"category": "enum"
},
{
"name": "DetectionLevelEnum",
"path": "modules/enums/DetectionLevelEnum.yaml",
@ -5797,56 +5902,6 @@
"path": "modules/slots/begin_of_the_end.yaml",
"category": "slot"
},
{
"name": "card_image_url",
"path": "modules/slots/card_image_url.yaml",
"category": "slot"
},
{
"name": "card_title",
"path": "modules/slots/card_title.yaml",
"category": "slot"
},
{
"name": "card_title_en",
"path": "modules/slots/card_title_en.yaml",
"category": "slot"
},
{
"name": "card_url",
"path": "modules/slots/card_url.yaml",
"category": "slot"
},
{
"name": "carrier_type",
"path": "modules/slots/carrier_type.yaml",
"category": "slot"
},
{
"name": "carries_information",
"path": "modules/slots/carries_information.yaml",
"category": "slot"
},
{
"name": "catalog_raisonne_number",
"path": "modules/slots/catalog_raisonne_number.yaml",
"category": "slot"
},
{
"name": "catalog_system",
"path": "modules/slots/catalog_system.yaml",
"category": "slot"
},
{
"name": "category_measurement",
"path": "modules/slots/category_measurement.yaml",
"category": "slot"
},
{
"name": "category_status",
"path": "modules/slots/category_status.yaml",
"category": "slot"
},
{
"name": "catering_price_range",
"path": "modules/slots/catering_price_range.yaml",
@ -6527,66 +6582,6 @@
"path": "modules/slots/date.yaml",
"category": "slot"
},
{
"name": "date_created",
"path": "modules/slots/date_created.yaml",
"category": "slot"
},
{
"name": "date_identified",
"path": "modules/slots/date_identified.yaml",
"category": "slot"
},
{
"name": "date_of_death",
"path": "modules/slots/date_of_death.yaml",
"category": "slot"
},
{
"name": "date_of_publication",
"path": "modules/slots/date_of_publication.yaml",
"category": "slot"
},
{
"name": "date_precision",
"path": "modules/slots/date_precision.yaml",
"category": "slot"
},
{
"name": "dealer_name",
"path": "modules/slots/dealer_name.yaml",
"category": "slot"
},
{
"name": "death_place",
"path": "modules/slots/death_place.yaml",
"category": "slot"
},
{
"name": "deceased",
"path": "modules/slots/deceased.yaml",
"category": "slot"
},
{
"name": "decommission_date",
"path": "modules/slots/decommission_date.yaml",
"category": "slot"
},
{
"name": "deductibility_conditions",
"path": "modules/slots/deductibility_conditions.yaml",
"category": "slot"
},
{
"name": "deductibility_status",
"path": "modules/slots/deductibility_status.yaml",
"category": "slot"
},
{
"name": "deductible_percentage",
"path": "modules/slots/deductible_percentage.yaml",
"category": "slot"
},
{
"name": "deduction_percentage",
"path": "modules/slots/deduction_percentage.yaml",
@ -6627,6 +6622,11 @@
"path": "modules/slots/degree_name.yaml",
"category": "slot"
},
{
"name": "degree_of_certainty",
"path": "modules/slots/degree_of_certainty.yaml",
"category": "slot"
},
{
"name": "deliverable",
"path": "modules/slots/deliverable.yaml",
@ -9037,6 +9037,11 @@
"path": "modules/slots/has_or_had_caption.yaml",
"category": "slot"
},
{
"name": "has_or_had_carrier",
"path": "modules/slots/has_or_had_carrier.yaml",
"category": "slot"
},
{
"name": "has_or_had_category",
"path": "modules/slots/has_or_had_category.yaml",
@ -9387,6 +9392,11 @@
"path": "modules/slots/has_or_had_identify.yaml",
"category": "slot"
},
{
"name": "has_or_had_image",
"path": "modules/slots/has_or_had_image.yaml",
"category": "slot"
},
{
"name": "has_or_had_implementing_organisation",
"path": "modules/slots/has_or_had_implementing_organisation.yaml",
@ -9482,6 +9492,16 @@
"path": "modules/slots/has_or_had_manages_collection.yaml",
"category": "slot"
},
{
"name": "has_or_had_measurement",
"path": "modules/slots/has_or_had_measurement.yaml",
"category": "slot"
},
{
"name": "has_or_had_measurement_type",
"path": "modules/slots/has_or_had_measurement_type.yaml",
"category": "slot"
},
{
"name": "has_or_had_measurement_unit",
"path": "modules/slots/has_or_had_measurement_unit.yaml",
@ -10952,6 +10972,11 @@
"path": "modules/slots/is_or_was_created_through.yaml",
"category": "slot"
},
{
"name": "is_or_was_decommissioned_at",
"path": "modules/slots/is_or_was_decommissioned_at.yaml",
"category": "slot"
},
{
"name": "is_or_was_derived_from",
"path": "modules/slots/is_or_was_derived_from.yaml",
@ -10982,6 +11007,11 @@
"path": "modules/slots/is_or_was_generated_by.yaml",
"category": "slot"
},
{
"name": "is_or_was_identified_through",
"path": "modules/slots/is_or_was_identified_through.yaml",
"category": "slot"
},
{
"name": "is_or_was_included_in",
"path": "modules/slots/is_or_was_included_in.yaml",
@ -11047,6 +11077,11 @@
"path": "modules/slots/is_or_was_platform_of.yaml",
"category": "slot"
},
{
"name": "is_or_was_published",
"path": "modules/slots/is_or_was_published.yaml",
"category": "slot"
},
{
"name": "is_or_was_published_at",
"path": "modules/slots/is_or_was_published_at.yaml",
@ -12462,6 +12497,11 @@
"path": "modules/slots/occupation.yaml",
"category": "slot"
},
{
"name": "occurs_or_occurred_at",
"path": "modules/slots/occurs_or_occurred_at.yaml",
"category": "slot"
},
{
"name": "oclc_number",
"path": "modules/slots/oclc_number.yaml",
@ -15127,6 +15167,11 @@
"path": "modules/slots/use_cases.yaml",
"category": "slot"
},
{
"name": "uses_or_used",
"path": "modules/slots/uses_or_used.yaml",
"category": "slot"
},
{
"name": "uses_or_used_technique",
"path": "modules/slots/uses_or_used_technique.yaml",

View file

@ -0,0 +1,111 @@
# ArtDealer class
# Created per slot_fixes.yaml revision for: dealer_name
#
# MIGRATION NOTE (2026-01-24): Created as part of dealer_name migration per Rule 53.
# Provides structured representation of art dealers in provenance events.
id: https://nde.nl/ontology/hc/class/ArtDealer
name: art_dealer_class
title: Art Dealer Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
foaf: http://xmlns.com/foaf/0.1/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../slots/has_or_had_name
- ./Name
default_prefix: hc
classes:
ArtDealer:
class_uri: crm:E39_Actor
description: |
An art dealer or gallery involved in the sale or transfer of art objects.
**MIGRATION NOTE** (2026-01-24):
Created per slot_fixes.yaml migration from `dealer_name` string
to structured ArtDealer class per Rule 53.
**Purpose**:
Provides structured representation for art dealers including:
- The dealer's name (via has_or_had_name)
- Future extensibility for dealer location, active dates, etc.
**Ontological Alignment**:
- **Primary** (`class_uri`): `crm:E39_Actor` - CIDOC-CRM Actor class
- **Close**: `foaf:Agent`, `schema:Organization` - Agent/organization classes
**Use Cases**:
- Provenance events involving art sales (DEALER_SALE type)
- Tracking art market participants in heritage provenance research
- Linking objects to dealers who handled them
**Pattern**:
```yaml
is_or_was_associated_with:
- has_or_had_name:
has_or_had_label: "Duveen Brothers"
```
slots:
- has_or_had_name
slot_usage:
has_or_had_name:
description: The name of the art dealer or gallery.
range: Name
inlined: true
required: false
examples:
- value:
has_or_had_label: "Duveen Brothers"
description: Famous art dealer firm
exact_mappings:
- crm:E39_Actor
close_mappings:
- foaf:Agent
- schema:Organization
annotations:
custodian_types: '["M", "G"]'
custodian_types_rationale: Art dealers primarily relevant to museums and galleries with provenance research.
custodian_types_primary: M
specificity_score: 0.75
specificity_rationale: >-
Highly specific to art market provenance research - primarily used in
museum and gallery contexts for tracking object ownership history.
template_specificity:
collection_discovery: 0.80
museum_search: 0.85
general_heritage: 0.60
migration_info:
source_slot: dealer_name
migration_date: "2026-01-24"
rule: "Rule 53"
comments:
- "Structured art dealer representation for provenance events"
- "Replaces simple string-valued dealer_name slot"
- "Extensible for dealer location, active dates, gallery affiliation"
- "Created 2026-01-24 from dealer_name migration (Rule 53)"
examples:
- value:
has_or_had_name:
has_or_had_label: "Duveen Brothers"
description: Famous art dealer firm (early 20th century)
- value:
has_or_had_name:
has_or_had_label: "Paul Cassirer"
description: German art dealer (Impressionism specialist)
- value:
has_or_had_name:
has_or_had_label: "Jacques Goudstikker"
description: Dutch art dealer (notable Nazi-looted art case)

View file

@ -0,0 +1,89 @@
id: https://nde.nl/ontology/hc/class/CatalogSystem
name: CatalogSystem
title: Catalog System
description: |
Represents an integrated library system (ILS), library management system (LMS),
or catalog system used by heritage institutions for managing collections.
This class captures metadata about catalog/management systems including:
- System name and vendor
- System type (ILS, LMS, DAM, CMS, etc.)
- Temporal usage (when adopted, when deprecated)
Created per slot_fixes.yaml revision for catalog_system migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_type
- ../slots/has_or_had_description
- ../slots/has_or_had_url
- ./CatalogSystemType
default_prefix: hc
classes:
CatalogSystem:
class_uri: schema:SoftwareApplication
description: |
An integrated library system, catalog system, or collection management system
used by a heritage institution.
Common systems include:
- ALMA (Ex Libris) - Cloud-based library services platform
- Koha - Open-source ILS
- Sierra (Innovative Interfaces) - ILS for academic/public libraries
- Aleph (Ex Libris) - Legacy ILS
- FOLIO - Open-source library platform
- OCLC WorldShare - Cloud-based library management
- Adlib/Axiell Collections - Museum collection management
- The Museum System (TMS) - Art museum collections
- CollectiveAccess - Open-source collections management
slots:
- has_or_had_name
- has_or_had_type
- has_or_had_description
- has_or_had_url
slot_usage:
has_or_had_name:
description: The name of the catalog or collection management system.
required: true
examples:
- value: ALMA
- value: Koha
- value: Sierra
- value: Adlib
has_or_had_type:
description: The type of catalog system (ILS, CMS, DAM, etc.).
range: CatalogSystemType
inlined: true
has_or_had_url:
description: URL to the system vendor or documentation.
exact_mappings:
- schema:SoftwareApplication
close_mappings:
- prov:SoftwareAgent
examples:
- value:
has_or_had_name: ALMA
has_or_had_type:
has_or_had_name: Integrated Library System
has_or_had_description: Ex Libris ALMA cloud-based library services platform
has_or_had_url: https://exlibrisgroup.com/products/alma-library-services-platform/
description: Ex Libris ALMA library platform
- value:
has_or_had_name: Koha
has_or_had_type:
has_or_had_name: Integrated Library System
has_or_had_description: Open-source integrated library system
has_or_had_url: https://koha-community.org/
description: Koha open-source ILS
- value:
has_or_had_name: Adlib
has_or_had_type:
has_or_had_name: Collection Management System
has_or_had_description: Axiell Adlib museum collection management system
has_or_had_url: https://www.axiell.com/solutions/product/axiell-collections/
description: Adlib/Axiell Collections for museums

View file

@ -0,0 +1,49 @@
id: https://nde.nl/ontology/hc/class/CatalogSystemType
name: CatalogSystemType
title: Catalog System Type (Abstract Base)
description: |
Abstract base class for catalog and collection management system types.
This class defines the taxonomy of system types used by heritage institutions
for managing their collections and catalogs. Concrete subclasses are defined
in CatalogSystemTypes.yaml following the Type/Types naming convention (Rule 0b).
Created per slot_fixes.yaml revision for catalog_system migration (Rule 53/56).
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/
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_description
default_prefix: hc
classes:
CatalogSystemType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for types of catalog and collection management systems.
System type categories include:
- Integrated Library Systems (ILS)
- Library Management Systems (LMS)
- Collection Management Systems (CMS)
- Digital Asset Management (DAM)
- Archives Management Systems
- Discovery Platforms
- Repository Systems
slots:
- has_or_had_name
- has_or_had_description
slot_usage:
has_or_had_name:
description: The name of this catalog system type category.
required: true
has_or_had_description:
description: Description of this catalog system type and its typical use cases.
exact_mappings:
- skos:Concept
close_mappings:
- schema:SoftwareApplicationCategory

View file

@ -0,0 +1,210 @@
id: https://nde.nl/ontology/hc/class/CatalogSystemTypes
name: CatalogSystemTypes
title: Catalog System Types (Concrete Subclasses)
description: |
Concrete subclasses of CatalogSystemType representing specific categories of
catalog and collection management systems used by heritage institutions.
Follows the Type/Types naming convention (Rule 0b):
- CatalogSystemType.yaml: Abstract base class
- CatalogSystemTypes.yaml: This file with concrete subclasses
Created per slot_fixes.yaml revision for catalog_system migration (Rule 53/56).
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/
imports:
- linkml:types
- ./CatalogSystemType
default_prefix: hc
classes:
# === Library Systems ===
IntegratedLibrarySystemType:
is_a: CatalogSystemType
class_uri: hc:IntegratedLibrarySystemType
description: |
Integrated Library System (ILS) - comprehensive software for library operations
including cataloging, circulation, acquisitions, and patron management.
Examples: ALMA, Koha, Sierra, Aleph, Voyager, Symphony, Millennium
slot_usage:
has_or_had_name:
equals_string: Integrated Library System
aliases:
- ILS
- Library Automation System
LibraryServicesPlattformType:
is_a: CatalogSystemType
class_uri: hc:LibraryServicesPlatformType
description: |
Library Services Platform (LSP) - next-generation cloud-based library management
combining ILS functionality with electronic resource management.
Examples: ALMA, FOLIO, OCLC WorldShare, Sierra DNA
slot_usage:
has_or_had_name:
equals_string: Library Services Platform
aliases:
- LSP
- Next-Generation ILS
DiscoverySystemType:
is_a: CatalogSystemType
class_uri: hc:DiscoverySystemType
description: |
Discovery system or discovery layer providing unified search across
library catalogs, databases, and digital collections.
Examples: Primo, Summon, EDS, VuFind, Blacklight
slot_usage:
has_or_had_name:
equals_string: Discovery System
aliases:
- Discovery Layer
- Discovery Platform
- OPAC
# === Museum/Collection Systems ===
CollectionManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:CollectionManagementSystemType
description: |
Collection Management System (CMS) for museums and cultural heritage
institutions to manage object records, provenance, exhibitions, and loans.
Examples: Adlib/Axiell Collections, TMS, CollectiveAccess, PastPerfect, EMu
slot_usage:
has_or_had_name:
equals_string: Collection Management System
aliases:
- CMS
- Collections Database
- Museum Management System
DigitalAssetManagementType:
is_a: CatalogSystemType
class_uri: hc:DigitalAssetManagementType
description: |
Digital Asset Management (DAM) system for organizing, storing, and
retrieving digital media files (images, video, audio, documents).
Examples: ResourceSpace, NetX, Bynder, Canto, Portfolio
slot_usage:
has_or_had_name:
equals_string: Digital Asset Management
aliases:
- DAM
- Media Asset Management
- Digital Media Library
# === Archive Systems ===
ArchivesManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:ArchivesManagementSystemType
description: |
Archives Management System for managing archival collections following
archival standards (ISAD(G), EAD, DACS).
Examples: ArchivesSpace, Atom (Access to Memory), Archivematica, CALM
slot_usage:
has_or_had_name:
equals_string: Archives Management System
aliases:
- AMS
- Archival Management System
DigitalPreservationSystemType:
is_a: CatalogSystemType
class_uri: hc:DigitalPreservationSystemType
description: |
Digital Preservation System for long-term preservation of digital objects
following standards like OAIS (Open Archival Information System).
Examples: Archivematica, Preservica, Rosetta, DSpace (preservation mode)
slot_usage:
has_or_had_name:
equals_string: Digital Preservation System
aliases:
- Preservation Repository
- OAIS Repository
# === Repository Systems ===
InstitutionalRepositoryType:
is_a: CatalogSystemType
class_uri: hc:InstitutionalRepositoryType
description: |
Institutional Repository for managing and providing access to scholarly
outputs, research data, and institutional publications.
Examples: DSpace, EPrints, Fedora, Islandora, Samvera
slot_usage:
has_or_had_name:
equals_string: Institutional Repository
aliases:
- IR
- Digital Repository
- Research Repository
ContentManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:ContentManagementSystemType
description: |
Content Management System for managing website content and digital
publishing, often integrated with collection systems.
Examples: Drupal, WordPress, Omeka, CollectiveAccess
slot_usage:
has_or_had_name:
equals_string: Content Management System
aliases:
- CMS
- Web CMS
# === Specialized Systems ===
LinkedDataPlatformType:
is_a: CatalogSystemType
class_uri: hc:LinkedDataPlatformType
description: |
Linked Data Platform for publishing and managing linked open data
about collections, using semantic web technologies.
Examples: Wikibase, ResearchSpace, Metaphacts, Neptune
slot_usage:
has_or_had_name:
equals_string: Linked Data Platform
aliases:
- Knowledge Graph Platform
- Semantic Platform
ExhibitionManagementSystemType:
is_a: CatalogSystemType
class_uri: hc:ExhibitionManagementSystemType
description: |
Exhibition Management System for planning, organizing, and tracking
museum exhibitions, loans, and installation.
Examples: Gallery Systems, ExhibitDay, MuseumPlus
slot_usage:
has_or_had_name:
equals_string: Exhibition Management System
aliases:
- EMS
- Gallery Management
RegistrationSystemType:
is_a: CatalogSystemType
class_uri: hc:RegistrationSystemType
description: |
Registration System for tracking object movement, conditions,
and custody within a museum or archive.
Examples: TMS Registration module, CollectionSpace
slot_usage:
has_or_had_name:
equals_string: Registration System
aliases:
- Object Tracking System
- Movement Control

View file

@ -0,0 +1,64 @@
id: https://nde.nl/ontology/hc/class/CategoryStatus
name: CategoryStatus
title: Category Status
description: |
Represents the status of a storage condition category assessment.
This class wraps the StorageConditionStatusEnum with additional metadata
capabilities such as notes, timestamps, and assessor information.
Created per slot_fixes.yaml revision for category_status migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../enums/StorageConditionStatusEnum
- ../slots/has_or_had_name
- ../slots/has_or_had_description
- ../slots/has_or_had_value
default_prefix: hc
classes:
CategoryStatus:
class_uri: crm:E55_Type
description: |
The status classification for a storage condition category assessment.
Status values follow the StorageConditionStatusEnum:
- EXCELLENT: Optimal conditions, no concerns
- GOOD: Acceptable conditions, minor issues
- FAIR: Some concerns requiring attention
- POOR: Significant issues requiring remediation
- CRITICAL: Immediate action required
- NOT_ASSESSED: Category not evaluated
- NOT_APPLICABLE: Category does not apply to this storage
slots:
- has_or_had_name
- has_or_had_description
- has_or_had_value
slot_usage:
has_or_had_value:
description: The status value from StorageConditionStatusEnum.
range: StorageConditionStatusEnum
required: true
has_or_had_name:
description: Human-readable name for this status (e.g., "Good", "Poor").
has_or_had_description:
description: Additional context or notes about this status assessment.
exact_mappings:
- crm:E55_Type
close_mappings:
- skos:Concept
examples:
- value:
has_or_had_value: GOOD
has_or_had_name: Good
has_or_had_description: Acceptable temperature control with minor fluctuations
description: Good status with explanatory note
- value:
has_or_had_value: CRITICAL
has_or_had_name: Critical
has_or_had_description: Immediate pest treatment required
description: Critical status requiring action

View file

@ -15,7 +15,9 @@ imports:
- ./Label
- ./Description
# Domain-specific slots (kept)
- ../slots/catering_type
# - ../slots/catering_type # ARCHIVED 2026-01-24: migrated to has_or_had_type + CateringType per Rule 53/56
- ./CateringType
- ./CateringTypes
- ../slots/heritage_type_classification
- ../slots/cuisine_type
- ../slots/seating_capacity
@ -27,7 +29,10 @@ imports:
- ../slots/reservation_required
- ../slots/has_michelin_star
- ../slots/michelin_star
- ../slots/catering_price_range
# - ../slots/catering_price_range # ARCHIVED 2026-01-24: migrated to has_or_had_price + Price per Rule 53/56
- ../slots/has_or_had_price
- ./Price
- ./PriceRange
- ../slots/has_or_had_accessibility_feature
- ../slots/operator
# MIGRATED 2026-01-22: founded_year → is_or_was_founded_through + FoundingEvent (Rule 53)
@ -91,7 +96,7 @@ classes:
- has_or_had_description # was: has_or_had_description - migrated per Rule 55 (2026-01-16) # was: catering_place_description - migrated per Rule 53
- has_or_had_identifier # was: catering_place_id - migrated per Rule 53
- has_or_had_label # was: catering_place_name - migrated per Rule 53
- catering_price_range
- has_or_had_price # was: catering_price_range - migrated per Rule 53/56 (2026-01-24)
- catering_type
- cuisine_type
- is_or_was_founded_through # was: founded_year - migrated per Rule 53 (2026-01-22)
@ -216,15 +221,29 @@ classes:
examples:
- value: 1
description: One Michelin star
catering_price_range:
range: string
has_or_had_price: # was: catering_price_range - migrated per Rule 53/56 (2026-01-24)
description: |
MIGRATED from catering_price_range per Rule 53/56 (2026-01-24).
Price range or pricing information for the catering place.
range: Price
inlined: true
examples:
- value: €€€€
description: Fine dining price
- value: €€
description: Moderate
- value:
description: Budget-friendly
- value:
has_or_had_value: "€€€€"
has_or_had_type:
has_or_had_name: Luxury
has_or_had_description: Over €60 per person
description: Fine dining price range
- value:
has_or_had_value: "€€"
has_or_had_type:
has_or_had_name: Moderate
description: Moderate price range
- value:
has_or_had_value: "€"
has_or_had_type:
has_or_had_name: Budget
description: Budget-friendly price range
has_or_had_accessibility_feature:
range: string
multivalued: true
@ -288,7 +307,10 @@ classes:
reservation_required: true
has_michelin_star: true
michelin_star: 1
catering_price_range: €€€€
has_or_had_price: # was: catering_price_range
has_or_had_value: "€€€€"
has_or_had_type:
has_or_had_name: Luxury
operator: Vermaat Groep
description: Michelin-starred museum restaurant
- value:
@ -303,7 +325,10 @@ classes:
opening_hour: Tu-Fr 09:30-16:30
serves_visitors_only: true
reservation_required: false
catering_price_range:
has_or_had_price: # was: catering_price_range
has_or_had_value: "€"
has_or_had_type:
has_or_had_name: Budget
has_or_had_accessibility_feature:
- Wheelchair accessible
description: Archive visitor café
@ -325,5 +350,8 @@ classes:
begin_of_the_begin: "1902-01-01"
end_of_the_begin: "1902-12-31"
founding_description: "Historic art deco café established in 1902"
catering_price_range: €€€
has_or_had_price: # was: catering_price_range
has_or_had_value: "€€€"
has_or_had_type:
has_or_had_name: Upscale
description: Historic heritage café

View file

@ -0,0 +1,50 @@
id: https://nde.nl/ontology/hc/class/CateringType
name: CateringType
title: Catering Type (Abstract Base)
description: |
Abstract base class for types of catering facilities at heritage venues.
This class defines the taxonomy of catering establishment types found at
museums, archives, libraries, and other heritage institutions.
Concrete subclasses are defined in CateringTypes.yaml following the
Type/Types naming convention (Rule 0b).
Created per slot_fixes.yaml revision for catering_type migration (Rule 53/56).
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/
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_description
default_prefix: hc
classes:
CateringType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for types of catering facilities.
Catering type categories:
- Café/Coffee Shop
- Restaurant
- Tea Room
- Canteen/Cafeteria
- Terrace/Garden Café
- Historic Café
- Event Catering
slots:
- has_or_had_name
- has_or_had_description
slot_usage:
has_or_had_name:
description: The name of this catering type category.
required: true
has_or_had_description:
description: Description of this catering type and typical characteristics.
exact_mappings:
- skos:Concept
close_mappings:
- schema:FoodEstablishment

View file

@ -0,0 +1,123 @@
id: https://nde.nl/ontology/hc/class/CateringTypes
name: CateringTypes
title: Catering Types (Concrete Subclasses)
description: |
Concrete subclasses of CateringType representing specific categories of
catering facilities at heritage venues.
Follows the Type/Types naming convention (Rule 0b):
- CateringType.yaml: Abstract base class
- CateringTypes.yaml: This file with concrete subclasses
Created per slot_fixes.yaml revision for catering_type migration (Rule 53/56).
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/
imports:
- linkml:types
- ./CateringType
default_prefix: hc
classes:
CafeCateringType:
is_a: CateringType
class_uri: hc:CafeCateringType
description: |
Casual café or coffee shop offering beverages, light snacks, and pastries.
Typically self-service or counter-service with informal seating.
slot_usage:
has_or_had_name:
equals_string: Café
exact_mappings:
- schema:CafeOrCoffeeShop
aliases:
- Coffee Shop
- Koffiehuis
- Coffeebar
RestaurantCateringType:
is_a: CateringType
class_uri: hc:RestaurantCateringType
description: |
Full-service restaurant with table service, complete meals, and formal dining.
May range from casual dining to fine dining establishments.
slot_usage:
has_or_had_name:
equals_string: Restaurant
exact_mappings:
- schema:Restaurant
aliases:
- Dining Room
- Eatery
TeaRoomCateringType:
is_a: CateringType
class_uri: hc:TeaRoomCateringType
description: |
Tea room or tea salon specializing in tea service, often with afternoon tea,
scones, sandwiches, and pastries.
slot_usage:
has_or_had_name:
equals_string: Tea Room
aliases:
- Tea Salon
- Theehuis
- Salon de Thé
CanteenCateringType:
is_a: CateringType
class_uri: hc:CanteenCateringType
description: |
Staff cafeteria or canteen primarily serving employees and staff.
May be open to visitors or restricted to staff only.
slot_usage:
has_or_had_name:
equals_string: Canteen
aliases:
- Cafeteria
- Staff Restaurant
- Kantine
TerraceCateringType:
is_a: CateringType
class_uri: hc:TerraceCateringType
description: |
Outdoor or garden café, typically seasonal, offering refreshments
in a garden, courtyard, or terrace setting.
slot_usage:
has_or_had_name:
equals_string: Terrace
aliases:
- Garden Café
- Outdoor Café
- Terras
HistoricCafeCateringType:
is_a: CateringType
class_uri: hc:HistoricCafeCateringType
description: |
Heritage café with cultural or historical significance.
Often a protected monument or literary landmark in its own right.
Examples: Café Americain, Café de Flore, Café Central.
slot_usage:
has_or_had_name:
equals_string: Historic Café
aliases:
- Heritage Café
- Literary Café
- Grand Café
EventCateringType:
is_a: CateringType
class_uri: hc:EventCateringType
description: |
Function and event catering space for private events, receptions,
corporate functions, and special occasions.
slot_usage:
has_or_had_name:
equals_string: Event Catering
aliases:
- Function Catering
- Banquet Hall
- Reception Venue

View file

@ -25,8 +25,11 @@ imports:
- ../slots/is_or_was_caused_by
- ../slots/temporal_extent
- ../slots/has_or_had_description
# ADDED 2026-01-24: occurs_or_occurred_at for death_place migration (Rule 53)
- ../slots/occurs_or_occurred_at
- ./CauseOfDeath
- ./TimeSpan
- ./Place
classes:
DeceasedStatus:
@ -91,6 +94,8 @@ classes:
- is_or_was_caused_by
- temporal_extent
- has_or_had_description
# ADDED 2026-01-24: For death_place migration (Rule 53)
- occurs_or_occurred_at
slot_usage:
is_or_was_caused_by:
@ -111,6 +116,24 @@ classes:
description: |
Additional narrative description of the death circumstances,
commemorative information, or source documentation.
# ADDED 2026-01-24: For death_place migration (Rule 53)
occurs_or_occurred_at:
range: Place
inlined: true
description: |
The place where the death occurred.
Replaces the simple death_place string slot.
Use Place class for structured location with coordinates, GeoNames ID, etc.
examples:
- value:
place_name: Auschwitz concentration camp
country: PL
description: Historical location
- value:
place_name: Gaza City
country: PS
geonames_id: "281133"
description: Conflict zone death with GeoNames link
comments:
- "Structured death information for heritage workers"

View file

@ -33,7 +33,9 @@ imports:
- ../slots/has_or_had_provenance # was: provenance_text - migrated per Rule 53/56 (2026-01-18)
- ./Provenance
- ./Description
- ../slots/catalog_raisonne_number
# REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26
- ./IdentifierType
- ./IdentifierTypes
- ../slots/has_or_had_condition_note
- ../slots/conservation_history
- ../slots/has_or_had_conservation_record
@ -125,7 +127,7 @@ classes:
- has_accession_number
- has_acquisition_date
- has_acquisition_method
- catalog_raisonne_number
# REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26
- has_or_had_condition_note
- conservation_history
- has_or_had_conservation_record
@ -407,25 +409,46 @@ classes:
multivalued: true
examples:
- value: https://www.mauritshuis.nl/media/670-large.jpg
# MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier + WikiDataIdentifier (Rule 53)
# MIGRATED 2026-01-15: wikidata_id → has_or_had_identifier (Rule 53)
# MIGRATED 2026-01-23: catalog_raisonne_number → has_or_had_identifier (Rule 53/F26)
has_or_had_identifier:
description: |
Wikidata entity identifier (Q-number) for this exhibited object.
External identifiers for this exhibited object.
MIGRATED 2026-01-15: Replaces wikidata_id slot per Rule 53.
MIGRATED 2026-01-23: Also includes catalog raisonné numbers per Rule 53/F26.
Use has_or_had_type with IdentifierType subclasses to specify identifier type.
required: false
range: WikiDataIdentifier
range: Identifier
multivalued: true
inlined: true
inlined_as_list: true
examples:
- value:
qid: "Q81858"
label: "Girl with a Pearl Earring"
identifier_value: "Q81858"
has_or_had_type:
has_or_had_code: WIKIDATA
has_or_had_label: Wikidata ID
description: Girl with a Pearl Earring Wikidata identifier
- value:
qid: "Q219831"
label: "The Night Watch"
identifier_value: "Q219831"
has_or_had_type:
has_or_had_code: WIKIDATA
has_or_had_label: Wikidata ID
description: The Night Watch Wikidata identifier
- value:
identifier_value: "Hofstede de Groot 1907, no. 44"
has_or_had_type:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
description: Catalog raisonné reference (was catalog_raisonne_number)
- value:
identifier_value: "Bredius 410"
has_or_had_type:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
description: Bredius catalog reference
external_identifier:
required: false
range: string
@ -433,12 +456,7 @@ classes:
examples:
- value: rkdimages:23903
- value: getty_ulan:500121212
catalog_raisonne_number:
required: false
range: string
examples:
- value: Hofstede de Groot 1907, no. 44
- value: Bredius 410
# REMOVED 2026-01-23: catalog_raisonne_number - migrated to has_or_had_identifier per Rule 53/F26
has_or_had_conservation_record:
required: false
range: ConservationRecord

View file

@ -1,6 +1,7 @@
id: https://nde.nl/ontology/hc/class/Identifier
name: identifier_classes
title: Identifier Classes (Generic and Custodian-Specific)
# Updated: 2026-01-23 - Added has_or_had_type for IdentifierType per F26 migration
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -22,6 +23,10 @@ imports:
# MIGRATED 2026-01-22: canonical_value → has_or_had_canonical_form + CanonicalForm per slot_fixes.yaml feedback
- ../slots/has_or_had_canonical_form
- ./CanonicalForm
# ADDED 2026-01-23: has_or_had_type for IdentifierType per F26 migration
- ../slots/has_or_had_type
- ./IdentifierType
- ./IdentifierTypes
- ../slots/has_or_had_secondary_label
- ../slots/has_allocation_date
- ../slots/specificity_annotation
@ -65,12 +70,33 @@ classes:
slots:
- identifier_scheme
- identifier_value
- has_or_had_type
slot_usage:
has_or_had_type:
description: >-
The type of identifier from IdentifierType taxonomy.
Uses IdentifierType subclasses per Rule 0b (Type/Types pattern).
Added 2026-01-23 per F26 migration.
Provides structured alternative to string-based identifier_scheme.
Prefer has_or_had_type for new data; identifier_scheme retained for compatibility.
range: IdentifierType
required: false
examples:
- value:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
description: Art catalog reference
- value:
has_or_had_code: ISIL
has_or_had_label: ISIL Code
description: Library identifier
identifier_scheme:
range: string
required: true
required: false
description: |
The identifier scheme or namespace (e.g., ISIL, Wikidata, URI, INTERNAL_CODE).
Note: Prefer has_or_had_type for new data (structured IdentifierType).
examples:
- value: ISIL
description: ISIL identifier scheme

View file

@ -0,0 +1,76 @@
# IdentifierType class (abstract base)
# Type taxonomy for identifier schemes and types
#
# Created: 2026-01-23 per slot_fixes.yaml F26 (catalog_raisonne_number migration)
# Rule compliance: 0b (Type/Types pattern - this is the Type file)
id: https://nde.nl/ontology/hc/class/IdentifierType
name: IdentifierType
title: Identifier Type Class (Abstract Base)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
adms: http://www.w3.org/ns/adms#
dcterms: http://purl.org/dc/terms/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ../slots/has_or_had_code
- ../slots/has_or_had_label
- ../slots/has_or_had_description
classes:
IdentifierType:
class_uri: adms:Identifier
abstract: true
description: >-
Abstract base class for identifier type taxonomy.
**Rule 0b Compliance**: This is the abstract TYPE file.
Concrete identifier types are defined in IdentifierTypes.yaml (plural).
Categories of identifiers:
- **Authority identifiers**: ISIL, VIAF, ISNI, ROR, ORCID
- **Cultural heritage identifiers**: Wikidata, GND, ULAN
- **Registration identifiers**: KvK, EU VAT, Legal Entity
- **Bibliographic identifiers**: ISBN, ISSN, DOI
- **Art/Museum identifiers**: Catalog Raisonné, Inventory Number
- **Archival identifiers**: Finding Aid ID, Fonds Number
- **Internal identifiers**: Local codes, System IDs
This taxonomy replaces string-based identifier_scheme with
structured class-based typing per Rule 53.
exact_mappings:
- adms:Identifier
close_mappings:
- dcterms:identifier
- skos:Concept
slots:
- has_or_had_code
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_code:
description: Short code for the identifier type (e.g., ISIL, VIAF, CATALOG_RAISONNE).
range: string
required: true
identifier: true
pattern: '^[A-Z][A-Z0-9_]*$'
has_or_had_label:
description: Human-readable label for the identifier type.
range: string
required: true
has_or_had_description:
description: Definition and scope of this identifier type.
range: string
required: false
comments:
- "Abstract base class - use concrete subclasses from IdentifierTypes.yaml"
see_also:
- https://www.w3.org/ns/adms
- https://www.iso.org/standard/77849.html

View file

@ -0,0 +1,307 @@
# IdentifierTypes class (concrete subclasses)
# Concrete identifier type subclasses per Rule 0b (Type/Types pattern)
#
# Created: 2026-01-23 per slot_fixes.yaml F26 (catalog_raisonne_number migration)
# Rule compliance: 0b (Type/Types pattern - this is the Types file)
id: https://nde.nl/ontology/hc/class/IdentifierTypes
name: IdentifierTypes
title: Identifier Types (Concrete Subclasses)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
default_prefix: hc
imports:
- linkml:types
- ../metadata
- ./IdentifierType
classes:
# === AUTHORITY IDENTIFIERS ===
ISILIdentifierType:
is_a: IdentifierType
class_uri: hc:ISILIdentifierType
description: International Standard Identifier for Libraries and Related Organizations (ISO 15511).
slot_usage:
has_or_had_code:
equals_string: ISIL
has_or_had_label:
equals_string: ISIL Code
VIAFIdentifierType:
is_a: IdentifierType
class_uri: hc:VIAFIdentifierType
description: Virtual International Authority File identifier.
slot_usage:
has_or_had_code:
equals_string: VIAF
has_or_had_label:
equals_string: VIAF ID
ISNIIdentifierType:
is_a: IdentifierType
class_uri: hc:ISNIIdentifierType
description: International Standard Name Identifier (ISO 27729).
slot_usage:
has_or_had_code:
equals_string: ISNI
has_or_had_label:
equals_string: ISNI
RORIdentifierType:
is_a: IdentifierType
class_uri: hc:RORIdentifierType
description: Research Organization Registry identifier.
slot_usage:
has_or_had_code:
equals_string: ROR
has_or_had_label:
equals_string: ROR ID
ORCIDIdentifierType:
is_a: IdentifierType
class_uri: hc:ORCIDIdentifierType
description: Open Researcher and Contributor ID.
slot_usage:
has_or_had_code:
equals_string: ORCID
has_or_had_label:
equals_string: ORCID
# === CULTURAL HERITAGE IDENTIFIERS ===
WikidataIdentifierType:
is_a: IdentifierType
class_uri: hc:WikidataIdentifierType
description: Wikidata entity identifier (Q-number).
slot_usage:
has_or_had_code:
equals_string: WIKIDATA
has_or_had_label:
equals_string: Wikidata ID
GNDIdentifierType:
is_a: IdentifierType
class_uri: hc:GNDIdentifierType
description: Gemeinsame Normdatei (German authority file).
slot_usage:
has_or_had_code:
equals_string: GND
has_or_had_label:
equals_string: GND ID
ULANIdentifierType:
is_a: IdentifierType
class_uri: hc:ULANIdentifierType
description: Union List of Artist Names (Getty).
slot_usage:
has_or_had_code:
equals_string: ULAN
has_or_had_label:
equals_string: ULAN ID
AATIdentifierType:
is_a: IdentifierType
class_uri: hc:AATIdentifierType
description: Art & Architecture Thesaurus (Getty).
slot_usage:
has_or_had_code:
equals_string: AAT
has_or_had_label:
equals_string: AAT ID
TGNIdentifierType:
is_a: IdentifierType
class_uri: hc:TGNIdentifierType
description: Thesaurus of Geographic Names (Getty).
slot_usage:
has_or_had_code:
equals_string: TGN
has_or_had_label:
equals_string: TGN ID
# === REGISTRATION IDENTIFIERS ===
KvKIdentifierType:
is_a: IdentifierType
class_uri: hc:KvKIdentifierType
description: Dutch Chamber of Commerce (Kamer van Koophandel) registration number.
slot_usage:
has_or_had_code:
equals_string: KVK
has_or_had_label:
equals_string: KvK Number
LEIIdentifierType:
is_a: IdentifierType
class_uri: hc:LEIIdentifierType
description: Legal Entity Identifier (ISO 17442).
slot_usage:
has_or_had_code:
equals_string: LEI
has_or_had_label:
equals_string: LEI
VATIdentifierType:
is_a: IdentifierType
class_uri: hc:VATIdentifierType
description: VAT registration number.
slot_usage:
has_or_had_code:
equals_string: VAT
has_or_had_label:
equals_string: VAT Number
# === BIBLIOGRAPHIC IDENTIFIERS ===
ISBNIdentifierType:
is_a: IdentifierType
class_uri: hc:ISBNIdentifierType
description: International Standard Book Number (ISO 2108).
slot_usage:
has_or_had_code:
equals_string: ISBN
has_or_had_label:
equals_string: ISBN
ISSNIdentifierType:
is_a: IdentifierType
class_uri: hc:ISSNIdentifierType
description: International Standard Serial Number (ISO 3297).
slot_usage:
has_or_had_code:
equals_string: ISSN
has_or_had_label:
equals_string: ISSN
DOIIdentifierType:
is_a: IdentifierType
class_uri: hc:DOIIdentifierType
description: Digital Object Identifier (ISO 26324).
slot_usage:
has_or_had_code:
equals_string: DOI
has_or_had_label:
equals_string: DOI
OCLCIdentifierType:
is_a: IdentifierType
class_uri: hc:OCLCIdentifierType
description: OCLC WorldCat record number.
slot_usage:
has_or_had_code:
equals_string: OCLC
has_or_had_label:
equals_string: OCLC Number
# === ART/MUSEUM IDENTIFIERS ===
CatalogRaisonneIdentifierType:
is_a: IdentifierType
class_uri: hc:CatalogRaisonneIdentifierType
description: >-
Reference number in a catalogue raisonné (comprehensive catalog of an artist's work).
MIGRATED from catalog_raisonne_number slot (2026-01-23) per Rule 53/F26.
slot_usage:
has_or_had_code:
equals_string: CATALOG_RAISONNE
has_or_had_label:
equals_string: Catalogue Raisonné Number
InventoryNumberIdentifierType:
is_a: IdentifierType
class_uri: hc:InventoryNumberIdentifierType
description: Museum or collection inventory number.
slot_usage:
has_or_had_code:
equals_string: INVENTORY_NUMBER
has_or_had_label:
equals_string: Inventory Number
AccessionNumberIdentifierType:
is_a: IdentifierType
class_uri: hc:AccessionNumberIdentifierType
description: Accession number assigned upon acquisition.
slot_usage:
has_or_had_code:
equals_string: ACCESSION_NUMBER
has_or_had_label:
equals_string: Accession Number
# === ARCHIVAL IDENTIFIERS ===
FindingAidIdentifierType:
is_a: IdentifierType
class_uri: hc:FindingAidIdentifierType
description: Finding aid or archival guide identifier.
slot_usage:
has_or_had_code:
equals_string: FINDING_AID_ID
has_or_had_label:
equals_string: Finding Aid ID
FondsNumberIdentifierType:
is_a: IdentifierType
class_uri: hc:FondsNumberIdentifierType
description: Archival fonds or collection number.
slot_usage:
has_or_had_code:
equals_string: FONDS_NUMBER
has_or_had_label:
equals_string: Fonds Number
EADIdentifierType:
is_a: IdentifierType
class_uri: hc:EADIdentifierType
description: Encoded Archival Description identifier.
slot_usage:
has_or_had_code:
equals_string: EAD_ID
has_or_had_label:
equals_string: EAD ID
# === INTERNAL/LOCAL IDENTIFIERS ===
LocalCollectionIdentifierType:
is_a: IdentifierType
class_uri: hc:LocalCollectionIdentifierType
description: Local collection or institutional identifier.
slot_usage:
has_or_had_code:
equals_string: LOCAL_COLLECTION
has_or_had_label:
equals_string: Local Collection ID
InternalCodeIdentifierType:
is_a: IdentifierType
class_uri: hc:InternalCodeIdentifierType
description: Internal system code or database ID.
slot_usage:
has_or_had_code:
equals_string: INTERNAL_CODE
has_or_had_label:
equals_string: Internal Code
URIIdentifierType:
is_a: IdentifierType
class_uri: hc:URIIdentifierType
description: Uniform Resource Identifier.
slot_usage:
has_or_had_code:
equals_string: URI
has_or_had_label:
equals_string: URI
URLIdentifierType:
is_a: IdentifierType
class_uri: hc:URLIdentifierType
description: Uniform Resource Locator (web address).
slot_usage:
has_or_had_code:
equals_string: URL
has_or_had_label:
equals_string: URL

View file

@ -49,7 +49,9 @@ imports:
- ../slots/copy_number
- ../slots/cover_material
- ../slots/has_or_had_custodian_type
- ../slots/date_of_publication
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
- ../slots/is_or_was_published
- ./Publication
- ../slots/doi
- ../slots/duration
- ../slots/edition_statement
@ -144,7 +146,8 @@ classes:
- copy_number
- cover_material
- has_or_had_custodian_type
- date_of_publication
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
- is_or_was_published
- doi
- duration
- edition_statement
@ -350,12 +353,26 @@ classes:
- value:
place_name: Mainz
country: DE
date_of_publication:
# REMOVED 2026-01-24: date_of_publication - migrated to is_or_was_published (Rule 53)
is_or_was_published:
required: false
range: string
range: Publication
inlined: true
multivalued: true
description: >-
Publication event(s) for this information carrier.
Use publication_date_string for approximate dates (c. 1455, 16th century).
examples:
- value: c. 1455
- value: '1623'
- value:
publication_date_string: "c. 1455"
publisher: "Johannes Gutenberg"
publication_place: "Mainz"
description: Approximate date with publisher info
- value:
temporal_extent:
begin_of_the_begin: "1623-01-01"
publication_date_string: "1623"
description: Year-level precision
edition_statement:
required: false
range: string
@ -602,7 +619,11 @@ classes:
place_of_publication:
place_name: Mainz
country: DE
date_of_publication: c. 1455
# MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53)
is_or_was_published:
- publication_date_string: "c. 1455"
publisher: "Johannes Gutenberg"
publication_place: "Mainz"
script_type: PRINTED
has_or_had_writing_system:
has_or_had_code: "Latn"
@ -650,7 +671,9 @@ classes:
script_name: "Greek uncial"
content_language:
- grc
date_of_publication: 4th century CE
# MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53)
is_or_was_published:
- publication_date_string: "4th century CE"
# MIGRATED 2026-01-23: carries_information → has_or_had_content (Rule 53/F25)
has_or_had_content:
has_or_had_label: Septuagint and Greek New Testament
@ -683,7 +706,13 @@ classes:
script_name: "Latin"
content_language:
- eng
date_of_publication: '1776-08-02'
# MIGRATED 2026-01-24: date_of_publication → is_or_was_published (Rule 53)
is_or_was_published:
- temporal_extent:
begin_of_the_begin: "1776-08-02"
end_of_the_end: "1776-08-02"
publisher: "John Dunlap"
publication_place: "Philadelphia"
archival_reference: NARA 1419
fonds: Records of the Continental and Confederation Congresses
arrangement_level: ITEM

View file

@ -8,7 +8,11 @@ imports:
- ../slots/complies_or_complied_with
- ./CatalogingStandard
- ../enums/LibraryTypeEnum
- ../slots/catalog_system
# - ../slots/catalog_system # ARCHIVED 2026-01-24: migrated to uses_or_used + CatalogSystem per Rule 53/56
- ../slots/uses_or_used
- ./CatalogSystem
- ./CatalogSystemType
- ./CatalogSystemTypes
- ../slots/has_or_had_custodian_type
- ../slots/interlibrary_loan
- ../slots/lending_policy
@ -105,10 +109,10 @@ classes:
\ org:classification :LibraryType_NationalLibrary_Q22806 .\n\n:LibraryType_NationalLibrary_Q22806\n a glamtype:LibraryType,\
\ crm:E55_Type, skos:Concept ;\n skos:prefLabel \"National Library\"@en, \"nationale bibliotheek\"@nl ;\n skos:broader\
\ :LibraryType_Library_Q7075 ;\n schema:additionalType <http://www.wikidata.org/entity/Q22806> ;\n glamtype:glamorcubesfixphdnt_code\
\ \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:catalog_system \"ALMA\" ;\n glamtype:special_collections\
\ \"LIBRARY\" ;\n glamtype:lending_policy \"reference-only\" ;\n glamtype:uses_or_used [ a glamtype:CatalogSystem ; glamtype:has_or_had_name \"ALMA\" ] ;\n glamtype:special_collections\
\ [\"incunabula\", \"manuscripts\", \"maps\"] ;\n glamtype:interlibrary_loan true ;\n glamtype:cataloging_standard\
\ \"RDA\" .\n```\n\n**Domain-Specific Properties**:\nThis class adds library-specific metadata beyond base CustodianType:\n\
- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `catalog_system`\
- `lending_policy` - Circulation rules (open, restricted, reference-only, digital-only, membership-required)\n- `uses_or_used` (was: catalog_system)\
\ - Integrated library system (ALMA, Sierra, Koha, Aleph, etc.)\n- `special_collections` - Notable collections (rare\
\ books, manuscripts, archives, maps, music)\n- `membership_required` - Whether library requires membership for access\n\
- `interlibrary_loan` - Whether participates in interlibrary loan networks\n- `cataloging_standard` - Metadata standards\
@ -123,7 +127,7 @@ classes:
- Information literacy instruction - User education programs\n\n**Data Population**:\nLibrary subtypes extracted from\
\ 60 Wikidata entities with type='L'\nin `data/wikidata/GLAMORCUBEPSXHFN/hyponyms_curated_full.yaml`.\n"
slots:
- catalog_system
- uses_or_used # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
- complies_or_complied_with # was: cataloging_standard - migrated per Rule 53/56 (2026-01-17)
- has_or_had_custodian_type
- interlibrary_loan
@ -135,6 +139,14 @@ classes:
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- has_or_had_identifier # was: wikidata_entity - migrated per Rule 53 (2026-01-16)
slot_usage:
uses_or_used: # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
description: |
The catalog system or integrated library system (ILS) used by this library.
MIGRATED from catalog_system per Rule 53/56 (2026-01-24).
Common systems: ALMA, Koha, Sierra, Aleph, FOLIO, OCLC WorldShare.
range: CatalogSystem
inlined: true
multivalued: true
has_or_had_identifier: # was: wikidata_entity - migrated per Rule 53 (2026-01-16)
pattern: ^Q[0-9]+$
required: true
@ -182,7 +194,10 @@ classes:
has_or_had_description: library specifically established by the government of a country # was: type_description - migrated per Rule 53/56 (2026-01-16)
has_or_had_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 # was: broader_type - migrated per Rule 53 (2026-01-17)
lending_policy: reference-only
catalog_system: ALMA
uses_or_used: # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
- has_or_had_name: ALMA
has_or_had_type:
has_or_had_name: Library Services Platform
special_collection:
- incunabula
- manuscripts
@ -206,7 +221,10 @@ classes:
has_or_had_description: public library in the Netherlands with a secondary research function (Wetenschappelijke en Speciale Functies) # was: type_description - migrated per Rule 53/56 (2026-01-16)
has_or_had_hypernym: https://nde.nl/ontology/hc/type/library/Q7075 # was: broader_type - migrated per Rule 53 (2026-01-17)
lending_policy: open
catalog_system: OCLC
uses_or_used: # was: catalog_system - migrated per Rule 53/56 (2026-01-24)
- has_or_had_name: OCLC WorldShare
has_or_had_type:
has_or_had_name: Library Services Platform
special_collection:
- local history
- genealogy

View file

@ -0,0 +1,82 @@
id: https://nde.nl/ontology/hc/class/Measurement
name: Measurement
title: Measurement
description: |
Represents a measurement observation with value, type, unit, and timestamp.
This class captures environmental and condition measurements for heritage
storage monitoring, including temperature, humidity, light levels, etc.
Created per slot_fixes.yaml revision for category_measurement migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
qudt: http://qudt.org/schema/qudt/
crm: http://www.cidoc-crm.org/cidoc-crm/
sosa: http://www.w3.org/ns/sosa/
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_measurement_type
- ../slots/has_or_had_measurement_unit
- ./MeasurementType
- ./MeasureUnit
default_prefix: hc
classes:
Measurement:
class_uri: sosa:Observation
description: |
A measurement observation capturing a specific value, its type, and unit.
Used for:
- Storage condition monitoring (temperature, humidity)
- Environmental assessments (light levels, UV radiation)
- Conservation observations (pest counts, air quality)
slots:
- has_or_had_value
- has_or_had_measurement_type
- has_or_had_measurement_unit
slot_usage:
has_or_had_value:
description: |
The measured value as a string (e.g., "19.5", "48", "250").
String type allows for special notation (±, <, >, ranges).
required: true
has_or_had_measurement_type:
description: The type/category of measurement (temperature, humidity, etc.).
range: MeasurementType
inlined: true
has_or_had_measurement_unit:
description: The unit of measurement (°C, % RH, lux, etc.).
range: MeasureUnit
inlined: true
exact_mappings:
- sosa:Observation
- qudt:QuantityValue
close_mappings:
- crm:E16_Measurement
examples:
- value:
has_or_had_value: "19.5"
has_or_had_measurement_type:
has_or_had_name: Temperature
has_or_had_measurement_unit:
has_or_had_name: Degree Celsius
has_or_had_symbol: "°C"
description: Temperature measurement of 19.5°C
- value:
has_or_had_value: "48"
has_or_had_measurement_type:
has_or_had_name: Relative Humidity
has_or_had_measurement_unit:
has_or_had_name: Percent
has_or_had_symbol: "%"
description: Humidity measurement of 48% RH
- value:
has_or_had_value: "250"
has_or_had_measurement_type:
has_or_had_name: Light Level
has_or_had_measurement_unit:
has_or_had_name: Lux
has_or_had_symbol: "lx"
description: Light level measurement of 250 lux

View file

@ -0,0 +1,58 @@
id: https://nde.nl/ontology/hc/class/MeasurementType
name: MeasurementType
title: Measurement Type (Abstract Base)
description: |
Abstract base class for types of measurements relevant to heritage conservation
and storage conditions.
This class defines the taxonomy of measurement categories used for monitoring
storage environments and conservation conditions. Concrete subclasses are
defined in MeasurementTypes.yaml following the Type/Types naming convention (Rule 0b).
Created per slot_fixes.yaml revision for category_measurement migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
qudt: http://qudt.org/schema/qudt/
crm: http://www.cidoc-crm.org/cidoc-crm/
imports:
- linkml:types
- ../slots/has_or_had_name
- ../slots/has_or_had_description
- ../slots/has_or_had_measurement_unit
- ./MeasureUnit
default_prefix: hc
classes:
MeasurementType:
class_uri: skos:Concept
abstract: true
description: |
Abstract base class for types of measurements in heritage conservation contexts.
Common measurement type categories:
- Temperature measurements (°C, °F)
- Humidity measurements (% RH)
- Light level measurements (lux)
- UV radiation measurements
- Air quality measurements
- Vibration measurements
- Pest monitoring counts
slots:
- has_or_had_name
- has_or_had_description
- has_or_had_measurement_unit
slot_usage:
has_or_had_name:
description: The name of this measurement type category.
required: true
has_or_had_description:
description: Description of this measurement type and what it measures.
has_or_had_measurement_unit:
description: The standard unit(s) of measurement for this type.
range: MeasureUnit
exact_mappings:
- skos:Concept
close_mappings:
- qudt:QuantityKind
- crm:E55_Type

View file

@ -0,0 +1,202 @@
id: https://nde.nl/ontology/hc/class/MeasurementTypes
name: MeasurementTypes
title: Measurement Types (Concrete Subclasses)
description: |
Concrete subclasses of MeasurementType representing specific categories of
measurements used in heritage conservation and storage monitoring.
Follows the Type/Types naming convention (Rule 0b):
- MeasurementType.yaml: Abstract base class
- MeasurementTypes.yaml: This file with concrete subclasses
Created per slot_fixes.yaml revision for category_measurement migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
qudt: http://qudt.org/schema/qudt/
imports:
- linkml:types
- ./MeasurementType
default_prefix: hc
classes:
# === Environmental Measurements ===
TemperatureMeasurementType:
is_a: MeasurementType
class_uri: hc:TemperatureMeasurementType
description: |
Temperature measurement type for monitoring storage and display environments.
Standard units: degrees Celsius (°C) or Fahrenheit (°F).
Typical conservation ranges:
- Archives/libraries: 18-22°C
- Museums (general): 18-22°C
- Cold storage (photographs): 2-8°C
- Freezer storage (textiles): -20°C
slot_usage:
has_or_had_name:
equals_string: Temperature
exact_mappings:
- qudt:Temperature
aliases:
- Temp
- Air Temperature
HumidityMeasurementType:
is_a: MeasurementType
class_uri: hc:HumidityMeasurementType
description: |
Relative humidity measurement type for monitoring moisture in storage environments.
Standard unit: percentage relative humidity (% RH).
Typical conservation ranges:
- Archives/libraries: 45-55% RH
- Museums (general): 45-55% RH
- Metals: 30-40% RH
- Photographs: 30-40% RH
slot_usage:
has_or_had_name:
equals_string: Relative Humidity
exact_mappings:
- qudt:RelativeHumidity
aliases:
- RH
- Humidity
- Moisture
LightLevelMeasurementType:
is_a: MeasurementType
class_uri: hc:LightLevelMeasurementType
description: |
Light level measurement type for monitoring illumination in display and storage areas.
Standard unit: lux (lx).
Typical conservation limits:
- Light-sensitive materials (textiles, works on paper): 50 lux max
- Medium sensitivity (oil paintings): 150-200 lux max
- Low sensitivity (stone, ceramics): 300 lux max
slot_usage:
has_or_had_name:
equals_string: Light Level
exact_mappings:
- qudt:Illuminance
aliases:
- Illuminance
- Lux
UVRadiationMeasurementType:
is_a: MeasurementType
class_uri: hc:UVRadiationMeasurementType
description: |
Ultraviolet radiation measurement type for monitoring harmful UV exposure.
Standard unit: microwatts per lumen (µW/lm).
Conservation standard: UV should be below 75 µW/lm for most materials.
slot_usage:
has_or_had_name:
equals_string: UV Radiation
aliases:
- UV Level
- Ultraviolet
# === Air Quality Measurements ===
AirQualityMeasurementType:
is_a: MeasurementType
class_uri: hc:AirQualityMeasurementType
description: |
General air quality measurement type for monitoring pollutants and particulates.
May include PM2.5, PM10, or composite air quality indices.
slot_usage:
has_or_had_name:
equals_string: Air Quality
aliases:
- AQI
- Particulate Matter
CO2MeasurementType:
is_a: MeasurementType
class_uri: hc:CO2MeasurementType
description: |
Carbon dioxide measurement type for monitoring air quality and ventilation.
Standard unit: parts per million (ppm).
Typical thresholds:
- Good: <800 ppm
- Acceptable: 800-1000 ppm
- Poor: >1000 ppm
slot_usage:
has_or_had_name:
equals_string: Carbon Dioxide
aliases:
- CO2
- Carbon Dioxide Level
VOCMeasurementType:
is_a: MeasurementType
class_uri: hc:VOCMeasurementType
description: |
Volatile organic compounds measurement type for monitoring off-gassing
from materials, paints, adhesives, and storage materials.
slot_usage:
has_or_had_name:
equals_string: Volatile Organic Compounds
aliases:
- VOC
- Off-gassing
# === Structural Measurements ===
VibrationMeasurementType:
is_a: MeasurementType
class_uri: hc:VibrationMeasurementType
description: |
Vibration measurement type for monitoring mechanical disturbances
that may affect fragile objects.
slot_usage:
has_or_had_name:
equals_string: Vibration
aliases:
- Shock
- Mechanical Disturbance
# === Pest Monitoring ===
PestCountMeasurementType:
is_a: MeasurementType
class_uri: hc:PestCountMeasurementType
description: |
Pest monitoring measurement type for tracking insect and rodent activity.
Typically recorded as count per trap per time period.
slot_usage:
has_or_had_name:
equals_string: Pest Count
aliases:
- Insect Count
- Trap Count
- IPM Reading
# === Water/Moisture ===
WaterActivityMeasurementType:
is_a: MeasurementType
class_uri: hc:WaterActivityMeasurementType
description: |
Water activity (aw) measurement type for monitoring moisture content
in materials, particularly important for organic materials.
Scale: 0 to 1 (dimensionless).
slot_usage:
has_or_had_name:
equals_string: Water Activity
aliases:
- aw
- Moisture Content
# === Other ===
DewPointMeasurementType:
is_a: MeasurementType
class_uri: hc:DewPointMeasurementType
description: |
Dew point temperature measurement type for assessing condensation risk.
Standard unit: degrees Celsius (°C).
slot_usage:
has_or_had_name:
equals_string: Dew Point
aliases:
- Dew Point Temperature

View file

@ -25,7 +25,7 @@ imports:
# - ../slots/birth_place
- ../slots/has_or_had_place_of_birth
- ./BirthPlace
- ../slots/death_place
# REMOVED 2026-01-24: ../slots/death_place - migrated to is_deceased.occurs_or_occurred_at (Rule 53)
# REMOVED 2026-01-23: ../slots/date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
- ../slots/is_deceased # was: deceased - migrated per Rule 53/56/57 (2026-01-23)
- ./DeceasedStatus
@ -121,7 +121,7 @@ classes:
- contact_email
- created
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
- death_place
# REMOVED 2026-01-24: death_place - migrated to is_deceased.occurs_or_occurred_at (Rule 53)
- is_deceased # was: deceased - migrated per Rule 53/56/57 (2026-01-23)
- expertise_area
- extraction_metadata
@ -213,9 +213,7 @@ classes:
modern_place_name: Jakarta
country_code: ID
description: Historical place name
death_place:
range: string
required: false
# REMOVED 2026-01-24: death_place - migrated to is_deceased.occurs_or_occurred_at (Rule 53)
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
is_deceased: # was: deceased - migrated per Rule 53/56/57 (2026-01-23)
range: DeceasedStatus

View file

@ -0,0 +1,77 @@
id: https://nde.nl/ontology/hc/class/Price
name: Price
title: Price
description: |
Represents price or pricing information with value, currency, and optional range.
This class supports:
- Exact prices (e.g., €15.00 admission)
- Price ranges (e.g., € to €€€€ for restaurants)
- Price categories (budget, moderate, premium)
Created per slot_fixes.yaml revision for catering_price_range migration (Rule 53/56).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
gr: http://purl.org/goodrelations/v1#
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_currency
- ../slots/has_or_had_type
- ./Currency
- ./PriceRange
default_prefix: hc
classes:
Price:
class_uri: schema:PriceSpecification
description: |
Price information including value, currency, and optional range/category.
For catering and services, price ranges use symbolic notation:
- € (budget): Under €15 per person
- €€ (moderate): €15-30 per person
- €€€ (upscale): €30-60 per person
- €€€€ (luxury): Over €60 per person
slots:
- has_or_had_value
- has_or_had_currency
- has_or_had_type
slot_usage:
has_or_had_value:
description: |
The price value. Can be:
- Numeric (e.g., "15.00")
- Symbolic (e.g., "€€€")
- Descriptive (e.g., "free", "donation suggested")
has_or_had_currency:
description: The currency for this price (e.g., EUR, USD, GBP).
range: Currency
inlined: true
has_or_had_type:
description: Price range classification (budget, moderate, premium, luxury).
range: PriceRange
inlined: true
exact_mappings:
- schema:PriceSpecification
- gr:PriceSpecification
examples:
- value:
has_or_had_value: "€€€€"
has_or_had_type:
has_or_had_name: Luxury
has_or_had_description: Over €60 per person
description: Luxury restaurant price range
- value:
has_or_had_value: "€"
has_or_had_type:
has_or_had_name: Budget
has_or_had_description: Under €15 per person
description: Budget cafe price range
- value:
has_or_had_value: "15.00"
has_or_had_currency:
has_or_had_code: EUR
has_or_had_symbol:
description: Exact admission price

Some files were not shown because too many files have changed in this diff Show more