Refactor schema and slots for improved clarity and organization

- Updated `has_or_had_url` slot to allow a broader range of values by changing its range from `uriorcurie` to `Any`.
- Removed obsolete slots: `house_number`, `html_file`, `html_snapshot_path`, and `http_status_code`.
- Introduced new classes: `CeasingEvent`, `FileLocation`, `FilePath`, `HTMLFile`, `HTTPStatusCode`, `HouseNumber`, `MaximumHumidity`, `MinimumHumidity`, `TargetHumidity`, and `WKT` to better represent various concepts.
- Migrated existing slots to new structures, ensuring alignment with RiC-O naming conventions.
- Added new slots: `ceases_or_ceased_through`, `has_or_had_file_location`, `has_or_had_file_path`, `has_or_had_http_status`, and `is_or_was_observed_by` to capture additional metadata.
- Enhanced descriptions and annotations for clarity and context.
This commit is contained in:
kempersc 2026-01-28 10:49:49 +01:00
parent fa5779bfd4
commit f3c0586d09
43 changed files with 641 additions and 372 deletions

View file

@ -4,33 +4,42 @@
## 1. Verified Ontology Files
The following ontologies are locally available. Always verify terms against these specific files.
The following ontologies are locally available in `data/ontology/`. Always verify terms against these specific files. **NO HALLUCINATIONS ALLOWED.**
**Mandatory Verification Step**: Before using any `class_uri`, `slot_uri`, or mapping URI, you MUST `grep` the term in the local ontology file to confirm it exists.
| Prefix | Namespace | Local File | Key Classes/Predicates (Verified) |
|--------|-----------|------------|-----------------------------------|
| `cpov:` | `http://data.europa.eu/m8g/` | `core-public-organisation-ap.ttl` | `PublicOrganisation`, `contactPage`, `email` |
| `crm:` | `http://www.cidoc-crm.org/cidoc-crm/` | `CIDOC_CRM_v7.1.3.rdf` | `E1_CRM_Entity`, `E5_Event`, `P2_has_type` |
| `rico:` | `https://www.ica.org/standards/RiC/ontology#` | `RiC-O_1-1.rdf` | `Record`, `Agent`, `hasOrHadHolder` |
| `rico:` | `https://www.ica.org/standards/RiC/ontology#` | `RiC-O_1-1.rdf` | `Record`, `Agent`, `hasOrHadHolder` (Note: Use v1.1 file) |
| `pico:` | `https://personsincontext.org/model#` | `pico.ttl` | `PersonObservation`, `role` |
| `prov:` | `http://www.w3.org/ns/prov#` | `prov.ttl` | `Activity`, `Agent`, `wasGeneratedBy` |
| `skos:` | `http://www.w3.org/2004/02/skos/core#` | `skos.rdf` | `Concept`, `prefLabel`, `broader` |
| `schema:` | `http://schema.org/` | `schemaorg.owl` | `Organization`, `Place`, `name`, `url` |
| `schema:` | `https://schema.org/` | `frontend/public/ontology/schemaorg.owl` | `Organization`, `Place`, `name`, `url` |
| `dcterms:` | `http://purl.org/dc/terms/` | `dublin_core_elements.rdf` | `identifier`, `title`, `description` |
| `org:` | `http://www.w3.org/ns/org#` | `org.rdf` | `Organization`, `hasMember` |
| `tooi:` | `https://identifier.overheid.nl/tooi/def/ont/` | `tooiont.ttl` | `Overheidsorganisatie` |
| `dcat:` | `http://www.w3.org/ns/dcat#` | `dcat3.ttl` | `Dataset`, `Catalog`, `dataset` |
| `gn:` | `https://www.geonames.org/ontology#` | `geonames_ontology.rdf` | `Feature` |
| `dqv:` | `http://www.w3.org/ns/dqv#` | `dqv.ttl` | `QualityMeasurement`, `hasQualityAnnotation` |
| `premis:` | `http://www.loc.gov/premis/rdf/v3/` | `premis3.owl` | `fixity`, `storedAt`, `Event` |
## 2. Verification Procedure
## 2. Verification Procedure (MANDATORY)
Before using a URI in a schema, verify it exists in the local file:
**You MUST verify every term.** Do not assume a term exists just because it sounds standard.
```bash
# General verification
grep -r "Term" data/ontology/
# 1. Identify the source ontology file
ls data/ontology/
# Specific verification (e.g. searching for 'hasPart' in Dublin Core)
grep "hasPart" data/ontology/dublin_core_elements.rdf
# 2. Grep for the specific term (e.g., 'hasFixity')
grep "hasFixity" data/ontology/premis3.owl
# Result: EMPTY -> Term does not exist! DO NOT USE.
# 3. Grep for the correct term (e.g., 'fixity')
grep "fixity" data/ontology/premis3.owl
# Result: <owl:ObjectProperty rdf:about=".../fixity"> -> Term exists. USE THIS.
```
## 3. LinkML Mapping Requirements
@ -43,13 +52,17 @@ Mappings must be precise and verified.
* `broad_mappings` = `skos:broadMatch` (Broader concept)
* `narrow_mappings` = `skos:narrowMatch` (Narrower concept)
## 4. Prohibited/Invalid Terms
## 4. Prohibited/Invalid Terms (Hallucinations)
Do NOT use these commonly hallucinated or incorrect terms:
Do NOT use these commonly hallucinated or incorrect terms. They have been verified as **non-existent** in our local ontologies:
* ❌ `dqv:value` (Use `rdf:value` or specific metric property)
* ❌ `dqv:ConfidenceScore` (Use `dqv:QualityMeasurement`)
* ❌ `premis:hasFixity` (Use `premis:fixity`)
* ❌ `premis:hasFrameRate` (Verify specific PREMIS properties first)
* ❌ `schema:HeritageBuilding` (Use `schema:LandmarksOrHistoricalBuildings`)
* ❌ `rico:has_provenance` (Use `rico:hasProvenance` or `rico:history`)
* ❌ `rico:has_provenance` (Use `rico:history`)
* ❌ `rico:hasProvenance` (Use `rico:history`)
* ❌ `schema:archive` (Use `schema:archiveHeld` or `schema:archivedAt`)
**Always verify against the local file content.**

View file

