glam/schemas/20251121/linkml/modules/classes/Identifier.yaml

187 lines
6.8 KiB
YAML

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/
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
- ../classes/AllocationEvent
- ../classes/TimeSpan
- ../metadata
- ../slots/has_or_had_canonical_form
- ../slots/has_or_had_format
- ../slots/has_or_had_scheme
- ../slots/has_or_had_score
- ../slots/has_or_had_standard
- ../slots/has_or_had_type
- ../slots/has_or_had_value
- ../slots/identifies_or_identified
- ../slots/is_or_was_allocated_by
- ../slots/is_or_was_allocated_through
- ../slots/source
- ../slots/specificity_annotation
- ../slots/temporal_extent
- ./AllocationAgency
- ./CanonicalForm
- ./Custodian
- ./CustodianName
- ./IdentifierFormat
- ./IdentifierScheme
- ./IdentifierType
- ./IdentifierTypes
- ./IdentifierValue
- ./Label
- ./SpecificityAnnotation
- ./Standard
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ./AllocationEvent
default_prefix: hc
classes:
# Generic Identifier class - base for all identifier types
Identifier:
class_uri: schema:PropertyValue
description: |
A generic identifier consisting of a scheme and value pair.
**Purpose**:
Base identifier class for any entity (not just heritage custodians).
Used when a simple scheme + value identifier is needed.
**For heritage custodian identifiers**: Use `CustodianIdentifier` which
extends this class with provenance tracking (allocation agency, standard, etc.)
**Schema.org Alignment**:
Maps to schema:PropertyValue which represents a property-value pair.
- propertyID → identifier_scheme
- value → identifier_value
exact_mappings:
- schema:PropertyValue
close_mappings:
- dcterms:identifier
- adms:Identifier
- skos:notation
slots:
# identifier_scheme REMOVED - migrated to has_or_had_scheme (Rule 53)
- has_or_had_scheme
# identifier_value REMOVED - migrated to has_or_had_value (Rule 53)
- has_or_had_value
- has_or_had_type
slot_usage:
has_or_had_type:
range: IdentifierType
required: false
examples:
- value:
has_or_had_code: CATALOG_RAISONNE
has_or_had_label: Catalogue Raisonné Number
- value:
has_or_had_code: ISIL
has_or_had_label: ISIL Code
has_or_had_scheme:
range: IdentifierScheme
inlined: true
examples:
- value:
has_or_had_label: "ISBN"
has_or_had_value:
range: IdentifierValue
inlined: true
examples:
- value:
has_or_had_value: "978-0-123456-47-2"
required: false
annotations:
specificity_score: 0.25
specificity_rationale: |
Low specificity - identifiers are broadly useful across all queries
involving entity lookup and cross-referencing.
# Heritage custodian-specific identifier with provenance tracking
CustodianIdentifier:
is_a: Identifier
class_uri: crm:E42_Identifier
description: |
An external identifier assigned to a heritage custodian entity by an authority.
Extends the generic Identifier class with provenance tracking:
- Which authority allocated the identifier
- Under what standard it was assigned
- When it was allocated
- Canonical/normalized form for matching
Connected to the Custodian hub via inverse property crm:P48i_is_preferred_identifier_of
(the Custodian has this Identifier as a preferred identifier).
CIDOC-CRM E42_Identifier: Formal symbols or reference codes for unique identification.
CIDOC-CRM P48_has_preferred_identifier: Links E1_CRM_Entity (Custodian) to E42_Identifier.
**Use for**:
- External authority identifiers (ISIL, Wikidata, VIAF, KvK, ROR)
- Registration numbers and codes
- Persistent identifiers from registries
**Connection to Hub**:
- The Custodian hub uses crm:P48_has_preferred_identifier to point to CustodianIdentifier
- This CustodianIdentifier uses crm:P48i_is_preferred_identifier_of to point back to the Custodian hub
- Enables multiple identifiers per custodian (from different authorities)
**Extended Provenance (v2)**:
The identifier now tracks its full lineage:
- has_or_had_standard: Which Standard defines this identifier type (ISIL → ISO 15511)
- allocated_by: Which AllocationAgency assigned this specific identifier
- identifier_format_used: Which format variant is used in identifier_value
- has_or_had_canonical_form: Normalized form (CanonicalForm) for deduplication and matching
- allocation_date: When the identifier was assigned
**Dual-Purpose Identifiers**:
Some identifiers (ISNI, VIAF) also identify name authority records:
- has_or_had_secondary_label: Links to the CustodianName record this identifier also identifies (as a Label)
**Enables**:
- External identifier management (scheme + value)
- Cross-reference to authority registries
- Persistent identifier resolution
- Inter-dataset linking
- Full provenance tracking (who allocated, when, under what standard)
- Name authority linkage (for ISNI, VIAF)
exact_mappings:
- crm:E42_Identifier
close_mappings:
- schema:identifier
- adms:Identifier
- skos:notation
related_mappings:
- owl:sameAs
slots:
- is_or_was_allocated_by
- is_or_was_allocated_through
slot_usage:
is_or_was_allocated_through:
range: AllocationEvent
examples:
- value:
temporal_extent:
begin_of_the_begin: "2023-01-01"
# MIGRATED 2026-01-24: defined_by_standard → has_or_had_standard + Standard (Rule 53)
has_or_had_standard:
range: string
required: false
multivalued: false
inlined: false
examples:
- value:
name: "International Standard Identifier for Libraries"
is_or_was_allocated_by:
required: false
has_or_had_canonical_form:
range: CanonicalForm
required: false
multivalued: false
inlined: true
# identifies_custodian REMOVED - migrated to identifies_or_identified (Rule 53)
identifies_or_identified:
range: Custodian
required: false
annotations:
specificity_score: 0.30
specificity_rationale: |
Slightly higher specificity than generic Identifier due to
heritage custodian-specific provenance tracking.