glam/schemas/20251121/linkml/modules/classes/AddressComponent.yaml
kempersc 66adec257e Add scripts for normalizing LinkML schemas and validating schema integrity
- Implement `normalize_linkml_alt_descriptions.py` to convert structured alt_descriptions to the expected scalar form.
- Implement `normalize_linkml_structured_aliases.py` to flatten language-keyed structured_aliases into a standard list-of-objects format.
- Implement `validate_linkml_schema_integrity.py` to validate the integrity of LinkML schema bundles, checking for import resolution, YAML parsing, and reference existence.
2026-02-16 10:16:51 +01:00

218 lines
9.2 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

id: https://nde.nl/ontology/hc/classes/AddressComponent
name: AddressComponent
title: Address Component
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
vcard: http://www.w3.org/2006/vcard/ns#
locn: http://www.w3.org/ns/locn#
imports:
- linkml:types
- ../slots/has_type
- ../slots/has_literal_form
- ../slots/shortened_as
classes:
AddressComponent:
class_uri: hc:AddressComponent
description: >-
Single component of a structured address.
Represents one discrete element of an address such as street number, street name, city, region, or country. Used for parsing addresses from various sources into standardized components and normalizing address data from different formats/APIs.
alt_descriptions:
nl: "Enkel onderdeel van een gestructureerd adres.\nVertegenwoordigt één discreet element van een adres zoals huisnummer, straatnaam, stad, regio of land. Gebruikt voor het parseren van adressen uit verschillende bronnen naar gestandaardiseerde componenten en het normaliseren van adresgegevens uit verschillende formaten/API's."
de: "Einzelne Komponente einer strukturierten Adresse.\nRepräsentiert ein diskretes Element einer Adresse wie Hausnummer, Straßenname, Stadt, Region oder Land. Wird zum Parsen von Adressen aus verschiedenen Quellen in standardisierte Komponenten und zum Normalisieren von Adressdaten aus verschiedenen Formaten/APIs verwendet."
fr: "Composant unique d'une adresse structurée.\nReprésente un élément discret d'une adresse tel que le numéro de rue, le nom de rue, la ville, la région ou le pays. Utilisé pour analyser les adresses de diverses sources en composants standardisés et normaliser les données d'adresse de différents formats/API."
es: "Componente único de una dirección estructurada.\nRepresenta un elemento discreto de una dirección como número de calle, nombre de calle, ciudad, región o país. Se utiliza para analizar direcciones de varias fuentes en componentes estandarizados y normalizar datos de direcciones de diferentes formatos/API."
ar: "مكون واحد من عنوان منظم.\nيمثل عنصرًا منفصلًا من العنوان مثل رقم الشارع واسم الشارع والمدينة أو المنطقة أو البلد. يُستخدم لتحليل العناوين من مصادر مختلفة إلى مكونات موحدة وتطبيع بيانات العناوين من تنسيقات/واجهات برمجة تطبيقات مختلفة."
id: "Komponen tunggal dari alamat terstruktur.\nMewakili satu elemen diskrit dari alamat seperti nomor jalan, nama jalan, kota, wilayah, atau negara. Digunakan untuk mengurai alamat dari berbagai sumber menjadi komponen terstandarisasi dan menormalkan data alamat dari format/API yang berbeda."
zh: "结构化地址的单个组件。\n表示地址的一个离散元素如街道号码、街道名称、城市、地区或国家。 用于将来自各种来源的地址解析为标准化组件,并规范化来自不同格式/API的地址数据。"
examples:
- value:
has_literal_form: '1'
shortened_as: '1'
has_type:
- StreetNumber
description: Street number component
- value:
has_literal_form: Museumstraat
shortened_as: Museumstraat
has_type:
- Route
description: Street name component
- value:
has_literal_form: Noord-Holland
shortened_as: NH
has_type:
- Region
description: Province/region component with abbreviation
- value:
has_literal_form: Netherlands
shortened_as: NL
has_type:
- Country
description: Country component with ISO code
close_mappings:
- locn:AddressRepresentation
related_mappings:
- schema:PostalAddress
- vcard:Address
structured_aliases:
- literal_form: adrescomponent
in_language: nl
- literal_form: adresonderdeel
in_language: nl
- literal_form: Adresskomponente
in_language: de
- literal_form: Adressbestandteil
in_language: de
- literal_form: composant d'adresse
in_language: fr
- literal_form: élément d'adresse
in_language: fr
- literal_form: componente de dirección
in_language: es
- literal_form: elemento de dirección
in_language: es
- literal_form: مكون العنوان
in_language: ar
- literal_form: عنصر العنوان
in_language: ar
- literal_form: komponen alamat
in_language: id
- literal_form: elemen alamat
in_language: id
- literal_form: 地址组件
in_language: zh
- literal_form: 地址元素
in_language: zh
keywords:
- address component
- street number
- locality
- region
- country
- postal code
- parsing
- normalization
slots:
- has_literal_form
- shortened_as
- has_type
slot_usage:
has_literal_form:
required: false
examples:
- value: Netherlands
- value: Noord-Holland
- value: Museumstraat
shortened_as:
required: false
examples:
- value: NL
- value: NH
- value: Museumstraat
has_type:
range: ComponentType
multivalued: true
inlined_as_list: true
required: false
examples:
- value: StreetNumber
- value: Locality
- value: Region
- value: Country
annotations:
specificity_score: "0.35"
specificity_rationale: "Generic address parsing component. Broadly applicable across all address sources and custodian types."
custodian_types: "['*']"
custodian_types_rationale: "Any custodian with address data may use address components during parsing/normalization."
component_types: "street_number, route, locality, postal_code, subregion, region, country, premise, subpremise"
comments:
- Source-agnostic representation of address components
- Use for parsing/normalization workflows before constructing Address objects
- Component types follow common geographic hierarchy conventions
- Multiple types allowed for components that serve multiple roles
- Intermediate representation between raw data and Address objects
- |
Preserved from prior description:
**PURPOSE**:
AddressComponent represents one discrete element of an address, such as
the street number, street name, city, region, or country. This enables:
- Parsing addresses from various sources into standardized components
- Normalizing address data from different formats/APIs
- Supporting multilingual address representations (long_name vs short_name)
**COMPONENT STRUCTURE**:
Each AddressComponent has:
- `long_name`: Full form of the value (e.g., "Netherlands", "Noord-Holland")
- `short_name`: Abbreviated form (e.g., "NL", "NH") - may equal long_name
- `has_type`: Semantic type(s) via ComponentType (e.g., Country, Locality)
**STANDARD COMPONENT TYPES**:
| Type | Description | Example long_name | Example short_name |
|------|-------------|-------------------|-------------------|
| `street_number` | House/building number | "1", "221B" | same |
| `route` | Street/road name | "Museumstraat" | same |
| `locality` | City/town/village | "Amsterdam" | same |
| `postal_code` | ZIP/postal code | "1071 XX" | same |
| `subregion` | County/district | "Amsterdam" | same |
| `region` | State/province | "Noord-Holland" | "NH" |
| `country` | Country | "Netherlands" | "NL" |
| `premise` | Building/complex name | "Rijksmuseum" | same |
| `subpremise` | Unit/floor/suite | "Floor 3" | "3" |
**RELATIONSHIP TO Address CLASS**:
AddressComponent is used for:
1. **Parsing workflows**: Breaking down raw address strings into components
2. **Normalization**: Standardizing addresses from different sources
3. **Intermediate representation**: Before constructing a full Address object
The Address class provides the final, ontology-aligned representation with
dedicated slots (street_name, locality, region, country_name, etc.).
```
Raw Address Data (any source)
└── parse → AddressComponent[] # Intermediate representation
└── normalize → Address # vCard/LOCN aligned
```
**USAGE EXAMPLES**:
```yaml
# Street number component (MIGRATED 2026-01-22: Rule 53)
- long_name: "1"
short_name: "1"
has_type: [StreetNumber]
# Province with abbreviation
- long_name: "Noord-Holland"
short_name: "NH"
has_type: [Region]
# Country with ISO code
- long_name: "Netherlands"
short_name: "NL"
has_type: [Country]
```
**SOURCE-AGNOSTIC DESIGN**:
This class is designed to work with addresses from ANY source:
- Website scraping
- Registry data (ISIL, KvK, etc.)
- API responses (when normalized)
- Manual data entry
- OCR/document extraction
API-specific raw data formats are handled by Endpoint classes.
see_also:
- Address
- https://www.w3.org/ns/locn#Address