From f6224503048238cb35b1fc701d0b1844b2672df5 Mon Sep 17 00:00:00 2001 From: kempersc Date: Mon, 19 Jan 2026 16:05:32 +0100 Subject: [PATCH] Add new slots and update existing ones for heritage ontology - Introduced new slots for administrative context, CMS categories, detected CMS, product version, co-funding requirements, co-organizers, collection access, collection dates, characteristics, class definitions, Dutch context, example locations, names, notes, and Wikidata IDs. - Enhanced existing slots such as has_or_had_organizer and offers_or_offered_access to align with RiC-O naming conventions and improve temporal semantics. - Migrated and restructured descriptions for clarity and consistency across various slots, ensuring alignment with Schema.org and other ontological standards. - Implemented multivalued and inlined options for several slots to accommodate complex data structures. - Updated annotations and examples to reflect the latest usage scenarios and best practices in the heritage sector. --- .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../linkml/modules/classes/Access.yaml | 254 +++++++++++++++++ .../linkml/modules/classes/Acquisition.yaml | 168 ++++++++++++ .../classes/AuxiliaryDigitalPlatform.yaml | 41 ++- .../modules/classes/BiologicalObject.yaml | 60 +++- .../20251121/linkml/modules/classes/CMS.yaml | 142 ++++++++++ .../linkml/modules/classes/CMSType.yaml | 120 ++++++++ .../linkml/modules/classes/CMSTypes.yaml | 258 ++++++++++++++++++ .../modules/classes/CallForApplication.yaml | 32 ++- .../linkml/modules/classes/CoFunding.yaml | 137 ++++++++++ .../classes/CollectionManagementSystem.yaml | 103 +++++-- .../classes/EducationProviderType.yaml | 83 +----- .../linkml/modules/classes/Exhibition.yaml | 70 ++++- .../modules/classes/NotableExample.yaml | 32 +++ .../linkml/modules/classes/Organizer.yaml | 162 +++++++++++ .../linkml/modules/classes/OrganizerRole.yaml | 121 ++++++++ .../linkml/modules/classes/RelatedType.yaml | 33 +++ .../linkml/modules/classes/Version.yaml | 168 ++++++++++++ .../modules/slots/administrative_context.yaml | 23 ++ .../cms_category_archived_20260119.yaml} | 0 .../cms_detected_archived_20260119.yaml} | 0 ...ms_product_version_archived_20260119.yaml} | 0 ...o_funding_required_archived_20260119.yaml} | 0 .../co_organized_by_archived_20260119.yaml} | 0 .../collection_access_archived_20260119.yaml} | 0 .../collection_date_archived_20260119.yaml} | 0 .../linkml/modules/slots/characteristics.yaml | 26 ++ .../modules/slots/class_definition.yaml | 24 ++ .../linkml/modules/slots/dutch_context.yaml | 23 ++ .../modules/slots/example_location.yaml | 18 ++ .../linkml/modules/slots/example_name.yaml | 19 ++ .../linkml/modules/slots/example_note.yaml | 18 ++ .../modules/slots/example_wikidata_id.yaml | 18 ++ .../modules/slots/has_or_had_organizer.yaml | 89 ++++++ .../modules/slots/heritage_sector_usage.yaml | 23 ++ .../slots/historical_significance.yaml | 23 ++ .../modules/slots/is_or_was_based_on.yaml | 61 +++++ .../linkml/modules/slots/key_distinction.yaml | 24 ++ .../linkml/modules/slots/manifest.json | 11 +- .../modules/slots/notable_examples.yaml | 29 ++ .../slots/offers_or_offered_access.yaml | 88 ++++++ .../linkml/modules/slots/purpose.yaml | 30 +- .../modules/slots/related_type_name.yaml | 19 ++ .../modules/slots/related_type_note.yaml | 18 ++ .../slots/related_type_relationship.yaml | 19 ++ .../modules/slots/related_type_wikidata.yaml | 18 ++ .../linkml/modules/slots/related_types.yaml | 27 ++ .../linkml/modules/slots/research_value.yaml | 23 ++ .../modules/slots/scope_description.yaml | 29 ++ .../linkml/modules/slots/slot_fixes.yaml | 5 + .../modules/slots/temporal_dynamics.yaml | 23 ++ .../modules/slots/typical_contents.yaml | 26 ++ .../linkml/modules/slots/use_cases.yaml | 26 ++ .../modules/slots/was_acquired_through.yaml | 54 ++++ 55 files changed, 2677 insertions(+), 145 deletions(-) create mode 100644 schemas/20251121/linkml/modules/classes/Access.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Acquisition.yaml create mode 100644 schemas/20251121/linkml/modules/classes/CMS.yaml create mode 100644 schemas/20251121/linkml/modules/classes/CMSType.yaml create mode 100644 schemas/20251121/linkml/modules/classes/CMSTypes.yaml create mode 100644 schemas/20251121/linkml/modules/classes/CoFunding.yaml create mode 100644 schemas/20251121/linkml/modules/classes/NotableExample.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Organizer.yaml create mode 100644 schemas/20251121/linkml/modules/classes/OrganizerRole.yaml create mode 100644 schemas/20251121/linkml/modules/classes/RelatedType.yaml create mode 100644 schemas/20251121/linkml/modules/classes/Version.yaml create mode 100644 schemas/20251121/linkml/modules/slots/administrative_context.yaml rename schemas/20251121/linkml/modules/slots/{cms_category.yaml => archive/cms_category_archived_20260119.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{cms_detected.yaml => archive/cms_detected_archived_20260119.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{cms_product_version.yaml => archive/cms_product_version_archived_20260119.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{co_funding_required.yaml => archive/co_funding_required_archived_20260119.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{co_organized_by.yaml => archive/co_organized_by_archived_20260119.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{collection_access.yaml => archive/collection_access_archived_20260119.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{collection_date.yaml => archive/collection_date_archived_20260119.yaml} (100%) create mode 100644 schemas/20251121/linkml/modules/slots/characteristics.yaml create mode 100644 schemas/20251121/linkml/modules/slots/class_definition.yaml create mode 100644 schemas/20251121/linkml/modules/slots/dutch_context.yaml create mode 100644 schemas/20251121/linkml/modules/slots/example_location.yaml create mode 100644 schemas/20251121/linkml/modules/slots/example_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/example_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/example_wikidata_id.yaml create mode 100644 schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml create mode 100644 schemas/20251121/linkml/modules/slots/heritage_sector_usage.yaml create mode 100644 schemas/20251121/linkml/modules/slots/historical_significance.yaml create mode 100644 schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml create mode 100644 schemas/20251121/linkml/modules/slots/key_distinction.yaml create mode 100644 schemas/20251121/linkml/modules/slots/notable_examples.yaml create mode 100644 schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml create mode 100644 schemas/20251121/linkml/modules/slots/related_type_name.yaml create mode 100644 schemas/20251121/linkml/modules/slots/related_type_note.yaml create mode 100644 schemas/20251121/linkml/modules/slots/related_type_relationship.yaml create mode 100644 schemas/20251121/linkml/modules/slots/related_type_wikidata.yaml create mode 100644 schemas/20251121/linkml/modules/slots/related_types.yaml create mode 100644 schemas/20251121/linkml/modules/slots/research_value.yaml create mode 100644 schemas/20251121/linkml/modules/slots/scope_description.yaml create mode 100644 schemas/20251121/linkml/modules/slots/temporal_dynamics.yaml create mode 100644 schemas/20251121/linkml/modules/slots/typical_contents.yaml create mode 100644 schemas/20251121/linkml/modules/slots/use_cases.yaml create mode 100644 schemas/20251121/linkml/modules/slots/was_acquired_through.yaml diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 0168ba1356..085fd493d2 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-19T13:49:48.064Z", + "generated": "2026-01-19T14:55:27.224Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2969, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 085fd493d2..fa71c256c1 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-19T14:55:27.224Z", + "generated": "2026-01-19T15:05:33.164Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2969, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/Access.yaml b/schemas/20251121/linkml/modules/classes/Access.yaml new file mode 100644 index 0000000000..18611b3d9b --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Access.yaml @@ -0,0 +1,254 @@ +# Access class +# Structured access information for heritage collections and services +# +# Created per slot_fixes.yaml revision for collection_access migration +# Generation date: 2026-01-19 +# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming) + +id: https://nde.nl/ontology/hc/class/Access +name: Access +title: Access Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ./TimeSpan + +classes: + Access: + class_uri: dcterms:RightsStatement + description: | + Structured access information for heritage collections, services, or facilities. + + **Purpose**: + Replaces simple string descriptions of access conditions with structured + data capturing access types, eligible users, conditions, and restrictions. + + **Key Properties**: + - `access_type`: Type of access (PUBLIC, BY_APPOINTMENT, RESTRICTED, etc.) + - `eligible_users`: Who can access (public, students, faculty, researchers) + - `access_conditions`: Conditions or requirements for access + - `access_restrictions`: Specific restrictions that apply + - `temporal_extent`: When this access policy applies + + **Access Types**: + - PUBLIC: Open to general public + - BY_APPOINTMENT: Requires advance appointment + - ACADEMIC: Restricted to academic community + - RESEARCHER: Restricted to credentialed researchers + - MEMBER: Requires membership + - RESTRICTED: Limited access with specific conditions + - CLOSED: Not currently accessible + - DIGITAL_ONLY: Available only in digital form + + **Ontological Alignment**: + - **Primary**: `dcterms:RightsStatement` - Dublin Core rights statement + - **Close**: `schema:publicAccess` - Schema.org access indicator + - **Related**: `crm:E30_Right` - CIDOC-CRM rights + + exact_mappings: + - dcterms:RightsStatement + + close_mappings: + - schema:publicAccess + + related_mappings: + - crm:E30_Right + + slots: + - access_type + - eligible_users + - access_conditions + - access_restrictions + - access_description + - temporal_extent + - is_digital_access + + slot_usage: + access_type: + required: true + range: AccessTypeEnum + description: Type of access offered + examples: + - value: PUBLIC + - value: BY_APPOINTMENT + - value: ACADEMIC + + eligible_users: + required: false + range: string + multivalued: true + description: | + Categories of users eligible for this access. + Examples: "enrolled students", "faculty", "visiting scholars", + "credentialed researchers", "general public" + examples: + - value: "enrolled students" + - value: "faculty and staff" + - value: "visiting researchers with credentials" + + access_conditions: + required: false + range: string + multivalued: true + description: | + Conditions that must be met for access. + Examples: "valid university ID", "advance booking required", + "handling training completed" + examples: + - value: "valid university ID required" + - value: "24-hour advance booking required" + + access_restrictions: + required: false + range: string + multivalued: true + description: | + Specific restrictions on access. + Examples: "conservation concerns limit handling", + "donor restrictions apply", "high-value items in secure storage" + examples: + - value: "fragile materials limited to supervised viewing" + - value: "donor bequest restricts reproduction" + + access_description: + required: false + range: string + description: | + Free-text description of access policy. + For backward compatibility with string-based collection_access. + examples: + - value: "Open to enrolled students and faculty; public by appointment" + + temporal_extent: + required: false + range: TimeSpan + inlined: true + description: | + Time period during which this access policy applies. + Useful for temporary restrictions or seasonal access. + + is_digital_access: + required: false + range: boolean + description: Whether this access is for digital materials + + annotations: + specificity_score: 0.50 + specificity_rationale: "Moderately specific - applies to collection and service access contexts" + custodian_types: '["*"]' + custodian_types_rationale: "All institution types offer some form of access" + + comments: + - "Created per slot_fixes.yaml revision for collection_access migration" + - "Replaces string-based collection_access with structured access data" + - "RULE 53: Part of collection_access → offers_or_offered_access + Access migration" + + examples: + - value: + access_type: PUBLIC + access_description: "Open to general public during gallery hours" + eligible_users: + - "general public" + access_conditions: + - "during posted gallery hours" + description: "Public access during gallery hours" + + - value: + access_type: BY_APPOINTMENT + eligible_users: + - "credentialed researchers" + - "graduate students with faculty sponsor" + access_conditions: + - "48-hour advance booking required" + - "handling training required for original materials" + access_restrictions: + - "fragile materials limited to supervised viewing only" + description: "Research access by appointment with conditions" + + - value: + access_type: ACADEMIC + access_description: "Open to enrolled students and faculty; public by appointment" + eligible_users: + - "enrolled students" + - "faculty" + - "research staff" + access_conditions: + - "valid university ID" + is_digital_access: false + description: "Academic community access with public by appointment" + + - value: + access_type: DIGITAL_ONLY + access_description: "Collection accessible only through online database" + eligible_users: + - "anyone with internet access" + is_digital_access: true + description: "Digital-only access" + +slots: + access_type: + slot_uri: dcterms:accessRights + description: Type of access offered + range: string + required: true + + eligible_users: + slot_uri: schema:eligibleRegion + description: Categories of users eligible for access + range: string + multivalued: true + + access_conditions: + slot_uri: schema:termsOfService + description: Conditions for access + range: string + multivalued: true + + access_restrictions: + slot_uri: schema:usageInfo + description: Restrictions on access + range: string + multivalued: true + + access_description: + slot_uri: schema:description + description: Free-text description of access policy + range: string + + is_digital_access: + slot_uri: schema:isAccessibleForFree + description: Whether this is digital access + range: boolean + +enums: + AccessTypeEnum: + description: Types of access to collections or services + permissible_values: + PUBLIC: + description: Open to general public + BY_APPOINTMENT: + description: Requires advance appointment + ACADEMIC: + description: Restricted to academic community + RESEARCHER: + description: Restricted to credentialed researchers + MEMBER: + description: Requires membership + RESTRICTED: + description: Limited access with specific conditions + CLOSED: + description: Not currently accessible + DIGITAL_ONLY: + description: Available only in digital form + MIXED: + description: Multiple access types apply diff --git a/schemas/20251121/linkml/modules/classes/Acquisition.yaml b/schemas/20251121/linkml/modules/classes/Acquisition.yaml new file mode 100644 index 0000000000..ddea0faa45 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Acquisition.yaml @@ -0,0 +1,168 @@ +id: https://nde.nl/ontology/hc/class/Acquisition +name: acquisition_class +title: Acquisition Class +# Created per slot_fixes.yaml revision for collection_date migration +# RULE 53: Structured acquisition event with temporal extent +# CIDOC-CRM E8 Acquisition pattern + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + dwc: http://rs.tdwg.org/dwc/terms/ + rico: https://www.ica.org/standards/RiC/ontology# + +imports: + - linkml:types + - ../slots/temporal_extent + - ./TimeSpan + - ../slots/specificity_annotation + - ../slots/has_or_had_score + - ./SpecificityAnnotation + - ./TemplateSpecificityScore + - ./TemplateSpecificityType + - ./TemplateSpecificityTypes + +default_range: string + +enums: + AcquisitionMethodEnum: + description: Methods by which items are acquired for collections. + permissible_values: + FIELD_COLLECTION: + description: Collected in the field (biological, geological specimens) + meaning: dwc:Occurrence + PURCHASE: + description: Acquired through purchase + meaning: schema:BuyAction + DONATION: + description: Given as a gift or donation + meaning: schema:DonateAction + BEQUEST: + description: Received through will or estate + TRANSFER: + description: Transferred from another institution + meaning: crm:E10_Transfer_of_Custody + EXCHANGE: + description: Exchanged with another institution (specimen exchange) + EXCAVATION: + description: Recovered through archaeological excavation + LOAN: + description: On long-term loan (not owned) + CONFISCATION: + description: Seized or confiscated (legal action) + FOUND: + description: Found object (no prior owner) + COMMISSION: + description: Commissioned work (created for the collection) + UNKNOWN: + description: Acquisition method unknown + +classes: + Acquisition: + class_uri: crm:E8_Acquisition + description: >- + Represents an acquisition event - how and when an object or specimen was obtained for a collection. + + CIDOC-CRM E8 Acquisition models the transfer of legal ownership rights. + + **Key properties**: + - `temporal_extent`: When the acquisition occurred (TimeSpan with fuzzy boundaries for historical items) + - `acquisition_method`: How the item was acquired (field collection, purchase, donation, etc.) + - `acquisition_source`: From whom/where acquired (collector, dealer, previous owner, field location) + - `acquisition_agent`: Who performed the acquisition (collector, curator, institution) + + **Darwin Core alignment**: For biological specimens: + - `temporal_extent` replaces `dwc:eventDate` (collection date) + - `acquisition_source` can capture `dwc:locality` and `dwc:recordedBy` + + **Use cases**: + - Museum object provenance (purchase from dealer, 1923) + - Biological specimen collection (field collection, Amazon basin, 1750s) + - Archival transfer (transferred from ministry archives, 2001) + - Art donation (donated by artist's estate, 2015) + exact_mappings: + - crm:E8_Acquisition + close_mappings: + - prov:Activity + - schema:AcquireAction + related_mappings: + - rico:Event + - dwc:Event + slots: + - temporal_extent + - specificity_annotation + - has_or_had_score + attributes: + acquisition_method: + range: AcquisitionMethodEnum + description: >- + Method by which the item was acquired (field collection, purchase, donation, etc.). + acquisition_source: + range: string + description: >- + Source from which item was acquired. Can be: + - Person name (collector, donor, seller) + - Institution name (transferring institution) + - Location (field collection locality) + - Dealer or auction house + acquisition_agent: + range: string + description: >- + Agent who performed the acquisition (collector name, curator, institution). + For biological specimens, maps to dwc:recordedBy. + acquisition_location: + range: string + description: >- + Location where acquisition occurred (field collection site, auction house location). + For biological specimens, can capture field locality. + acquisition_reference: + range: string + description: >- + Reference number or identifier for the acquisition (accession number, lot number). + acquisition_notes: + range: string + description: >- + Additional notes about the acquisition event. + acquisition_date_text: + range: string + description: >- + Original date text as recorded (e.g., "1750s", "pre-1662", "circa 1900"). + For backward compatibility with string-based collection_date. + The structured date should be in temporal_extent. + comments: + - "Created per slot_fixes.yaml revision for collection_date migration" + - "Replaces simple collection_date string with structured acquisition event" + - "RULE 53: Part of collection_date → was_acquired_through + Acquisition migration" + annotations: + specificity_score: 0.70 + specificity_rationale: "Fairly specific - applies to items with acquisition provenance" + examples: + - value: | + # Biological specimen collected in the field + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "1750-01-01" + end_of_the_end: "1759-12-31" + notes: "Collected sometime in the 1750s" + acquisition_source: "Amazon basin, Brazil" + acquisition_agent: "Unknown Dutch collector" + acquisition_date_text: "1750s" + - value: | + # Museum object purchased from dealer + acquisition_method: PURCHASE + temporal_extent: + begin_of_the_begin: "1923-03-15" + end_of_the_end: "1923-03-15" + acquisition_source: "Sotheby's London" + acquisition_reference: "Lot 245, Sale of March 1923" + - value: | + # Historical specimen with uncertain date + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "1600-01-01" + end_of_the_end: "1662-12-31" + notes: "Pre-1662 (before Great Fire of London)" + acquisition_date_text: "pre-1662" diff --git a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml index 7e6ddb1d16..f25384106e 100644 --- a/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml +++ b/schemas/20251121/linkml/modules/classes/AuxiliaryDigitalPlatform.yaml @@ -30,7 +30,10 @@ imports: - ../slots/has_or_had_archival_status - ../slots/has_or_had_identifier - ../slots/has_auxiliary_platform_type - - ../slots/cms_detected + # REMOVED 2026-01-19: ../slots/cms_detected - migrated to is_or_was_based_on + CMS (Rule 53) + - ../slots/is_or_was_based_on # was: cms_detected - migrated per Rule 53 (2026-01-19) + - ./CMS + - ./CMSType - ../slots/fixity_info - ../slots/iiif_support - ../slots/is_auxiliary_of_platform @@ -122,7 +125,7 @@ classes: - is_or_was_archived_at # MIGRATED: was archived_at (2026-01-15) - has_or_had_identifier - has_auxiliary_platform_type - - cms_detected + - is_or_was_based_on # was: cms_detected - migrated per Rule 53 (2026-01-19) - has_or_had_data_service_endpoint - fixity_info - funding_source @@ -299,14 +302,36 @@ classes: examples: - value: sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 description: SHA-256 checksum of archived content - cms_detected: - range: boolean + # DEPRECATED 2026-01-19: cms_detected - migrated to is_or_was_based_on + CMS + # Old: cms_detected: true/false (boolean flag) + # New: is_or_was_based_on: CMS instance with name, version, detection method + is_or_was_based_on: # was: cms_detected - migrated per Rule 53 (2026-01-19) + description: | + CMS detected on this platform (replaces boolean cms_detected). + MIGRATED from boolean flag to structured CMS reference. + If present, a CMS was detected; if absent, no CMS detected. + + **Migration**: + - Old: cms_detected: true + - New: is_or_was_based_on: {cms_name: WordPress, cms_version: "6.4"} + range: CMS + multivalued: true + inlined_as_list: true required: false examples: - - value: true - description: CMS backend detected - - value: false - description: No CMS detected (static site) + - value: + cms_name: WordPress + cms_version: "6.4.2" + has_or_had_type: CustomCMS + detected_at: "2026-01-19T12:00:00Z" + detection_method: HTTP_HEADER + description: CMS detected via HTTP header + - value: + cms_name: Omeka S + cms_version: "4.0.1" + has_or_had_type: MuseumCMS + detection_method: URL_PATTERN + description: Omeka S detected via URL pattern has_or_had_powered_by_cm: range: CollectionManagementSystem multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml index f6e93ba871..39dc715691 100644 --- a/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml +++ b/schemas/20251121/linkml/modules/classes/BiologicalObject.yaml @@ -28,7 +28,9 @@ imports: # cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix class (Rule 53, 2026-01-19) - ../slots/is_or_was_listed_in - ./CITESAppendix - - ../slots/collection_date + # REMOVED 2026-01-19: collection_date - migrated to was_acquired_through + Acquisition (Rule 53) + - ../slots/was_acquired_through + - ./Acquisition - ../slots/collection_locality_text - ../slots/collection_location - ../slots/collector @@ -122,7 +124,8 @@ classes: - has_or_had_identifier # cites_appendix REMOVED - migrated to is_or_was_listed_in with CITESAppendix (Rule 53, 2026-01-19) - is_or_was_listed_in - - collection_date + # collection_date REMOVED - migrated to was_acquired_through + Acquisition (Rule 53, 2026-01-19) + - was_acquired_through - collection_locality_text - collection_location - collector @@ -374,15 +377,36 @@ classes: examples: - value: Natural History Museum Preparation Lab - value: J. van der Berg - collection_date: + # MIGRATED 2026-01-19: collection_date → was_acquired_through + Acquisition (Rule 53) + was_acquired_through: required: false - range: string + range: Acquisition + inlined: true + inlined_as_list: true + description: >- + Acquisition event capturing when and how specimen was collected. + Replaces simple collection_date with structured acquisition data. examples: - - value: '2020-06-15' - - value: 2020-06/2020-07 - description: Collected sometime in June-July 2020 - - value: 1870s - description: Historical specimen with approximate date + - value: | + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "2020-06-15" + end_of_the_end: "2020-06-15" + acquisition_date_text: "2020-06-15" + - value: | + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "2020-06-01" + end_of_the_end: "2020-07-31" + acquisition_date_text: "2020-06/2020-07" + acquisition_notes: "Collected sometime in June-July 2020" + - value: | + acquisition_method: FIELD_COLLECTION + temporal_extent: + begin_of_the_begin: "1870-01-01" + end_of_the_end: "1879-12-31" + acquisition_date_text: "1870s" + acquisition_notes: "Historical specimen with approximate date" collection_location: required: false range: CustodianPlace @@ -514,7 +538,14 @@ classes: - HEAD - FOOT preservation_method: DRIED_WHOLE - collection_date: pre-1662 + # MIGRATED 2026-01-19: collection_date → was_acquired_through (Rule 53) + was_acquired_through: + - acquisition_method: FIELD_COLLECTION + acquisition_date_text: "pre-1662" + temporal_extent: + begin_of_the_begin: "1600-01-01" + end_of_the_end: "1662-12-31" + notes: "Pre-1662 (before Great Fire of London destroyed records)" collection_location: place_name: Mauritius country: MU @@ -578,7 +609,14 @@ classes: - LEAF - FLOWER preservation_method: DRIED_PRESSED - collection_date: 1750s + # MIGRATED 2026-01-19: collection_date → was_acquired_through (Rule 53) + was_acquired_through: + - acquisition_method: FIELD_COLLECTION + acquisition_date_text: "1750s" + temporal_extent: + begin_of_the_begin: "1750-01-01" + end_of_the_end: "1759-12-31" + notes: "Collected by Linnaeus in the 1750s" collector: - Carl Linnaeus current_keeper: https://nde.nl/ontology/hc/custodian/uk/royal-botanic-gardens-kew diff --git a/schemas/20251121/linkml/modules/classes/CMS.yaml b/schemas/20251121/linkml/modules/classes/CMS.yaml new file mode 100644 index 0000000000..c3369fd4b5 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CMS.yaml @@ -0,0 +1,142 @@ +id: https://nde.nl/ontology/hc/class/CMS +name: cms_class +title: CMS Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + doap: http://usefulinc.com/ns/doap# +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_version + - ../slots/has_or_had_type + - ./CMSType +default_prefix: hc +classes: + CMS: + class_uri: schema:SoftwareApplication + description: | + A detected Content Management System (CMS) on a digital platform. + + **Purpose**: Represents a CMS instance detected through automated discovery + or manual identification. Used when a platform is_or_was_based_on a CMS. + + **Distinction from CollectionManagementSystem**: + - **CMS**: Lightweight detection record (what CMS was found) + - **CollectionManagementSystem**: Full institutional CMS deployment profile + (configuration, collections managed, custodian relationships) + + **Detection Methods** (from original cms_detected documentation): + - HTTP response headers (X-Powered-By, Server) + - HTML meta tags (generator) + - URL patterns (e.g., /providence/, /omeka/) + - JavaScript libraries or framework signatures + - Admin panel detection + + **Use Cases**: + 1. "What CMS powers this auxiliary platform?" → Check is_or_was_based_on + 2. Technical survey: Identify platforms by CMS type + 3. Migration planning: Prioritize platforms by CMS technology + + **Example**: + ```yaml + AuxiliaryDigitalPlatform: + platform_name: Heritage Blog + is_or_was_based_on: + - cms_name: WordPress + cms_version: "6.4.2" + cms_type: CustomCMS + detected_at: "2026-01-19T12:00:00Z" + detection_method: HTTP_HEADER + ``` + + **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). + Supports migration from boolean cms_detected to structured CMS reference. + exact_mappings: + - schema:SoftwareApplication + close_mappings: + - doap:Project + slots: + - cms_name + - has_or_had_version + - has_or_had_type + - detected_at + - detection_method + slot_usage: + cms_name: + description: Name of the detected CMS (e.g., WordPress, Drupal, Omeka) + range: string + required: true + examples: + - value: WordPress + description: WordPress CMS + - value: Omeka S + description: Omeka S digital collections platform + - value: CollectiveAccess + description: CollectiveAccess museum CMS + has_or_had_version: + description: Detected version of the CMS + range: string + required: false + examples: + - value: "6.4.2" + description: WordPress version + - value: "4.0.1" + description: Omeka S version + has_or_had_type: + description: CMS type classification (maps to CMSType hierarchy) + range: CMSType + required: false + examples: + - value: MuseumCMS + description: Museum-focused CMS + - value: ArchiveCMS + description: Archive-focused CMS + detected_at: + description: ISO 8601 timestamp when CMS was detected + range: datetime + required: false + examples: + - value: "2026-01-19T12:00:00Z" + description: Detection timestamp + detection_method: + description: Method used to detect the CMS + range: string + required: false + examples: + - value: HTTP_HEADER + description: Detected via X-Powered-By header + - value: META_TAG + description: Detected via HTML generator meta tag + - value: URL_PATTERN + description: Detected via URL structure + - value: MANUAL + description: Manually identified + annotations: + custodian_types: '["D"]' + custodian_types_rationale: Digital platforms (D) are the primary users of CMS detection + specificity_score: 0.70 + specificity_rationale: Specific to digital platform CMS detection context + +slots: + cms_name: + slot_uri: schema:name + description: Name of the Content Management System + range: string + exact_mappings: + - schema:name + - doap:name + + detected_at: + slot_uri: prov:generatedAtTime + description: Timestamp when the CMS was detected + range: datetime + exact_mappings: + - prov:generatedAtTime + + detection_method: + slot_uri: prov:wasGeneratedBy + description: Method used to detect the CMS (HTTP_HEADER, META_TAG, URL_PATTERN, MANUAL) + range: string diff --git a/schemas/20251121/linkml/modules/classes/CMSType.yaml b/schemas/20251121/linkml/modules/classes/CMSType.yaml new file mode 100644 index 0000000000..123a3afd52 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CMSType.yaml @@ -0,0 +1,120 @@ +# CMSType class +# Abstract base class for CMS type taxonomy +# +# Generation date: 2026-01-19 +# Rule compliance: 0b (Type/Types pattern), 53 (slot_fixes.yaml), 39 (RiC-O naming) +# +# This is the SINGULAR "Type" class - abstract base for the type hierarchy +# Concrete types are in CMSTypes.yaml (plural) + +id: https://nde.nl/ontology/hc/class/cms_type +name: cms_type_class +title: CMS Type Class + +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/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_description + - ../slots/includes_or_included + +classes: + CMSType: + class_uri: skos:Concept + abstract: true + description: | + Abstract base class for Collection Management System type taxonomy. + + **DESIGN PATTERN** (Rule 0b - Type/Types Naming): + + This file (`CMSType.yaml`) defines the **singular abstract base class**. + Concrete subclasses are defined in `CMSTypes.yaml` (plural). + + **TYPE HIERARCHY**: + + ``` + CMSType (abstract base) + │ + ├── MUSEUM_CMS - Museum collection management (MuseumPlus, TMS, CollectiveAccess) + ├── ARCHIVE_CMS - Archival description (ArchivesSpace, MAIS, Calm) + ├── LIBRARY_CMS - Library management (Koha, Alma, WorldShare) + ├── DAM - Digital asset management (ResourceSpace, DAMsimple) + ├── REPOSITORY - Digital repository (DSpace, Fedora, EPrints) + ├── MIXED - Multi-domain (Omeka S, CollectiveAccess) + └── CUSTOM - Institution-specific/custom-built + ``` + + **ONTOLOGICAL ALIGNMENT**: + + - **Primary** (`class_uri`): `skos:Concept` - SKOS concept scheme + - **Related**: `schema:applicationCategory` - Schema.org software categorization + + **USE CASES**: + + The CMSType is used as the range for the `has_or_had_type` + slot in the CollectionManagementSystem class: + + ```yaml + CollectionManagementSystem: + has_or_had_identifier: + identifier_scheme: CMS_URI + identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib" + has_or_had_type: MUSEUM_CMS # ← CMSType + ``` + + exact_mappings: + - skos:Concept + related_mappings: + - schema:applicationCategory + + slots: + - has_or_had_label + - has_or_had_description + - includes_or_included + + slot_usage: + has_or_had_label: + description: | + Display label for this CMS type. + range: string + required: true + examples: + - value: "MUSEUM_CMS" + description: Museum collection management system + has_or_had_description: + description: | + Description of what this CMS type covers. + examples: + - value: + description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management." + description_type: definition + description: Museum CMS type definition + includes_or_included: + description: | + Subtypes included in this CMS type (for hierarchical types). + range: CMSType + multivalued: true + + annotations: + type_types_pattern: | + This is the SINGULAR "Type" class per Rule 0b. + Concrete subclasses in CMSTypes.yaml (plural). + custodian_types: '["*"]' + custodian_types_rationale: CMS types apply to all heritage custodian contexts. + specificity_score: 0.55 + specificity_rationale: Type taxonomy - moderately specific to software categorization. + replaces_slots: "cms_category (the old string-valued slot)" + migration_date: "2026-01-19" + + comments: + - "Abstract base class for CMS type hierarchy" + - "Follows Rule 0b Type/Types naming pattern" + - "Concrete types: MUSEUM_CMS, ARCHIVE_CMS, LIBRARY_CMS, DAM, REPOSITORY, MIXED, CUSTOM" + - "See CMSTypes.yaml for subclass definitions" diff --git a/schemas/20251121/linkml/modules/classes/CMSTypes.yaml b/schemas/20251121/linkml/modules/classes/CMSTypes.yaml new file mode 100644 index 0000000000..85b62b779d --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CMSTypes.yaml @@ -0,0 +1,258 @@ +# CMSTypes class +# Concrete subclasses for CMS type taxonomy +# +# Generation date: 2026-01-19 +# Rule compliance: 0b (Type/Types pattern), 53 (slot_fixes.yaml), 39 (RiC-O naming) +# +# This is the PLURAL "Types" file - contains all concrete subclasses +# Abstract base is in CMSType.yaml (singular) + +id: https://nde.nl/ontology/hc/class/cms_types +name: cms_types_class +title: CMS Types Classes + +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/ + +default_prefix: hc + +imports: + - linkml:types + - ./CMSType + +classes: + # ======================================================================== + # MUSEUM_CMS - Museum collection management + # ======================================================================== + MuseumCMS: + is_a: CMSType + class_uri: hc:MuseumCMS + description: | + Collection management systems designed for museum collections. + + **TYPICAL FEATURES**: + - Object cataloging and registration + - Provenance tracking + - Exhibition management + - Loan management + - Conservation records + - SPECTRUM workflow support + + **EXAMPLES**: + - MuseumPlus (Zetcom) + - TMS - The Museum System (Gallery Systems) + - CollectiveAccess + - Adlib (Axiell) + - EMu (Axiell) + - PastPerfect + + annotations: + cms_type_code: "MUSEUM_CMS" + primary_domain: "museums" + examples: + - value: + has_or_had_label: "MUSEUM_CMS" + has_or_had_description: + description_text: "Collection management systems designed for museum collections, including object cataloging, provenance tracking, and exhibition management." + description: Museum CMS type + + # ======================================================================== + # ARCHIVE_CMS - Archival description systems + # ======================================================================== + ArchiveCMS: + is_a: CMSType + class_uri: hc:ArchiveCMS + description: | + Systems for archival description and records management. + + **TYPICAL FEATURES**: + - Hierarchical description (fonds, series, files, items) + - ISAD(G) compliance + - EAD export + - Access restrictions management + - Finding aid generation + + **EXAMPLES**: + - ArchivesSpace + - MAIS-Flexis (De Ree) + - Calm (Axiell) + - AtoM (Access to Memory) + - Archivist's Toolkit (legacy) + + annotations: + cms_type_code: "ARCHIVE_CMS" + primary_domain: "archives" + examples: + - value: + has_or_had_label: "ARCHIVE_CMS" + has_or_had_description: + description_text: "Archival description systems supporting hierarchical arrangement, ISAD(G) compliance, and EAD export." + description: Archive CMS type + + # ======================================================================== + # LIBRARY_CMS - Library management systems + # ======================================================================== + LibraryCMS: + is_a: CMSType + class_uri: hc:LibraryCMS + description: | + Integrated library systems (ILS) and library service platforms. + + **TYPICAL FEATURES**: + - Cataloging (MARC21, RDA) + - Circulation management + - Acquisitions + - Serials management + - OPAC (public catalog) + - Interlibrary loan + + **EXAMPLES**: + - Alma (Ex Libris) + - Koha (open-source) + - WorldShare (OCLC) + - Folio (open-source) + - Sierra (III) + - Symphony (SirsiDynix) + + annotations: + cms_type_code: "LIBRARY_CMS" + primary_domain: "libraries" + examples: + - value: + has_or_had_label: "LIBRARY_CMS" + has_or_had_description: + description_text: "Integrated library systems supporting MARC21 cataloging, circulation, acquisitions, and OPAC functionality." + description: Library CMS type + + # ======================================================================== + # DAM - Digital Asset Management + # ======================================================================== + DigitalAssetManagement: + is_a: CMSType + class_uri: hc:DigitalAssetManagement + description: | + Digital asset management systems for media files. + + **TYPICAL FEATURES**: + - Image, video, audio management + - Metadata extraction + - Format conversion + - Rights management + - Distribution workflows + + **EXAMPLES**: + - ResourceSpace + - DAMsimple + - Razuna + - Pimcore + - Bynder + - Canto + + annotations: + cms_type_code: "DAM" + primary_domain: "digital_assets" + examples: + - value: + has_or_had_label: "DAM" + has_or_had_description: + description_text: "Digital asset management systems for organizing, storing, and distributing media files including images, video, and audio." + description: DAM type + + # ======================================================================== + # REPOSITORY - Digital repository systems + # ======================================================================== + DigitalRepository: + is_a: CMSType + class_uri: hc:DigitalRepository + description: | + Digital repository systems for long-term preservation and access. + + **TYPICAL FEATURES**: + - Long-term preservation + - OAI-PMH harvesting + - DOI/Handle assignment + - Bitstream management + - OAIS compliance + + **EXAMPLES**: + - DSpace + - Fedora (Flexible Extensible Digital Object Repository Architecture) + - EPrints + - Islandora (Drupal + Fedora) + - Samvera (formerly Hydra) + - Preservica + + annotations: + cms_type_code: "REPOSITORY" + primary_domain: "digital_preservation" + examples: + - value: + has_or_had_label: "REPOSITORY" + has_or_had_description: + description_text: "Digital repository systems for long-term preservation, OAI-PMH harvesting, and OAIS-compliant storage." + description: Digital repository type + + # ======================================================================== + # MIXED - Multi-domain systems + # ======================================================================== + MixedCMS: + is_a: CMSType + class_uri: hc:MixedCMS + description: | + Multi-domain systems that serve museums, archives, and/or libraries. + + **TYPICAL FEATURES**: + - Flexible data models + - Multiple metadata standards + - Cross-domain searching + - Configurable workflows + + **EXAMPLES**: + - Omeka S (museums, archives, libraries) + - CollectiveAccess (museums, archives) + - ArchivesSpace + plugins + - ResourceSpace with customization + + annotations: + cms_type_code: "MIXED" + primary_domain: "multi-domain" + examples: + - value: + has_or_had_label: "MIXED" + has_or_had_description: + description_text: "Multi-domain collection management systems that can serve museums, archives, and/or libraries with flexible data models." + description: Mixed CMS type + + # ======================================================================== + # CUSTOM - Institution-specific/custom-built + # ======================================================================== + CustomCMS: + is_a: CMSType + class_uri: hc:CustomCMS + description: | + Institution-specific or custom-built collection management systems. + + **TYPICAL FEATURES**: + - Tailored to institutional needs + - May be legacy systems + - Often lack standard API/export + - Proprietary data models + + **EXAMPLES**: + - In-house developed systems + - Heavily customized commercial systems + - Legacy database applications + - Spreadsheet-based systems (transitional) + + annotations: + cms_type_code: "CUSTOM" + primary_domain: "custom" + examples: + - value: + has_or_had_label: "CUSTOM" + has_or_had_description: + description_text: "Institution-specific or custom-built collection management systems, often legacy or heavily customized." + description: Custom CMS type diff --git a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml index e9ce51e0dd..2a5b6fc5d5 100644 --- a/schemas/20251121/linkml/modules/classes/CallForApplication.yaml +++ b/schemas/20251121/linkml/modules/classes/CallForApplication.yaml @@ -32,7 +32,9 @@ imports: - ./URL # for has_or_had_url range - ./Identifier # for has_or_had_identifier range # NOTE: has_or_had_status uses CallForApplicationStatusEnum (imported above), not a CallStatus class - - ../slots/co_funding_required + # REMOVED 2026-01-19: co_funding_required - migrated to requires_or_required + CoFunding (Rule 53) + - ../slots/requires_or_required # was: co_funding_required - migrated per Rule 53 (2026-01-19) + - ./CoFunding # for requires_or_required range (co-funding requirements) - ../slots/eligible_applicant - ../slots/eligible_country - ../slots/funded_project @@ -115,7 +117,8 @@ classes: - has_or_had_label # was: call_short_name, call_title - migrated per Rule 53 (2026-01-17) - has_or_had_status # was: call_status - migrated per Rule 53 (2026-01-17) - has_or_had_url # was: call_url - migrated per Rule 53 (2026-01-17) - - co_funding_required + # REMOVED 2026-01-19: co_funding_required - migrated to requires_or_required + CoFunding (Rule 53) + - requires_or_required # was: co_funding_required - migrated per Rule 53 (2026-01-19) - contact_email - eligible_applicant - eligible_country @@ -317,6 +320,27 @@ classes: description: Project funded by this call - value: https://nde.nl/ontology/hc/project/europeana/common-culture-2024 description: Europeana project funded through Horizon Europe + requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19) + range: CoFunding + multivalued: false + inlined: true + description: | + Co-funding/match funding requirement for this call. + MIGRATED from co_funding_required (boolean) to structured CoFunding class per Rule 53 (2026-01-19). + Now captures whether co-funding is required, percentage/amount requirements, and human-readable descriptions. + examples: + - value: + is_or_was_required: true + has_or_had_description: "Partnership funding 5-50% depending on grant size" + description: NLHF co-funding requirement with percentage range + - value: + is_or_was_required: true + has_or_had_quantity: + - quantity_value: 20 + has_or_had_measurement_unit: + unit_label: "%" + has_or_had_description: "Minimum 20% co-funding from applicant organization" + description: Co-funding with specific percentage requirement comments: - CallForApplication links FundingOrganisation to heritage custodian funding opportunities - Lifecycle tracked via CallForApplicationStatusEnum (ANNOUNCED through RESULTS_PUBLISHED) @@ -466,7 +490,9 @@ classes: - Natural heritage - Intangible heritage - Industrial heritage - co_funding_required: true + requires_or_required: # was: co_funding_required - migrated per Rule 53 (2026-01-19) + is_or_was_required: true + has_or_had_description: "Partnership funding 5-50% depending on grant size" partnership_required: false issuing_organisation: https://nde.nl/ontology/hc/encompassing-body/funding/nlhf parent_programme: National Lottery Heritage Fund diff --git a/schemas/20251121/linkml/modules/classes/CoFunding.yaml b/schemas/20251121/linkml/modules/classes/CoFunding.yaml new file mode 100644 index 0000000000..7d250e3cab --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CoFunding.yaml @@ -0,0 +1,137 @@ +# CoFunding - Co-funding/match funding requirement +# Created 2026-01-19 per slot_fixes.yaml revision for co_funding_required +# Rule 53: Generic slot + structured class pattern +id: https://nde.nl/ontology/hc/class/CoFunding +name: CoFunding +title: CoFunding Class +version: 1.0.0 +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ +imports: + - linkml:types + - ../slots/has_or_had_description + - ../slots/is_or_was_required + - ../slots/has_or_had_quantity + - ./Quantity + - ./MeasureUnit + - ../enums/MeasureUnitEnum +default_prefix: hc + +classes: + CoFunding: + class_uri: schema:MonetaryAmount + description: | + Co-funding or match funding requirement for a funding call or grant. + + Co-funding represents the financial contribution that an applicant must + provide alongside the grant funding. This may be expressed as: + - A percentage of total project cost (e.g., 30% co-funding required) + - A minimum absolute amount (e.g., €50,000 minimum co-funding) + - In-kind contributions (staff time, facilities, equipment) + + **ONTOLOGY ALIGNMENT**: + - schema:MonetaryAmount - For monetary co-funding amounts + - schema:percentageValue - For percentage-based requirements + + **MIGRATION NOTE**: + Replaces simple boolean `co_funding_required` slot with structured class + that captures co-funding amount, percentage, and type information. + + **USAGE**: + - CallForApplication requires_or_required CoFunding + - Grant has_or_had_cofunding CoFunding + + **EXAMPLES**: + - Horizon Europe: 0% co-funding for academic partners (100% funding rate) + - National Lottery Heritage Fund: 5-50% partnership funding required + - Creative Europe: 40% co-funding required (60% EU contribution) + exact_mappings: + - schema:MonetaryAmount + close_mappings: + - schema:percentageValue + related_mappings: + - schema:Grant + - schema:FundingScheme + slots: + - is_or_was_required + - has_or_had_description + - has_or_had_quantity + slot_usage: + is_or_was_required: + required: true + range: boolean + description: | + Whether co-funding is required for this funding opportunity. + True = applicants must provide matching funds. + False = full funding provided (no co-funding required). + examples: + - value: true + description: Co-funding required (e.g., 30% match) + - value: false + description: Full funding provided (100% grant rate) + has_or_had_description: + range: string + description: | + Human-readable description of co-funding requirements. + May include eligibility notes, in-kind contribution rules, etc. + examples: + - value: "30% co-funding required; in-kind contributions accepted up to 10%" + description: Mixed co-funding with in-kind allowance + - value: "Partnership funding required ranging from 5% to 50% depending on grant size" + description: Sliding scale co-funding + has_or_had_quantity: + range: Quantity + multivalued: true + inlined: true + inlined_as_list: true + description: | + Quantified co-funding requirements expressed as: + - Percentage (e.g., 30% of total project cost) + - Minimum amount (e.g., €50,000) + - Maximum amount (e.g., up to €1,000,000) + examples: + - value: + quantity_value: 30 + has_or_had_measurement_unit: + unit_label: "%" + description: 30% co-funding percentage + - value: + quantity_value: 50000 + has_or_had_measurement_unit: + unit_label: EUR + description: Minimum €50,000 co-funding + comments: + - Replaces simple co_funding_required boolean with structured class + - Captures both percentage and absolute co-funding amounts + - In-kind contributions tracked via description field + - Links to Quantity for precise numerical requirements + see_also: + - https://schema.org/MonetaryAmount + - https://ec.europa.eu/research/participants/docs/h2020-funding-guide/grants/applying-for-funding/find-a-call/what-you-need-to-know_en.htm + examples: + - value: + is_or_was_required: true + has_or_had_description: "30% co-funding required for all project costs" + has_or_had_quantity: + - quantity_value: 30 + has_or_had_measurement_unit: + unit_label: "%" + description: EU Creative Europe style co-funding (30%) + - value: + is_or_was_required: true + has_or_had_description: "Partnership funding 5-50% depending on grant size; in-kind contributions permitted" + has_or_had_quantity: + - quantity_value: 5 + has_or_had_measurement_unit: + unit_label: "%" + - quantity_value: 50 + has_or_had_measurement_unit: + unit_label: "%" + description: NLHF sliding scale co-funding range + - value: + is_or_was_required: false + has_or_had_description: "100% funding rate for academic and non-profit partners" + description: Horizon Europe full funding (no co-funding) diff --git a/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml b/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml index b1e670513b..f24840fee1 100644 --- a/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml +++ b/schemas/20251121/linkml/modules/classes/CollectionManagementSystem.yaml @@ -12,12 +12,17 @@ imports: - ../slots/documentation_url - ./ReconstructedEntity - ../slots/is_or_was_available # MIGRATED: was ../slots/api_available (2026-01-15) - - ../slots/cms_category + # REMOVED 2026-01-19: ../slots/cms_category - migrated to has_or_had_type + CMSType (Rule 53) + - ../slots/has_or_had_type # was: cms_category - migrated per Rule 53 (2026-01-19) + - ./CMSType + - ./CMSTypes # REMOVED 2026-01-18: ../slots/cms_id - migrated to has_or_had_identifier + Identifier (Rule 53) - ../slots/has_or_had_identifier # was: cms_id - migrated per Rule 53 (2026-01-18) - ./Identifier # REMOVED 2026-01-18: ../slots/cms_product_name - migrated to has_or_had_label with Label (type: product_name) - - ../slots/cms_product_version + # REMOVED 2026-01-19: ../slots/cms_product_version - migrated to has_or_had_version + Version (Rule 53) + - ../slots/has_or_had_version # was: cms_product_version - migrated per Rule 53 (2026-01-19) + - ./Version - ../slots/has_or_had_custodian_type - ../slots/deployment_date - ../slots/iiif_compatible @@ -114,10 +119,12 @@ classes: - rico:Activity slots: - is_or_was_available # MIGRATED: was api_available (2026-01-15) - - cms_category + # REMOVED 2026-01-19: cms_category - migrated to has_or_had_type with CMSType + - has_or_had_type # was: cms_category - migrated per Rule 53 (2026-01-19) - has_or_had_identifier # was: cms_id - migrated per Rule 53 (2026-01-18) # REMOVED 2026-01-18: cms_product_name - migrated to has_or_had_label with Label (type: product_name) - - cms_product_version + # REMOVED 2026-01-19: cms_product_version - migrated to has_or_had_version + Version (Rule 53) + - has_or_had_version # was: cms_product_version - migrated per Rule 53 (2026-01-19) - has_or_had_custodian_type - deployment_date - documentation_url @@ -177,18 +184,65 @@ classes: See has_or_had_label slot_usage for current pattern. deprecated: "Use has_or_had_label with Label(has_or_had_type='product_name')" cms_product_version: - range: string + description: | + DEPRECATED 2026-01-19: Migrated to has_or_had_version slot with Version class. + This slot_usage entry retained for documentation only. + See has_or_had_version slot_usage for current pattern. + deprecated: "Use has_or_had_version with Version class" + has_or_had_version: # was: cms_product_version - migrated per Rule 53 (2026-01-19) + description: | + MIGRATED from cms_product_version per slot_fixes.yaml (Rule 53, 2026-01-19). + Version of the CMS software deployed. + + Uses Version class for structured version representation: + - version_string: Full version (e.g., "1.8.0", "7.4") + - major_version, minor_version, patch_version: Semantic versioning components + - release_date: When this version was released + - temporal_extent: When this version was deployed at the custodian + range: Version + multivalued: true + inlined_as_list: true examples: - - value: 1.8.0 - description: CollectiveAccess version - - value: '7.0' + - value: + version_string: "1.8.0" + major_version: 1 + minor_version: 8 + patch_version: 0 + description: CollectiveAccess version with semantic components + - value: + version_string: "7.4" + major_version: 7 + minor_version: 4 description: MuseumPlus version cms_category: - range: string + description: | + DEPRECATED 2026-01-19: Migrated to has_or_had_type slot with CMSType class. + This slot_usage entry retained for documentation only. + See has_or_had_type slot_usage for current pattern. + deprecated: "Use has_or_had_type with CMSType class" + has_or_had_type: # was: cms_category - migrated per Rule 53 (2026-01-19) + description: | + MIGRATED from cms_category per slot_fixes.yaml (Rule 53, 2026-01-19). + The type of collection management system. + + Uses CMSType class hierarchy for structured type representation: + - MuseumCMS: Museum-focused collection management (e.g., TMS, CollectiveAccess) + - ArchiveCMS: Archives-focused (e.g., ArchivesSpace, MAIS-Flexis) + - LibraryCMS: Library-focused (e.g., Koha, Alma) + - DigitalAssetManagement: DAM systems (e.g., ResourceSpace) + - DigitalRepository: Repository platforms (e.g., DSpace, Fedora) + - MixedCMS: Multi-domain systems + - CustomCMS: Institution-specific systems + range: CMSType + inlined: true examples: - - value: MUSEUM_CMS + - value: + has_or_had_label: Museum CMS + has_or_had_type: museum_cms description: Museum-focused CMS - - value: ARCHIVE_CMS + - value: + has_or_had_label: Archive CMS + has_or_had_type: archive_cms description: Archives-focused CMS open_source: range: boolean @@ -382,15 +436,20 @@ classes: - http://www.cidoc-crm.org/cidoc-crm/E29_Design_or_Procedure - http://usefulinc.com/ns/doap#Project examples: - # Examples updated for migrated slots (Rule 53) - 2026-01-14, 2026-01-16, 2026-01-18 + # Examples updated for migrated slots (Rule 53) - 2026-01-14, 2026-01-16, 2026-01-18, 2026-01-19 - value: # cms_id migrated to has_or_had_identifier with Identifier class (2026-01-18) has_or_had_identifier: identifier_scheme: CMS_URI identifier_value: "https://nde.nl/ontology/hc/cms/rijksmuseum-adlib" # cms_product_name migrated to has_or_had_label with type: product_name (2026-01-18) - cms_product_version: '7.4' - cms_category: MUSEUM_CMS + # cms_product_version migrated to has_or_had_version with Version class (2026-01-19) + has_or_had_version: + version_string: "7.4" + major_version: 7 + minor_version: 4 + # cms_category migrated to has_or_had_type with CMSType (2026-01-19) + has_or_had_type: MuseumCMS # was: cms_category: MUSEUM_CMS open_source: false license: Proprietary has_or_had_label: # was: vendor_name AND cms_product_name - now uses Label with type discrimination @@ -425,8 +484,14 @@ classes: identifier_scheme: CMS_URI identifier_value: "https://nde.nl/ontology/hc/cms/example-museum-collectiveaccess" # cms_product_name migrated to has_or_had_label with type: product_name (2026-01-18) - cms_product_version: 1.8.0 - cms_category: MUSEUM_CMS + # cms_product_version migrated to has_or_had_version with Version class (2026-01-19) + has_or_had_version: + version_string: "1.8.0" + major_version: 1 + minor_version: 8 + patch_version: 0 + # cms_category migrated to has_or_had_type with CMSType (2026-01-19) + has_or_had_type: MuseumCMS # was: cms_category: MUSEUM_CMS open_source: true license: GPL-3.0 has_or_had_label: # was: vendor_name AND cms_product_name - now uses Label with type discrimination @@ -462,8 +527,10 @@ classes: identifier_scheme: CMS_URI identifier_value: "https://nde.nl/ontology/hc/cms/nationaal-archief-mais" # cms_product_name migrated to has_or_had_label with type: product_name (2026-01-18) - cms_product_version: null - cms_category: ARCHIVE_CMS + # cms_product_version migrated to has_or_had_version with Version class (2026-01-19) + # Version unknown for this CMS deployment + # cms_category migrated to has_or_had_type with CMSType (2026-01-19) + has_or_had_type: ArchiveCMS # was: cms_category: ARCHIVE_CMS open_source: false license: Proprietary has_or_had_label: # was: vendor_name AND cms_product_name - now uses Label with type discrimination diff --git a/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml b/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml index 554e03af8e..09febcd210 100644 --- a/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml +++ b/schemas/20251121/linkml/modules/classes/EducationProviderType.yaml @@ -66,7 +66,8 @@ imports: - ./TemplateSpecificityTypes - ../slots/education_level - ../slots/has_or_had_academic_program - - ../slots/collection_access + - ../slots/offers_or_offered_access + - ./Access # REMOVED 2026-01-15: teaching_collection, student_service imports - defined locally as attributes, slots archived - ../slots/has_or_had_accreditation - ../slots/education_provider_subtype @@ -367,77 +368,15 @@ classes: range: string multivalued: true slot_uri: aiiso:programme - collection_access: - description: 'Access policies for heritage collections, especially concerning student and faculty use. - - - Academic Community Access: - - - Students enrolled: Undergraduate, graduate, doctoral students - - - Faculty and staff: Teaching faculty, research faculty, emeritus - - - Academic affiliates: Visiting scholars, postdocs, adjuncts - - - Curriculum Integration: - - - Class visits: Scheduled visits as part of coursework - - - Hands-on learning: Object-based teaching with collection items - - - Laboratory access: Specimen examination for science students - - - Research use: Thesis/dissertation research, faculty research projects - - - External Access: - - - Public visiting hours: Open to general public (specific days/times) - - - Appointment required: By-appointment access for researchers - - - Restricted access: Academic credentials required - - - Membership programs: Community membership for non-affiliated users - - - Digital Access: - - - Online catalog: Searchable collection database - - - Digital collections: Digitized materials available online - - - Virtual exhibitions: Online exhibition programming - - - Learning management integration: Collections in course management systems - - - Special Restrictions: - - - Conservation concerns: Fragile materials limited access - - - Donor restrictions: Bequest conditions limiting use - - - Privacy restrictions: Student records, personnel files - - - Security restrictions: High-value items in secure storage - - - Examples: - - - "Open to enrolled students and faculty; public by appointment" - - - "Class visits scheduled through instructors; public gallery hours Wednesday-Saturday" - - - "Digital collections open access; physical materials require university ID" - - - This field maps to Schema.org and CIDOC-CRM access properties. - - ' - range: string - slot_uri: schema:publicAccess + offers_or_offered_access: + description: >- + Access offerings for heritage collections, especially concerning student and faculty use. + Uses structured Access class to capture access type, eligible users, conditions, and restrictions. + Education providers typically offer multiple access types for different user groups. + range: Access + multivalued: true + inlined: true + inlined_as_list: true teaching_collection: description: 'Description of collections specifically maintained for educational purposes and diff --git a/schemas/20251121/linkml/modules/classes/Exhibition.yaml b/schemas/20251121/linkml/modules/classes/Exhibition.yaml index 2dd3984994..56a68aa7a4 100644 --- a/schemas/20251121/linkml/modules/classes/Exhibition.yaml +++ b/schemas/20251121/linkml/modules/classes/Exhibition.yaml @@ -25,7 +25,10 @@ imports: - ../slots/has_or_had_identifier - ./WikiDataIdentifier - ../slots/exhibition_type - - ../slots/co_organized_by + # REMOVED 2026-01-19: co_organized_by - migrated to has_or_had_organizer + Organizer (Rule 53) + - ../slots/has_or_had_organizer + - ./Organizer + - ./OrganizerRole - ../slots/curated_by - ../slots/has_or_had_custodian_type - ../slots/exhibition_catalog_url @@ -92,7 +95,8 @@ classes: - schema:Event - crm:E4_Period slots: - - co_organized_by + # REMOVED 2026-01-19: co_organized_by - migrated to has_or_had_organizer + Organizer (Rule 53) + - has_or_had_organizer - curated_by - has_or_had_custodian_type - end_date @@ -168,13 +172,42 @@ classes: examples: - value: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - value: https://nde.nl/ontology/hc/custodian/nl/mauritshuis - co_organized_by: + # REMOVED 2026-01-19: co_organized_by - migrated to has_or_had_organizer + Organizer (Rule 53) + # co_organized_by: + # required: false + # range: uriorcurie + # multivalued: true + # inlined: false + # examples: + # - value: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington + has_or_had_organizer: required: false - range: uriorcurie + range: Organizer multivalued: true - inlined: false + inlined: true + inlined_as_list: true + description: | + Organizations that organize this exhibition. + MIGRATED 2026-01-19: Replaces co_organized_by slot per Rule 53. + Includes primary organizers, co-organizers, sponsors with curatorial input. examples: - - value: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington + - value: + organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + has_or_had_role: + role_type: PRIMARY + description: "Rijksmuseum as primary organizer" + - value: + organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis + has_or_had_role: + role_type: CO_ORGANIZER + organizer_contribution: "Provided key loans including Girl with a Pearl Earring" + description: "Mauritshuis as co-organizer" + - value: + organizer_entity: https://nde.nl/ontology/hc/custodian/us/national-gallery-washington + has_or_had_role: + role_type: LENDING_INSTITUTION + organizer_contribution: "Lent Woman Holding a Balance" + description: "National Gallery Washington as lending institution" curated_by: required: false range: string @@ -360,10 +393,15 @@ classes: ' exhibition_type: BLOCKBUSTER - organized_by: - - https://nde.nl/ontology/hc/custodian/nl/rijksmuseum - co_organized_by: - - https://nde.nl/ontology/hc/custodian/nl/mauritshuis + # MIGRATED 2026-01-19: organized_by/co_organized_by → has_or_had_organizer + Organizer (Rule 53) + has_or_had_organizer: + - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + has_or_had_role: + role_type: PRIMARY + - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis + has_or_had_role: + role_type: CO_ORGANIZER + organizer_contribution: "Provided Girl with a Pearl Earring and 5 other Vermeers" curated_by: - Pieter Roelofs - Gregor J.M. Weber @@ -407,8 +445,10 @@ classes: exhibition_name: Voices from the War exhibition_subtitle: Personal Stories from World War II Archives exhibition_type: ARCHIVAL - organized_by: - - https://nde.nl/ontology/hc/custodian/nl/nationaal-archief + has_or_had_organizer: + - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/nationaal-archief + has_or_had_role: + role_type: PRIMARY start_date: '2024-05-04' end_date: '2024-11-11' exhibition_location: @@ -428,8 +468,10 @@ classes: ' exhibition_type: PERMANENT - organized_by: - - https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + has_or_had_organizer: + - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + has_or_had_role: + role_type: PRIMARY exhibition_venue: Gallery of Honour (Eregalerij) featured_work: - The Night Watch (Rembrandt) diff --git a/schemas/20251121/linkml/modules/classes/NotableExample.yaml b/schemas/20251121/linkml/modules/classes/NotableExample.yaml new file mode 100644 index 0000000000..3509f80ec1 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/NotableExample.yaml @@ -0,0 +1,32 @@ +id: https://nde.nl/ontology/hc/class/NotableExample +name: NotableExample-class + +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/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/example_name + - ../slots/example_location + - ../slots/example_wikidata_id + - ../slots/example_note + +classes: + NotableExample: + class_uri: hc:NotableExample + description: | + A real-world example of a heritage institution of this type. + Provides concrete instances for understanding the class scope. + slots: + - example_name + - example_location + - example_wikidata_id + - example_note + annotations: + specificity_score: 0.3 + specificity_rationale: "Universal utility for concrete examples" diff --git a/schemas/20251121/linkml/modules/classes/Organizer.yaml b/schemas/20251121/linkml/modules/classes/Organizer.yaml new file mode 100644 index 0000000000..d5a23a3480 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Organizer.yaml @@ -0,0 +1,162 @@ +# Organizer class +# Entity that organizes events, exhibitions, programs with role specification +# +# Created per slot_fixes.yaml revision for co_organized_by migration +# Generation date: 2026-01-19 +# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming) + +id: https://nde.nl/ontology/hc/class/Organizer +name: Organizer +title: Organizer Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + org: http://www.w3.org/ns/org# + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_role + - ./OrganizerRole + +classes: + Organizer: + class_uri: schema:Organization + description: | + An entity that organizes or organized an event, exhibition, program, or activity. + + **Purpose**: + Captures the organizing entity along with their role, replacing simple + uriorcurie references like `co_organized_by` or `organized_by`. + + **Key Properties**: + - `organizer_entity`: Reference to the organizing institution (Custodian, Organization) + - `has_or_had_role`: Role of the organizer (PRIMARY, CO_ORGANIZER, etc.) + - `organizer_contribution`: Description of organizational contribution + + **Pattern**: + Instead of separate `organized_by` and `co_organized_by` slots with plain URIs, + use a single `has_or_had_organizer` slot with Organizer instances that specify roles. + + **Example Migration**: + ```yaml + # OLD (deprecated): + organized_by: + - https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + co_organized_by: + - https://nde.nl/ontology/hc/custodian/nl/mauritshuis + + # NEW (Rule 53): + has_or_had_organizer: + - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/rijksmuseum + has_or_had_role: + role_type: PRIMARY + - organizer_entity: https://nde.nl/ontology/hc/custodian/nl/mauritshuis + has_or_had_role: + role_type: CO_ORGANIZER + ``` + + **Ontological Alignment**: + - **Primary**: `schema:Organization` (organizer is an organization) + - **Close**: `org:Organization` (W3C Org vocabulary) + - **Related**: `prov:Agent` (PROV-O agent in activity) + + exact_mappings: + - schema:Organization + + close_mappings: + - org:Organization + + related_mappings: + - prov:Agent + + slots: + - organizer_entity + - has_or_had_role + - organizer_contribution + + slot_usage: + organizer_entity: + required: true + range: uriorcurie + description: | + Reference to the organizing institution (Custodian, Organization). + This is the entity that actually does the organizing. + examples: + - value: "https://nde.nl/ontology/hc/custodian/nl/rijksmuseum" + description: "Rijksmuseum as organizer" + + has_or_had_role: + required: false + range: OrganizerRole + inlined: true + description: | + Role of this organizer (PRIMARY, CO_ORGANIZER, SPONSOR_ORGANIZER, etc.). + If omitted, implies general organizational involvement. + examples: + - value: + role_type: PRIMARY + description: "Primary organizer role" + + organizer_contribution: + required: false + range: string + description: | + Description of organizational contribution. + Examples: "Provided 15 works from permanent collection", + "Funded conservation of borrowed works", "Curatorial expertise" + examples: + - value: "Provided 15 works from permanent collection and curatorial expertise" + description: "Description of Mauritshuis contribution to Vermeer exhibition" + + annotations: + specificity_score: 0.55 + specificity_rationale: "Moderately specific - applies to any event organization context" + custodian_types: '["*"]' + custodian_types_rationale: "Any institution type can organize events/exhibitions" + + comments: + - "Created per slot_fixes.yaml revision for co_organized_by migration" + - "Replaces separate organized_by/co_organized_by with role-based discrimination" + - "RULE 53: Part of co_organized_by → has_or_had_organizer + Organizer migration" + + examples: + - value: + organizer_entity: "https://nde.nl/ontology/hc/custodian/nl/rijksmuseum" + has_or_had_role: + role_type: PRIMARY + role_description: "Main organizing institution" + description: "Rijksmuseum as primary organizer of Vermeer exhibition" + + - value: + organizer_entity: "https://nde.nl/ontology/hc/custodian/nl/mauritshuis" + has_or_had_role: + role_type: CO_ORGANIZER + role_description: "Partner institution providing key loans" + organizer_contribution: "Provided Girl with a Pearl Earring and 5 other Vermeers" + description: "Mauritshuis as co-organizer with specific contribution" + + - value: + organizer_entity: "https://nde.nl/ontology/hc/custodian/us/national-gallery-washington" + has_or_had_role: + role_type: LENDING_INSTITUTION + organizer_contribution: "Lent Woman Holding a Balance" + description: "National Gallery Washington as lending institution" + +slots: + organizer_entity: + slot_uri: schema:organizer + description: Reference to the organizing institution + range: uriorcurie + required: true + + organizer_contribution: + slot_uri: schema:description + description: Description of organizational contribution + range: string + required: false diff --git a/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml b/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml new file mode 100644 index 0000000000..b63f70b2de --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/OrganizerRole.yaml @@ -0,0 +1,121 @@ +# OrganizerRole class +# Enumeration-like class for organizer roles in events/exhibitions +# +# Created per slot_fixes.yaml revision for co_organized_by migration +# Generation date: 2026-01-19 +# Rule compliance: 53 (slot_fixes.yaml), 39 (RiC-O naming), 0b (Type/Types pattern) + +id: https://nde.nl/ontology/hc/class/OrganizerRole +name: OrganizerRole +title: Organizer Role Class + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + skos: http://www.w3.org/2004/02/skos/core# + prov: http://www.w3.org/ns/prov# + +default_prefix: hc + +imports: + - linkml:types + - ../metadata + +classes: + OrganizerRole: + class_uri: schema:Role + description: | + Role of an organizer in an event, exhibition, or program. + + **Purpose**: + Distinguishes between different types of organizational involvement: + - PRIMARY: Main organizing institution + - CO_ORGANIZER: Partner institution with significant organizational role + - SPONSOR_ORGANIZER: Sponsor with curatorial/organizational input + - LENDING_INSTITUTION: Institution lending objects with exhibition involvement + - HOST_VENUE: Venue hosting a traveling exhibition + + **Pattern**: + Used with Organizer class to specify the role of an organizing entity. + + **Ontological Alignment**: + - **Primary**: `schema:Role` - Schema.org role + - **Close**: `prov:Role` - PROV-O role in activity + + exact_mappings: + - schema:Role + + close_mappings: + - prov:Role + + slots: + - role_type + - role_description + + slot_usage: + role_type: + required: true + range: OrganizerRoleTypeEnum + description: Type of organizer role (PRIMARY, CO_ORGANIZER, etc.) + role_description: + required: false + range: string + description: Additional description of the role + + annotations: + specificity_score: 0.65 + specificity_rationale: "Fairly specific - applies to event/exhibition organization contexts" + custodian_types: '["M", "G", "A", "L", "R"]' + custodian_types_rationale: "Primarily used by museums, galleries, archives, libraries, research centers that organize exhibitions" + + comments: + - "Created per slot_fixes.yaml revision for co_organized_by migration" + - "Used with Organizer class to specify organizational involvement" + - "RULE 53: Part of co_organized_by → has_or_had_organizer + Organizer migration" + + examples: + - value: + role_type: PRIMARY + role_description: "Main organizing institution" + description: "Primary organizer role" + - value: + role_type: CO_ORGANIZER + role_description: "Partner institution contributing loans and curatorial expertise" + description: "Co-organizer role with description" + - value: + role_type: LENDING_INSTITUTION + role_description: "Major lender with exhibition advisory role" + description: "Lending institution with organizational involvement" + +slots: + role_type: + slot_uri: schema:roleName + description: Type of organizer role + range: string + required: true + + role_description: + slot_uri: schema:description + description: Additional description of the organizational role + range: string + required: false + +enums: + OrganizerRoleTypeEnum: + description: Types of organizer roles + permissible_values: + PRIMARY: + description: Main organizing institution + CO_ORGANIZER: + description: Partner institution with significant organizational role + SPONSOR_ORGANIZER: + description: Sponsor with curatorial/organizational input + LENDING_INSTITUTION: + description: Institution lending objects with exhibition involvement + HOST_VENUE: + description: Venue hosting a traveling exhibition + SUPPORTING_PARTNER: + description: Supporting partner institution + ADVISOR: + description: Advisory organization diff --git a/schemas/20251121/linkml/modules/classes/RelatedType.yaml b/schemas/20251121/linkml/modules/classes/RelatedType.yaml new file mode 100644 index 0000000000..db0a591880 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/RelatedType.yaml @@ -0,0 +1,33 @@ +id: https://nde.nl/ontology/hc/class/RelatedType +name: RelatedType-class + +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/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + - ../slots/related_type_name + - ../slots/related_type_wikidata + - ../slots/related_type_relationship + - ../slots/related_type_note + +classes: + RelatedType: + class_uri: hc:RelatedType + description: | + A reference to a related class in the heritage ontology. + Used for documenting relationships between types. + slots: + - related_type_name + - related_type_wikidata + - related_type_relationship + - related_type_note + annotations: + specificity_score: 0.3 + specificity_rationale: "Universal utility for type relationships" diff --git a/schemas/20251121/linkml/modules/classes/Version.yaml b/schemas/20251121/linkml/modules/classes/Version.yaml new file mode 100644 index 0000000000..ce3e0536d3 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/Version.yaml @@ -0,0 +1,168 @@ +id: https://nde.nl/ontology/hc/class/Version +name: version_class +title: Version Class +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + doap: http://usefulinc.com/ns/doap# +imports: + - linkml:types + - ../slots/has_or_had_label + - ../slots/has_or_had_identifier + - ../slots/temporal_extent + - ./TimeSpan +default_prefix: hc +classes: + Version: + class_uri: schema:SoftwareApplication + description: | + A version identifier for software, documents, schemas, or other entities. + + **Purpose**: Represents a structured version record with version number, + release date, and semantic versioning components. + + **Semantic Versioning Support**: + - major_version: Breaking changes + - minor_version: New features (backwards compatible) + - patch_version: Bug fixes + + **Use Cases**: + 1. **CMS Product Version**: Version of deployed CMS software + 2. **API Version**: REST API version + 3. **Schema Version**: Ontology/schema version + 4. **Document Version**: Document revision number + + **Example**: + ```yaml + CollectionManagementSystem: + cms_name: CollectiveAccess + has_or_had_version: + version_string: "1.8.0" + major_version: 1 + minor_version: 8 + patch_version: 0 + release_date: "2023-06-15" + ``` + + **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). + Replaces simple string cms_product_version with structured Version class. + exact_mappings: + - schema:version + - doap:Version + slots: + - version_string + - major_version + - minor_version + - patch_version + - prerelease_tag + - build_metadata + - release_date + - temporal_extent + slot_usage: + version_string: + description: Full version string (e.g., "1.8.0", "v3.2.1-beta") + range: string + required: true + examples: + - value: "1.8.0" + description: Semantic version + - value: "7.4" + description: Two-part version + - value: "v3.2.1-beta" + description: Version with prerelease tag + major_version: + description: Major version number (breaking changes) + range: integer + required: false + examples: + - value: 1 + description: Major version 1 + minor_version: + description: Minor version number (new features) + range: integer + required: false + examples: + - value: 8 + description: Minor version 8 + patch_version: + description: Patch version number (bug fixes) + range: integer + required: false + examples: + - value: 0 + description: Patch version 0 + prerelease_tag: + description: Prerelease identifier (e.g., "alpha", "beta", "rc1") + range: string + required: false + examples: + - value: beta + description: Beta prerelease + - value: rc1 + description: Release candidate 1 + build_metadata: + description: Build metadata (e.g., git commit hash) + range: string + required: false + examples: + - value: "20230615.abc123" + description: Build date and commit hash + release_date: + description: Date this version was released + range: date + required: false + examples: + - value: "2023-06-15" + description: Release date + temporal_extent: + description: Validity period for this version (when deployed) + range: TimeSpan + required: false + examples: + - value: + begin_of_the_begin: "2023-06-15" + end_of_the_end: null + description: Version deployed since June 2023 + annotations: + custodian_types: '["D"]' + custodian_types_rationale: Primarily used by digital platforms (D) for software versioning + specificity_score: 0.55 + specificity_rationale: Moderately specific to software/document version contexts + +slots: + version_string: + slot_uri: schema:version + description: Full version string + range: string + exact_mappings: + - schema:version + + major_version: + slot_uri: doap:revision + description: Major version number + range: integer + + minor_version: + description: Minor version number + range: integer + + patch_version: + description: Patch version number + range: integer + + prerelease_tag: + description: Prerelease identifier + range: string + + build_metadata: + description: Build metadata + range: string + + release_date: + slot_uri: schema:datePublished + description: Release date + range: date + exact_mappings: + - schema:datePublished diff --git a/schemas/20251121/linkml/modules/slots/administrative_context.yaml b/schemas/20251121/linkml/modules/slots/administrative_context.yaml new file mode 100644 index 0000000000..4390a009a7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/administrative_context.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/administrative_context +name: administrative_context-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + administrative_context: + slot_uri: hc:administrativeContext + description: | + Administrative and governmental context. + Documents how this type relates to government structures and public administration. + + **Migrated from**: `**Administrative Context**:` sections. + range: string + annotations: + source_section: "**Administrative Context**:" diff --git a/schemas/20251121/linkml/modules/slots/cms_category.yaml b/schemas/20251121/linkml/modules/slots/archive/cms_category_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cms_category.yaml rename to schemas/20251121/linkml/modules/slots/archive/cms_category_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/cms_detected.yaml b/schemas/20251121/linkml/modules/slots/archive/cms_detected_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cms_detected.yaml rename to schemas/20251121/linkml/modules/slots/archive/cms_detected_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/cms_product_version.yaml b/schemas/20251121/linkml/modules/slots/archive/cms_product_version_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/cms_product_version.yaml rename to schemas/20251121/linkml/modules/slots/archive/cms_product_version_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/co_funding_required.yaml b/schemas/20251121/linkml/modules/slots/archive/co_funding_required_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/co_funding_required.yaml rename to schemas/20251121/linkml/modules/slots/archive/co_funding_required_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/co_organized_by.yaml b/schemas/20251121/linkml/modules/slots/archive/co_organized_by_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/co_organized_by.yaml rename to schemas/20251121/linkml/modules/slots/archive/co_organized_by_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/collection_access.yaml b/schemas/20251121/linkml/modules/slots/archive/collection_access_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/collection_access.yaml rename to schemas/20251121/linkml/modules/slots/archive/collection_access_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/collection_date.yaml b/schemas/20251121/linkml/modules/slots/archive/collection_date_archived_20260119.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/collection_date.yaml rename to schemas/20251121/linkml/modules/slots/archive/collection_date_archived_20260119.yaml diff --git a/schemas/20251121/linkml/modules/slots/characteristics.yaml b/schemas/20251121/linkml/modules/slots/characteristics.yaml new file mode 100644 index 0000000000..a314fbf0ab --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/characteristics.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/characteristics +name: characteristics-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + characteristics: + slot_uri: dcterms:description + description: | + Key characteristics and features of this class. + Documents defining traits and capabilities. + + **Migrated from**: `**Characteristics**:` and `**CHARACTERISTICS**:` sections. + range: string + multivalued: true + inlined_as_list: true + annotations: + source_section: "**Characteristics**:" diff --git a/schemas/20251121/linkml/modules/slots/class_definition.yaml b/schemas/20251121/linkml/modules/slots/class_definition.yaml new file mode 100644 index 0000000000..86acc0cdbb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/class_definition.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/class_definition +name: class_definition-slot + +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: + class_definition: + slot_uri: skos:definition + description: | + Formal definition of this class. + Used primarily for RecordSetType classes. + + **Migrated from**: `**Definition**:` and `**DEFINITION**:` sections. + range: string + annotations: + source_section: "**Definition**:" diff --git a/schemas/20251121/linkml/modules/slots/dutch_context.yaml b/schemas/20251121/linkml/modules/slots/dutch_context.yaml new file mode 100644 index 0000000000..79bf71321d --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/dutch_context.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/dutch_context +name: dutch_context-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + dutch_context: + slot_uri: hc:dutchContext + description: | + Netherlands-specific context and terminology. + Documents Dutch heritage sector conventions, terminology, and institutional context. + + **Migrated from**: `**Dutch Context**:` sections. + range: string + annotations: + source_section: "**Dutch Context**:" diff --git a/schemas/20251121/linkml/modules/slots/example_location.yaml b/schemas/20251121/linkml/modules/slots/example_location.yaml new file mode 100644 index 0000000000..d898d5755e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/example_location.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/example_location +name: example_location-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + example_location: + slot_uri: schema:location + description: Location of the example institution (city, country) + range: string diff --git a/schemas/20251121/linkml/modules/slots/example_name.yaml b/schemas/20251121/linkml/modules/slots/example_name.yaml new file mode 100644 index 0000000000..ec24f861a9 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/example_name.yaml @@ -0,0 +1,19 @@ +id: https://nde.nl/ontology/hc/slot/example_name +name: example_name-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + example_name: + slot_uri: schema:name + description: Name of the example institution + range: string + required: true diff --git a/schemas/20251121/linkml/modules/slots/example_note.yaml b/schemas/20251121/linkml/modules/slots/example_note.yaml new file mode 100644 index 0000000000..92c8896692 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/example_note.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/example_note +name: example_note-slot + +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: + example_note: + slot_uri: skos:note + description: Additional note about the example + range: string diff --git a/schemas/20251121/linkml/modules/slots/example_wikidata_id.yaml b/schemas/20251121/linkml/modules/slots/example_wikidata_id.yaml new file mode 100644 index 0000000000..e863420cb8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/example_wikidata_id.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/example_wikidata_id +name: example_wikidata_id-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + example_wikidata_id: + slot_uri: hc:wikidataId + description: Wikidata Q-number for the example institution + range: string + pattern: "^Q[0-9]+$" diff --git a/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml b/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml new file mode 100644 index 0000000000..ff575242c5 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/has_or_had_organizer.yaml @@ -0,0 +1,89 @@ +# has_or_had_organizer slot +# Generic slot for entities that organize events, exhibitions, programs, etc. +# +# Following RiC-O naming convention (Rule 39): "hasOrHad..." pattern +# for temporal relationships in heritage domain. +# +# Generation date: 2026-01-19 +# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml) + +id: https://nde.nl/ontology/hc/slot/has_or_had_organizer +name: has_or_had_organizer_slot +title: Has Or Had Organizer Slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + prov: http://www.w3.org/ns/prov# + org: http://www.w3.org/ns/org# + +default_prefix: hc + +imports: + - linkml:types + +slots: + has_or_had_organizer: + slot_uri: schema:organizer + description: | + Entity that organizes or organized an event, exhibition, program, or activity. + + **Temporal Semantics** (RiC-O Pattern): + The "hasOrHad" naming follows RiC-O convention indicating this relationship + may be historical - an event's organizers change over time or the event is completed. + + **Ontological Alignment**: + - **Primary** (`slot_uri`): `schema:organizer` - Schema.org organizer + - **Close**: `schema:contributor` - contributor to event + - **Related**: `prov:wasAssociatedWith` - PROV-O association + + **Usage**: + - Primary organizer: main institution organizing an exhibition + - Co-organizer: partner institutions with organizational role + - Sponsor-organizer: sponsors with curatorial/organizational input + + **Pattern**: + Uses Organizer class to capture both the organizing entity and their role. + This replaces simple uriorcurie references to allow role discrimination. + + **Range**: `uriorcurie` (Rule 55) - broadened for flexibility. + Classes narrow via slot_usage to Organizer class. + + range: uriorcurie + implements: + - owl:ObjectProperty # Force OWL ObjectProperty to avoid ambiguous type warning + required: false + multivalued: true + + exact_mappings: + - schema:organizer + + close_mappings: + - schema:contributor + + related_mappings: + - prov:wasAssociatedWith + - org:hasMember + + annotations: + rico_naming_convention: | + Follows RiC-O "hasOrHad" pattern for temporal predicates. + See Rule 39: Slot Naming Convention (RiC-O Style) + replaces_slots: >- + co_organized_by, organized_by (partial - role discrimination) + migration_date: "2026-01-19" + + comments: + - "Generic organizer slot for events, exhibitions, programs" + - "Maps to schema:organizer as primary URI" + - "Range: uriorcurie (Rule 55) - allows Organizer class via slot_usage" + - "RiC-O naming: hasOrHad indicates potentially historical relationship" + - "RULE 53: Created per slot_fixes.yaml revision for co_organized_by" + + examples: + - value: "https://nde.nl/ontology/hc/organizer/rijksmuseum-vermeer-2023" + description: "Rijksmuseum as primary organizer of Vermeer exhibition" + - value: "https://nde.nl/ontology/hc/organizer/mauritshuis-vermeer-2023" + description: "Mauritshuis as co-organizer of Vermeer exhibition" diff --git a/schemas/20251121/linkml/modules/slots/heritage_sector_usage.yaml b/schemas/20251121/linkml/modules/slots/heritage_sector_usage.yaml new file mode 100644 index 0000000000..d6c4a5e12e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/heritage_sector_usage.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/heritage_sector_usage +name: heritage_sector_usage-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + heritage_sector_usage: + slot_uri: hc:heritageSectorUsage + description: | + How this class/technology is used in the heritage sector. + Documents adoption patterns, best practices, and sector conventions. + + **Migrated from**: `**Heritage Sector Usage**:` and `**Heritage use cases**:` sections. + range: string + annotations: + source_section: "**Heritage Sector Usage**:" diff --git a/schemas/20251121/linkml/modules/slots/historical_significance.yaml b/schemas/20251121/linkml/modules/slots/historical_significance.yaml new file mode 100644 index 0000000000..0ddf7f0881 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/historical_significance.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/historical_significance +name: historical_significance-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + historical_significance: + slot_uri: hc:historicalSignificance + description: | + Historical importance and context of this type of institution. + Documents the heritage value and historical role. + + **Migrated from**: `**Historical Significance**:` sections. + range: string + annotations: + source_section: "**Historical Significance**:" diff --git a/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml b/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml new file mode 100644 index 0000000000..2785f6e72f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/is_or_was_based_on.yaml @@ -0,0 +1,61 @@ +id: https://nde.nl/ontology/hc/slot/is_or_was_based_on +name: is_or_was_based_on_slot +title: Is Or Was Based On Slot +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + rico: https://www.ica.org/standards/RiC/ontology# +imports: + - linkml:types +default_prefix: hc +slots: + is_or_was_based_on: + slot_uri: prov:wasDerivedFrom + description: | + Entity or resource this item is or was based on (temporal relationship). + + **Semantic Pattern**: RiC-O temporal naming convention (Rule 39) + - "is_or_was" indicates the relationship may be current or historical + - Supports temporal modeling where dependencies change over time + + **PROV-O Alignment**: + prov:wasDerivedFrom - "A derivation is a transformation of an entity into another" + + **Use Cases**: + 1. **CMS Detection**: Platform is_or_was_based_on a detected CMS + 2. **Software Dependencies**: Application based on framework/library + 3. **Content Derivation**: Document based on template/source + 4. **Infrastructure**: Service based on platform/technology + + **Temporal Semantics**: + - Current: "This platform IS based on WordPress 6.4" + - Historical: "This platform WAS based on Drupal 7 (now migrated)" + - Use temporal_extent for precise validity periods + + **Examples**: + ```yaml + AuxiliaryDigitalPlatform: + platform_name: Museum Blog + is_or_was_based_on: + cms_name: WordPress + cms_version: "6.4" + detected_at: "2026-01-19T12:00:00Z" + ``` + + **Migration Note**: Created 2026-01-19 per slot_fixes.yaml (Rule 53). + Replaces boolean cms_detected with structured CMS reference. + range: string + multivalued: true + inlined_as_list: true + exact_mappings: + - prov:wasDerivedFrom + close_mappings: + - schema:isBasedOn + - rico:isOrWasBasedOn + annotations: + custodian_types: '["*"]' + custodian_types_rationale: Universal relationship for any entity based on another + specificity_score: 0.25 + specificity_rationale: Broadly applicable derivation/dependency relationship diff --git a/schemas/20251121/linkml/modules/slots/key_distinction.yaml b/schemas/20251121/linkml/modules/slots/key_distinction.yaml new file mode 100644 index 0000000000..b91be31664 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/key_distinction.yaml @@ -0,0 +1,24 @@ +id: https://nde.nl/ontology/hc/slot/key_distinction +name: key_distinction-slot + +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: + key_distinction: + slot_uri: skos:note + description: | + The primary distinguishing characteristic of this class. + What sets it apart from similar or related types. + + **Migrated from**: `**Key Distinction**:` and `**Key Distinctions from Other Types**:` sections. + range: string + annotations: + source_section: "**Key Distinction**:" diff --git a/schemas/20251121/linkml/modules/slots/manifest.json b/schemas/20251121/linkml/modules/slots/manifest.json index d39f749217..17278794f9 100644 --- a/schemas/20251121/linkml/modules/slots/manifest.json +++ b/schemas/20251121/linkml/modules/slots/manifest.json @@ -77,15 +77,8 @@ "based_on_claim.yaml", "classifies_or_classified.yaml", "closed_space_id.yaml", - "cms_category.yaml", - "cms_detected.yaml", "cms_id.yaml", "cms_product_name.yaml", - "cms_product_version.yaml", - "co_funding_required.yaml", - "co_organized_by.yaml", - "collection_access.yaml", - "collection_date.yaml", "collection_description.yaml", "collection_discovery_score.yaml", "collection_focus.yaml", @@ -860,6 +853,7 @@ "has_or_had_operate.yaml", "has_or_had_operates_platform_type.yaml", "has_or_had_operates_storage_type.yaml", + "has_or_had_organizer.yaml", "has_or_had_organizational_change_event.yaml", "has_or_had_organizational_structure.yaml", "has_or_had_owner.yaml", @@ -1112,6 +1106,7 @@ "is_or_was_asserted_by.yaml", "is_or_was_associated_with.yaml", "is_or_was_available.yaml", + "is_or_was_based_on.yaml", "is_or_was_categorized_as.yaml", "is_or_was_collection_of.yaml", "is_or_was_created_through.yaml", @@ -1407,6 +1402,7 @@ "oclc_number.yaml", "offered_by.yaml", "offers_donation_scheme.yaml", + "offers_or_offered_access.yaml", "official_institution_subtype.yaml", "online_shop.yaml", "open_source.yaml", @@ -1934,6 +1930,7 @@ "track_id.yaml", "uses_or_used_technique.yaml", "was_archived_at.yaml", + "was_acquired_through.yaml", "was_derived_from.yaml", "was_generated_by.yaml", "was_last_updated_at.yaml", diff --git a/schemas/20251121/linkml/modules/slots/notable_examples.yaml b/schemas/20251121/linkml/modules/slots/notable_examples.yaml new file mode 100644 index 0000000000..7197f5d2eb --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/notable_examples.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/notable_examples +name: notable_examples-slot + +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 + - ../classes/NotableExample + +slots: + notable_examples: + slot_uri: skos:example + description: | + Real-world examples of institutions of this type. + Provides concrete instances for understanding the class. + + **Migrated from**: `**Notable Examples**:` sections. + + **Format**: List of NotableExample objects with name, location, and optional Wikidata ID. + range: NotableExample + multivalued: true + inlined_as_list: true + annotations: + source_section: "**Notable Examples**:" diff --git a/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml b/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml new file mode 100644 index 0000000000..27abb91a45 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/offers_or_offered_access.yaml @@ -0,0 +1,88 @@ +# offers_or_offered_access slot +# Generic slot for access offerings by heritage institutions +# +# Following RiC-O naming convention (Rule 39): "offersOrOffered..." pattern +# for temporal relationships in heritage domain. +# +# Generation date: 2026-01-19 +# Rule compliance: 38 (slot centralization + semantic URI), 39 (RiC-O naming), 42 (no prefix), 53 (slot_fixes.yaml) + +id: https://nde.nl/ontology/hc/slot/offers_or_offered_access +name: offers_or_offered_access_slot +title: Offers Or Offered Access Slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + owl: http://www.w3.org/2002/07/owl# + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + offers_or_offered_access: + slot_uri: schema:publicAccess + description: | + Access offerings provided by a heritage institution or collection. + + **Temporal Semantics** (RiC-O Pattern): + The "offersOrOffered" naming follows RiC-O convention indicating this relationship + may be historical - access conditions change over time. + + **Ontological Alignment**: + - **Primary** (`slot_uri`): `schema:publicAccess` - Schema.org public access flag + - **Close**: `dcterms:accessRights` - Dublin Core access rights + - **Related**: `schema:isAccessibleForFree` - accessibility information + + **Usage**: + - Collection access: Policies for accessing heritage collections + - Research access: Conditions for scholarly research use + - Public access: General public visiting policies + - Digital access: Online collection availability + + **Pattern**: + Uses Access class to capture structured access information including + access types, conditions, restrictions, and temporal applicability. + + **Range**: `uriorcurie` (Rule 55) - broadened for flexibility. + Classes narrow via slot_usage to Access class. + + range: uriorcurie + implements: + - owl:ObjectProperty # Force OWL ObjectProperty to avoid ambiguous type warning + required: false + multivalued: true + + exact_mappings: + - schema:publicAccess + + close_mappings: + - dcterms:accessRights + + related_mappings: + - schema:isAccessibleForFree + + annotations: + rico_naming_convention: | + Follows RiC-O "offersOrOffered" pattern for temporal predicates. + See Rule 39: Slot Naming Convention (RiC-O Style) + replaces_slots: >- + collection_access + migration_date: "2026-01-19" + + comments: + - "Generic access slot for collections, services, facilities" + - "Maps to schema:publicAccess as primary URI" + - "Range: uriorcurie (Rule 55) - allows Access class via slot_usage" + - "RiC-O naming: offersOrOffered indicates potentially historical relationship" + - "RULE 53: Created per slot_fixes.yaml revision for collection_access" + + examples: + - value: "https://nde.nl/ontology/hc/access/public-by-appointment" + description: "Public access by appointment" + - value: "https://nde.nl/ontology/hc/access/academic-community-only" + description: "Access restricted to academic community" diff --git a/schemas/20251121/linkml/modules/slots/purpose.yaml b/schemas/20251121/linkml/modules/slots/purpose.yaml index 1becdc9893..5e5a48d132 100644 --- a/schemas/20251121/linkml/modules/slots/purpose.yaml +++ b/schemas/20251121/linkml/modules/slots/purpose.yaml @@ -1,19 +1,29 @@ id: https://nde.nl/ontology/hc/slot/purpose -name: purpose_slot -title: Purpose Slot +name: purpose-slot + prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + imports: - linkml:types -default_prefix: hc + slots: purpose: - description: 'Purpose and use case for this IoT device/network. - - - Dublin Core: description for purpose statement. - - ' + slot_uri: schema:description + description: | + Primary purpose and function of this class or entity. + Documents the main reason this type or instance exists. + + **Migrated from**: `**Purpose**:` and `**PURPOSE**:` sections in description text. + + **Use cases**: + - Purpose of heritage institution types + - Purpose of IoT devices/networks + - Purpose of technical systems range: string - slot_uri: hc:purpose + annotations: + source_section: "**Purpose**:" diff --git a/schemas/20251121/linkml/modules/slots/related_type_name.yaml b/schemas/20251121/linkml/modules/slots/related_type_name.yaml new file mode 100644 index 0000000000..76fed5cddc --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/related_type_name.yaml @@ -0,0 +1,19 @@ +id: https://nde.nl/ontology/hc/slot/related_type_name +name: related_type_name-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + related_type_name: + slot_uri: schema:name + description: Name of the related class + range: string + required: true diff --git a/schemas/20251121/linkml/modules/slots/related_type_note.yaml b/schemas/20251121/linkml/modules/slots/related_type_note.yaml new file mode 100644 index 0000000000..13ebee6532 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/related_type_note.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/related_type_note +name: related_type_note-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + related_type_note: + slot_uri: dcterms:description + description: Explanation of how this type relates + range: string diff --git a/schemas/20251121/linkml/modules/slots/related_type_relationship.yaml b/schemas/20251121/linkml/modules/slots/related_type_relationship.yaml new file mode 100644 index 0000000000..645378fdf7 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/related_type_relationship.yaml @@ -0,0 +1,19 @@ +id: https://nde.nl/ontology/hc/slot/related_type_relationship +name: related_type_relationship-slot + +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: + related_type_relationship: + slot_uri: skos:note + description: | + Nature of the relationship (e.g., "broader", "narrower", "related", "contrast") + range: string diff --git a/schemas/20251121/linkml/modules/slots/related_type_wikidata.yaml b/schemas/20251121/linkml/modules/slots/related_type_wikidata.yaml new file mode 100644 index 0000000000..62fc0e8955 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/related_type_wikidata.yaml @@ -0,0 +1,18 @@ +id: https://nde.nl/ontology/hc/slot/related_type_wikidata +name: related_type_wikidata-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + related_type_wikidata: + slot_uri: hc:wikidataId + description: Wikidata Q-number for the related type + range: string + pattern: "^Q[0-9]+$" diff --git a/schemas/20251121/linkml/modules/slots/related_types.yaml b/schemas/20251121/linkml/modules/slots/related_types.yaml new file mode 100644 index 0000000000..3f6e365b69 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/related_types.yaml @@ -0,0 +1,27 @@ +id: https://nde.nl/ontology/hc/slot/related_types +name: related_types-slot + +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 + - ../classes/RelatedType + +slots: + related_types: + slot_uri: skos:related + description: | + Related heritage institution types with context. + Documents associations with other classes in the ontology. + + **Migrated from**: `**Related Types**:` sections. + range: RelatedType + multivalued: true + inlined_as_list: true + annotations: + source_section: "**Related Types**:" diff --git a/schemas/20251121/linkml/modules/slots/research_value.yaml b/schemas/20251121/linkml/modules/slots/research_value.yaml new file mode 100644 index 0000000000..3ea2997ce8 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/research_value.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/research_value +name: research_value-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + research_value: + slot_uri: hc:researchValue + description: | + Research and scholarly value of this type of institution or collection. + Documents what types of research this class supports. + + **Migrated from**: `**Research Value**:` sections. + range: string + annotations: + source_section: "**Research Value**:" diff --git a/schemas/20251121/linkml/modules/slots/scope_description.yaml b/schemas/20251121/linkml/modules/slots/scope_description.yaml new file mode 100644 index 0000000000..e468e6797f --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/scope_description.yaml @@ -0,0 +1,29 @@ +id: https://nde.nl/ontology/hc/slot/scope_description +name: scope_description-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + +default_prefix: hc + +imports: + - linkml:types + +slots: + scope_description: + slot_uri: rico:scopeAndContent + description: | + Detailed description of what this class encompasses. + Explains the boundaries and coverage of this heritage type. + + **Migrated from**: `**Scope**:` sections in description text. + + **Example content**: + - What types of materials/collections are included + - Geographic or temporal scope + - Organizational or institutional scope + range: string + annotations: + source_section: "**Scope**:" diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index b21669ea3a..2e62c816b9 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -9963,6 +9963,11 @@ fixes: type: slot - label: TimeSpan type: class + processed: + status: true + notes: '2026-01-19: Migrated in BiologicalObject.yaml. Created was_acquired_through.yaml slot and Acquisition.yaml class + (CIDOC-CRM E8 Acquisition with AcquisitionMethodEnum). Uses existing temporal_extent slot and TimeSpan class. Updated imports, + slots list, slot_usage with examples. Archived collection_date.yaml to archive/collection_date_archived_20260119.yaml.' - original_slot_id: https://nde.nl/ontology/hc/slot/collection_description revision: - label: has_or_had_description diff --git a/schemas/20251121/linkml/modules/slots/temporal_dynamics.yaml b/schemas/20251121/linkml/modules/slots/temporal_dynamics.yaml new file mode 100644 index 0000000000..d111d1314a --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/temporal_dynamics.yaml @@ -0,0 +1,23 @@ +id: https://nde.nl/ontology/hc/slot/temporal_dynamics +name: temporal_dynamics-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + temporal_dynamics: + slot_uri: hc:temporalDynamics + description: | + Time-based change patterns and evolution of this type. + Documents how institutions of this type change over time. + + **Migrated from**: `**Temporal Dynamics**:` sections. + range: string + annotations: + source_section: "**Temporal Dynamics**:" diff --git a/schemas/20251121/linkml/modules/slots/typical_contents.yaml b/schemas/20251121/linkml/modules/slots/typical_contents.yaml new file mode 100644 index 0000000000..dcee3c0f2e --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/typical_contents.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/typical_contents +name: typical_contents-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + rico: https://www.ica.org/standards/RiC/ontology# + +default_prefix: hc + +imports: + - linkml:types + +slots: + typical_contents: + slot_uri: rico:hasContentOfType + description: | + Typical contents or holdings for this type of institution. + Lists common record types, materials, or collection types. + + **Migrated from**: `**Typical Contents**:` sections. + range: string + multivalued: true + inlined_as_list: true + annotations: + source_section: "**Typical Contents**:" diff --git a/schemas/20251121/linkml/modules/slots/use_cases.yaml b/schemas/20251121/linkml/modules/slots/use_cases.yaml new file mode 100644 index 0000000000..2ade1961e4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/use_cases.yaml @@ -0,0 +1,26 @@ +id: https://nde.nl/ontology/hc/slot/use_cases +name: use_cases-slot + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + +default_prefix: hc + +imports: + - linkml:types + +slots: + use_cases: + slot_uri: schema:usageInfo + description: | + Application scenarios and use cases for this class. + Documents how this type is used in practice. + + **Migrated from**: `**Use Cases**:` and `**USE CASES**:` sections. + range: string + multivalued: true + inlined_as_list: true + annotations: + source_section: "**Use Cases**:" diff --git a/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml b/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml new file mode 100644 index 0000000000..e2c1d59ee4 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/was_acquired_through.yaml @@ -0,0 +1,54 @@ +id: https://nde.nl/ontology/hc/slot/was_acquired_through +name: was_acquired_through_slot +title: Was Acquired Through Slot +# Created per slot_fixes.yaml revision for collection_date migration +# RULE 53: Generic acquisition relationship pattern +# RULE 39: RiC-O temporal naming convention (was_* for past events) + +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + crm: http://www.cidoc-crm.org/cidoc-crm/ + rico: https://www.ica.org/standards/RiC/ontology# + prov: http://www.w3.org/ns/prov# + schema: http://schema.org/ + +imports: + - linkml:types + +default_prefix: hc + +slots: + was_acquired_through: + description: >- + Links an object or specimen to its acquisition event, capturing how and when it was obtained. + + Acquisition encompasses various methods of obtaining items for collections: + - Field collection (biological/geological specimens) + - Purchase (art, manuscripts, artifacts) + - Donation/bequest (gifts, estate donations) + - Transfer (from other institutions) + - Exchange (inter-institutional specimen exchange) + - Excavation (archaeological contexts) + + The Acquisition class captures temporal extent via TimeSpan, allowing for uncertain dates + common with historical specimens (e.g., "collected sometime in the 1750s"). + + **Darwin Core alignment**: For biological specimens, this replaces the simpler `dwc:eventDate` + with a structured acquisition event that can capture collector, location, method, and date. + range: Acquisition + slot_uri: crm:P24i_changed_ownership_through + multivalued: true + inlined: true + inlined_as_list: true + exact_mappings: + - crm:P24i_changed_ownership_through + close_mappings: + - rico:hasOrHadHolder + - prov:wasGeneratedBy + related_mappings: + - schema:acquiredFrom + - dwc:eventDate + annotations: + rule_53_migration: "Replaces collection_date with structured Acquisition event" + darwin_core_note: "For biological specimens, Acquisition.temporal_extent replaces dwc:eventDate"