- 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.
105 lines
3.4 KiB
YAML
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}$"
|