glam/schemas/20251121/linkml/modules/classes/ServiceArea.yaml
2025-12-09 07:56:35 +01:00

471 lines
18 KiB
YAML

# Service Area Class - Geographic Jurisdiction/Coverage Area for Heritage Custodians
# Based on Schema.org areaServed and TOOI BestuurlijkeRuimte patterns
#
# PURPOSE:
# A ServiceArea represents the geographic region where a heritage custodian provides services.
# For archives: the municipalities/regions they serve ("werkgebied")
# For libraries: the service district
# For museums: the geographic scope of their collection mandate
#
# ONTOLOGY ALIGNMENT:
# - schema:areaServed: "The geographic area where a service or offered item is provided"
# - tooi:BestuurlijkeRuimte: "Een ruimte die bestuurlijke relevantie kent" (administrative space)
# - tooi:JuridischeRuimte: "Werkingsgebied of effectgebied" (operational/effect area)
# - geosparql:Feature: For geospatial representation
id: https://nde.nl/ontology/hc/class/ServiceArea
name: service_area_class
title: ServiceArea Class
prefixes:
schema: http://schema.org/
tooi: https://identifier.overheid.nl/tooi/def/ont/
geosparql: http://www.opengis.net/ont/geosparql#
dcterms: http://purl.org/dc/terms/
org: http://www.w3.org/ns/org#
prov: http://www.w3.org/ns/prov#
rico: https://www.ica.org/standards/RiC/ontology#
imports:
- linkml:types
- ../metadata
- ./GeoSpatialPlace
- ./CustodianLegalStatus
- ./Country
- ./Subregion
- ./Settlement
- ./TimeSpan
- ../enums/ServiceAreaTypeEnum
- ../slots/temporal_extent
slots:
service_area_id:
identifier: true
range: uriorcurie
description: "Unique identifier for this service area"
service_area_name:
range: string
slot_uri: schema:name
description: |
Human-readable name for the service area.
Examples:
- "Noord-Holland Province" (provincial archive service area)
- "Amsterdam Municipal Libraries Service District"
- "Veluwe Regional Heritage Area"
examples:
- value: "Noord-Hollands Archief Werkgebied"
description: "Service area of the Noord-Hollands Archief"
service_area_description:
range: string
slot_uri: dcterms:description
description: |
Description of the service area, including historical context if relevant.
May include:
- Historical boundaries and changes
- Relationship to administrative divisions
- Special notes about service scope
examples:
- value: "Serves the municipalities of Haarlem, Heemskerk, Beverwijk, and surrounding areas. Area expanded in 2001 after merger with Gemeentearchief Haarlem."
service_area_type:
range: ServiceAreaTypeEnum
slot_uri: dcterms:type
description: |
Classification of the service area type.
Types include:
- MUNICIPAL: Single municipality service area
- PROVINCIAL: Entire province coverage
- REGIONAL: Multi-municipality regional area
- HISTORICAL: Historical administrative boundary (no longer current)
- NATIONAL: Country-wide service area
- CUSTOM: Non-standard or negotiated service area
examples:
- value: "PROVINCIAL"
description: "Covers entire province"
covers_country:
range: Country
slot_uri: schema:addressCountry
description: |
Country that this service area is within.
Links to Country class with ISO 3166-1 codes.
examples:
- value: "https://nde.nl/ontology/hc/country/NL"
description: "Service area in Netherlands"
covers_subregions:
range: Subregion
multivalued: true
inlined_as_list: true
slot_uri: schema:addressRegion
description: |
Subregion(s) covered by this service area.
Links to Subregion class with ISO 3166-2 codes.
A service area may cover:
- Single subregion (provincial archive covering one province)
- Multiple subregions (regional archive spanning provinces)
- Part of a subregion (municipal archive within province)
examples:
- value:
- "https://nde.nl/ontology/hc/subregion/NL-NH"
description: "Covers Noord-Holland province"
covers_settlements:
range: Settlement
multivalued: true
inlined_as_list: true
slot_uri: schema:containsPlace
description: |
Specific settlements (cities, towns, villages) covered by this service area.
Links to Settlement class with GeoNames identifiers.
Use when:
- Service area covers specific municipalities (not entire province)
- Municipal archive serving one or more cities
- Regional archive with defined list of served settlements
GeoNames IDs disambiguate settlements with same name.
examples:
- value:
- "https://nde.nl/ontology/hc/settlement/2755003"
- "https://nde.nl/ontology/hc/settlement/2754669"
description: "Covers Haarlem (2755003) and Heemskerk (2754669)"
has_boundary:
range: GeoSpatialPlace
multivalued: true
inlined_as_list: true
slot_uri: geosparql:hasGeometry
description: |
Geospatial boundary/geometry of the service area.
Links to GeoSpatialPlace with coordinates, WKT, and boundary polygons.
**TOOI Alignment**:
Following tooi:BestuurlijkeRuimte-hasGeometry pattern.
**Multiple Boundaries**:
A service area may have multiple boundaries:
- Current boundary (valid_to_geo = null)
- Historical boundaries (valid_to_geo set to boundary change date)
**Temporal Tracking**:
Use GeoSpatialPlace.valid_from_geo and valid_to_geo to track
boundary changes over time (e.g., municipal mergers).
**Example - Archive Service Area Change**:
```yaml
has_boundary:
- geospatial_id: "boundary-nha-pre-2001"
geometry_wkt: "POLYGON(...)"
valid_to_geo: "2001-01-01"
- geospatial_id: "boundary-nha-post-2001"
geometry_wkt: "POLYGON(...)"
valid_from_geo: "2001-01-01"
```
examples:
- value:
geospatial_id: "https://nde.nl/ontology/hc/geo/nha-service-area"
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"
description: "Noord-Hollands Archief service area boundary"
is_historical_boundary:
range: boolean
description: |
Indicates if this service area represents a historical boundary
that no longer exists in current administrative geography.
Use for:
- Pre-merger municipal boundaries
- Historical territories (e.g., HALC data from 1500)
- Dissolved provinces or regions
When true:
- has_boundary should use historical GeoSpatialPlace data
- temporal_extent should indicate the period of validity
- Display styling should indicate historical nature (e.g., brown/sepia)
ifabsent: "boolean(false)"
examples:
- value: true
description: "Historical boundary from pre-1800 territory"
served_by:
range: uriorcurie
slot_uri: schema:provider
description: |
The heritage custodian (CustodianLegalStatus) that serves this area.
Schema.org: provider - "The service provider, service operator, or service performer"
This establishes the relationship:
CustodianLegalStatus --schema:areaServed--> ServiceArea
ServiceArea --schema:provider--> CustodianLegalStatus (inverse)
**Note**: This is the inverse of CustodianLegalStatus.service_area.
Only one direction needs to be stored; the other can be inferred.
examples:
- value: "https://nde.nl/ontology/hc/legal/noord-hollands-archief"
description: "Served by Noord-Hollands Archief"
source_dataset:
range: string
slot_uri: dcterms:source
description: |
Source dataset for boundary data.
Common sources:
- "CBS Wijken en Buurten" (Dutch municipality boundaries)
- "HALC Historical Boundaries" (Historical Atlas of Low Countries)
- "Kadaster" (Dutch cadastral authority)
- "OpenStreetMap"
- "GADM" (Global Administrative Areas)
examples:
- value: "HALC Historical Boundaries 1500"
description: "Historical boundary from HALC dataset"
halc_adm1_code:
range: string
description: |
HALC (Historical Atlas of Low Countries) ADM1 territory code.
Used for mapping to historical boundary GeoJSON data.
Examples:
- "VI" for Vianen
- "TH" for Tholen
- "WA" for Wassenaar
examples:
- value: "VI"
description: "HALC territory code for Vianen"
halc_adm2_name:
range: string
description: |
HALC (Historical Atlas of Low Countries) ADM2 district name.
Used for more specific historical boundary matching.
examples:
- value: "Vianen"
description: "HALC district name"
classes:
ServiceArea:
class_uri: schema:AdministrativeArea
description: |
Geographic area served by a heritage custodian institution.
**Dutch Term**: "Werkgebied" - the operational territory of an archive,
library, or museum where they provide services and collect materials.
**CRITICAL DISTINCTION: ServiceArea vs Jurisdiction**
ServiceArea and Jurisdiction are fundamentally different concepts:
| Aspect | ServiceArea | Jurisdiction |
|--------|-------------|--------------|
| **Definition** | Geographic area where a SPECIFIC custodian operates ("werkgebied") | Geographic area where specific LAWS AND POLICIES apply |
| **Scope** | Operational territory | Legal framework scope |
| **Sharing** | UNIQUE to each custodian | SHARED by multiple custodians operating under same legal framework |
| **Example** | Each municipal archive has its own municipality as service area | Dutch national law creates a jurisdiction for all municipal archives in NL |
**Key Example**:
A national law (e.g., Archiefwet) creates a JURISDICTION covering the entire Netherlands.
ALL Dutch municipal archives operate within this SAME jurisdiction - they share it!
But each municipal archive has a DIFFERENT ServiceArea (werkgebied) - typically
their own municipality or region.
- Noord-Hollands Archief: ServiceArea = Haarlem + surrounding municipalities, Jurisdiction = NL (Dutch national law)
- Gemeentearchief Amsterdam: ServiceArea = Amsterdam municipality, Jurisdiction = NL (same!)
- Regionaal Archief Tilburg: ServiceArea = Tilburg region, Jurisdiction = NL (same!)
All three have DIFFERENT service areas but share the SAME jurisdiction.
**Purpose**:
ServiceArea captures the geographic jurisdiction/coverage of heritage institutions:
1. **Archives**: The municipalities whose records they manage
- Provincial archives cover entire province
- Regional archives cover specific municipalities
- Municipal archives cover single city
2. **Libraries**: The service district for lending/access
- Public libraries serve defined municipalities
- Academic libraries may have national scope
3. **Museums**: Geographic scope of collection mandate
- Regional museums collect from specific area
- National museums have country-wide scope
**Ontology Alignment**:
| Ontology | Class/Property | Usage |
|----------|----------------|-------|
| **Schema.org** | `schema:areaServed` | Primary property linking Organization → ServiceArea |
| **Schema.org** | `schema:AdministrativeArea` | Class for geographic regions under jurisdiction |
| **TOOI** | `tooi:BestuurlijkeRuimte` | Dutch government pattern for administrative spaces |
| **TOOI** | `tooi:JuridischeRuimte` | Operational/effect area of legal instruments |
| **GeoSPARQL** | `geosparql:Feature` | Geospatial representation base class |
| **W3C Org** | `org:hasSite` | Related concept for organizational presence |
**Relationship to Other Classes**:
```
CustodianLegalStatus --schema:areaServed--> ServiceArea
|
├──> GeoSpatialPlace (boundary polygon)
├──> Country (covered country)
├──> Subregion (covered provinces)
└──> Settlement (covered cities)
```
**Historical vs Current Boundaries**:
Service areas may change over time due to:
- Municipal mergers (gemeentelijke herindeling)
- Archive reorganizations
- Administrative boundary changes
Use `is_historical_boundary: true` and `temporal_extent` to track historical areas.
**Display Styling**:
| Boundary Type | Border Color | Fill Color | Opacity |
|---------------|--------------|------------|---------|
| Current | Blue (#3498db) | Blue (#3498db) | 20% |
| Historical | Brown (#8b4513) | Goldenrod (#daa520) | 20% |
**Example - Noord-Hollands Archief**:
The NHA serves multiple municipalities in Noord-Holland province.
Before the 2001 merger, Gemeentearchief Haarlem and Rijksarchief Noord-Holland
had separate service areas. After merger, the combined service area includes
both the city and provincial scope.
exact_mappings:
- schema:AdministrativeArea
close_mappings:
- tooi:BestuurlijkeRuimte
- tooi:JuridischeRuimte
- geosparql:Feature
related_mappings:
- schema:Place
- dcterms:Location
- rico:Place
slots:
- service_area_id
- service_area_name
- service_area_description
- service_area_type
- covers_country
- covers_subregions
- covers_settlements
- has_boundary
- is_historical_boundary
- temporal_extent
- served_by
- source_dataset
- halc_adm1_code
- halc_adm2_name
slot_usage:
service_area_id:
identifier: true
required: true
description: "Unique identifier for this service area"
examples:
- value: "https://nde.nl/ontology/hc/servicearea/nha-werkgebied"
- value: "https://nde.nl/ontology/hc/servicearea/vianen-historical-1500"
service_area_name:
required: true
description: "Human-readable name (REQUIRED)"
service_area_type:
required: false
description: "Type classification helps determine display and query behavior"
has_boundary:
description: |
Links to GeoSpatialPlace for actual boundary geometry.
Multiple boundaries support temporal tracking.
comments:
- "Represents the geographic SERVICE AREA ('werkgebied') of a heritage custodian"
- "UNIQUE to each custodian - each archive/library/museum has its own service area"
- "NOT to be confused with Jurisdiction, which is the legal framework scope SHARED by multiple custodians"
- "Example: All Dutch municipal archives share the same Jurisdiction (NL/Archiefwet) but each has a DIFFERENT ServiceArea"
- "ServiceArea answers: 'Which geographic area does this specific custodian serve?'"
- "Jurisdiction answers: 'Under which legal framework does this entity operate?'"
- "Links to GeoSpatialPlace for actual boundary polygons"
- "Supports historical boundaries via is_historical_boundary and temporal_extent"
- "HALC fields (halc_adm1_code, halc_adm2_name) enable historical boundary lookups"
- "Display styling: current=blue, historical=brown/goldenrod"
- "Archives use werkgebied to define which municipalities they serve"
- "Museums may have service areas indicating collection geographic scope"
see_also:
- "https://schema.org/areaServed"
- "https://schema.org/AdministrativeArea"
- "https://identifier.overheid.nl/tooi/def/ont/"
- "http://www.opengis.net/ont/geosparql"
# Note: For Jurisdiction (legal framework scope), see modules/classes/Jurisdiction.yaml
examples:
- value:
service_area_id: "https://nde.nl/ontology/hc/servicearea/nha-werkgebied"
service_area_name: "Noord-Hollands Archief Werkgebied"
service_area_description: "Service area covering Haarlem and surrounding municipalities in Noord-Holland province"
service_area_type: "REGIONAL"
covers_country:
alpha_2: "NL"
covers_subregions:
- iso_3166_2_code: "NL-NH"
name: "Noord-Holland"
covers_settlements:
- geonames_id: 2755003
name: "Haarlem"
- geonames_id: 2754669
name: "Heemskerk"
has_boundary:
- geospatial_id: "https://nde.nl/ontology/hc/geo/nha-boundary"
geometry_type: "MULTIPOLYGON"
geometry_wkt: "MULTIPOLYGON(((4.5 52.2, 5.0 52.2, 5.0 52.5, 4.5 52.5, 4.5 52.2)))"
valid_from_geo: "2001-01-01"
is_historical_boundary: false
served_by: "https://nde.nl/ontology/hc/legal/noord-hollands-archief"
description: "Current service area for Noord-Hollands Archief"
- value:
service_area_id: "https://nde.nl/ontology/hc/servicearea/vianen-historical-1500"
service_area_name: "Graafschap Vianen (Historical)"
service_area_description: "Historical territory of the County of Vianen, circa 1500"
service_area_type: "HISTORICAL"
covers_country:
alpha_2: "NL"
has_boundary:
- geospatial_id: "https://nde.nl/ontology/hc/geo/vianen-1500"
geometry_type: "POLYGON"
source_dataset: "HALC"
valid_from_geo: "1500-01-01"
valid_to_geo: "1795-01-01"
is_historical_boundary: true
temporal_extent:
begin_of_the_begin: "1500-01-01"
end_of_the_end: "1795-01-01"
halc_adm1_code: "VI"
halc_adm2_name: "Vianen"
served_by: "https://nde.nl/ontology/hc/legal/gemeentearchief-vianen"
source_dataset: "HALC Historical Boundaries 1500"
description: "Historical service area for Gemeentearchief Vianen based on 1500 territory"