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 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 # 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 examples: - value: has_or_had_value: "1" - value: has_or_had_value: "221B" # 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 examples: - value: "1071 XX" locality: range: string required: false examples: - value: "Amsterdam" # 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 examples: - value: settlement_name: "Amsterdam" country: "NL" region: range: string required: false examples: - value: "Noord-Holland" - value: "NL-NH" country_name: range: string required: false examples: - value: "Netherlands" - value: "NL" # 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 examples: - value: - has_or_had_label: "Museumstraat" language: "nl" - has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands" language: "nl" has_or_had_type: # was: address_type - migrated per Rule 53/56 (2026-01-17) range: AddressType required: false multivalued: false examples: - value: HeadquartersAddress latitude: range: float required: false examples: - value: 52.3600 longitude: range: float required: false examples: - value: 4.8852 - value: 2759794 is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53 range: CustodianObservation multivalued: true required: false is_or_was_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_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" latitude: 52.3600 longitude: 4.8852 - 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" - 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" - 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" 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."