From f3c0586d0914c1950fe4e5eb7f920d0db8ec701a Mon Sep 17 00:00:00 2001 From: kempersc Date: Wed, 28 Jan 2026 10:49:49 +0100 Subject: [PATCH] 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. --- .opencode/rules/verified-ontology-terms.md | 39 +++-- data/fixes/slot_fixes.yaml | 104 ++++++------ .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../linkml/modules/classes/Address.yaml | 43 ++--- .../modules/classes/AuxiliaryPlace.yaml | 10 +- .../linkml/modules/classes/CeasingEvent.yaml | 39 +++++ .../modules/classes/DigitalPlatform.yaml | 22 ++- .../linkml/modules/classes/FileLocation.yaml | 31 ++++ .../linkml/modules/classes/FilePath.yaml | 31 ++++ .../linkml/modules/classes/FindingAid.yaml | 3 +- .../linkml/modules/classes/Geometry.yaml | 11 +- .../linkml/modules/classes/HTMLFile.yaml | 33 ++++ .../modules/classes/HTTPStatusCode.yaml | 31 ++++ .../{WebAddress.yaml => HouseNumber.yaml} | 18 +- .../linkml/modules/classes/Humidity.yaml | 35 ++-- .../modules/classes/MaximumHumidity.yaml | 35 ++++ .../modules/classes/MinimumHumidity.yaml | 35 ++++ .../classes/OrganizationalChangeEvent.yaml | 25 ++- .../linkml/modules/classes/Rationale.yaml | 27 ++- .../classes/StorageConditionPolicy.yaml | 154 ++---------------- .../modules/classes/TargetHumidity.yaml | 35 ++++ .../20251121/linkml/modules/classes/WKT.yaml | 32 ++++ .../linkml/modules/classes/WebClaim.yaml | 26 ++- .../modules/classes/WebObservation.yaml | 32 +++- .../modules/classes/WebPortalTypes.yaml | 5 +- .../as_wkt_archived_20260128.yaml} | 0 ...sation_observed_in_archived_20260128.yaml} | 0 .../change_rationale_archived_20260128.yaml} | 0 .../house_number_archived_20260128.yaml} | 0 .../html_file_archived_20260128.yaml} | 0 ...html_snapshot_path_archived_20260128.yaml} | 0 .../http_status_code_archived_20260128.yaml} | 0 .../humidity_max_archived_20260128.yaml} | 0 .../humidity_min_archived_20260128.yaml} | 0 .../humidity_target_archived_20260128.yaml} | 0 .../slots/ceases_or_ceased_through.yaml | 7 + .../modules/slots/has_or_had_address.yaml | 75 --------- .../slots/has_or_had_file_location.yaml | 7 + .../modules/slots/has_or_had_file_path.yaml | 29 ++++ .../modules/slots/has_or_had_http_status.yaml | 26 +++ .../linkml/modules/slots/has_or_had_url.yaml | 2 +- .../modules/slots/is_or_was_observed_by.yaml | 7 + 43 files changed, 641 insertions(+), 372 deletions(-) create mode 100644 schemas/20251121/linkml/modules/classes/CeasingEvent.yaml create mode 100644 schemas/20251121/linkml/modules/classes/FileLocation.yaml create mode 100644 schemas/20251121/linkml/modules/classes/FilePath.yaml create mode 100644 schemas/20251121/linkml/modules/classes/HTMLFile.yaml create mode 100644 schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml rename schemas/20251121/linkml/modules/classes/{WebAddress.yaml => HouseNumber.yaml} (63%) create mode 100644 schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml create mode 100644 schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml create mode 100644 schemas/20251121/linkml/modules/classes/TargetHumidity.yaml create mode 100644 schemas/20251121/linkml/modules/classes/WKT.yaml rename schemas/20251121/linkml/modules/slots/{as_wkt.yaml => archive/as_wkt_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{cessation_observed_in.yaml => archive/cessation_observed_in_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{change_rationale.yaml => archive/change_rationale_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{house_number.yaml => archive/house_number_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{html_file.yaml => archive/html_file_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{html_snapshot_path.yaml => archive/html_snapshot_path_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{http_status_code.yaml => archive/http_status_code_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{humidity_max.yaml => archive/humidity_max_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{humidity_min.yaml => archive/humidity_min_archived_20260128.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{humidity_target.yaml => archive/humidity_target_archived_20260128.yaml} (100%) create mode 100644 schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml delete mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_address.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_file_path.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml create mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml diff --git a/.opencode/rules/verified-ontology-terms.md b/.opencode/rules/verified-ontology-terms.md index 582a00fc2b..1894556780 100644 --- a/.opencode/rules/verified-ontology-terms.md +++ b/.opencode/rules/verified-ontology-terms.md @@ -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: -> 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.** + diff --git a/data/fixes/slot_fixes.yaml b/data/fixes/slot_fixes.yaml index 4321921e2b..1c6df55024 100644 --- a/data/fixes/slot_fixes.yaml +++ b/data/fixes/slot_fixes.yaml @@ -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 diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index ecb8d148e3..72590c15c0 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -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": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 72590c15c0..e62ca23918 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -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": { diff --git a/schemas/20251121/linkml/modules/classes/Address.yaml b/schemas/20251121/linkml/modules/classes/Address.yaml index 712cb8bfaa..ba099b3b9c 100644 --- a/schemas/20251121/linkml/modules/classes/Address.yaml +++ b/schemas/20251121/linkml/modules/classes/Address.yaml @@ -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" diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml index 7e30576353..6853389187 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryPlace.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml b/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml new file mode 100644 index 0000000000..d0bfe29897 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CeasingEvent.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml index a09e86a2b5..6725cded25 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatform.yaml @@ -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: diff --git a/schemas/20251121/linkml/modules/classes/FileLocation.yaml b/schemas/20251121/linkml/modules/classes/FileLocation.yaml new file mode 100644 index 0000000000..33a22a460d --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/FileLocation.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/FilePath.yaml b/schemas/20251121/linkml/modules/classes/FilePath.yaml new file mode 100644 index 0000000000..f80d903592 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/FilePath.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/FindingAid.yaml b/schemas/20251121/linkml/modules/classes/FindingAid.yaml index 541cb0a1d9..d7492984ff 100644 --- a/schemas/20251121/linkml/modules/classes/FindingAid.yaml +++ b/schemas/20251121/linkml/modules/classes/FindingAid.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/classes/Geometry.yaml b/schemas/20251121/linkml/modules/classes/Geometry.yaml index a61d86aa63..d715656705 100644 --- a/schemas/20251121/linkml/modules/classes/Geometry.yaml +++ b/schemas/20251121/linkml/modules/classes/Geometry.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/classes/HTMLFile.yaml b/schemas/20251121/linkml/modules/classes/HTMLFile.yaml new file mode 100644 index 0000000000..a656f5c7aa --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/HTMLFile.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml b/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml new file mode 100644 index 0000000000..4645a23402 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/HTTPStatusCode.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/WebAddress.yaml b/schemas/20251121/linkml/modules/classes/HouseNumber.yaml similarity index 63% rename from schemas/20251121/linkml/modules/classes/WebAddress.yaml rename to schemas/20251121/linkml/modules/classes/HouseNumber.yaml index 70a49e3c28..a7ed2d400e 100644 --- a/schemas/20251121/linkml/modules/classes/WebAddress.yaml +++ b/schemas/20251121/linkml/modules/classes/HouseNumber.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/classes/Humidity.yaml b/schemas/20251121/linkml/modules/classes/Humidity.yaml index ad2ebadbc5..ff298c549d 100644 --- a/schemas/20251121/linkml/modules/classes/Humidity.yaml +++ b/schemas/20251121/linkml/modules/classes/Humidity.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml b/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml new file mode 100644 index 0000000000..af4128d48c --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/MaximumHumidity.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml b/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml new file mode 100644 index 0000000000..cd080e4666 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/MinimumHumidity.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml b/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml index 995d648cd2..00e86f2564 100644 --- a/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml +++ b/schemas/20251121/linkml/modules/classes/OrganizationalChangeEvent.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/classes/Rationale.yaml b/schemas/20251121/linkml/modules/classes/Rationale.yaml index b44713a8a8..392273a555 100644 --- a/schemas/20251121/linkml/modules/classes/Rationale.yaml +++ b/schemas/20251121/linkml/modules/classes/Rationale.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml index a53f8dee2f..c652a92ba1 100644 --- a/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml +++ b/schemas/20251121/linkml/modules/classes/StorageConditionPolicy.yaml @@ -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: diff --git a/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml b/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml new file mode 100644 index 0000000000..d97fc7e1a2 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/TargetHumidity.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/WKT.yaml b/schemas/20251121/linkml/modules/classes/WKT.yaml new file mode 100644 index 0000000000..a073cc2c09 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/WKT.yaml @@ -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. diff --git a/schemas/20251121/linkml/modules/classes/WebClaim.yaml b/schemas/20251121/linkml/modules/classes/WebClaim.yaml index 505acda26b..50dc08b0ae 100644 --- a/schemas/20251121/linkml/modules/classes/WebClaim.yaml +++ b/schemas/20251121/linkml/modules/classes/WebClaim.yaml @@ -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: diff --git a/schemas/20251121/linkml/modules/classes/WebObservation.yaml b/schemas/20251121/linkml/modules/classes/WebObservation.yaml index c8dd0756ba..78dc266555 100644 --- a/schemas/20251121/linkml/modules/classes/WebObservation.yaml +++ b/schemas/20251121/linkml/modules/classes/WebObservation.yaml @@ -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: diff --git a/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml b/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml index b45ae66f3c..599c1af5f2 100644 --- a/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml +++ b/schemas/20251121/linkml/modules/classes/WebPortalTypes.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/as_wkt.yaml b/schemas/20251121/linkml/modules/slots/archive/as_wkt_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/as_wkt.yaml rename to schemas/20251121/linkml/modules/slots/archive/as_wkt_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/cessation_observed_in.yaml b/schemas/20251121/linkml/modules/slots/archive/cessation_observed_in_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cessation_observed_in.yaml rename to schemas/20251121/linkml/modules/slots/archive/cessation_observed_in_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/change_rationale.yaml b/schemas/20251121/linkml/modules/slots/archive/change_rationale_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/change_rationale.yaml rename to schemas/20251121/linkml/modules/slots/archive/change_rationale_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/house_number.yaml b/schemas/20251121/linkml/modules/slots/archive/house_number_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/house_number.yaml rename to schemas/20251121/linkml/modules/slots/archive/house_number_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/html_file.yaml b/schemas/20251121/linkml/modules/slots/archive/html_file_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/html_file.yaml rename to schemas/20251121/linkml/modules/slots/archive/html_file_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/html_snapshot_path.yaml b/schemas/20251121/linkml/modules/slots/archive/html_snapshot_path_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/html_snapshot_path.yaml rename to schemas/20251121/linkml/modules/slots/archive/html_snapshot_path_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/http_status_code.yaml b/schemas/20251121/linkml/modules/slots/archive/http_status_code_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/http_status_code.yaml rename to schemas/20251121/linkml/modules/slots/archive/http_status_code_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/humidity_max.yaml b/schemas/20251121/linkml/modules/slots/archive/humidity_max_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/humidity_max.yaml rename to schemas/20251121/linkml/modules/slots/archive/humidity_max_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/humidity_min.yaml b/schemas/20251121/linkml/modules/slots/archive/humidity_min_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/humidity_min.yaml rename to schemas/20251121/linkml/modules/slots/archive/humidity_min_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/humidity_target.yaml b/schemas/20251121/linkml/modules/slots/archive/humidity_target_archived_20260128.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/humidity_target.yaml rename to schemas/20251121/linkml/modules/slots/archive/humidity_target_archived_20260128.yaml diff --git a/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml b/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml new file mode 100644 index 0000000000..861a487faf --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/ceases_or_ceased_through.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_address.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_address.yaml deleted file mode 100644 index de59024eba..0000000000 --- a/schemas/20251121/linkml/modules/slots/has_or_had_address.yaml +++ /dev/null @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml new file mode 100644 index 0000000000..d6b16b3a2c --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_file_location.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_file_path.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_file_path.yaml new file mode 100644 index 0000000000..45e9fc72e5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_file_path.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml new file mode 100644 index 0000000000..9ddeb285b4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_http_status.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml index 26d64f376d..fd1ac1d0b6 100644 --- a/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml +++ b/schemas/20251121/linkml/modules/slots/has_or_had_url.yaml @@ -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 diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml new file mode 100644 index 0000000000..0ce2502e01 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_observed_by.yaml @@ -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