glam/schemas/20251121/linkml/modules/classes/AddressComponent.yaml
kempersc ca4a54181e Refactor schema files to improve clarity and maintainability
- Updated WorldCatIdentifier.yaml to remove unnecessary description and ensure consistent formatting.
- Enhanced WorldHeritageSite.yaml by breaking long description into multiple lines for better readability and removed unused attributes.
- Simplified WritingSystem.yaml by removing redundant attributes and ensuring consistent formatting.
- Cleaned up XPathScore.yaml by removing unnecessary attributes and ensuring consistent formatting.
- Improved YoutubeChannel.yaml by breaking long description into multiple lines for better readability.
- Enhanced YoutubeEnrichment.yaml by breaking long description into multiple lines for better readability.
- Updated YoutubeVideo.yaml to break long description into multiple lines and removed legacy field name.
- Refined has_or_had_affiliation.yaml by removing unnecessary comments and ensuring clarity.
- Cleaned up is_or_was_retrieved_at.yaml by removing unnecessary comments and ensuring clarity.
- Added rules for generic slots and avoiding rough edits in schema files to maintain structural integrity.
- Introduced changes_or_changed_through.yaml to define a new slot for linking entities to change events.
2026-01-31 00:46:23 +01:00

189 lines
6.2 KiB
YAML

id: https://nde.nl/ontology/hc/classes/AddressComponent
name: AddressComponent
title: AddressComponent
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_or_had_type
- ../slots/long_name
- ../slots/short_name
- ./ComponentType
- ./ComponentTypes
default_range: string
classes:
AddressComponent:
class_uri: hc:AddressComponent
description: |
A single component of a structured address.
**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_or_had_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_or_had_type: [StreetNumber]
# Province with abbreviation
- long_name: "Noord-Holland"
short_name: "NH"
has_or_had_type: [Region]
# Country with ISO code
- long_name: "Netherlands"
short_name: "NL"
has_or_had_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.
close_mappings:
- locn:AddressRepresentation
related_mappings:
- schema:PostalAddress
- vcard:Address
slots:
- long_name
- short_name
# REMOVED 2026-01-22: component_type - migrated to has_or_had_type + ComponentType (Rule 53)
- has_or_had_type
attributes:
types:
range: string
multivalued: true
inlined_as_list: true
description: Address component types (alias for component_type for backward compatibility with Google Maps API format)
slot_usage:
long_name:
range: string
required: false
examples:
- value: "Netherlands"
- value: "Noord-Holland"
- value: "Museumstraat"
short_name:
range: string
required: false
examples:
- value: "NL"
- value: "NH"
- value: "Museumstraat"
# MIGRATED 2026-01-22: component_type → has_or_had_type + ComponentType (Rule 53)
has_or_had_type:
range: ComponentType
multivalued: true
inlined_as_list: true
required: false
examples:
- value: StreetNumber
- value: Locality
- value: Region
- value: Country
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
see_also:
- https://nde.nl/ontology/hc/classes/Address
- https://www.w3.org/ns/locn#Address
examples:
# MIGRATED 2026-01-22: component_type → has_or_had_type + ComponentType (Rule 53)
- value:
long_name: "1"
short_name: "1"
has_or_had_type: [StreetNumber]
- value:
long_name: "Museumstraat"
short_name: "Museumstraat"
has_or_had_type: [Route]
- value:
long_name: "Amsterdam"
short_name: "Amsterdam"
has_or_had_type: [Locality]
- value:
long_name: "Noord-Holland"
short_name: "NH"
has_or_had_type: [Region]
- value:
long_name: "Netherlands"
short_name: "NL"
has_or_had_type: [Country]
- value:
long_name: "1071 XX"
short_name: "1071 XX"
has_or_had_type: [PostalCode]
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."