glam/schemas/20251121/linkml/modules/classes/Address.yaml
kempersc 4034c2a00a Refactor schema slots across multiple classes to improve consistency and clarity
- Removed unused slots from TaxonomicAuthority, TechnicalFeature, TelevisionArchive, TentativeWorldHeritageSite, Threat, TimeSpan, Title, TradeRegister, TradeUnionArchive, TradeUnionArchiveRecordSetType, TransferEvent, UNESCODomain, UnitIdentifier, UniversityArchive, UnspecifiedType, UserCommunity, Venue, Vereinsarchiv, Verlagsarchiv, VerlagsarchivRecordSetType, Version, Verwaltungsarchiv, VideoAnnotationTypes, VideoAudioAnnotation, VideoFrame, VideoPost, VideoSubtitle, VideoTextContent, Warehouse, WebArchive, WebClaim, WebClaimsBlock, WebLink, WebPortal, WebPortalTypes, WomensArchives, WordCount, WorldHeritageSite, WritingSystem, and XPathScore.
- Introduced new slot is_or_was_retrieved_at for tracking data retrieval timestamps.
2026-01-31 00:28:09 +01:00

339 lines
14 KiB
YAML

id: https://nde.nl/ontology/hc/class/Address
name: address_class
title: Address Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
vcard: http://www.w3.org/2006/vcard/ns#
schema: http://schema.org/
locn: http://www.w3.org/ns/locn#
gleif_base: https://www.gleif.org/ontology/Base/
org: http://www.w3.org/ns/org#
dcterms: http://purl.org/dc/terms/
skos: http://www.w3.org/2004/02/skos/core#
imports:
- linkml:types
- ../slots/country_name
- ../slots/has_or_had_label
- ../slots/has_or_had_section
- ../slots/has_or_had_type
- ../slots/is_or_was_derived_from # was: was_derived_from
- ../slots/is_or_was_generated_by # was: was_generated_by
- ../slots/is_or_was_located_in
- ../slots/latitude
- ../slots/locality
- ../slots/longitude
- ../slots/postal_code
- ../slots/region
- ./AddressType
- ./City # Added for is_or_was_located_in range (2026-01-18, Rule 53)
- ./Country
- ./CustodianObservation
- ./ReconstructionActivity
- ./Settlement
- ./Subregion
- ./HouseNumber
- ./Label
default_range: string
classes:
Address:
class_uri: vcard:Address
description: |
Physical or postal address for heritage custodians and related entities.
**ONTOLOGY ALIGNMENT**:
This class aligns with multiple established address ontologies:
| Ontology | Class | Notes |
|----------|-------|-------|
| **vCard** | `vcard:Address` | RFC6350 ADR property components |
| **Schema.org** | `schema:PostalAddress` | Web semantics |
| **LOCN** | `locn:Address` | EU Location Core Vocabulary |
| **GLEIF** | `gleif_base:PhysicalAddress` | Legal entity addresses |
**COMPONENT STRUCTURE**:
An address consists of hierarchical components:
```
Address
├── has_or_had_section (e.g., "1", "221B", "25-27")
├── has_or_had_label (street name as Label, e.g., "Museumstraat")
├── postal_code (e.g., "1071 XX")
├── locality (e.g., "Amsterdam")
├── region (e.g., "Noord-Holland", "NL-NH")
├── country_name (e.g., "Netherlands", "NL")
└── has_or_had_label (formatted address as Label)
```
NOTE: street_name slot migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
NOTE: street_address slot removed - was redundant string; use house_number + has_or_had_label (2026-01-17, Rule 53/56)
**ADDRESS TYPES FOR HERITAGE CUSTODIANS**:
| Type | Use Case |
|------|----------|
| `HEADQUARTERS` | Main organizational address |
| `LEGAL` | Registered legal/business address |
| `VISITING` | Public visitor entrance |
| `MAILING` | Correspondence/postal address |
| `STORAGE` | Depot, warehouse, off-site storage |
| `BRANCH` | Branch office location |
**USAGE EXAMPLES**:
```yaml
# Simple address with formatted string
has_or_had_address:
- address_formatted: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
address_type: HEADQUARTERS
# Structured address with components
has_or_had_address:
- has_or_had_label:
- has_or_had_label: "Museumstraat"
language: "nl"
has_or_had_section:
- has_or_had_value: "1"
postal_code: "1071 XX"
locality: "Amsterdam"
region: "Noord-Holland"
country_name: "NL"
address_type: HEADQUARTERS
latitude: 52.3600
longitude: 4.8852
geonames_id: 2759794
```
**RELATIONSHIP TO OTHER CLASSES**:
- `AuxiliaryPlace`: Uses Address for structured address data
- `CustodianPlace`: May reference Address for place location
- `ContactPoint`: Uses Address for contact location
- `Settlement`/`Subregion`/`Country`: Hierarchical geographic entities
**PROVENANCE**:
Address data may be extracted from various sources (websites, Google Maps,
registries). Track provenance with:
- `was_derived_from`: Link to source observation
- `is_or_was_generated_by`: Link to extraction activity
exact_mappings:
- vcard:Address
close_mappings:
- schema:PostalAddress
- locn:Address
- gleif_base:PhysicalAddress
related_mappings:
- org:siteAddress
- schema:address
slots:
# Street-level components
- has_or_had_section
# REMOVED: street_name - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
# REMOVED: street_address - redundant string slot; use house_number + has_or_had_label (2026-01-17, Rule 53/56)
# Postal components
- postal_code
# Locality/geographic hierarchy
- locality
# REMOVED: city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53)
- is_or_was_located_in
- region
- country_name
# Formatted representation (MIGRATED: address_formatted → has_or_had_label)
- has_or_had_label
# Classification (MIGRATED: address_type → has_or_had_type)
- has_or_had_type
# Geographic coordinates (for geocoded addresses)
- latitude
- longitude
- geonames_id
# Provenance
- is_or_was_derived_from # was: was_derived_from - migrated per Rule 53
- is_or_was_generated_by # was: was_generated_by - migrated per Rule 53
slot_usage:
has_or_had_section:
range: HouseNumber
required: false
description: House/building number within street.
examples:
- value:
has_or_had_value: "1"
description: Rijksmuseum
- value:
has_or_had_value: "221B"
description: Baker Street notation
# REMOVED: street_name slot_usage - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
# Street names should now use Label class with language tagging via has_or_had_label
# REMOVED: street_address slot_usage - redundant string slot removed (2026-01-17, Rule 53/56)
# Use house_number + has_or_had_label (street name as Label) instead of combined string
postal_code:
range: string
required: false
description: Postal/ZIP code
examples:
- value: "1071 XX"
description: Dutch postal code format
locality:
range: string
required: false
description: City, town, or village name
examples:
- value: "Amsterdam"
description: City name
# REMOVED: city slot_usage - migrated to is_or_was_located_in + City (2026-01-18, Rule 53)
# city:
# range: string
# required: false
# description: Alternative slot for locality (schema:addressLocality)
is_or_was_located_in:
range: string
required: false
inlined: true
description: |
The city where this address is located, as a structured City entity.
MIGRATED from city (string) slot (2026-01-18, Rule 53).
Provides GeoNames ID, coordinates, and subregion linkage.
examples:
- value:
settlement_name: "Amsterdam"
geonames_id: 2759794
country: "NL"
description: Address located in Amsterdam
region:
range: string
required: false
description: State, province, or region
examples:
- value: "Noord-Holland"
description: Dutch province
- value: "NL-NH"
description: ISO 3166-2 code
country_name:
range: string
required: false
description: Country name or ISO 3166-1 code
examples:
- value: "Netherlands"
description: Full name
- value: "NL"
description: ISO 3166-1 alpha-2 code
# REMOVED 2026-01-22: address_formatted - migrated to has_or_had_label + Label (Rule 53, Feedback F1)
# Formatted address strings now use has_or_had_label slot_usage below
# REMOVED: address_type slot_usage - migrated to has_or_had_type (2026-01-17, Rule 53/56)
has_or_had_label: # was: address_formatted + street_name - migrated per Rule 53 (2026-01-17, 2026-01-22)
range: string
multivalued: true
inlined: true
inlined_as_list: true
required: false
description: |
Labels for this address, including:
1. **Street name** as Label with language tag
2. **Formatted address** as Label with language tag
MIGRATED from:
- address_formatted (2026-01-22, Feedback F1) - formatted address strings
- street_name (2026-01-17, Rule 53/56) - street name component
Use Label class with language_code for multilingual support.
examples:
- value:
- has_or_had_label: "Museumstraat"
language: "nl"
- has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
language: "nl"
description: Street name and formatted address as labels
has_or_had_type: # was: address_type - migrated per Rule 53/56 (2026-01-17)
range: AddressType
required: false
multivalued: false
description: |
Classification of the address by purpose or type.
MIGRATED from address_type (2026-01-13).
Uses AddressType class hierarchy for rich type semantics.
Common types: HeadquartersAddress, LegalAddress, VisitingAddress,
MailingAddress, StorageAddress, BranchAddress.
examples:
- value: HeadquartersAddress
description: Main organizational headquarters
latitude:
range: float
required: false
description: WGS84 latitude coordinate
examples:
- value: 52.3600
description: Amsterdam latitude
longitude:
range: float
required: false
description: WGS84 longitude coordinate
examples:
- value: 4.8852
description: Amsterdam longitude
geonames_id:
range: integer
required: false
description: GeoNames ID for geocoded locality
examples:
- value: 2759794
description: Amsterdam GeoNames ID
is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53
range: CustodianObservation
multivalued: true
required: false
description: Source observation from which address was extracted
is_or_was_generated_by: # was: was_generated_by - migrated per Rule 53
range: ReconstructionActivity
required: false
description: Activity that generated this address record
comments:
- vCard Address is the primary ontology class (RFC6350 standard)
- Use structured components when available, address_formatted as fallback
- Multiple addresses supported via has_or_had_address slot (multivalued, Rule 39 compliant)
- address_type distinguishes headquarters, legal, visiting, mailing, storage
- Coordinates (lat/lon) optional but recommended for visualization/mapping
see_also:
- https://www.w3.org/TR/vcard-rdf/#d4e936
- https://schema.org/PostalAddress
- https://www.w3.org/ns/locn#Address
- https://www.gleif.org/ontology/Base/PhysicalAddress
examples:
- value:
has_or_had_section:
- has_or_had_value: "1"
has_or_had_label:
- has_or_had_label: "Museumstraat"
language: "nl"
- has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
language: "nl"
# REMOVED: street_address - migrated to house_number + has_or_had_label (2026-01-17, Rule 53/56)
postal_code: "1071 XX"
locality: "Amsterdam"
region: "Noord-Holland"
country_name: "NL"
address_type: "HEADQUARTERS"
latitude: 52.3600
longitude: 4.8852
geonames_id: 2759794
description: Rijksmuseum headquarters - fully structured address (street_name and street_address migrated to has_or_had_label)
- value:
has_or_had_section:
- has_or_had_value: "40"
# REMOVED: street_address - migrated to house_number + has_or_had_label (2026-01-17, Rule 53/56)
postal_code: "2011 RX"
locality: "Haarlem"
country_name: "NL"
address_type: "HEADQUARTERS"
description: Noord-Hollands Archief address - simplified structure
- value:
has_or_had_label:
- has_or_had_label: "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA"
language: "en"
locality: "Washington"
region: "DC"
country_name: "US"
address_type: "LEGAL"
description: US address with formatted string primary
- value:
has_or_had_label:
- has_or_had_label: "Euterpelaan"
language: "nl"
- has_or_had_label: "Euterpelaan 25, 3824 BK Amersfoort, Netherlands"
language: "nl"
has_or_had_section:
- has_or_had_value: "25"
postal_code: "3824 BK"
locality: "Amersfoort"
region: "Utrecht"
country_name: "NL"
address_type: "STORAGE"
description: Off-site storage depot address (street_name and street_address migrated to has_or_had_label)
annotations:
specificity_score: 0.25
specificity_rationale: "Address is broadly applicable to all heritage custodian types and many other entities. Universal across domains."
custodian_types: '["*"]'
custodian_types_rationale: "All heritage custodians have physical addresses - museums, archives, libraries, etc."