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

99 lines
3.3 KiB
YAML

id: https://nde.nl/ontology/hc/class/CanonicalForm
name: canonical_form_class
title: Canonical Form 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/
dcterms: http://purl.org/dc/terms/
imports:
- linkml:types
- ../slots/has_or_had_label
- ./Label
default_prefix: hc
classes:
CanonicalForm:
class_uri: skos:Concept
description: >-
Represents the canonical/normalized form of an identifier or value.
**PURPOSE**:
While original values may vary in format (spaces, prefixes, case),
CanonicalForm provides a standardized representation for:
- Consistent storage
- Deduplication and matching
- Database joins and lookups
- Cross-system interoperability
**NORMALIZATION RULES BY STANDARD**:
| Standard | Original | Canonical |
|----------|----------|-----------|
| ISNI | "0000 0001 2146 5765" | "0000000121465765" |
| Wikidata | "http://wikidata.org/entity/Q190804" | "Q190804" |
| VIAF | "viaf.org/viaf/148691498" | "148691498" |
| DOI | "https://doi.org/10.1234/Ex" | "10.1234/ex" |
| ISIL | "NL-AmRMA" | "NL-AmRMA" (already canonical) |
**ONTOLOGY ALIGNMENT**:
| Ontology | Mapping | Rationale |
|----------|---------|-----------|
| SKOS | skos:Concept | Conceptual representation |
| Schema.org | schema:PropertyValue | Name-value pair |
MIGRATED 2026-01-22: Created per slot_fixes.yaml feedback to replace
simple canonical_value string with structured class.
exact_mappings:
- skos:Concept
close_mappings:
- schema:PropertyValue
slots:
- has_or_had_label
slot_usage:
has_or_had_label:
range: Label
required: true
inlined: true
description: >-
The canonical/normalized value as a Label.
Label.has_or_had_text contains the actual normalized string.
attributes:
normalization_rule:
range: string
required: false
description: >-
The rule or standard used to normalize this value.
E.g., "ISNI_REMOVE_SPACES", "WIKIDATA_EXTRACT_QID", "DOI_LOWERCASE"
source_format:
range: string
required: false
description: >-
The original format/scheme before normalization.
E.g., "ISNI_DISPLAY", "WIKIDATA_URI", "DOI_URL"
examples:
- value:
has_or_had_label:
has_or_had_text: "0000000121465765"
normalization_rule: "ISNI_REMOVE_SPACES"
source_format: "ISNI_DISPLAY"
description: ISNI canonical form (spaces removed)
- value:
has_or_had_label:
has_or_had_text: "Q190804"
normalization_rule: "WIKIDATA_EXTRACT_QID"
source_format: "WIKIDATA_URI"
description: Wikidata canonical form (Q-number extracted)
- value:
has_or_had_label:
has_or_had_text: "10.1234/example"
normalization_rule: "DOI_LOWERCASE_NO_PREFIX"
source_format: "DOI_URL"
description: DOI canonical form (lowercase, no resolver prefix)
annotations:
specificity_score: 0.30
specificity_rationale: >-
Canonical forms are relevant for identifier lookup across all heritage sectors.