glam/schemas/20251121/linkml/modules/classes/CustodianObservation.yaml
kempersc 7cf10084b4 Implement scripts for schema modifications and ontology verification
- Added `fix_dual_class_link.py` to remove dual class link references from specified YAML files.
- Created `fix_specific_ghosts.py` to apply specific replacements in YAML files based on defined mappings.
- Introduced `migrate_staff_count.py` to migrate staff count references to a new structure in specified YAML files.
- Developed `migrate_type_slots.py` to replace type-related slots with new identifiers across YAML files.
- Implemented `scan_ghost_references.py` to identify and report ghost references to archived slots and classes in YAML files.
- Added `verify_ontology_terms.py` to verify the presence of ontology terms in specified ontology files against schema definitions.
2026-01-29 17:10:25 +01:00

141 lines
5.5 KiB
YAML

id: https://nde.nl/ontology/hc/class/CustodianObservation
name: CustodianObservation
title: Custodian Observation Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
pico: https://personsincontext.org/model#
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
crm: http://www.cidoc-crm.org/cidoc-crm/
rico: https://www.ica.org/standards/RiC/ontology#
skos: http://www.w3.org/2004/02/skos/core#
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
- ./Appellation
- ./SourceDocument
- ./CustodianLegalStatus
- ./ConfidenceValue
- ./LanguageCode
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ../slots/observed_name
- ../slots/has_or_had_label
- ../classes/Label
- ../classes/LabelType
- ../classes/LabelTypes
- ../slots/observation_date
- ../slots/observation_source
- ../slots/source
- ../slots/observation_context
- ../slots/refers_or_referred_to
- ./EntityReconstruction
- ../slots/has_or_had_value
- ../slots/has_or_had_type
- ../slots/specificity_annotation
- ../slots/has_or_had_score
classes:
CustodianObservation:
class_uri: hc:CustodianObservation
description: "Source-based evidence of a heritage custodian's existence.\n\nCRITICAL: CustodianObservation does NOT directly link to Custodian!\n- Observations are RAW EVIDENCE (input to ReconstructionActivity)\n- Only ReconstructionActivity can determine if custodian is successfully identified\n- Generated outputs (LegalStatus/Name/Place) link to Custodian, not observations\n\nPROV-O Flow:\n CustodianObservation \u2192 prov:used \u2192 ReconstructionActivity\n ReconstructionActivity \u2192 prov:wasGeneratedBy \u2192 CustodianLegalStatus/Name/Place\n CustodianLegalStatus/Name/Place \u2192 refers_to_custodian \u2192 Custodian\n\nObservations can capture BOTH emic (insider) and etic (outsider) perspectives:\n- Emic: \"Rijksmuseum\" (how institution presents itself)\n- Etic: \"The National Museum\" (how outsiders refer to it)\n"
exact_mappings:
- pico:PersonObservation
- prov:Entity
close_mappings:
- schema:Intangible
- crm:E73_Information_Object
- rico:Record
related_mappings:
- skos:Concept
- dcterms:BibliographicResource
slots:
- has_or_had_label
- has_or_had_value
- has_or_had_type
- refers_or_referred_to
- observation_context
- observation_date
- observation_source
- observed_name
- source
- specificity_annotation
- has_or_had_score
attributes:
observation_language:
slot_uri: dcterms:language
description: Language of observed name (as LanguageCode class reference)
range: LanguageCode
slot_usage:
observation_source:
range: string
observed_name:
range: CustodianAppellation
required: true
has_or_had_label:
range: Label
multivalued: true
inlined: true
description: 'Observed name or alternative name in the source.
MIGRATED from has_or_had_alternative_observed_name (Rule 53).
Use has_or_had_type: ObservedName for primary observed name.
Use has_or_had_type: AlternativeName for variants.
'
examples:
- value:
has_or_had_label: Rijksmuseum Amsterdam
has_or_had_type: ObservedName
description: Primary observed name
- value:
has_or_had_label: Het Rijks
has_or_had_type: AlternativeName
description: Alternative observed name
observation_date:
range: date
source:
range: SourceDocument
required: true
observation_context:
range: string
derived_from_entity:
description: 'DEPRECATED 2026-01-25: Migrated to refers_or_referred_to slot with EntityReconstruction class.
See refers_or_referred_to slot_usage for current pattern.
'
deprecated: Use refers_or_referred_to with EntityReconstruction class
refers_or_referred_to:
description: 'MIGRATED from derived_from_entity per slot_fixes.yaml (Rule 53, 2026-01-25).
Links observation to the formal entity it references (reconstructed entity).
Uses EntityReconstruction class hierarchy (CustodianLegalStatus, CustodianName, CustodianPlace).
'
range: CustodianLegalStatus
required: false
examples:
- value: https://nde.nl/ontology/hc/legal/stichting-rijksmuseum
description: Observation refers to Rijksmuseum legal entity
has_or_had_value:
description: |
Confidence value associated with this observation.
MIGRATED from has_or_had_confidence_measure per Rule 53 (2026-01-28).
range: ConfidenceValue
has_or_had_type:
equals_expression: '["hc:GalleryType", "hc:LibraryType", "hc:ArchiveOrganizationType", "hc:MuseumType", "hc:OfficialInstitutionType", "hc:ResearchOrganizationType", "hc:CommercialOrganizationType", "hc:UnspecifiedType", "hc:BioCustodianType", "hc:EducationProviderType", "hc:HeritageSocietyType", "hc:FeatureCustodianType", "hc:IntangibleHeritageGroupType", "hc:MixedCustodianType", "hc:PersonalCollectionType", "hc:HolySacredSiteType", "hc:DigitalPlatformType", "hc:NonProfitType", "hc:TasteScentHeritageType"]'
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"
custodian_types_rationale: Universal utility concept