glam/docs/GEOSPATIAL_PLACE_INTEGRATION.md
2025-11-29 18:05:16 +01:00

16 KiB

GeoSpatial Place Integration Documentation

Overview

This document describes the integration of geospatial capabilities into the Heritage Custodian Ontology, following the TOOI (Dutch Government Ontology) pattern for geographic data.

Architecture

                    ┌─────────────────────────────────────┐
                    │       OrganizationalChangeEvent     │
                    │            (crm:E5_Event)           │
                    └──────────────┬──────────────────────┘
                                   │
         ┌─────────────────────────┼─────────────────────────┐
         │                         │                         │
         ▼                         ▼                         ▼
┌─────────────────┐    ┌─────────────────┐      ┌─────────────────────┐
│  event_location │    │  from_location  │      │  affected_territory │
│  (where event   │    │  to_location    │      │  (jurisdictions,    │
│   occurred)     │    │  (RELOCATION)   │      │   boundaries)       │
└────────┬────────┘    └────────┬────────┘      └──────────┬──────────┘
         │                      │                          │
         ▼                      ▼                          │
┌─────────────────────────────────────────┐                │
│           CustodianPlace                │                │
│        (Nominal Reference)              │                │
│                                         │                │
│  place_name: "Rijksmuseum"              │                │
│  place_specificity: BUILDING            │                │
│  place_language: "nl"                   │                │
│                                         │                │
│         has_geospatial_location ────────┼──────┐         │
│                                         │      │         │
│  ┌───────────────────────────────┐      │      │         │
│  │     auxiliary_places          │      │      │         │
│  └───────────────┬───────────────┘      │      │         │
│                  │                      │      │         │
└──────────────────┼──────────────────────┘      │         │
                   │                             │         │
                   ▼                             │         │
┌─────────────────────────────────────────┐      │         │
│           AuxiliaryPlace                │      │         │
│           (org:Site)                    │      │         │
│                                         │      │         │
│  place_name: "Depot Amersfoort"         │      │         │
│  auxiliary_place_type: STORAGE_FACILITY │      │         │
│  street_address: "Euterpelaan 25"       │      │         │
│                                         │      │         │
│         has_geospatial_location ────────┼──────┤         │
│                                         │      │         │
└─────────────────────────────────────────┘      │         │
                                                 │         │
                                                 ▼         ▼
                                    ┌─────────────────────────────┐
                                    │       GeoSpatialPlace       │
                                    │    (geosparql:Feature)      │
                                    │                             │
                                    │  latitude: 52.3600          │
                                    │  longitude: 4.8852          │
                                    │  geometry_wkt: POLYGON(...) │
                                    │  geonames_id: 6930126       │
                                    │  osm_id: "way/27083908"     │
                                    │                             │
                                    └─────────────────────────────┘

Classes

CustodianPlace (crm:E53_Place)

Purpose: Nominal place reference used to identify a heritage custodian.

Key Characteristics:

  • Emic/contextual naming ("het herenhuis in de Schilderswijk")
  • May be vague ("the mansion") or specific ("Rijksmuseum")
  • Captures how people refer to custodians through place
  • Source: archival documents, oral history, guidebooks

NEW Slot: has_geospatial_location

  • Links to GeoSpatialPlace for precise coordinates
  • Multivalued (historical boundaries at different time periods)
  • Optional (not all nominal references can be geolocated)

AuxiliaryPlace (org:Site)

Purpose: Secondary or subordinate physical location of a heritage custodian.

Key Characteristics:

  • Branch offices, storage facilities, research centers
  • Like CustodianAppellation is to CustodianName (alternative → preferred)
  • W3C Org: org:Site for organizational premises
  • Has precise addresses unlike nominal CustodianPlace

NEW Slot: has_geospatial_location

  • Links to GeoSpatialPlace for precise coordinates of subordinate sites
  • Enables mapping entire organizational footprint
  • Supports building footprints for storage depots
  • Multivalued (temporal history of boundaries)

Relationship to CustodianPlace:

CustodianPlace (main)
    └── auxiliary_places → AuxiliaryPlace[]
                               └── has_geospatial_location → GeoSpatialPlace

GeoSpatialPlace (geosparql:Feature)

Purpose: Precise geospatial location with coordinates and geometry.

Key Characteristics:

  • WGS84 coordinates (lat/lon)
  • WKT geometry (Point, Polygon, MultiPolygon)
  • External linking (GeoNames ID, OSM ID, Cadastral ID)
  • Accuracy metadata (meters)
  • Temporal validity (valid_from_geo, valid_to_geo)

