glam/schemas/20251121/linkml/modules/classes/Identifier.yaml
kempersc b34992b1d3 Migrate all 293 class files to ontology-aligned slots
Extends migration to all class types (museums, libraries, galleries, etc.)

New slots added to class_metadata_slots.yaml:
- RiC-O: rico_record_set_type, rico_organizational_principle,
  rico_has_or_had_holder, rico_note
- Multilingual: label_de, label_es, label_fr, label_nl, label_it, label_pt
- Scope: scope_includes, scope_excludes, custodian_only,
  organizational_level, geographic_restriction
- Notes: privacy_note, preservation_note, legal_note

Migration script now handles 30+ annotation types.
All migrated schemas pass linkml-validate.

Total: 387 class files now use proper slots instead of annotations.
2026-01-06 12:24:54 +01:00

165 lines
6.9 KiB
YAML

id: https://nde.nl/ontology/hc/class/CustodianIdentifier
name: custodian_identifier_class
title: Custodian Identifier Class
prefixes:
linkml: https://w3id.org/linkml/
crm: http://www.cidoc-crm.org/cidoc-crm/
schema: http://schema.org/
skos: http://www.w3.org/2004/02/skos/core#
dcterms: http://purl.org/dc/terms/
adms: http://www.w3.org/ns/adms#
prov: http://www.w3.org/ns/prov#
imports:
- linkml:types
- ../metadata
- ../slots/identifier_scheme
- ../slots/identifier_value
- ../slots/identifies_custodian
- ../slots/defined_by_standard
- ../slots/allocated_by
- ../slots/identifier_format_used
- ../slots/canonical_value
- ../slots/also_identifies_name
- ../slots/allocation_date
- ../slots/class_metadata_slots
classes:
CustodianIdentifier:
class_uri: crm:E42_Identifier
description: "An external identifier assigned to a heritage custodian entity by\
\ an authority.\nConnected to the Custodian hub via inverse property crm:P48i_is_preferred_identifier_of\n\
(the Custodian has this Identifier as a preferred identifier).\n\nCIDOC-CRM\
\ E42_Identifier: Formal symbols or reference codes for unique identification.\n\
CIDOC-CRM P48_has_preferred_identifier: Links E1_CRM_Entity (Custodian) to E42_Identifier.\n\
\n**Use for**: \n- External authority identifiers (ISIL, Wikidata, VIAF, KvK,\
\ ROR)\n- Registration numbers and codes\n- Persistent identifiers from registries\n\
\n**Connection to Hub**:\n- The Custodian hub uses crm:P48_has_preferred_identifier\
\ to point to CustodianIdentifier\n- This CustodianIdentifier uses crm:P48i_is_preferred_identifier_of\
\ to point back to the Custodian hub\n- Enables multiple identifiers per custodian\
\ (from different authorities)\n\n**Extended Provenance (v2)**:\n\nThe identifier\
\ now tracks its full lineage:\n- defined_by_standard: Which Standard defines\
\ this identifier type (ISIL → ISO 15511)\n- allocated_by: Which AllocationAgency\
\ assigned this specific identifier\n- identifier_format_used: Which format\
\ variant is used in identifier_value\n- canonical_value: Normalized form for\
\ deduplication and matching\n- allocation_date: When the identifier was assigned\n\
\n**Dual-Purpose Identifiers**:\n\nSome identifiers (ISNI, VIAF) also identify\
\ name authority records:\n- also_identifies_name: Links to the CustodianName\
\ record this identifier also identifies\n\n**Enables**:\n- External identifier\
\ management (scheme + value)\n- Cross-reference to authority registries\n-\
\ Persistent identifier resolution\n- Inter-dataset linking\n- Full provenance\
\ tracking (who allocated, when, under what standard)\n- Name authority linkage\
\ (for ISNI, VIAF)\n"
exact_mappings:
- crm:E42_Identifier
- schema:PropertyValue
- dcterms:identifier
close_mappings:
- schema:identifier
- adms:Identifier
- skos:notation
related_mappings:
- owl:sameAs
slots:
- allocated_by
- allocation_date
- also_identifies_name
- canonical_value
- defined_by_standard
- identifier_format_used
- identifier_scheme
- identifier_value
- identifies_custodian
- specificity_annotation
- template_specificity
slot_usage:
identifier_scheme:
slot_uri: skos:inScheme
description: |
Identifier scheme name (ISIL, Wikidata, VIAF, KvK, etc.).
SKOS: inScheme links identifier to its concept scheme.
This is a string representation of the scheme name.
For the full Standard object, use defined_by_standard.
Examples: 'ISIL', 'Wikidata', 'VIAF', 'KvK', 'ROR', 'ISNI'.
range: string
required: true
identifier_value:
slot_uri: skos:notation
description: "Identifier value within the scheme (as received/displayed).\n\
SKOS: notation for the actual identifier string.\n\nThis may be in any valid\
\ format for the scheme.\nUse canonical_value for normalized form.\n\nExamples:\
\ \n- 'NL-AmRMA' (ISIL)\n- 'Q190804' (Wikidata)\n- '148691498' (VIAF)\n\
- '0000 0001 2146 5765' (ISNI with spaces)\n"
range: string
required: true
identifies_custodian:
slot_uri: crm:P48i_is_preferred_identifier_of
description: |
Inverse property linking this identifier back to the Custodian hub it identifies.
CIDOC-CRM: P48i_is_preferred_identifier_of (inverse of P48_has_preferred_identifier).
Domain: E42_Identifier → Range: E1_CRM_Entity (Custodian).
range: Custodian
required: false
defined_by_standard:
description: |
The Standard that defines this identifier type.
Links to full Standard object for access to:
- Format specifications and patterns
- Registration authority
- Lookup URL template
- Validation rules
Examples:
- ISIL "NL-AmRMA" → Standard(id="isil", iso_standard_number="ISO 15511")
- ISNI "0000..." → Standard(id="isni", iso_standard_number="ISO 27729")
required: false
allocated_by:
description: |
The AllocationAgency that assigned this specific identifier.
For locally-allocated identifiers, tracks which agency is responsible.
Examples:
- Dutch public library ISIL → KB (Koninklijke Bibliotheek)
- Dutch academic library ISIL → OCLC
- Dutch archive ISIL → Nationaal Archief
required: false
identifier_format_used:
description: |
Which format variant is used in the identifier_value.
Enables validation and transformation.
Examples:
- ISNI "0000 0001 2146 5765" → format_name="Display with spaces"
- ISNI "0000000121465765" → format_name="Compact (canonical)"
required: false
canonical_value:
description: |
Normalized/canonical form of the identifier for matching and deduplication.
Transformation rules:
- ISNI: Remove spaces → "0000000121465765"
- Wikidata: Extract Q-number → "Q190804"
- DOI: Lowercase, no prefix → "10.1234/example"
- ISIL: Keep as-is → "NL-AmRMA"
required: false
also_identifies_name:
description: "For dual-purpose identifiers (ISNI, VIAF), links to the CustodianName\
\ \nrecord this identifier also identifies.\n\nISNI is defined as a \"name\
\ identifier\" (ISO 27729), so it identifies\nboth the entity AND its authoritative\
\ name record.\n"
required: false
allocation_date:
description: |
Date when this identifier was allocated/assigned.
ISO 8601 datetime format.
required: false
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true