Summary: - Create 46 missing slot definition files with proper slot_uri values - Add slot imports to main schema (01_custodian_name_modular.yaml) - Fix YAML examples sections in 116+ class and slot files - Fix PersonObservation.yaml examples section (nested objects → string literals) Technical changes: - All slots now have explicit slot_uri mapping to base ontologies (RiC-O, Schema.org, SKOS) - Eliminates malformed URIs like 'custodian/:slot_name' in generated RDF - gen-owl now produces valid Turtle with 153,166 triples New slot files (46): - RiC-O slots: rico_note, rico_organizational_principle, rico_has_or_had_holder, etc. - Scope slots: scope_includes, scope_excludes, archive_scope - Organization slots: organization_type, governance_authority, area_served - Platform slots: platform_type_category, portal_type_category - Social media slots: social_media_platform_category, post_type_* - Type hierarchy slots: broader_type, narrower_types, custodian_type_broader - Wikidata slots: wikidata_equivalent, wikidata_mapping Generated output: - schemas/20251121/rdf/01_custodian_name_modular_20260107_134534_clean.owl.ttl (6.9MB) - Validated with rdflib: 153,166 triples, no malformed URIs
419 lines
14 KiB
YAML
419 lines
14 KiB
YAML
id: https://nde.nl/ontology/hc/class/GeoSpatialPlace
|
|
name: geospatial_place_class
|
|
title: GeoSpatialPlace Class
|
|
prefixes:
|
|
geosparql: http://www.opengis.net/ont/geosparql#
|
|
wgs84: http://www.w3.org/2003/01/geo/wgs84_pos#
|
|
sf: http://www.opengis.net/ont/sf#
|
|
gn: http://www.geonames.org/ontology#
|
|
gn_entity: http://sws.geonames.org/
|
|
tooi: https://identifier.overheid.nl/tooi/def/ont/
|
|
imports:
|
|
- linkml:types
|
|
- ../metadata
|
|
- ../slots/geonames_id
|
|
- ../slots/latitude
|
|
- ../slots/longitude
|
|
- ../slots/altitude
|
|
- ../slots/class_metadata_slots
|
|
types:
|
|
WktLiteral:
|
|
uri: geosparql:wktLiteral
|
|
base: str
|
|
description: |
|
|
Well-Known Text (WKT) representation of geometry.
|
|
See OGC Simple Features specification.
|
|
examples:
|
|
- value: POINT(4.2894 52.0705)
|
|
- value: POLYGON((4.0 52.0, 4.5 52.0, 4.5 52.5, 4.0 52.5, 4.0 52.0))
|
|
slots:
|
|
geospatial_id:
|
|
identifier: true
|
|
range: uriorcurie
|
|
description: Unique identifier for this geospatial place
|
|
geometry_wkt:
|
|
range: string
|
|
slot_uri: geosparql:asWKT
|
|
description: |
|
|
Well-Known Text (WKT) representation of the geometry.
|
|
Use for polygons, lines, or complex geometries.
|
|
|
|
Examples:
|
|
- POINT(4.8852 52.3600) - Single point
|
|
- POLYGON((lon1 lat1, lon2 lat2, ...)) - Boundary polygon
|
|
- MULTIPOLYGON(...) - Multiple polygons (e.g., archipelago)
|
|
examples:
|
|
- value: POINT(4.8852 52.3600)
|
|
description: Amsterdam centroid
|
|
- value: POLYGON((4.72 52.28, 5.08 52.28, 5.08 52.43, 4.72 52.43, 4.72 52.28))
|
|
description: Amsterdam municipal boundary (simplified)
|
|
geometry_type:
|
|
range: GeometryTypeEnum
|
|
description: |
|
|
Type of geometry (Point, Polygon, MultiPolygon, etc.).
|
|
Follows OGC Simple Features classification.
|
|
examples:
|
|
- value: POINT
|
|
- value: POLYGON
|
|
coordinate_reference_system:
|
|
range: string
|
|
description: |
|
|
Coordinate Reference System identifier.
|
|
Default: EPSG:4326 (WGS84).
|
|
|
|
Common CRS codes:
|
|
- EPSG:4326 - WGS84 (GPS coordinates)
|
|
- EPSG:28992 - Amersfoort / RD New (Dutch national grid)
|
|
- EPSG:3857 - Web Mercator (web maps)
|
|
examples:
|
|
- value: EPSG:4326
|
|
description: WGS84 - default for GPS coordinates
|
|
- value: EPSG:28992
|
|
description: Dutch Rijksdriehoeksstelsel
|
|
osm_id:
|
|
range: string
|
|
description: |
|
|
OpenStreetMap identifier (node, way, or relation).
|
|
Format: {type}/{id} (e.g., "way/123456789")
|
|
|
|
Use for:
|
|
- Building footprints
|
|
- Street-level detail
|
|
- Community-verified boundaries
|
|
examples:
|
|
- value: way/27083908
|
|
description: Rijksmuseum building footprint
|
|
cadastral_id:
|
|
range: string
|
|
description: |
|
|
Cadastral parcel identifier.
|
|
Country-specific format.
|
|
|
|
Netherlands: Kadaster perceelnummer
|
|
Format: {gemeente}-{sectie}-{perceelnummer}
|
|
examples:
|
|
- value: ASD04-H-4567
|
|
description: Amsterdam cadastral parcel
|
|
accuracy_meters:
|
|
range: float
|
|
description: |
|
|
Spatial accuracy in meters.
|
|
Indicates uncertainty radius around coordinates.
|
|
|
|
Typical values:
|
|
- 1-5m: High-precision survey or GPS
|
|
- 10-50m: Standard GPS
|
|
- 100-500m: Geocoded address
|
|
- 1000m+: Regional/city-level approximation
|
|
examples:
|
|
- value: 5.0
|
|
description: High-precision GPS survey
|
|
- value: 100.0
|
|
description: Geocoded from address
|
|
geospatial_source:
|
|
range: string
|
|
slot_uri: dcterms:source
|
|
description: |
|
|
Source of geospatial data.
|
|
|
|
Common sources:
|
|
- "GeoNames API"
|
|
- "OpenStreetMap Nominatim"
|
|
- "Google Maps Geocoding API"
|
|
- "Kadaster BAG"
|
|
- "Manual survey"
|
|
examples:
|
|
- value: OpenStreetMap Nominatim
|
|
- value: Kadaster BAG
|
|
bounding_box:
|
|
range: string
|
|
slot_uri: geosparql:hasBoundingBox
|
|
description: |
|
|
Bounding box in WKT format.
|
|
Format: POLYGON((minLon minLat, maxLon minLat, maxLon maxLat, minLon maxLat, minLon minLat))
|
|
examples:
|
|
- value: POLYGON((4.72 52.28, 5.08 52.28, 5.08 52.43, 4.72 52.43, 4.72 52.28))
|
|
description: Amsterdam bounding box
|
|
spatial_resolution:
|
|
range: string
|
|
description: |
|
|
Level of spatial detail.
|
|
|
|
Values:
|
|
- BUILDING: Individual building footprint
|
|
- PARCEL: Cadastral parcel
|
|
- STREET: Street address level
|
|
- NEIGHBORHOOD: Neighborhood/district
|
|
- CITY: City/municipality centroid
|
|
- REGION: Province/state level
|
|
- COUNTRY: Country centroid
|
|
examples:
|
|
- value: BUILDING
|
|
description: Rijksmuseum building
|
|
- value: CITY
|
|
description: Amsterdam centroid
|
|
feature_class:
|
|
range: string
|
|
slot_uri: geonames:featureClass
|
|
description: |
|
|
GeoNames feature class code.
|
|
|
|
Codes:
|
|
- A: Administrative boundary
|
|
- H: Hydrographic (water features)
|
|
- L: Area (parks, areas)
|
|
- P: Populated places
|
|
- R: Roads
|
|
- S: Spots (buildings, farms)
|
|
- T: Terrain (mountains, hills)
|
|
- U: Undersea
|
|
- V: Vegetation
|
|
examples:
|
|
- value: S
|
|
description: Spot/building (museum)
|
|
- value: P
|
|
description: Populated place (city)
|
|
feature_code:
|
|
range: string
|
|
slot_uri: geonames:featureCode
|
|
description: |
|
|
GeoNames feature code (subcategory).
|
|
|
|
Common codes for heritage:
|
|
- S.LIBR: Library
|
|
- S.MUS: Museum
|
|
- S.ARCH: Archive building
|
|
- S.CH: Church
|
|
- S.THTR: Theater
|
|
- S.UNIV: University
|
|
- P.PPL: Populated place
|
|
- A.ADM1: First-order admin division (province)
|
|
examples:
|
|
- value: S.MUS
|
|
description: Museum building
|
|
valid_from_geo:
|
|
range: date
|
|
slot_uri: schema:validFrom
|
|
description: |
|
|
Date from which this geospatial data is valid.
|
|
Use for tracking boundary changes (e.g., municipal mergers).
|
|
valid_to_geo:
|
|
range: date
|
|
slot_uri: schema:validThrough
|
|
description: |
|
|
Date until which this geospatial data was valid.
|
|
Use for historical boundaries that have changed.
|
|
enums:
|
|
GeometryTypeEnum:
|
|
description: OGC Simple Features geometry types
|
|
permissible_values:
|
|
POINT:
|
|
description: Single point location
|
|
LINESTRING:
|
|
description: Line or path
|
|
POLYGON:
|
|
description: Closed polygon boundary
|
|
MULTIPOINT:
|
|
description: Multiple points
|
|
MULTILINESTRING:
|
|
description: Multiple lines
|
|
MULTIPOLYGON:
|
|
description: Multiple polygons (e.g., archipelago)
|
|
GEOMETRYCOLLECTION:
|
|
description: Mixed geometry types
|
|
classes:
|
|
GeoSpatialPlace:
|
|
class_uri: geosparql:Feature
|
|
description: |
|
|
Geospatial location with coordinates, geometry, and projections.
|
|
|
|
CRITICAL DISTINCTION FROM CustodianPlace:
|
|
|
|
| Aspect | CustodianPlace | GeoSpatialPlace |
|
|
|--------|----------------|-----------------|
|
|
| Nature | Nominal reference | Geospatial data |
|
|
| Content | "het herenhuis in de Schilderswijk" | lat: 52.0705, lon: 4.2894 |
|
|
| Purpose | Identify custodian by place name | Locate custodian precisely |
|
|
| Ambiguity | May be vague ("the mansion") | Precise, measurable |
|
|
| Source | Archival documents, oral history | GPS, cadastral surveys, geocoding |
|
|
|
|
**TOOI Ontology Alignment**:
|
|
|
|
This class follows the TOOI pattern for geospatial data:
|
|
- `tooi:BestuurlijkeRuimte` is a subclass of `geosparql:Feature` and `prov:Entity`
|
|
- `tooi:BestuurlijkeRuimte-hasGeometry` → `geosparql:Geometry`
|
|
- `tooi:RegistratieveRuimte` for administrative boundaries
|
|
- `tooi:JuridischeRuimte` for legal jurisdiction boundaries
|
|
|
|
Like TOOI, we separate:
|
|
- **geosparql:Feature** (this class): The real-world place with location data
|
|
- **geosparql:Geometry**: The mathematical representation (WKT, GeoJSON)
|
|
|
|
**Use Cases**:
|
|
|
|
1. **Building-level precision**: Museum building footprint (Polygon)
|
|
2. **City-level approximation**: Heritage institution centroid (Point)
|
|
3. **Administrative boundaries**: Archive jurisdiction area (MultiPolygon)
|
|
4. **Historical boundaries**: Pre-merger municipal territory (Polygon + valid_to_geo)
|
|
|
|
**Relationship to CustodianPlace**:
|
|
|
|
CustodianPlace.has_geospatial_location → GeoSpatialPlace
|
|
|
|
A nominal place reference ("Rijksmuseum") links to its geospatial location
|
|
(lat: 52.3600, lon: 4.8852, geometry: building footprint polygon).
|
|
|
|
**Relationship to AuxiliaryPlace**:
|
|
|
|
AuxiliaryPlace.has_geospatial_location → GeoSpatialPlace
|
|
|
|
Secondary/subordinate locations (branch offices, storage depots, reading rooms)
|
|
can also link to precise geospatial coordinates. This enables:
|
|
- Mapping all custodian locations (primary + auxiliary)
|
|
- Spatial queries across an organization's entire footprint
|
|
- Building footprints for off-site storage facilities
|
|
- Historical boundary tracking for branch offices
|
|
|
|
**Relationship to OrganizationalChangeEvent**:
|
|
|
|
Organizational changes may affect geographic location:
|
|
- RELOCATION: New GeoSpatialPlace, old one gets valid_to_geo
|
|
- MERGER: Multiple locations → single primary + auxiliary locations
|
|
- SPLIT: One location → multiple successor locations
|
|
exact_mappings:
|
|
- geosparql:Feature
|
|
close_mappings:
|
|
- geo:SpatialThing
|
|
- schema:Place
|
|
- schema:GeoCoordinates
|
|
related_mappings:
|
|
- prov:Entity
|
|
- tooi:BestuurlijkeRuimte
|
|
- crm:E53_Place
|
|
slots:
|
|
- accuracy_meters
|
|
- altitude
|
|
- bounding_box
|
|
- cadastral_id
|
|
- coordinate_reference_system
|
|
- feature_class
|
|
- feature_code
|
|
- geometry_type
|
|
- geometry_wkt
|
|
- geonames_id
|
|
- geospatial_id
|
|
- geospatial_source
|
|
- latitude
|
|
- longitude
|
|
- osm_id
|
|
- spatial_resolution
|
|
- specificity_annotation
|
|
- template_specificity
|
|
- valid_from_geo
|
|
- valid_to_geo
|
|
slot_usage:
|
|
geospatial_id:
|
|
identifier: true
|
|
required: true
|
|
description: Unique identifier for this geospatial place
|
|
examples:
|
|
- value: https://nde.nl/ontology/hc/geo/rijksmuseum-building
|
|
- value: https://nde.nl/ontology/hc/geo/amsterdam-centroid
|
|
latitude:
|
|
required: true
|
|
description: WGS84 latitude (REQUIRED for all geospatial places)
|
|
examples:
|
|
- value: 52.36
|
|
description: Rijksmuseum latitude
|
|
longitude:
|
|
required: true
|
|
description: WGS84 longitude (REQUIRED for all geospatial places)
|
|
examples:
|
|
- value: 4.8852
|
|
description: Rijksmuseum longitude
|
|
geometry_wkt:
|
|
description: |
|
|
WKT geometry for polygons and complex shapes.
|
|
Optional for point locations (lat/lon sufficient).
|
|
Required for boundary representations.
|
|
examples:
|
|
- value: POLYGON((4.883 52.359, 4.887 52.359, 4.887 52.361, 4.883 52.361,
|
|
4.883 52.359))
|
|
description: Rijksmuseum building footprint (simplified)
|
|
coordinate_reference_system:
|
|
ifabsent: string(EPSG:4326)
|
|
description: 'Default: WGS84 (EPSG:4326)'
|
|
geonames_id:
|
|
description: |
|
|
GeoNames identifier for linking to external knowledge base.
|
|
Highly recommended for place disambiguation.
|
|
examples:
|
|
- value: 6930126
|
|
description: Rijksmuseum GeoNames ID
|
|
specificity_annotation:
|
|
range: SpecificityAnnotation
|
|
inlined: true
|
|
template_specificity:
|
|
range: TemplateSpecificityScores
|
|
inlined: true
|
|
comments:
|
|
- Follows TOOI BestuurlijkeRuimte pattern using GeoSPARQL
|
|
- 'CRITICAL: NOT a nominal reference - this is measured/surveyed location data'
|
|
- Use CustodianPlace for nominal references, this class for coordinates
|
|
- lat/lon required; geometry_wkt optional for point locations
|
|
- Link from CustodianPlace via has_geospatial_location slot
|
|
- Link from AuxiliaryPlace via has_geospatial_location slot (subordinate sites)
|
|
- Link from OrganizationalChangeEvent via affected_territory slot
|
|
- valid_from_geo/valid_to_geo track boundary changes over time
|
|
- OSM and GeoNames IDs enable external linking
|
|
see_also:
|
|
- http://www.opengis.net/ont/geosparql
|
|
- https://www.geonames.org/
|
|
- https://www.openstreetmap.org/
|
|
- https://identifier.overheid.nl/tooi/def/ont/
|
|
examples:
|
|
- value:
|
|
geospatial_id: https://nde.nl/ontology/hc/geo/rijksmuseum-building
|
|
latitude: 52.36
|
|
longitude: 4.8852
|
|
altitude: 0.0
|
|
geometry_wkt: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830
|
|
52.3610, 4.8830 52.3590))
|
|
geometry_type: POLYGON
|
|
coordinate_reference_system: EPSG:4326
|
|
geonames_id: 6930126
|
|
osm_id: way/27083908
|
|
accuracy_meters: 1.0
|
|
geospatial_source: OpenStreetMap
|
|
spatial_resolution: BUILDING
|
|
feature_class: S
|
|
feature_code: S.MUS
|
|
description: Rijksmuseum building with full geospatial detail
|
|
- value:
|
|
geospatial_id: https://nde.nl/ontology/hc/geo/amsterdam-centroid
|
|
latitude: 52.3676
|
|
longitude: 4.9041
|
|
geometry_type: POINT
|
|
coordinate_reference_system: EPSG:4326
|
|
geonames_id: 2759794
|
|
accuracy_meters: 500.0
|
|
geospatial_source: GeoNames API
|
|
spatial_resolution: CITY
|
|
feature_class: P
|
|
feature_code: P.PPLC
|
|
description: Amsterdam city centroid (approximate)
|
|
- value:
|
|
geospatial_id: https://nde.nl/ontology/hc/geo/noord-holland-archive-territory-pre-2001
|
|
latitude: 52.5
|
|
longitude: 4.8
|
|
geometry_wkt: MULTIPOLYGON(((4.5 52.2, 5.2 52.2, 5.2 52.8, 4.5 52.8, 4.5 52.2)))
|
|
geometry_type: MULTIPOLYGON
|
|
coordinate_reference_system: EPSG:4326
|
|
accuracy_meters: 1000.0
|
|
geospatial_source: Historical cadastral records
|
|
spatial_resolution: REGION
|
|
feature_class: A
|
|
feature_code: A.ADM1
|
|
valid_from_geo: '1920-01-01'
|
|
valid_to_geo: '2001-01-01'
|
|
description: Historical archive jurisdiction boundary (pre-merger)
|