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:Sitefor 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:BestuurlijkeRuimtepattern - SubClass of
geosparql:Featureandprov:Entity - Uses
geosparql:hasGeometryrelationship
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:
- Name changes: "Royal Library" → "National Library" (CustodianPlace temporal)
- Boundary changes: Municipal mergers (GeoSpatialPlace temporal)
- 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
latitudemust be between -90.0 and 90.0longitudemust 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")