glam/frontend/public/schemas/20251121/linkml/modules/classes/Address.yaml
kempersc f9f3cc8e74 fix: resolve YAML import indentation and add missing slot descriptions
Schema Improvements:
- Fix YAML import indentation across 800+ class files (sed: '^- ../' → '  - ../')
- Add descriptions to 26 inline slots missing them (lint warnings)
- Fix malformed imports in BirthPlace.yaml and CustodianObservation.yaml

Validation Results:
- linkml-lint: 4 warnings (intentional SCREAMING_CASE tier names)
- gen-owl: SUCCESS (164,069 lines generated)
- gen-json-schema: SUCCESS (9.4MB generated)

Files affected: 1,034 files, +23,908 -15,200 lines
2026-01-16 00:09:28 +01:00

368 lines
12 KiB
YAML

# Address - Generic postal/physical address class
# Aligned with vCard, Schema.org, LOCN, GLEIF ontologies
# Created: 2026-01-12
# Rule 38 compliant: All slots imported from modules/slots/
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/address_formatted
- ../slots/address_type
# Address component slots
- ../slots/house_number
- ../slots/street_name
- ../slots/street_address
- ../slots/postal_code
- ../slots/locality
- ../slots/city
- ../slots/region
- ../slots/country_name
# Shared slots (replacing address_formatted, address_type)
- ../slots/has_or_had_label
- ../slots/has_or_had_type
# Geographic reference slots
- ../slots/latitude
- ../slots/longitude
- ../slots/geonames_id
# Provenance slots
- ../slots/is_or_was_derived_from # was: was_derived_from - migrated per Rule 53
- ../slots/is_or_was_generated_by # was: was_generated_by - migrated per Rule 53
# Related classes
- ./Country
- ./Subregion
- ./Settlement
- ./CustodianObservation
- ./ReconstructionActivity
- ./AddressType
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
├── house_number (e.g., "1", "221B", "25-27")
├── street_name (e.g., "Museumstraat")
├── street_address (combined: "Museumstraat 1")
├── postal_code (e.g., "1071 XX")
├── locality (e.g., "Amsterdam")
├── region (e.g., "Noord-Holland", "NL-NH")
├── country_name (e.g., "Netherlands", "NL")
└── address_formatted (full string representation)
```
**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:
- street_name: "Museumstraat"
house_number: "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
- `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
- house_number
- street_name
- street_address
# Postal components
- postal_code
# Locality/geographic hierarchy
- locality
- city
- 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:
house_number:
range: string
required: false
description: House/building number within street
examples:
- value: "1"
description: Rijksmuseum
- value: "221B"
description: Baker Street notation
street_name:
range: string
required: false
description: Name of street, road, or thoroughfare
examples:
- value: "Museumstraat"
description: Museum Street in Amsterdam
street_address:
range: string
required: false
description: Combined street address (name + number)
examples:
- value: "Museumstraat 1"
description: Full street address
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
city:
range: string
required: false
description: Alternative slot for locality (schema:addressLocality)
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
address_formatted:
range: string
required: false
description: |
Full formatted address string.
DEPRECATED: Use has_or_had_label instead.
MIGRATION: 2026-01-13 - Replaced by has_or_had_label slot.
deprecated: "Use has_or_had_label instead"
examples:
- value: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
description: Complete formatted address
has_or_had_label:
range: string
required: false
multivalued: false
description: |
Full formatted address as a single human-readable string.
MIGRATED from address_formatted (2026-01-13).
Use for:
- Display/presentation purposes
- When structured components are unavailable
- Geocoding input/output addresses
examples:
- value: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
description: Complete formatted address
address_type:
range: string
required: false
description: |
Classification of address purpose.
DEPRECATED: Use has_or_had_type with AddressType class instead.
MIGRATION: 2026-01-13 - Replaced by has_or_had_type slot.
deprecated: "Use has_or_had_type with AddressType class instead"
examples:
- value: "HEADQUARTERS"
description: Main organizational address
has_or_had_type:
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:
house_number: "1"
street_name: "Museumstraat"
street_address: "Museumstraat 1"
postal_code: "1071 XX"
locality: "Amsterdam"
region: "Noord-Holland"
country_name: "NL"
address_formatted: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
address_type: "HEADQUARTERS"
latitude: 52.3600
longitude: 4.8852
geonames_id: 2759794
description: Rijksmuseum headquarters - fully structured address
- value:
street_address: "Jansstraat 40"
postal_code: "2011 RX"
locality: "Haarlem"
country_name: "NL"
address_formatted: "Jansstraat 40, 2011 RX Haarlem, Netherlands"
address_type: "HEADQUARTERS"
description: Noord-Hollands Archief address - simplified structure
- value:
address_formatted: "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA"
locality: "Washington"
region: "DC"
country_name: "US"
address_type: "LEGAL"
description: US address with formatted string primary
- value:
street_name: "Euterpelaan"
house_number: "25"
postal_code: "3824 BK"
locality: "Amersfoort"
region: "Utrecht"
country_name: "NL"
address_type: "STORAGE"
description: Off-site storage depot address
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."