@ -5520,6 +5520,17 @@ fixes:
type: slot
- label: Version
type: class
- original_slot_id: https://nde.nl/ontology/hc/slot/as_wkt
revision:
- label: has_or_had_format
type: slot
- label: WKT
type: class
processed:
status: true
timestamp: '2026-01-28T02:20:00Z'
session: session-2026-01-28-as-wkt-migration
notes: 'FULLY MIGRATED: Geometry - as_wkt replaced with has_or_had_format -> WKT class. Created WKT.yaml. Archived as_wkt slot.'
- original_slot_id: https://nde.nl/ontology/hc/slot/assessment_date
processed:
status: true
@ -17834,10 +17845,6 @@ fixes:
type: slot
- label: HeritageSocietyType
type: class
processed:
status: true
date: '2026-01-27'
notes: 'Auto-marked: Targets exist: slot has_or_had_hyponym exists, class HeritageSocietyType exists'
- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_status
processed:
status: true
@ -17849,10 +17856,7 @@ fixes:
type: slot
- label: HeritageStatus
type: class
processed:
status: true
date: '2026-01-28'
notes: 'FULLY MIGRATED: HistoricBuilding.yaml updated to use has_or_had_status + HeritageStatus. heritage_status.yaml archived.'
- original_slot_id: https://nde.nl/ontology/hc/slot/heritage_type
revision:
- label: is_or_was_related_to
@ -17973,23 +17977,15 @@ fixes:
notes: 'FULLY MIGRATED: HolySacredSiteType.yaml updated to use has_or_had_hyponym + HolySiteType. holy_site_subtype.yaml archived.'
- original_slot_id: https://nde.nl/ontology/hc/slot/homepage_web_address
revision:
- label: has_or_had_homepage
- label: has_or_had_url
type: slot
- label: uri
- label: URL
type: class
processed:
status: true
date: '2026-01-28'
notes: 'FULLY MIGRATED: DigitalPlatform.yaml updated to use has_or_had_homepage (range: uri). homepage_web_address.yaml archived.'
- label: has_or_had_type
type: slot
- label: WebAddressType
type: class
- label: includes_or_included
type: slot
- label: WebAddressTypes
type: class
note: HomepageWebAddress class is defined in the LinkML file
timestamp: '2026-01-28T01:40:00Z'
session: session-2026-01-28-homepage-web-address-migration
notes: 'FULLY MIGRATED: DigitalPlatform - homepage_web_address (and has_or_had_homepage) replaced with has_or_had_url -> URL class. Updated examples. Archived homepage_web_address slot.'
- original_slot_id: https://nde.nl/ontology/hc/slot/hosts_branch
revision:
- label: is_or_was_location_of
@ -18001,6 +17997,11 @@ fixes:
date: '2026-01-27'
notes: 'Auto-marked: Targets exist: class Branch exists'
- original_slot_id: https://nde.nl/ontology/hc/slot/house_number
processed:
status: true
timestamp: '2026-01-28T02:00:00Z'
session: session-2026-01-28-house-number-migration
notes: 'FULLY MIGRATED: Address - house_number replaced with has_or_had_section -> HouseNumber. Created HouseNumber.yaml. Archived house_number slot.'
revision:
- label: has_or_had_section
type: slot
@ -18008,46 +18009,39 @@ fixes:
type: class
- orignal_slot_id: https://nde.nl/ontology/hc/slot/html_file
revision:
- label: has_or_had_provenance
- label: has_or_had_file_path
type: slot
- label: Provenance
type: class
- label: is_or_was_based_on
type: slot
- label: URL
type: class
- label: is_or_was_archived_as
type: slot
- label: HTMLFile
type: class
- label: has_or_had_file_location
type: slot
- label: FileLocation
- label: FilePath
type: class
processed:
status: true
date: '2026-01-28'
notes: 'FULLY MIGRATED: WebClaim.yaml updated to use has_or_had_file_path + FilePath. html_file.yaml archived.'
- original_slot_id: https://nde.nl/ontology/hc/slot/html_snapshot_path
revision:
- label: has_or_had_provenance
type: slot
- label: Provenance
type: class
- label: is_or_was_based_on
type: slot
- label: URL
type: class
- label: is_or_was_archived_as
type: slot
- label: HTMLFile
type: class
- label: has_or_had_file_location
type: slot
- label: FileLocation
type: class
processed:
status: true
timestamp: '2026-01-28T02:10:00Z'
session: session-2026-01-28-html-snapshot-migration
notes: 'FULLY MIGRATED: FindingAid - html_snapshot_path replaced with has_or_had_file_location (generic) linking to FileLocation class. Archived html_snapshot_path.yaml.'
- original_slot_id: https://nde.nl/ontology/hc/slot/http_status_code
revision:
- label: has_or_had_status
type: slot
- label: HTTPStatusCode
type: class
processed:
status: true
timestamp: '2026-01-28T02:20:00Z'
session: session-2026-01-28-http-status-migration
notes: 'FULLY MIGRATED: WebObservation - http_status_code replaced with has_or_had_status (generic) linking to HTTPStatusCode class (MIGRATED). Original slot was not a file.'
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_max
revision:
- label: has_or_had_policy
@ -18058,6 +18052,11 @@ fixes:
type: slot
- label: MaximumHumidity
type: class
processed:
status: true
timestamp: '2026-01-28T02:40:00Z'
session: session-2026-01-28-humidity-migration
notes: 'FULLY MIGRATED: StorageConditionPolicy - humidity_max replaced with has_or_had_setpoint (generic) linking to Setpoint class (type: RELATIVE_HUMIDITY). Archived humidity_max.yaml.'
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_min
revision:
- label: has_or_had_policy
@ -18068,6 +18067,11 @@ fixes:
type: slot
- label: MinimumHumidity
type: class
processed:
status: true
timestamp: '2026-01-28T02:40:00Z'
session: session-2026-01-28-humidity-migration
notes: 'FULLY MIGRATED: StorageConditionPolicy - humidity_min replaced with has_or_had_setpoint (generic) linking to Setpoint class (type: RELATIVE_HUMIDITY). Archived humidity_min.yaml.'
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_target
revision:
- label: has_or_had_policy
@ -18078,6 +18082,12 @@ fixes:
type: slot
- label: TargetHumidity
type: class
processed:
status: true
timestamp: '2026-01-28T02:40:00Z'
session: session-2026-01-28-humidity-migration
notes: 'FULLY MIGRATED: StorageConditionPolicy - humidity_target replaced with has_or_had_setpoint (generic) linking to Setpoint class (type: RELATIVE_HUMIDITY). Archived humidity_target.yaml.'
- original_slot_id: https://nde.nl/ontology/hc/slot/humidity_tolerance
revision:
- label: has_or_had_policy

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-28T07:06:56.543Z",
"generated": "2026-01-28T08:43:41.869Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 3000,
"categoryCounts": {

View file

@ -1,5 +1,5 @@
{
"generated": "2026-01-28T08:43:41.869Z",
"generated": "2026-01-28T09:49:50.019Z",
"schemaRoot": "/schemas/20251121/linkml",
"totalFiles": 3000,
"categoryCounts": {

View file

@ -23,11 +23,12 @@ imports:
# REMOVED 2026-01-22: ../slots/address_formatted - migrated to has_or_had_label + Label (Rule 53, Feedback F1)
# REMOVED: ../slots/address_type - migrated to has_or_had_type (2026-01-17, Rule 53/56)
# Address component slots
- ../slots/house_number
- ../slots/has_or_had_section
# REMOVED: ../slots/street_name - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
# REMOVED: ../slots/street_address - migrated to has_or_had_address + Address class (2026-01-17, Rule 53/56)
# street_address was a redundant string slot; full Address class captures street data via components
- ../slots/postal_code
- ../slots/locality
# REMOVED: ../slots/city - migrated to is_or_was_located_in + City (2026-01-18, Rule 53)
- ../slots/is_or_was_located_in
@ -76,7 +77,7 @@ classes:
An address consists of hierarchical components:
```
Address
├── house_number (e.g., "1", "221B", "25-27")
├── has_or_had_section (e.g., "1", "221B", "25-27")
├── has_or_had_label (street name as Label, e.g., "Museumstraat")
├── postal_code (e.g., "1071 XX")
├── locality (e.g., "Amsterdam")
@ -112,7 +113,8 @@ classes:
- has_or_had_label:
- has_or_had_label: "Museumstraat"
language: "nl"
house_number: "1"
has_or_had_section:
- has_or_had_value: "1"
postal_code: "1071 XX"
locality: "Amsterdam"
region: "Noord-Holland"
@ -149,7 +151,7 @@ classes:
slots:
# Street-level components
- house_number
- has_or_had_section
# REMOVED: street_name - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
# REMOVED: street_address - redundant string slot; use house_number + has_or_had_label (2026-01-17, Rule 53/56)
# Postal components
@ -172,15 +174,18 @@ classes:
- is_or_was_derived_from # was: was_derived_from - migrated per Rule 53
- is_or_was_generated_by # was: was_generated_by - migrated per Rule 53
slot_usage:
house_number:
range: string
has_or_had_section:
range: HouseNumber
required: false
description: House/building number within street
description: House/building number within street.
examples:
- value: "1"
description: Rijksmuseum
- value: "221B"
description: Baker Street notation
- value:
has_or_had_value: "1"
description: Rijksmuseum
- value:
has_or_had_value: "221B"
description: Baker Street notation
# REMOVED: street_name slot_usage - migrated to has_or_had_label + Label (2026-01-17, Rule 53/56)
# Street names should now use Label class with language tagging via has_or_had_label
# REMOVED: street_address slot_usage - redundant string slot removed (2026-01-17, Rule 53/56)
@ -322,13 +327,15 @@ classes:
examples:
- value:
house_number: "1"
has_or_had_section:
- has_or_had_value: "1"
has_or_had_label:
- has_or_had_label: "Museumstraat"
language: "nl"
- has_or_had_label: "Museumstraat 1, 1071 XX Amsterdam, Netherlands"
language: "nl"
# REMOVED: street_address - migrated to house_number + has_or_had_label (2026-01-17, Rule 53/56)
postal_code: "1071 XX"
locality: "Amsterdam"
region: "Noord-Holland"
@ -340,13 +347,10 @@ classes:
description: Rijksmuseum headquarters - fully structured address (street_name and street_address migrated to has_or_had_label)
- value:
house_number: "40"
has_or_had_label:
- has_or_had_label: "Jansstraat"
language: "nl"
- has_or_had_label: "Jansstraat 40, 2011 RX Haarlem, Netherlands"
language: "nl"
has_or_had_section:
- has_or_had_value: "40"
# REMOVED: street_address - migrated to house_number + has_or_had_label (2026-01-17, Rule 53/56)
postal_code: "2011 RX"
locality: "Haarlem"
country_name: "NL"
@ -369,7 +373,8 @@ classes:
language: "nl"
- has_or_had_label: "Euterpelaan 25, 3824 BK Amersfoort, Netherlands"
language: "nl"
house_number: "25"
has_or_had_section:
- has_or_had_value: "25"
postal_code: "3824 BK"
locality: "Amersfoort"
region: "Utrecht"

View file

@ -197,7 +197,9 @@ classes:
has_or_had_label:
- has_or_had_label: Euterpelaan 25, 3824 BK Amersfoort, Netherlands
language: nl
house_number: '25'
- has_or_had_section:
has_or_had_value: '25'
postal_code: 3824 BK
locality: Amersfoort
country_name: NL
@ -377,7 +379,8 @@ classes:
- has_or_had_label:
- has_or_had_label: Euterpelaan 25, 3824 BK Amersfoort, Netherlands
language: nl
house_number: '25'
- has_or_had_section:
has_or_had_value: '25'
postal_code: 3824 BK
locality: Amersfoort
country_name: NL
@ -428,7 +431,8 @@ classes:
- has_or_had_label:
- has_or_had_label: Kleine Houtweg 20, 2012 CH Haarlem, Netherlands
language: nl
house_number: '20'
- has_or_had_section:
has_or_had_value: '20'
postal_code: 2012 CH
locality: Haarlem
country_name: NL

View file

@ -0,0 +1,39 @@
id: https://nde.nl/ontology/hc/class/CeasingEvent
name: CeasingEvent
title: Ceasing Event Class
description: >-
An event marking the cessation of an entity (e.g., a web portal).
MIGRATED from cessation_observed_in (Rule 53).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/is_or_was_observed_by
- ../slots/temporal_extent
- ./TimeSpan
- ./CustodianObservation
classes:
CeasingEvent:
class_uri: schema:Event
description: An event marking cessation.
slots:
- has_or_had_label
- has_or_had_description
- is_or_was_observed_by
- temporal_extent
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types: ["*"]
custodian_types_rationale: Universal utility concept.

View file

@ -33,6 +33,7 @@ imports:
- ./ReconstructedEntity
- ../slots/has_or_had_data_service_endpoint
- ../slots/has_or_had_web_page
- ./URL
- ./WebPage
- ../slots/is_or_was_checked_through
- ./FixityVerification
@ -92,7 +93,7 @@ classes:
- has_or_had_web_page
- has_or_had_data_service_endpoint
- is_or_was_checked_through
- has_or_had_address
- has_or_had_url
- iiif_support
- inventory_web_address
- linked_data
@ -176,21 +177,22 @@ classes:
description: Aggregation platform (wd:Q7894)
- value: WEBSITE
description: Simple string type from enrichment data
has_or_had_address:
range: WebAddress
has_or_had_url:
range: URL
required: false
inlined: true
description: 'Homepage URL of the platform.
MIGRATED from homepage_web_address (Rule 53).
Uses generic has_or_had_url with range URL.
'
examples:
- value:
has_or_had_url: https://www.rijksmuseum.nl/
has_or_had_label: Rijksmuseum Homepage
has_or_had_type: homepage
description: Rijksmuseum homepage
- value:
has_or_had_url: https://www.europeana.eu/
has_or_had_label: Europeana Homepage
has_or_had_type: homepage
description: Europeana homepage
has_or_had_web_page:
description: 'MIGRATED from collection_web_address per slot_fixes.yaml (Rule 53, 2026-01-22).
@ -429,8 +431,11 @@ classes:
platform_name: Rijksmuseum Website
platform_type:
- DiscoveryPortal
has_or_had_homepage: https://www.rijksmuseum.nl/
has_or_had_url:
has_or_had_url: https://www.rijksmuseum.nl/
has_or_had_type: homepage
has_or_had_web_page:
- has_or_had_label:
label_value: Rijksstudio Collections
has_or_had_url:
@ -451,8 +456,11 @@ classes:
platform_type:
- AggregationPlatform
- APIService
has_or_had_homepage: https://www.europeana.eu/
has_or_had_url:
has_or_had_url: https://www.europeana.eu/
has_or_had_type: homepage
has_or_had_web_page:
- has_or_had_label:
label_value: Europeana Collections Browse
has_or_had_url:

View file

@ -0,0 +1,31 @@
id: https://nde.nl/ontology/hc/class/FileLocation
name: FileLocation
title: File Location Class
description: >-
The location of a file (e.g. path, URI).
MIGRATED from html_snapshot_path (Rule 53).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_value
classes:
FileLocation:
class_uri: skos:Concept
description: A file location.
slots:
- has_or_had_value
- has_or_had_label
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types: ["*"]
custodian_types_rationale: Universal utility concept.

View file

@ -0,0 +1,31 @@
id: https://nde.nl/ontology/hc/class/FilePath
name: FilePath
title: File Path Class
description: "A structured representation of a file path (local or remote).\n\n**MIGRATED** from html_file/html_snapshot_path strings (Rule 53)."
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_description
classes:
FilePath:
class_uri: schema:DigitalDocument
description: "Path to a file."
slots:
- has_or_had_label
- has_or_had_description
slot_usage:
has_or_had_label:
range: string
required: true
description: The file path string (e.g., "web/0021/rendered.html").
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept.

View file

@ -101,7 +101,8 @@ imports:
- ../slots/contains_or_contained_en
- ../slots/is_or_was_located_in
- ./HistoricalRegion
- ../slots/html_snapshot_path
- ../slots/has_or_had_file_location
- ./FileLocation
- ../slots/inbound_from
- ../slots/international

View file

@ -11,7 +11,8 @@ imports:
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_type
- ../slots/as_wkt
- ../slots/has_or_had_format
- ./WKT
- ./GeometryType
- ./GeometryTypes
default_prefix: hc
@ -22,8 +23,14 @@ classes:
- has_or_had_label
- has_or_had_description
- has_or_had_type
- as_wkt
- has_or_had_format
slot_usage:
has_or_had_format:
range: WKT
description: |
WKT representation of the geometry.
MIGRATED from as_wkt (Rule 53).
required: true
has_or_had_type:
range: GeometryType
required: true

View file

@ -0,0 +1,33 @@
id: https://nde.nl/ontology/hc/class/HTMLFile
name: HTMLFile
title: HTML File Class
description: >-
An HTML file resource (e.g. a snapshot of a webpage).
MIGRATED from html_snapshot_path (Rule 53).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_description
- ../slots/has_or_had_file_location
classes:
HTMLFile:
class_uri: skos:Concept
description: An HTML file.
slots:
- has_or_had_label
- has_or_had_description
- has_or_had_file_location
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types: ["*"]
custodian_types_rationale: Universal utility concept.

View file

@ -0,0 +1,31 @@
id: https://nde.nl/ontology/hc/class/HTTPStatusCode
name: HTTPStatusCode
title: HTTP Status Code Class
description: >-
An HTTP status code.
MIGRATED from http_status_code (Rule 53).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_label
- ../slots/has_or_had_value
classes:
HTTPStatusCode:
class_uri: skos:Concept
description: An HTTP status code.
slots:
- has_or_had_value
- has_or_had_label
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types: ["*"]
custodian_types_rationale: Universal utility concept.

View file

@ -1,9 +1,9 @@
id: https://nde.nl/ontology/hc/class/WebAddress
name: WebAddress
title: Web Address Class
id: https://nde.nl/ontology/hc/class/HouseNumber
name: HouseNumber
title: House Number Class
description: >-
A web address (URL) entity.
MIGRATED from homepage_web_address (Rule 53).
A house number section of an address.
MIGRATED from house_number (Rule 53).
prefixes:
linkml: https://w3id.org/linkml/
@ -14,15 +14,15 @@ default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_url
- ../slots/has_or_had_label
- ../slots/has_or_had_value
classes:
WebAddress:
HouseNumber:
class_uri: skos:Concept
description: A web address.
description: A house number.
slots:
- has_or_had_url
- has_or_had_value
- has_or_had_label
annotations:
specificity_score: 0.1

View file

@ -1,7 +1,7 @@
id: https://nde.nl/ontology/hc/class/Humidity
name: Humidity
title: Humidity
description: Humidity measurement or requirement.
title: Humidity Class
description: "A class representing humidity measurements or policies (min, max, target).\n\n**MIGRATED** from humidity_max, humidity_min, humidity_target (Rule 53).\n\nUsed in storage condition policies."
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
@ -9,18 +9,33 @@ prefixes:
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_unit
- ../slots/maximum_of_maximum
- ../slots/minimum_of_minimum
- ../slots/has_or_had_target
- ./MaximumHumidity
- ./MinimumHumidity
- ./TargetHumidity
classes:
Humidity:
class_uri: schema:QuantitativeValue
description: Humidity value.
class_uri: schema:StructuredValue
description: "Humidity control parameters."
slots:
- has_or_had_value
- has_or_had_unit
- maximum_of_maximum
- minimum_of_minimum
- has_or_had_target
slot_usage:
maximum_of_maximum:
range: MaximumHumidity
description: Maximum allowed humidity.
minimum_of_minimum:
range: MinimumHumidity
description: Minimum allowed humidity.
has_or_had_target:
range: TargetHumidity
description: Target humidity setpoint.
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
specificity_rationale: Generic utility class.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept
custodian_types_rationale: Universal utility concept.

View file

@ -0,0 +1,35 @@
id: https://nde.nl/ontology/hc/class/MaximumHumidity
name: MaximumHumidity
title: Maximum Humidity Class
description: "The maximum allowed or recorded relative humidity.\n\n**MIGRATED** from humidity_max (Rule 53).\n\nUsed in environmental control policies for heritage preservation."
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
qudt: http://qudt.org/schema/qudt/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_unit
classes:
MaximumHumidity:
class_uri: schema:QuantitativeValue
description: "Maximum humidity constraint."
slots:
- has_or_had_value
- has_or_had_unit
slot_usage:
has_or_had_value:
range: float
required: true
description: Maximum relative humidity percentage (0-100).
has_or_had_unit:
range: string
ifabsent: string(%)
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept.

View file

@ -0,0 +1,35 @@
id: https://nde.nl/ontology/hc/class/MinimumHumidity
name: MinimumHumidity
title: Minimum Humidity Class
description: "The minimum allowed or recorded relative humidity.\n\n**MIGRATED** from humidity_min (Rule 53).\n\nUsed in environmental control policies for heritage preservation."
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
qudt: http://qudt.org/schema/qudt/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_unit
classes:
MinimumHumidity:
class_uri: schema:QuantitativeValue
description: "Minimum humidity constraint."
slots:
- has_or_had_value
- has_or_had_unit
slot_usage:
has_or_had_value:
range: float
required: true
description: Minimum relative humidity percentage (0-100).
has_or_had_unit:
range: string
ifabsent: string(%)
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept.

View file

@ -22,7 +22,7 @@ imports:
- ../slots/has_or_had_origin
- ../slots/id
- ../slots/has_or_had_associated_custodian
- ../slots/change_rationale
- ../slots/has_or_had_rationale
- ../slots/staff_impact
- ../slots/has_or_had_documentation
- ../slots/has_or_had_url
@ -130,7 +130,7 @@ classes:
slots:
- has_or_had_affected_territory
- has_or_had_affected_unit
- change_rationale
- has_or_had_rationale
- has_or_had_documentation
- temporal_extent
- has_or_had_description
@ -209,10 +209,16 @@ classes:
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Rijksmuseum
change_rationale:
range: string
has_or_had_rationale:
range: Rationale
inlined: true
description: |
Rationale for the change.
MIGRATED from change_rationale (Rule 53, 2026-01-28).
examples:
- value: Part of 10-year museum renovation (2003-2013). Reorganization aimed to integrate conservation science with practice, create synergies between research and restoration functions, and modernize facilities with new conservation lab equipment.
- value:
has_or_had_description: Part of 10-year museum renovation (2003-2013). Reorganization aimed to integrate conservation science with practice.
description: Renovation strategy rationale
staff_impact:
range: string
examples:
@ -315,7 +321,8 @@ classes:
unit_name: Conservation and Research Department
has_or_had_associated_custodian:
has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
change_rationale: Strategic reorganization during 10-year renovation to integrate conservation science with practice and modernize facilities.
has_or_had_rationale:
has_or_had_description: Strategic reorganization during 10-year renovation to integrate conservation science with practice and modernize facilities.
staff_impact: 28 FTE (12+16), all staff retained, 5 new positions
has_or_had_documentation:
- has_or_had_url:
@ -333,7 +340,8 @@ classes:
unit_name: Digital Preservation Department
has_or_had_associated_custodian:
has_or_had_identifier: https://nde.nl/ontology/hc/nl-zh-haa-a-na
change_rationale: Government mandate to preserve electronic records from ministries and agencies. Growing volume of born-digital materials requiring specialized expertise.
has_or_had_rationale:
has_or_had_description: Government mandate to preserve electronic records from ministries and agencies. Growing volume of born-digital materials requiring specialized expertise.
staff_impact: 15 FTE, all new hires with digital archiving expertise
has_or_had_documentation:
- has_or_had_url:
@ -353,7 +361,8 @@ classes:
unit_name: Amsterdam Museum
has_or_had_associated_custodian:
has_or_had_identifier: https://nde.nl/ontology/hc/nl-nh-ams-m-am
change_rationale: Historic Burgerweeshuis building requires major renovation. New facility offers better accessibility, climate control, and exhibition space.
has_or_had_rationale:
has_or_had_description: Historic Burgerweeshuis building requires major renovation. New facility offers better accessibility, climate control, and exhibition space.
has_or_had_origin:
place_name: Burgerweeshuis, Kalverstraat 92
place_specificity: BUILDING

View file

@ -9,26 +9,19 @@ prefixes:
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_rationale
- ../slots/has_or_had_description
classes:
Rationale:
class_uri: skos:note
description: 'A rationale or justification for a decision.
**USAGE**:
Used for:
- Mapping rationale (Wikidata, ontology alignments)
- Decision justifications
- Methodology explanations
'
description: 'A rationale or justification for a decision.'
slots:
- has_or_had_rationale
- has_or_had_description
slot_usage:
has_or_had_description:
description: The text content of the rationale.
required: true
attributes:
decision_type:
range: string
@ -50,7 +43,7 @@ classes:
custodian_types_rationale: Universal utility concept
examples:
- value:
has_or_had_rationale: Mapped based on exact name match and location
has_or_had_description: Mapped based on exact name match and location
decision_type: MAPPING
confidence: 0.95
description: Wikidata mapping rationale

View file

@ -39,10 +39,11 @@ imports:
- ./FireSuppressionType
- ./FireSuppressionTypes
- ../slots/flood_protection_required
- ../slots/humidity_max
- ../slots/humidity_min
- ../slots/humidity_target
# - ../slots/humidity_max
# - ../slots/humidity_min
# - ../slots/humidity_target
- ../slots/light_max_lux
- ../slots/particulate_max
- ../slots/pest_management_required
- ../slots/is_or_was_approved_by
@ -54,150 +55,15 @@ imports:
- ../slots/standards_compliance
- ../slots/has_or_had_security_level
- ../slots/has_or_had_setpoint
- ./Setpoint
- ../classes/Setpoint
- ../enums/SetpointTypeEnum
- ../slots/has_or_had_score
- ../slots/has_or_had_requirement_status
- ./RequirementStatus
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ./Approver
- ./ConditionPolicy
classes:
StorageConditionPolicy:
is_a: ConditionPolicy
class_uri: hc:StorageConditionPolicy
description: "Designed environmental and safety conditions for a storage facility.\n\n**DEFINITION**:\n\nStorageConditionPolicy specifies what conditions SHOULD BE maintained\nin a storage facility according to institutional policy, standards\nrequirements, and preservation best practices.\n\n**CRITICAL DISTINCTION**:\n\n- **StorageConditionPolicy** (THIS CLASS): What SHOULD BE - designed conditions\n- **StorageCondition**: What IS - actual observed state\n\nThe gap between policy and reality is often significant and represents\na key transparency metric for heritage preservation assessment.\n\n**STANDARDS ALIGNMENT**:\n\nThis class captures requirements from:\n- **ISO/TR 19815:2018**: Environmental management framework\n- **EN 16893:2018**: Building specifications for storage\n- **EN 15757:2010**: Temperature and relative humidity control\n- **ISO 9706:2025**: Paper permanence requirements\n- **PAS 198**: Archive storage requirements\n- **ASHRAE**: HVAC specifications for cultural heritage\n\
\n**POLICY vs. OBSERVATION PATTERN**:\n\n```\nStorage Facility\n \u2502\n \u251C\u2500\u2500 condition_policy \u2192 StorageConditionPolicy (THIS CLASS)\n \u2502 \u251C\u2500\u2500 temperature_target: 18\xB0C\n \u2502 \u251C\u2500\u2500 temperature_tolerance: \xB12\xB0C\n \u2502 \u251C\u2500\u2500 humidity_target: 50%\n \u2502 \u251C\u2500\u2500 standards_compliance: [EN_15757_2010, ISO_TR_19815_2018]\n \u2502 \u2514\u2500\u2500 policy_effective_from: 2020-01-01\n \u2502\n \u2514\u2500\u2500 storage_conditions[] \u2192 StorageCondition (observations)\n \u251C\u2500\u2500 Observation 1: Temperature 19\xB0C \u2713 (within policy)\n \u251C\u2500\u2500 Observation 2: Temperature 25\xB0C \u2717 (exceeds policy)\n \u2514\u2500\u2500 Observation 3: Humidity 65% \u2717 (exceeds policy)\n```\n\n**ODRL ALIGNMENT**:\n\n`odrl:Policy` - \"A Policy is a named entity for a rule-based system\nfor specifying permissions, prohibitions, and obligations.\"\
\n\nWhile ODRL is primarily for digital rights, the policy pattern applies:\n- Policy defines RULES for acceptable conditions\n- Observations are checked against policy RULES\n- Violations trigger OBLIGATIONS (remediation)\n\n**USE CASES**:\n\n1. **Archive Climate Policy**:\n - Based on ISO/TR 19815:2018\n - Temperature: 18\xB0C \xB12\xB0C\n - Humidity: 50% RH \xB15%\n - Light: <50 lux for sensitive materials\n \n2. **Cold Storage Policy**:\n - Based on Image Permanence Institute guidelines\n - Temperature: -18\xB0C \xB12\xB0C\n - Humidity: 30% RH \xB15%\n - For film negatives and photographs\n \n3. **Art Storage Policy**:\n - Based on museum industry standards\n - Temperature: 21\xB0C \xB11\xB0C\n - Humidity: 50% RH \xB13%\n - Strict light and UV control\n"
exact_mappings:
- odrl:Policy
close_mappings:
- hc:EnvironmentalRequirement
- premis:PreservationPolicy
- schema:Policy
- crm:E29_Design_or_Procedure
slots:
- has_or_had_access_restriction
- specifies_or_specified
- requires_or_required
- flood_protection_required
- humidity_max
- humidity_min
- humidity_target
- humidity_tolerance
- allows_or_allowed
- light_max_lux
- note
- particulate_max
- pest_management_required
- is_or_was_approved_by
- policy_description
- policy_effective_from
- policy_effective_to
- policy_id
- policy_name
- policy_review_date
- specificity_annotation
- standards_compliance
- has_or_had_security_level
- has_or_had_setpoint
- has_or_had_score
- has_or_had_requirement_status
slot_usage:
specifies_or_specified:
range: uriorcurie
inlined: true
description: 'Specifies ventilation requirements, such as air changes per hour.
# REMOVED 2026-01-28: humidity_max/min/target - migrated to has_or_had_setpoint (Rule 53)
# - ../slots/humidity_max
# - ../slots/humidity_min
# - ../slots/humidity_target
- ../slots/light_max_lux
Replaces has_air_changes_per_hour per Rule 53.
'
examples:
- value: https://nde.nl/ontology/hc/policy/rijksmuseum-depot-climate-2020
required: true
identifier: true
policy_name:
range: string
required: true
examples:
- value: Rijksmuseum Depot Climate Control Policy
- value: National Archives Cold Storage Requirements
policy_description:
range: string
examples:
- value: Climate control policy for main art storage depot at Amersfoort. Designed to maintain stable conditions for mixed media collections including oil paintings, works on paper, and decorative arts. Based on EN 15757:2010 and museum industry best practices.
has_or_had_setpoint:
range: Setpoint
multivalued: true
inlined: true
inlined_as_list: true
description: 'Environmental control setpoints for this storage policy.
MIGRATED 2026-01-15: Replaces temperature_target, temperature_min, temperature_max.
Uses Setpoint class for structured setpoint data with types (TEMPERATURE, RELATIVE_HUMIDITY, etc.).
'
examples:
- value:
- setpoint_type: TEMPERATURE
setpoint_value: 18.0
setpoint_min: 16.0
setpoint_max: 22.0
setpoint_tolerance: 2.0
setpoint_unit: DEGREE_CELSIUS
iso_standard_reference: ISO 11799:2015
description: Archive temperature setpoint
allows_or_allowed:
range: TemperatureDeviation
multivalued: true
inlined: true
inlined_as_list: true
description: 'Allowed temperature deviation/tolerance for this policy.
MIGRATED 2026-01-16: Replaces temperature_tolerance (float).
Uses TemperatureDeviation class for structured tolerance data.
'
examples:
- value:
- deviation_value: 2.0
deviation_direction: PLUS_MINUS
has_or_had_measurement_unit:
has_or_had_type: DEGREE_CELSIUS
has_or_had_symbol: "\xB0C"
iso_standard_reference: ISO 11799:2015
description: "\xB12\xB0C tolerance per ISO 11799"
humidity_target:
range: float
minimum_value: 0.0
maximum_value: 100.0
examples:
- value: 50.0
description: 50% RH for general storage
- value: 30.0
description: 30% RH for cold storage
humidity_min:
range: float
minimum_value: 0.0
maximum_value: 100.0
examples:
- value: 45.0
humidity_max:
range: float
minimum_value: 0.0
maximum_value: 100.0
examples:
- value: 55.0
humidity_tolerance:
range: float
examples:
- value: 5.0
description: "\xB15% RH tolerance"
light_max_lux:
range: float
examples:

View file

@ -0,0 +1,35 @@
id: https://nde.nl/ontology/hc/class/TargetHumidity
name: TargetHumidity
title: Target Humidity Class
description: "The target setpoint for relative humidity.\n\n**MIGRATED** from humidity_target (Rule 53).\n\nUsed in environmental control policies for heritage preservation."
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
qudt: http://qudt.org/schema/qudt/
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_unit
classes:
TargetHumidity:
class_uri: schema:QuantitativeValue
description: "Target humidity setpoint."
slots:
- has_or_had_value
- has_or_had_unit
slot_usage:
has_or_had_value:
range: float
required: true
description: Target relative humidity percentage (0-100).
has_or_had_unit:
range: string
ifabsent: string(%)
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept.

View file

@ -0,0 +1,32 @@
id: https://nde.nl/ontology/hc/class/WKT
name: WKT
title: WKT Class
description: >-
Well-Known Text (WKT) representation of a geometry.
MIGRATED from as_wkt (Rule 53).
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
skos: http://www.w3.org/2004/02/skos/core#
geosparql: http://www.opengis.net/ont/geosparql#
default_prefix: hc
imports:
- linkml:types
- ../slots/has_or_had_value
- ../slots/has_or_had_label
classes:
WKT:
class_uri: geosparql:wktLiteral
description: A WKT literal wrapper.
slots:
- has_or_had_value
- has_or_had_label
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class.
custodian_types: ["*"]
custodian_types_rationale: Universal utility concept.

View file

@ -21,7 +21,8 @@ imports:
- ../slots/source_url
- ../slots/retrieved_on
- ../slots/has_or_had_provenance_path
- ../slots/html_file
- ../slots/has_or_had_file_path
- ./FilePath
- ../slots/has_or_had_identifier
- ./Identifier
- ../slots/has_or_had_type
@ -66,7 +67,7 @@ classes:
- has_or_had_type
- has_or_had_content
- is_or_was_retrieved_through
- html_file
- has_or_had_file_path
- pipeline_stage
- retrieved_on
- source_url
@ -222,8 +223,15 @@ classes:
range: XPath
inlined: true
description: XPath provenance for this claim - pointing to exact element in archived HTML. Contains expression, matched_text, and match_score.
html_file:
has_or_had_file_path:
required: true
range: FilePath
inlined: true
description: Path to the archived HTML file (Playwright-rendered) used for extraction. MIGRATED from html_file.
examples:
- value:
has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html
description: Archived HTML file path
is_or_was_retrieved_through:
description: 'Retrieval event containing timestamp.
@ -303,7 +311,8 @@ classes:
expression: /html[1]/body[1]/div[6]/div[1]/h1[1]
match_score: 1.0
source_document: web/0021/historischeverenigingnijeveen.nl/rendered.html
html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html
has_or_had_file_path:
has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html
pipeline_stage: layout_analysis
description: Exact match claim for organization name (claim_type migrated to has_or_had_type)
- value:
@ -317,7 +326,8 @@ classes:
expression: /html[1]/body[1]/div[6]/div[1]/table[3]/tbody[1]/tr[1]/td[1]/p[1]
match_score: 1.0
source_document: web/0021/historischeverenigingnijeveen.nl/rendered.html
html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html
has_or_had_file_path:
has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html
pipeline_stage: layout_analysis
description: Collection count claim from image bank statistics
- value:
@ -331,7 +341,8 @@ classes:
expression: /html[1]/body[1]/footer[1]/div[1]/a[3]
match_score: 1.0
source_document: web/0021/historischeverenigingnijeveen.nl/rendered.html
html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html
has_or_had_file_path:
has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html
pipeline_stage: entity_linking
description: Social media link claim - entity linking stage
- value:
@ -346,7 +357,8 @@ classes:
matched_text: De Historische Vereniging Nijeveen is ook te vinden op Facebook
match_score: 0.561
source_document: web/0021/historischeverenigingnijeveen.nl/rendered.html
html_file: web/0021/historischeverenigingnijeveen.nl/rendered.html
has_or_had_file_path:
has_or_had_label: web/0021/historischeverenigingnijeveen.nl/rendered.html
pipeline_stage: layout_analysis
description: Substring match - URL found within longer text
annotations:

View file

@ -29,7 +29,8 @@ imports:
- ../slots/has_or_had_method
- ./CacheValidation
- ./ETag
- ../slots/http_status_code
- ../slots/has_or_had_status
- ../slots/last_modified
- ../slots/observation_id
- ../slots/observed_entity
@ -69,8 +70,9 @@ classes:
- has_or_had_method
- extraction_confidence
- extraction_note
- http_status_code
- has_or_had_status
- last_modified
- observation_id
- observed_entity
- page_title
@ -85,6 +87,18 @@ classes:
has_or_had_method:
range: CacheValidation
description: Cache validation method (e.g. ETag). MIGRATED from etag per slot_fixes.yaml (Rule 53).
has_or_had_status: # was: http_status_code - migrated per Rule 53/56 (2026-01-28)
range: HTTPStatusCode
description: |
HTTP response status code (e.g. 200, 404).
MIGRATED from http_status_code.
Uses HTTPStatusCode class which inherits from Status.
examples:
- value:
has_or_had_value: "200"
has_or_had_label: "OK"
description: Standard success response
comments:
- WebObservation is a prov:Activity documenting web content retrieval
- Integrates PROV-O for provenance and PAV for retrieval-specific properties
@ -103,8 +117,11 @@ classes:
retrieved_on: '2025-11-29T10:30:00Z'
retrieved_by: claude-assistant
retrieval_method: exa-search
http_status_code: 200
has_or_had_status:
has_or_had_value: "200"
content_type: text/html
page_title: Horizon Europe - Cultural heritage, cultural and creative industries
extraction_confidence: 0.92
extraction_notes: Extracted via Exa AI search. Call details structured and well-formatted. Budget and deadline clearly stated. Eligibility criteria parsed from HTML sections.
@ -118,8 +135,11 @@ classes:
retrieved_on: '2025-11-28T14:00:00Z'
retrieved_by: glam-harvester/1.0
retrieval_method: playwright-scraper
http_status_code: 200
has_or_had_status:
has_or_had_value: "200"
content_type: text/html
page_title: Medium grants | The National Lottery Heritage Fund
content_hash: sha256:a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456
last_modified: '2025-11-15T09:00:00Z'
@ -136,8 +156,10 @@ classes:
retrieved_on: '2025-11-29T09:00:00Z'
retrieved_by: wikidata-mcp-server
retrieval_method: sparql-api
http_status_code: 200
has_or_had_status:
has_or_had_value: "200"
content_type: application/sparql-results+json
extraction_confidence: 1.0
extraction_notes: SPARQL query for ECHOES/ECCCH Q-number (Q131381572). Structured API response with high confidence.
observed_entity:

View file

@ -22,7 +22,8 @@ imports:
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ./MetadataStandard
- ../slots/cessation_observed_in
- ../slots/ceases_or_ceased_through
- ./CeasingEvent
- ../slots/has_or_had_description
- ./Description
- ../slots/has_or_had_identifier
@ -1133,7 +1134,7 @@ classes:
portal_type_category:
equals_string: LIFECYCLE
slots:
- cessation_observed_in
- ceases_or_ceased_through
- specificity_annotation
- is_or_was_superseded_by
- has_or_had_score

View file

@ -0,0 +1,7 @@
name: ceases_or_ceased_through
description: >-
The event through which an entity ceases or ceased to exist/operate.
MIGRATED from cessation_observed_in (Rule 53).
range: CeasingEvent
slot_uri: prov:wasInvalidatedBy
multivalued: true

View file

@ -1,75 +0,0 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_address
name: has_or_had_address_slot
title: Has or Had Address Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
vcard: http://www.w3.org/2006/vcard/ns#
schema: http://schema.org/
locn: http://www.w3.org/ns/locn#
org: http://www.w3.org/ns/org#
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
rdfs: http://www.w3.org/2000/01/rdf-schema#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ../classes/Address
default_range: string
description: "Links an entity to its physical address(es), acknowledging temporal semantics.\n\n**RULE 39 COMPLIANCE**:\n\nThis slot follows RiC-O-style naming convention (`has_or_had_*`) because\naddresses can change over time:\n- Heritage custodians relocate their headquarters\n- Legal registered addresses change\n- Branch offices open and close\n\nThe `has_or_had_` prefix indicates that:\n- The entity HAS this address currently, OR\n- The entity HAD this address historically\n\nFor current/former address distinction, use Address.temporal_coverage or\nattach to specific CustodianTimelineEvent records.\n\n**ONTOLOGY ALIGNMENT**:\n\nvCard: hasAddress - \"To specify the components of the delivery address \nfor the object\"\n\nSchema.org: address - \"Physical address of the item.\"\n\nW3C ORG: siteAddress - \"Indicates an Address which is the address of the \nSite of the Site.\"\n\nLOCN: address - \"The locn:address property relationship associates an \nAddress with something.\"\n"
slots:
has_or_had_address:
slot_uri: vcard:hasAddress
range: Address
required: false
multivalued: true
inlined_as_list: true
description: "Physical address(es) associated with this entity (current or historical).\n\nvCard: hasAddress - \"To specify the components of the delivery address \nfor the object\"\n\nAn entity may have multiple addresses of different types (headquarters, \nlegal, mailing, visiting, etc.) and may have had different addresses\nat different times.\n\nFor heritage custodians:\n- Main address: Primary public-facing address\n- Legal address: Registered business address\n- Mailing address: Correspondence address\n- Storage addresses: Depot/warehouse facilities\n\n**TEMPORAL SEMANTICS**:\n\nUse Address.temporal_coverage to indicate validity period, or link\naddress changes to CustodianTimelineEvent records for full provenance.\n"
exact_mappings:
- vcard:hasAddress
- vcard:adr
close_mappings:
- schema:address
- org:siteAddress
- locn:address
examples:
- value:
address_formatted: Museumstraat 1, 1071 XX Amsterdam, Netherlands
street_name: Museumstraat
house_number: '1'
postal_code: 1071 XX
locality: Amsterdam
country_name: NL
address_type: HEADQUARTERS
description: Rijksmuseum headquarters address (current)
- value:
address_formatted: Jansstraat 40, 2011 RX Haarlem, Netherlands
street_name: Jansstraat
house_number: '40'
postal_code: 2011 RX
locality: Haarlem
country_name: NL
address_type: HEADQUARTERS
temporal_coverage: 1995-01-01/..
description: Noord-Hollands Archief address with temporal validity
- value:
address_formatted: Euterpelaan 25, 3824 BK Amersfoort, Netherlands
street_name: Euterpelaan
house_number: '25'
postal_code: 3824 BK
locality: Amersfoort
country_name: NL
address_type: STORAGE
description: Rijksmuseum depot storage address
annotations:
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept
comments:
- Renamed from has_address per Rule 39 (RiC-O temporal naming)
- Multivalued to support multiple address types (headquarters, legal, mailing)
- Use address_type to distinguish purpose of each address
- Inlined for data portability (address embedded in parent entity)
- Temporal validity tracked via Address.temporal_coverage or event links

View file

@ -0,0 +1,7 @@
name: has_or_had_file_location
description: >-
The location of a file.
MIGRATED from html_snapshot_path (Rule 53).
range: FileLocation
slot_uri: skos:note
multivalued: true

View file

@ -0,0 +1,29 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_file_path
name: has_or_had_file_path_slot
title: Has Or Had File Path Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
rdfs: http://www.w3.org/2000/01/rdf-schema#
org: http://www.w3.org/ns/org#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
default_prefix: hc
slots:
has_or_had_file_path:
description: "Path to a file associated with the entity.\n\n**MIGRATED** from html_file, html_snapshot_path (Rule 53).\n\nFollows RiC-O naming convention."
range: string
slot_uri: schema:contentUrl
annotations:
rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept
exact_mappings:
- schema:contentUrl

View file

@ -0,0 +1,26 @@
id: https://nde.nl/ontology/hc/slot/has_or_had_http_status
name: has_or_had_http_status_slot
title: Has Or Had HTTP Status Slot
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
rdfs: http://www.w3.org/2000/01/rdf-schema#
org: http://www.w3.org/ns/org#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
default_prefix: hc
slots:
has_or_had_http_status:
description: "HTTP status code associated with a web resource or response.\n\n**MIGRATED** from http_status_code (Rule 53).\n\nFollows RiC-O naming convention."
range: integer
annotations:
rico_naming_convention: Follows RiC-O "hasOrHad" pattern for temporal predicates.
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept

View file

@ -23,7 +23,7 @@ slots:
slot_uri: hc:hasOrHadUrl
description: "URL associated with this entity.\n\n**Temporal Semantics** (RiC-O Pattern):\nThe \"hasOrHad\" naming follows RiC-O convention indicating this\nURL may be historical - websites change over time.\n\n**Ontological Alignment**:\n- **Primary** (`slot_uri`): `hc:hasOrHadUrl` - Heritage Custodian\n ObjectProperty for class-valued URL range\n- **Close**: `schema:url` - Schema.org URL (DatatypeProperty)\n- **Close**: `foaf:homepage` - FOAF homepage (for main websites)\n\n**Use Cases**:\n- Institution websites (type: website)\n- API endpoints (type: api)\n- Vendor/supplier websites (type: vendor)\n- Documentation links (type: documentation)\n\n**Range**: URL class (structured URL with type and metadata)\n\n**Cardinality**:\nMultivalued - entities may have multiple URLs (different types).\n\n**Note**: slot_uri changed from schema:url to hc:hasOrHadUrl (2026-01-16)\nto resolve OWL ambiguous type warning. schema:url is a DatatypeProperty\nexpecting URI literals but range is URL class.\
\ Moved to close_mappings.\n\n**Range**: `Any` (2026-01-16) - Allows uri/string values and URL class instances.\n"
range: uriorcurie
range: Any
implements:
- owl:ObjectProperty
required: false

View file

@ -0,0 +1,7 @@
name: is_or_was_observed_by
description: >-
The observation that documented this event or state.
MIGRATED from cessation_observed_in (Rule 53).
range: CustodianObservation
slot_uri: prov:wasGenerartedBy
multivalued: true