glam/data/isil/nl/kb/linkml/schema.yaml
2025-11-19 23:25:22 +01:00

281 lines
9.4 KiB
YAML

id: https://w3id.org/heritage/isil/nl/kb/schema
name: dutch-library-network-isil-schema
title: Dutch Library Network (Bnetwerk) ISIL Registry - LinkML Schema
description: >-
LinkML schema for mapping Dutch Library Network (KB Bnetwerk) ISIL registry
CSV data to HeritageCustodian schema. This schema documents the transformation
from the "20250401 Bnetwerk overzicht ISIL-codes Bibliotheken Nederland.csv"
file (153 records, as of April 1, 2025) to LinkML-compliant YAML.
version: 1.0.0
license: CC0-1.0
prefixes:
linkml: https://w3id.org/linkml/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
isil: https://isil.org/
hc: https://w3id.org/heritage/custodian/
default_prefix: hc
default_range: string
imports:
- linkml:types
classes:
LibraryISILRecord:
description: >-
A record from the Dutch Library Network (KB Bnetwerk) ISIL registry CSV.
Source: https://www.kb.nl/organisatie/bibliotheken-in-nederland/isil-codes
Data snapshot: April 1, 2025 (Stand 1 april 2025)
attributes:
# Original CSV fields (preserved with csv_ prefix)
csv_row_number:
description: Sequential row number in original CSV (1-153)
range: integer
required: true
csv_isil_code:
description: >-
ISIL code from CSV "ISIL code" column.
Format: NL-XXXXXXXXXX (uniform 13 characters)
Encoding: Numeric sequential assignment (not semantic)
range: string
required: true
pattern: "^NL-[0-9]{10}$"
examples:
- value: NL-0100030000
- value: NL-0800070000
- value: NL-0700130000
csv_naam_bibliotheek:
description: >-
Library name from CSV "Naam bibliotheek" column.
Contains public library names, POI systems, and national organizations.
range: string
required: true
examples:
- value: KB, nationale bibliotheek
- value: OBA
- value: Zeeuwse Bibliotheken
csv_vestigingsplaats:
description: >-
City/location name from CSV "Vestigingsplaats" column.
134 unique cities across the Netherlands.
range: string
required: true
examples:
- value: Den Haag
- value: Amsterdam
- value: Middelburg
csv_opmerking:
description: >-
Remarks/notes from CSV "Opmerking" column.
Contains library type indicators: "POI" (library automation systems),
"KB, Nationale Bibliotheek", "Bibliotheekservice", etc.
Present in 19/153 records (12.4%).
range: string
examples:
- value: POI
- value: KB, Nationale Bibliotheek
- value: Bibliotheekservice Fryslân
# LinkML mapped fields
name:
description: Library name (mapped from csv_naam_bibliotheek)
range: string
required: true
slot_uri: schema:name
institution_type:
description: >-
Institution type classification (always LIBRARY for this dataset)
range: InstitutionTypeEnum
required: true
library_type:
description: >-
Specialized library classification based on automated analysis
of csv_naam_bibliotheek and csv_opmerking fields
range: LibraryTypeEnum
required: true
locations:
description: Geographic location (mapped from csv_vestigingsplaats)
range: Location
multivalued: true
required: true
identifiers:
description: ISIL identifier (mapped from csv_isil_code)
range: Identifier
multivalued: true
required: true
description:
description: >-
Generated from csv_opmerking when present and library_type.
Format: "Type: {csv_opmerking}. Library classification: {library_type}"
range: string
slot_uri: dcterms:description
provenance:
description: Data source provenance metadata
range: Provenance
required: true
Location:
description: Geographic location of the library
attributes:
city:
description: City name (from csv_vestigingsplaats)
range: string
required: true
slot_uri: schema:addressLocality
country:
description: ISO 3166-1 alpha-2 country code (always "NL")
range: string
required: true
pattern: "^NL$"
slot_uri: schema:addressCountry
Identifier:
description: ISIL code identifier structure
attributes:
identifier_scheme:
description: Identifier scheme name (always "ISIL")
range: string
required: true
pattern: "^ISIL$"
slot_uri: dcterms:type
identifier_value:
description: ISIL code value (from csv_isil_code)
range: string
required: true
pattern: "^NL-[0-9]{10}$"
slot_uri: dcterms:identifier
identifier_url:
description: URL to ISIL registry entry
range: uri
required: true
pattern: "^https://isil.org/NL-[0-9]{10}$"
slot_uri: schema:url
Provenance:
description: Data source and extraction metadata
attributes:
data_source:
description: Source type (always "ISIL_REGISTRY")
range: DataSourceEnum
required: true
data_tier:
description: Data quality tier (always "TIER_1_AUTHORITATIVE")
range: DataTierEnum
required: true
extraction_date:
description: Timestamp of CSV-to-YAML conversion
range: datetime
required: true
slot_uri: dcterms:created
extraction_method:
description: Conversion method description
range: string
required: true
source_url:
description: URL to KB library network ISIL page
range: uri
required: true
source_date:
description: Data snapshot date (Stand 1 april 2025)
range: string
required: true
confidence_score:
description: Data confidence (always 1.0 for authoritative source)
range: float
required: true
minimum_value: 1.0
maximum_value: 1.0
enums:
InstitutionTypeEnum:
description: GLAMORCUBESFIXPHDNT institution type taxonomy
permissible_values:
LIBRARY:
description: Library (public, academic, specialized)
LibraryTypeEnum:
description: Specialized library type classification for Dutch library network
permissible_values:
national_library:
description: >-
National library (KB, nationale bibliotheek).
Count: 1 institution.
meaning: schema:Library
national_library_organization:
description: >-
National library service organizations supporting library sector
(Bibliotheekservice Fryslân, Bibliotheek Totaal, etc.).
Count: 5 institutions.
meaning: schema:Organization
provincial_library_organization:
description: >-
Provincial library organizations coordinating regional services
(Provinciale Bibliotheekcentrale).
Count: 2 institutions.
meaning: schema:Organization
library_automation_system:
description: >-
Library automation systems and POI (Publieksinformatievoorziening)
consortia providing shared infrastructure across regions
(Zeeuwse Bibliotheken, FERS Friesland, Rijnbrink Gelderland, etc.).
Count: 11 institutions (identified by "POI" in csv_opmerking).
public_library:
description: >-
Public libraries serving local communities.
Count: 134 institutions (87.6% of dataset).
meaning: schema:PublicLibrary
DataSourceEnum:
description: Data source types
permissible_values:
ISIL_REGISTRY:
description: Official ISIL code registry
DataTierEnum:
description: Data quality tiers
permissible_values:
TIER_1_AUTHORITATIVE:
description: Authoritative primary sources (registries, databases)
# Transformation rules
comments:
- "CSV Parsing: Clean UTF-8 encoding, standard CSV structure (no malformed cells)"
- "CSV Structure: 4 columns (ISIL code, Naam bibliotheek, Vestigingsplaats, Opmerking)"
- "Field Preservation: All 5 fields preserved (4 CSV + 1 row number) with csv_ prefix (100% preservation)"
- "Mapping: csv_naam_bibliotheek → name, csv_vestigingsplaats → locations[0].city, csv_isil_code → identifiers[0]"
- "Library Type Classification: Automated classification into 5 types using keyword matching"
- "ISIL Format: Uniform 13-character numeric encoding (NL-XXXXXXXXXX), unlike National Archive's semantic encoding"
- "ISIL URL: Generated as https://isil.org/{csv_isil_code}"
- "Provenance: All records marked as TIER_1_AUTHORITATIVE with confidence 1.0"
- "Total Records: 153 libraries (134 unique cities)"
- "Network Structure: 1 national library + 5 national services + 11 POI systems + 2 provincial orgs + 134 public libraries"
- "Classification Keywords: 'KB' → national_library, 'POI' → library_automation_system, 'Bibliotheekservice/Totaal' → national_library_organization, 'Provinciale' → provincial_library_organization, default → public_library"
- "Date Format: source_date field stores 'Stand 1 april 2025' (data snapshot timestamp)"