glam/schemas/20251121/linkml/modules/classes/CustodianCollection.yaml
kempersc 1fb924c412 feat: add ontology mappings to LinkML schema and enhance entity resolution
Schema enhancements (443 files):
- Add class_uri with proper ontology references (schema:, prov:, skos:, rico:)
- Add close_mappings, related_mappings per Rule 50 convention
- Replace stub hc: slot_uri with standard predicates (dcterms:identifier, skos:prefLabel)
- Improve descriptions with ontology mapping rationale
- Add prefixes blocks to all schema modules

Entity Resolution improvements:
- Add entity_resolution module with email semantics parsing
- Enhance build_entity_resolution.py with email-based matching signals
- Extend Entity Review API with filtering by signal types and count
- Add candidates caching and indexing for performance
- Add ReviewLoginPage component

New rules and documentation:
- Add Rule 51: No Hallucinated Ontology References
- Add .opencode/rules/no-hallucinated-ontology-references.md
- Add .opencode/rules/slot-ontology-mapping-reference.md
- Add adms.ttl and dqv.ttl ontology files

Frontend ontology support:
- Add RiC-O_1-1.rdf and schemaorg.owl to public/ontology
2026-01-13 13:51:02 +01:00

182 lines
5 KiB
YAML

id: https://nde.nl/ontology/hc/class/CustodianCollection
name: custodian_collection_class
title: CustodianCollection Class
imports:
- linkml:types
- ./Custodian
- ./CustodianObservation
- ./ReconstructionActivity
- ./TimeSpan
- ./OrganizationalStructure
- ./CollectionManagementSystem
- ./ReconstructedEntity
- ../slots/preservation_level
- ../slots/digitization_status
- ../slots/collection_name
- ../slots/collection_description
- ../slots/collection_type
- ../slots/collection_scope
- ../slots/temporal_coverage
- ../slots/extent
- ../slots/managing_unit
- ../slots/valid_from
- ../slots/valid_to
- ../slots/refers_to_custodian
- ../slots/was_derived_from
- ../slots/has_or_had_arrangement_system
- ../slots/was_generated_by
- ../slots/has_or_had_custodian_type
- ../slots/custody_history
- ../slots/digital_surrogate
- ../slots/id
- ../slots/has_or_had_managed_by_cm
- ../slots/provenance_note
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
- ../slots/has_or_had_access_right
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/
rico: https://www.ica.org/standards/RiC/ontology#
prov: http://www.w3.org/ns/prov#
time: http://www.w3.org/2006/time#
org: http://www.w3.org/ns/org#
premis: http://www.loc.gov/premis/rdf/v3/
bf: http://id.loc.gov/ontologies/bibframe/
classes:
CustodianCollection:
is_a: ReconstructedEntity
class_uri: crm:E78_Curated_Holding
description: 'Represents a heritage collection as a multi-aspect entity with independent temporal lifecycle.
Collections are curatedHoldings (CIDOC-CRM E78) with provenance tracking, custody history,
and organizational management relationships.
Phase 4 (2025-11-22): Added managing_unit bidirectional relationship with OrganizationalStructure.
Phase 8 (2025-11-22): Added validation constraints via slot_usage.
Phase 9 (2025-11-26): Added PREMIS mappings for digital preservation (digital_surrogates,
digitization_status, preservation_level).
'
close_mappings:
- premis:IntellectualEntity
- rico:RecordSet
- bf:Collection
related_mappings:
- premis:relationship
- dcterms:hasPart
slots:
- has_or_had_access_right
- has_or_had_arrangement_system
- collection_description
- collection_name
- collection_scope
- collection_type
- has_or_had_custodian_type
- custody_history
- digital_surrogate
- digitization_status
- extent
- id
- has_or_had_managed_by_cm
- managing_unit
- preservation_level
- provenance_note
- refers_to_custodian
- specificity_annotation
- template_specificity
- temporal_coverage
- valid_from
- valid_to
- was_derived_from
- was_generated_by
slot_usage:
collection_name:
range: string
required: true
pattern: ^.{1,500}$
managing_unit:
range: OrganizationalStructure
required: false
valid_from:
range: date
required: false
valid_to:
range: date
required: false
id:
identifier: true
required: true
refers_to_custodian:
range: Custodian
required: true
collection_description:
range: string
required: false
collection_type:
range: string
multivalued: true
collection_scope:
range: string
required: false
temporal_coverage:
range: TimeSpan
required: false
extent:
range: string
required: false
has_or_had_access_right:
range: string
required: false
digital_surrogate:
range: string
multivalued: true
required: false
digitization_status:
range: string
required: false
examples:
- value: PARTIAL
description: 30% of collection digitized as of 2024
- value: COMPLETE
description: Full collection digitized 2019-2021
preservation_level:
range: string
required: false
examples:
- value: FULL
description: Long-term preservation with format migration
- value: BIT_LEVEL
description: Bit-level preservation in institutional repository
has_or_had_managed_by_cm:
range: CollectionManagementSystem
multivalued: true
required: false
examples:
- value: https://nde.nl/ontology/hc/cms/rijksmuseum-adlib
description: Collection managed by Rijksmuseum Adlib CMS
has_or_had_arrangement_system:
range: string
required: false
provenance_note:
range: string
required: false
was_generated_by:
range: ReconstructionActivity
required: false
was_derived_from:
range: CustodianObservation
multivalued: true
required: true
has_or_had_custodian_type:
equals_expression: '["*"]'