TOOI Alignment:

  • Follows tooi:BestuurlijkeRuimte pattern
  • SubClass of geosparql:Feature and prov:Entity
  • Uses geosparql:hasGeometry relationship

OrganizationalChangeEvent (crm:E5_Event)

Purpose: Documents organizational restructuring events.

NEW Place-Related Slots:

Slot Range Purpose
event_location CustodianPlace Where the event occurred (board meeting, ceremony)
from_location CustodianPlace Previous location (RELOCATION events)
to_location CustodianPlace New location (RELOCATION events)
affected_territory GeoSpatialPlace Geographic areas affected by the change

TOOI Ontology Pattern

The Dutch Government TOOI ontology models administrative territories as geosparql:Feature subclasses:

tooi:BestuurlijkeRuimte 
    a owl:Class ;
    rdfs:subClassOf geosparql:Feature, prov:Entity .

tooi:BestuurlijkeRuimte-hasGeometry 
    rdfs:subPropertyOf geosparql:hasGeometry .

Our implementation follows this pattern:

GeoSpatialPlace:
  class_uri: geosparql:Feature
  related_mappings:
    - prov:Entity
    - tooi:BestuurlijkeRuimte

Use Cases

1. Museum Building Location

CustodianPlace:
  place_name: "Rijksmuseum"
  place_specificity: BUILDING
  has_geospatial_location:
    - geospatial_id: "https://nde.nl/ontology/hc/geo/rijksmuseum-building"
      latitude: 52.3600
      longitude: 4.8852
      geometry_wkt: "POLYGON((4.883 52.359, 4.887 52.359, ...))"
      geometry_type: POLYGON
      geonames_id: 6930126
      osm_id: "way/27083908"
      accuracy_meters: 1.0
      spatial_resolution: "BUILDING"

2. Archive Relocation Event

OrganizationalChangeEvent:
  id: "https://nde.nl/ontology/hc/event/archive-relocation-2020"
  event_type: RELOCATION
  event_date: "2020-06-01"
  event_description: "Archive relocates to climate-controlled facility"
  from_location:
    place_name: "Historic City Hall Basement"
    place_specificity: BUILDING
    has_geospatial_location:
      - latitude: 52.3700
        longitude: 4.8900
  to_location:
    place_name: "Modern Archive Building, Amstelveen"
    place_specificity: BUILDING
    has_geospatial_location:
      - latitude: 52.3012
        longitude: 4.8631
  affected_territory:
    - geospatial_id: "https://nde.nl/ontology/hc/geo/old-building"
      valid_to_geo: "2020-06-01"
    - geospatial_id: "https://nde.nl/ontology/hc/geo/new-building"
      valid_from_geo: "2020-06-01"

3. Regional Archive Merger with Territorial Impact

OrganizationalChangeEvent:
  id: "https://nde.nl/ontology/hc/event/noord-hollands-archief-merger-2001"
  event_type: MERGER
  event_date: "2001-01-01"
  event_description: >-
    Merger of Gemeentearchief Haarlem and Rijksarchief in Noord-Holland
    to form Noord-Hollands Archief. Combined municipal and provincial 
    archival jurisdictions.    
  affected_territory:
    - geospatial_id: "https://nde.nl/ontology/hc/geo/haarlem-municipality"
      geometry_type: POLYGON
      feature_class: "A"
      feature_code: "A.ADM2"
      valid_to_geo: "2001-01-01"  # Municipal archive jurisdiction ends
    - geospatial_id: "https://nde.nl/ontology/hc/geo/noord-holland-province"
      geometry_type: MULTIPOLYGON
      feature_class: "A"
      feature_code: "A.ADM1"
      valid_from_geo: "2001-01-01"  # New combined jurisdiction begins

4. Vague Place Reference (No Coordinates)

CustodianPlace:
  place_name: "the old mansion"
  place_specificity: VAGUE
  place_note: "Mentioned in 1850 letter, exact location unknown"
  # has_geospatial_location: null (cannot be geolocated)

5. Off-Site Storage Facility with Building Footprint

