glam/schemas/20251121/linkml/modules/classes/Address.yaml
kempersc fcd1c21c63 Add aliases and enhance slot definitions across various modules
- Added new aliases for existing slots to improve clarity and usability, including:
  - has_deadline: has_embargo_end_date
  - has_extent: has_extent_text
  - has_fonds: has_fond
  - has_laboratory: conservation_lab
  - has_language: has_iso_code639_1, has_iso_code639_3
  - has_legal_basis: legal_basis
  - has_light_exposure: max_light_lux
  - has_measurement_unit: has_unit
  - has_note: has_custodian_observation
  - has_occupation: occupation
  - has_operating_hours: has_operating_hours
  - has_position: position
  - has_quantity: has_artwork_count, link_count
  - has_roadmap: review_date
  - has_skill: skill
  - has_speaker: speaker_label
  - has_specification: specification_url
  - has_statement: rights_statement_url, rights_statement
  - has_type: custodian_only
  - has_user_category: serves_visitors_only
  - hold_record_set: record_count
  - identified_by: has_index_number
  - in_period: has_period
  - in_place: has_place
  - in_series: has_series
  - measure: has_measurement
  - measured_on: measurement_date
  - organized_by: has_organizer
  - originate_from: has_origin
  - part_of: suborganization_of
  - published_on: has_publication_date
  - receive_investment: has_investment
  - related_to: connection_heritage_type
  - require: preservation_requirement
  - safeguarded_by: current_keeper, record_holder_note
  - state: states_or_stated
  - take_comission: takes_or_took_comission
  - take_place_at: takes_or_took_place_at
  - transmit_through: transmits_or_transmitted_through
  - warrant: warrants_or_warranted

- Introduced a new slot definition for evaluated_through to capture evaluation methodologies and review statuses.
2026-02-14 14:41:49 +01:00

276 lines
10 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:
- ./ReconstructionActivity
- ./AddressType
- ./HouseNumber
- linkml:types
- ../slots/in_country
- ../slots/has_label
- ../slots/has_section
- ../slots/has_type
- ../slots/derive_from # was: was_derived_from
- ../slots/generated_by # was: was_generated_by
- ../slots/located_in
- ../slots/has_latitude
- ../slots/has_locality
- ../slots/has_longitude
- ../slots/has_postal_code
- ../slots/has_geographic_subdivision
# 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_section (e.g., "1", "221B", "25-27")
├── has_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_label (formatted address as Label)
```
NOTE: street_name slot migrated to has_label + Label (2026-01-17, Rule 53/56)
NOTE: street_address slot removed - was redundant string; use house_number + has_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_address:
- address_formatted: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
address_type: HEADQUARTERS
# Structured address with components
has_address:
- has_label:
- has_label: "Museumstraat"
language: "nl"
has_section:
- has_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
- `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_section
# REMOVED: street_name - migrated to has_label + Label (2026-01-17, Rule 53/56)
# REMOVED: street_address - redundant string slot; use house_number + has_label (2026-01-17, Rule 53/56)
# Postal components
- has_postal_code
# Locality/geographic hierarchy
- has_locality
# REMOVED: city - migrated to located_in + City (2026-01-18, Rule 53)
- located_in
- has_geographic_subdivision
- in_country
# Formatted representation (MIGRATED: address_formatted → has_label)
- has_label
# Classification (MIGRATED: address_type → has_type)
- has_type
# Geographic coordinates (for geocoded addresses)
- has_latitude
- has_longitude
# Provenance
- derive_from # was: was_derived_from - migrated per Rule 53
- generated_by # was: was_generated_by - migrated per Rule 53
slot_usage:
has_section:
range: HouseNumber
required: false
examples:
- value:
has_value: "1"
- value:
has_value: "221B"
# REMOVED: street_name slot_usage - migrated to has_label + Label (2026-01-17, Rule 53/56)
# Street names should now use Label class with language tagging via has_label
# REMOVED: street_address slot_usage - redundant string slot removed (2026-01-17, Rule 53/56)
# Use house_number + has_label (street name as Label) instead of combined string
has_postal_code:
# range: string
required: false
examples:
- value: "1071 XX"
has_locality:
# range: string
required: false
examples:
- value: "Amsterdam"
# REMOVED: city slot_usage - migrated to located_in + City (2026-01-18, Rule 53)
# city:
# range: string
# required: false
# description: Alternative slot for locality (schema:addressLocality)
located_in:
# range: string
required: false
inlined: false # Fixed invalid inline for primitive type
examples:
- value:
settlement_name: "Amsterdam"
country: "NL"
has_geographic_subdivision:
# range: string
required: false
examples:
- value: "Noord-Holland"
- value: "NL-NH"
in_country:
# range: string
required: false
examples:
- value: "Netherlands"
- value: "NL"
# REMOVED 2026-01-22: address_formatted - migrated to has_label + Label (Rule 53, Feedback F1)
# Formatted address strings now use has_label slot_usage below
# REMOVED: address_type slot_usage - migrated to has_type (2026-01-17, Rule 53/56)
has_label: # was: address_formatted + street_name - migrated per Rule 53 (2026-01-17, 2026-01-22)
# range: string
multivalued: true
inlined: false # Fixed invalid inline for primitive type
inlined_as_list: false # Fixed invalid inline for primitive type
required: false
examples:
- value:
- has_label: "Museumstraat"
language: "nl"
- has_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
language: "nl"
has_type: # was: address_type - migrated per Rule 53/56 (2026-01-17)
range: AddressType
required: false
multivalued: false
examples:
- value: HeadquartersAddress
has_latitude:
range: float
required: false
examples:
- value: 52.3600
has_longitude:
range: float
required: false
examples:
- value: 4.8852
- value: 2759794
derived_from: # was: was_derived_from - migrated per Rule 53
# range: string # CustodianObservation
multivalued: true
required: false
generated_by: # was: was_generated_by - migrated per Rule 53
range: ReconstructionActivity
required: false
comments:
- vCard Address is the primary ontology class (RFC6350 standard)
- Use structured components when available, address_formatted as fallback
- Multiple addresses supported via has_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_section:
- has_value: "1"
has_label:
- has_label: "Museumstraat"
language: "nl"
- has_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
language: "nl"
# REMOVED: street_address - migrated to house_number + has_label (2026-01-17, Rule 53/56)
postal_code: "1071 XX"
locality: "Amsterdam"
region: "Noord-Holland"
country_name: "NL"
latitude: 52.3600
longitude: 4.8852
- value:
has_section:
- has_value: "40"
# REMOVED: street_address - migrated to house_number + has_label (2026-01-17, Rule 53/56)
postal_code: "2011 RX"
locality: "Haarlem"
country_name: "NL"
- value:
has_label:
- has_label: "1600 Pennsylvania Avenue NW, Washington, DC 20500, USA"
language: "en"
locality: "Washington"
region: "DC"
country_name: "US"
- value:
has_label:
- has_label: "Euterpelaan"
language: "nl"
- has_label: "Euterpelaan 25, 3824 BK Amersfoort, Netherlands"
language: "nl"
has_section:
- has_value: "25"
postal_code: "3824 BK"
locality: "Amersfoort"
region: "Utrecht"
country_name: "NL"
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."