- 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.
189 lines
6.2 KiB
YAML
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."
|