glam/schemas/20251121/linkml/modules/classes/Country.yaml
kempersc 095a3f949c refactor(linkml): apply RiC-O slot naming conventions to /schemas/ (Rule 39)
Apply same RiC-O-style slot naming refactor to /schemas/20251121/linkml/
that was previously applied to frontend/public/schemas/:

- Add 'has_' prefix for possession predicates
- Add 'is_or_was_' prefix for temporal inverse relationships
- Add 'has_or_had_' for bidirectional temporal relations
- Add new slots: is_or_was_aggregated_by, is_or_was_allocated_by, etc.
- Update count slots with proper descriptions

This ensures consistency between the source schema directory and the
frontend-served schemas.

514 files changed, +6,325 insertions, -4,255 deletions
2026-01-10 12:55:45 +01:00

105 lines
3.3 KiB
YAML

id: https://nde.nl/ontology/hc/class/country
name: country
title: Country Class
imports:
- linkml:types
- ../slots/alpha_2
- ../slots/alpha_3
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
Country:
class_uri: schema:Country
exact_mappings:
- lcc_cr:Country
- gn:A.PCLI
close_mappings:
- wikidata:Q6256
description: |
Country identified by ISO 3166-1 alpha-2 and alpha-3 codes.
This is a **minimal design** class containing ONLY ISO standardized country codes.
No other metadata (names, languages, capitals, regions) is included.
Purpose:
- Link legal forms to their jurisdiction (legal forms are country-specific)
- Link custodian places to their country location
- Enable conditional enum values in FeatureTypeEnum (e.g., "cultural heritage of Peru")
Design rationale:
- ISO 3166 codes are authoritative, stable, and language-neutral
- Country names, languages, and other metadata should be resolved via external services
- Keeps the ontology focused on heritage custodian relationships, not geopolitical data
External resolution services:
- GeoNames API: https://www.geonames.org/
- UN M49 Standard: https://unstats.un.org/unsd/methodology/m49/
- ISO 3166 Maintenance Agency: https://www.iso.org/iso-3166-country-codes.html
Examples:
- Netherlands: alpha_2="NL", alpha_3="NLD"
- Peru: alpha_2="PE", alpha_3="PER"
- United States: alpha_2="US", alpha_3="USA"
- Japan: alpha_2="JP", alpha_3="JPN"
slots:
- alpha_2
- alpha_3
- specificity_annotation
- template_specificity
slot_usage:
has_alpha_2_code:
required: true
description: ISO 3166-1 alpha-2 code (2-letter country code)
has_alpha_3_code:
required: true
description: ISO 3166-1 alpha-3 code (3-letter country code)
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
slots:
has_alpha_2_code:
description: |
ISO 3166-1 alpha-2 country code (2-letter).
The two-letter country codes defined in ISO 3166-1, used for internet
country code top-level domains (ccTLDs), vehicle registration plates,
and many other applications.
Format: Two uppercase letters [A-Z]{2}
Examples:
- "NL" (Netherlands)
- "PE" (Peru)
- "US" (United States)
- "JP" (Japan)
- "BR" (Brazil)
Reference: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
range: string
pattern: ^[A-Z]{2}$
slot_uri: schema:addressCountry
has_alpha_3_code:
description: |
ISO 3166-1 alpha-3 country code (3-letter).
The three-letter country codes defined in ISO 3166-1, used by the
United Nations, the International Olympic Committee, and many other
international organizations.
Format: Three uppercase letters [A-Z]{3}
Examples:
- "NLD" (Netherlands)
- "PER" (Peru)
- "USA" (United States)
- "JPN" (Japan)
- "BRA" (Brazil)
Reference: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
range: string
pattern: ^[A-Z]{3}$