AuxiliaryPlace:
  auxiliary_place_id: "https://nde.nl/ontology/hc/aux-place/rijksmuseum-depot-amersfoort"
  place_name: "Depot Amersfoort"
  auxiliary_place_type: STORAGE_FACILITY
  place_description: "Off-site storage facility for overflow collections. Climate-controlled."
  street_address: "Euterpelaan 25"
  postal_code: "3824 BK"
  city: "Amersfoort"
  country: "https://nde.nl/ontology/hc/country/NL"
  valid_from: "1995-06-01"
  is_auxiliary_of: "https://nde.nl/ontology/hc/place/rijksmuseum-main"
  has_geospatial_location:
    - geospatial_id: "https://nde.nl/ontology/hc/geo/depot-amersfoort-building"
      latitude: 52.1561
      longitude: 5.3878
      geometry_wkt: "POLYGON((5.385 52.154, 5.390 52.154, 5.390 52.158, 5.385 52.158, 5.385 52.154))"
      geometry_type: POLYGON
      osm_id: "way/234567890"
      accuracy_meters: 1.0
      geospatial_source: "Kadaster BAG"
      spatial_resolution: "BUILDING"

6. Museum with Multiple Sites (Full Example)

CustodianPlace:
  place_id: "https://nde.nl/ontology/hc/place/rijksmuseum-main"
  place_name: "Rijksmuseum"
  place_specificity: BUILDING
  has_geospatial_location:
    - geospatial_id: "https://nde.nl/ontology/hc/geo/rijksmuseum-building"
      latitude: 52.3600
      longitude: 4.8852
      geometry_type: POLYGON
      osm_id: "way/27083908"
      spatial_resolution: "BUILDING"
  auxiliary_places:
    - place_name: "Depot Amersfoort"
      auxiliary_place_type: STORAGE_FACILITY
      city: "Amersfoort"
      valid_from: "1995-06-01"
      has_geospatial_location:
        - latitude: 52.1561
          longitude: 5.3878
          spatial_resolution: "BUILDING"
    - place_name: "Rijksmuseum Schiphol"
      auxiliary_place_type: BRANCH_OFFICE
      city: "Schiphol"
      valid_from: "2002-10-01"
      has_geospatial_location:
        - latitude: 52.3086
          longitude: 4.7639
          accuracy_meters: 50.0
          spatial_resolution: "BUILDING"

Ontology Mappings

CIDOC-CRM Alignment

Slot Property Domain Range
event_location crm:P7_took_place_at E5_Event E53_Place
from_location crm:P27_moved_from E9_Move E53_Place
to_location crm:P26_moved_to E9_Move E53_Place

GeoSPARQL Alignment

Slot Property Range
has_geospatial_location geosparql:hasGeometry geosparql:Feature
geometry_wkt geosparql:asWKT geosparql:wktLiteral

WGS84 Basic Geo Alignment

Slot Property Range
latitude geo:lat xsd:float
longitude geo:long xsd:float
altitude geo:alt xsd:float

Files Modified

File Changes
GeoSpatialPlace.yaml NEW - Geospatial location class
CustodianPlace.yaml Added has_geospatial_location slot
AuxiliaryPlace.yaml Added has_geospatial_location slot for subordinate sites
OrganizationalChangeEvent.yaml Added event_location, from_location, to_location, affected_territory slots

Temporal Tracking

Both CustodianPlace and GeoSpatialPlace support temporal validity:

CustodianPlace:

  • valid_from / valid_to: When this nominal reference was in use

GeoSpatialPlace:

  • valid_from_geo / valid_to_geo: When this boundary/location was valid

This enables tracking:

  1. Name changes: "Royal Library" → "National Library" (CustodianPlace temporal)
  2. Boundary changes: Municipal mergers (GeoSpatialPlace temporal)
  3. Relocations: Building moves (OrganizationalChangeEvent + from/to_location)

External Linking

GeoSpatialPlace supports linking to external knowledge bases:

Field Source Purpose
geonames_id GeoNames Hierarchical admin data, multilingual names
osm_id OpenStreetMap Building footprints, street-level detail
cadastral_id National Cadastre Legal property boundaries

Spatial Resolution Levels

Level Description Accuracy Example
BUILDING Individual building 1-5m Museum building footprint
PARCEL Cadastral parcel 5-20m Property boundary
STREET Street address 20-50m Geocoded address
NEIGHBORHOOD Neighborhood/district 100-500m "Schilderswijk"
CITY City centroid 500-2000m Amsterdam
REGION Province/state 2-10km Noord-Holland
COUNTRY Country centroid 10-100km Netherlands

Validation Notes

  • latitude must be between -90.0 and 90.0
  • longitude must be between -180.0 and 180.0
  • WKT geometry must follow OGC Simple Features format
  • GeoNames IDs should resolve at https://www.geonames.org/{id}/
  • OSM IDs should follow format {type}/{id} (e.g., "way/27083908")

See Also