glam/schemas/20251121/linkml/modules/classes/Country.yaml
kempersc 67657c39b6 feat: Complete Country Class Implementation and Hypernyms Removal
- Created the Country class with ISO 3166-1 alpha-2 and alpha-3 codes, ensuring minimal design without additional metadata.
- Integrated the Country class into CustodianPlace and LegalForm schemas to support country-specific feature types and legal forms.
- Removed duplicate keys in FeatureTypeEnum.yaml, resulting in 294 unique feature types.
- Eliminated "Hypernyms:" text from FeatureTypeEnum descriptions, verifying that semantic relationships are now conveyed through ontology mappings.
- Created example instance file demonstrating integration of Country with CustodianPlace and LegalForm.
- Updated documentation to reflect the completion of the Country class implementation and hypernyms removal.
2025-11-23 13:09:38 +01:00

105 lines
3.4 KiB
YAML

# Country Class - ISO 3166 Country Codes
# Minimal design: ONLY ISO 3166-1 alpha-2 and alpha-3 codes
# No other metadata (no names, no languages, no capitals)
#
# Used for:
# - LegalForm.country: Legal forms are jurisdiction-specific
# - CustodianPlace.country: Places are in countries
# - FeatureTypeEnum: Conditional country-specific feature types
#
# Design principle: ISO codes are authoritative, stable, language-neutral identifiers
# All other country metadata should be resolved via external services (GeoNames, UN M49, etc.)
id: https://nde.nl/ontology/hc/class/country
name: country
title: Country Class
imports:
- linkml:types
classes:
Country:
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
slot_usage:
alpha_2:
required: true
description: ISO 3166-1 alpha-2 code (2-letter country code)
alpha_3:
required: true
description: ISO 3166-1 alpha-3 code (3-letter country code)
slots:
alpha_2:
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 # Schema.org uses ISO 3166-1 alpha-2
alpha_3:
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}$"