glam/schemas/20251121/linkml/modules/classes/GeoSpatialPlace.yaml
kempersc fc405445c6 Refactor and update schema definitions
- Removed obsolete slots: `has_or_had_custodian_observation`, `provider`, and `specificity_annotation`.
- Updated `has_or_had_score` slot to use `SpecificityScore` class and modified its description and examples.
- Added new slots: `end_seconds`, `end_time`, `has_archive_path`, `has_or_had_custodian_name`, `protocol_name`, and `protocol_version`.
- Introduced a script `check_annotation_types.py` to validate the presence and structure of `custodian_types` in YAML files.
- Added a script `update_specificity.py` to automate updates related to `SpecificityAnnotation` to `SpecificityScore`.
2026-02-01 19:55:38 +01:00

157 lines
7.8 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
- ../enums/GeometryTypeEnum
- ../metadata
- ../slots/coordinate_reference_system
- ../slots/has_or_had_altitude
- ../slots/has_or_had_coordinates
- ../slots/has_or_had_geofeature
- ../slots/has_or_had_geographic_extent
- ../slots/has_or_had_geometry
- ../slots/has_or_had_identifier
- ../slots/has_or_had_score
- ../slots/osm_id
- ../slots/spatial_resolution
- ../slots/temporal_extent
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))
classes:
GeoSpatialPlace:
class_uri: geosparql:Feature
description: "Geospatial location with coordinates, geometry, and projections.\n\nCRITICAL DISTINCTION FROM CustodianPlace:\n\n| Aspect | CustodianPlace | GeoSpatialPlace |\n|--------|----------------|-----------------|\n| Nature | Nominal reference | Geospatial data |\n| Content | \"het herenhuis in de Schilderswijk\" | lat: 52.0705, lon: 4.2894 |\n| Purpose | Identify custodian by place name | Locate custodian precisely |\n| Ambiguity | May be vague (\"the mansion\") | Precise, measurable |\n| Source | Archival documents, oral history | GPS, cadastral surveys, geocoding |\n\n**TOOI Ontology Alignment**:\n\nThis class follows the TOOI pattern for geospatial data:\n- `tooi:BestuurlijkeRuimte` is a subclass of `geosparql:Feature` and `prov:Entity`\n- `tooi:BestuurlijkeRuimte-hasGeometry` \u2192 `geosparql:Geometry`\n- `tooi:RegistratieveRuimte` for administrative boundaries\n- `tooi:JuridischeRuimte` for legal jurisdiction boundaries\n\nLike TOOI, we separate:\n- **geosparql:Feature**\
\ (this class): The real-world place with location data\n- **geosparql:Geometry**: The mathematical representation (WKT, GeoJSON)\n\n**Use Cases**:\n\n1. **Building-level precision**: Museum building footprint (Polygon)\n2. **City-level approximation**: Heritage institution centroid (Point)\n3. **Administrative boundaries**: Archive jurisdiction area (MultiPolygon)\n4. **Historical boundaries**: Pre-merger municipal territory (Polygon + temporal_extent)\n\n**Relationship to CustodianPlace**:\n\nCustodianPlace.has_geospatial_location \u2192 GeoSpatialPlace\n\nA nominal place reference (\"Rijksmuseum\") links to its geospatial location\n(lat: 52.3600, lon: 4.8852, geometry: building footprint polygon).\n\n**Relationship to AuxiliaryPlace**:\n\nAuxiliaryPlace.has_geospatial_location \u2192 GeoSpatialPlace\n\nSecondary/subordinate locations (branch offices, storage depots, reading rooms)\ncan also link to precise geospatial coordinates. This enables:\n- Mapping all custodian locations\
\ (primary + auxiliary)\n- Spatial queries across an organization's entire footprint\n- Building footprints for off-site storage facilities\n- Historical boundary tracking for branch offices\n\n**Relationship to OrganizationalChangeEvent**:\n\nOrganizational changes may affect geographic location:\n- RELOCATION: New GeoSpatialPlace, old one gets temporal_extent.end_of_the_end\n- MERGER: Multiple locations \u2192 single primary + auxiliary locations\n- SPLIT: One location \u2192 multiple successor locations\n"
exact_mappings:
- geosparql:Feature
close_mappings:
- geo:SpatialThing
- schema:Place
- schema:GeoCoordinates
related_mappings:
- prov:Entity
- tooi:BestuurlijkeRuimte
- crm:E53_Place
slots:
- has_or_had_coordinates
- has_or_had_altitude
- has_or_had_geographic_extent
- has_or_had_identifier
- coordinate_reference_system
- has_or_had_geofeature
- has_or_had_geometry
- osm_id
- spatial_resolution
- has_or_had_score
- temporal_extent
slot_usage:
has_or_had_coordinates:
range: Coordinates
inlined: true
required: true
examples:
- value:
latitude: 52.36
longitude: 4.8852
coordinate_reference_system:
ifabsent: string(EPSG:4326)
has_or_had_identifier:
description: 'Cadastral identifiers for this geospatial place. MIGRATION NOTE (2026-01-14): Replaces cadastral_id per slot_fixes.yaml. Use Identifier with identifier_scheme=''cadastral'' for parcel IDs. Netherlands: Kadaster perceelnummer format {gemeente}-{sectie}-{perceelnummer}'
examples:
- value:
temporal_extent:
range: TimeSpan
inlined: true
required: false
examples:
- value:
begin_of_the_begin: '1920-01-01'
end_of_the_end: '2001-01-01'
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 has_or_had_affected_territory slot
- temporal_extent tracks boundary changes over time (was valid_from_geo/valid_to_geo)
- 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
has_or_had_coordinates:
latitude: 52.36
longitude: 4.8852
altitude: 0.0
has_or_had_geometry:
- has_or_had_format:
has_or_had_value: POLYGON((4.8830 52.3590, 4.8870 52.3590, 4.8870 52.3610, 4.8830 52.3610, 4.8830 52.3590))
has_or_had_type:
has_or_had_label: POLYGON
coordinate_reference_system: EPSG:4326
osm_id: way/27083908
spatial_resolution: BUILDING
has_or_had_geofeature:
- has_or_had_type: SpotFeature
has_or_had_code:
has_or_had_label: S.MUS
- value:
geospatial_id: https://nde.nl/ontology/hc/geo/amsterdam-centroid
has_or_had_coordinates:
latitude: 52.3676
longitude: 4.9041
has_or_had_geometry:
- has_or_had_type:
has_or_had_label: POINT
coordinate_reference_system: EPSG:4326
spatial_resolution: CITY
has_or_had_geofeature:
- has_or_had_type: PopulatedPlace
has_or_had_code:
has_or_had_label: P.PPLC
- value:
geospatial_id: https://nde.nl/ontology/hc/geo/noord-holland-archive-territory-pre-2001
has_or_had_coordinates:
latitude: 52.5
longitude: 4.8
has_or_had_geometry:
- has_or_had_format:
has_or_had_value: MULTIPOLYGON(((4.5 52.2, 5.2 52.2, 5.2 52.8, 4.5 52.8, 4.5 52.2)))
has_or_had_type:
has_or_had_label: MULTIPOLYGON
coordinate_reference_system: EPSG:4326
spatial_resolution: REGION
has_or_had_geofeature:
- has_or_had_type: AdministrativeBoundary
has_or_had_code:
has_or_had_label: A.ADM1
temporal_extent:
begin_of_the_begin: '1920-01-01'
end_of_the_end: '2001-01-01'
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"