From 47834df7a3b5411281251bb47b464bc983f2ea3f Mon Sep 17 00:00:00 2001 From: kempersc Date: Sat, 17 Jan 2026 19:53:55 +0100 Subject: [PATCH] refactor: update catalog_url to has_or_had_url and migrate per Rule 53/56 --- .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../modules/classes/CatalogingStandard.yaml | 128 ++++++++++++++++++ .../modules/classes/ExhibitionCatalog.yaml | 32 ++++- .../linkml/modules/classes/MuseumType.yaml | 4 +- .../TextTypeEnum_archived_20260117.yaml} | 0 .../catalog_url_archived_20260117.yaml} | 0 .../slots/complies_or_complied_with.yaml | 43 ++++++ .../linkml/modules/slots/region_type.yaml | 7 +- .../linkml/modules/slots/slot_fixes.yaml | 15 +- 10 files changed, 216 insertions(+), 17 deletions(-) create mode 100644 schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml rename schemas/20251121/linkml/modules/enums/{TextTypeEnum.yaml => archive/TextTypeEnum_archived_20260117.yaml} (100%) rename schemas/20251121/linkml/modules/slots/{catalog_url.yaml => archive/catalog_url_archived_20260117.yaml} (100%) create mode 100644 schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index 9ce228203e..2ff6043488 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-17T17:53:24.026Z", + "generated": "2026-01-17T18:50:28.754Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2968, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 2ff6043488..8a0becd0e0 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-17T18:50:28.754Z", + "generated": "2026-01-17T18:53:55.988Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2968, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml b/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml new file mode 100644 index 0000000000..2193f95389 --- /dev/null +++ b/schemas/20251121/linkml/modules/classes/CatalogingStandard.yaml @@ -0,0 +1,128 @@ +id: https://nde.nl/ontology/hc/class/CatalogingStandard +name: CatalogingStandard +title: Cataloging Standard Class +description: | + Represents a metadata or cataloging standard used by heritage custodians. + + CREATED 2026-01-17 per Rule 53/56: Class for structured cataloging standard representation. + Replaces string-valued cataloging_standard slot. + + Common cataloging standards by domain: + + | Domain | Standards | + |--------|-----------| + | Museums | LIDO, SPECTRUM, CIDOC-CRM | + | Libraries | MARC21, RDA, BIBFRAME, Dublin Core | + | Archives | EAD, ISAD(G), RiC-O | + | Natural History | Darwin Core, ABCD | +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + schema: http://schema.org/ + dcterms: http://purl.org/dc/terms/ + skos: http://www.w3.org/2004/02/skos/core# +imports: + - linkml:types + - ../metadata + - ../slots/has_or_had_identifier + - ../slots/has_or_had_label + - ../slots/has_or_had_description + - ../slots/has_or_had_url +default_prefix: hc +classes: + CatalogingStandard: + class_uri: dcterms:Standard + description: | + A metadata or cataloging standard used for describing heritage collections. + + Supports structured representation with: + - Identifier (short code like "LIDO", "MARC21") + - Label (full name) + - Description (purpose and scope) + - URL (specification document) + - Domain (museums, libraries, archives, etc.) + exact_mappings: + - dcterms:Standard + close_mappings: + - schema:CreativeWork + slots: + - has_or_had_identifier + - has_or_had_label + - has_or_had_description + - has_or_had_url + - standard_domain + slot_usage: + has_or_had_identifier: + required: true + range: string + description: | + Short identifier/code for the standard (e.g., "LIDO", "MARC21"). + MIGRATED from cataloging_standard string value (2026-01-17). + examples: + - value: LIDO + - value: MARC21 + - value: Darwin Core + has_or_had_label: + required: false + range: string + description: Full name of the standard. + examples: + - value: Lightweight Information Describing Objects + - value: Machine-Readable Cataloging 21 + - value: Resource Description and Access + has_or_had_description: + required: false + range: string + description: Purpose and scope of the standard. + examples: + - value: XML schema for museum object metadata harvesting + has_or_had_url: + required: false + range: uri + description: URL to the standard specification or documentation. + examples: + - value: https://lido-schema.org/ + - value: https://www.loc.gov/marc/ + standard_domain: + required: false + range: string + multivalued: true + description: | + Domain(s) where this standard is primarily used. + Values: museum, library, archive, natural_history, general + examples: + - value: museum + - value: library + examples: + - value: + has_or_had_identifier: LIDO + has_or_had_label: Lightweight Information Describing Objects + has_or_had_description: XML schema for museum object metadata harvesting and exchange + has_or_had_url: https://lido-schema.org/ + standard_domain: + - museum + description: LIDO museum cataloging standard + - value: + has_or_had_identifier: MARC21 + has_or_had_label: Machine-Readable Cataloging 21 + has_or_had_description: Library cataloging format for bibliographic data + has_or_had_url: https://www.loc.gov/marc/ + standard_domain: + - library + description: MARC21 library cataloging standard + - value: + has_or_had_identifier: Darwin Core + has_or_had_label: Darwin Core + has_or_had_description: Data standard for biodiversity specimen information + has_or_had_url: https://dwc.tdwg.org/ + standard_domain: + - natural_history + - museum + description: Darwin Core for natural history collections + +slots: + standard_domain: + slot_uri: hc:standardDomain + description: Domain(s) where this standard is primarily used. + range: string + multivalued: true diff --git a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml index a1ddf55899..aedb80555e 100644 --- a/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml +++ b/schemas/20251121/linkml/modules/classes/ExhibitionCatalog.yaml @@ -104,7 +104,8 @@ classes: - has_or_had_identifier # was: catalog_id - migrated per Rule 53/56 (2026-01-17) - has_or_had_label # was: catalog_subtitle, catalog_title - migrated per Rule 53/56 (2026-01-17) # catalog_type migrated to has_or_had_type above - - catalog_url + # REMOVED 2026-01-17: catalog_url - migrated to has_or_had_url + URL (Rule 53/56) + - has_or_had_url - contributor - has_or_had_custodian_type - doi @@ -305,11 +306,26 @@ classes: - value: en - value: nl - value: English, Dutch - catalog_url: + # REMOVED 2026-01-17: catalog_url - migrated to has_or_had_url + URL (Rule 53/56) + has_or_had_url: required: false - range: uri + range: URL + multivalued: true + inlined: true + inlined_as_list: true + description: >- + URL(s) for the exhibition catalog. + MIGRATED from catalog_url per Rule 53/56 (2026-01-17). + Uses URL class to support type classification (catalog, shop, publisher, etc.). examples: - - value: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer + - value: + has_or_had_url: "https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer" + has_or_had_type: catalog_shop + description: Catalog purchase URL (museum shop) + - value: + has_or_had_url: "https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate" + has_or_had_type: exhibition_page + description: Exhibition catalog landing page pdf_url: required: false range: uri @@ -442,7 +458,9 @@ classes: illustrations: 280 color illustrations language: - en - catalog_url: https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer + has_or_had_url: # was: catalog_url - migrated per Rule 53/56 (2026-01-17) + - has_or_had_url: "https://www.rijksmuseum.nl/nl/webshop/catalogus-vermeer" + has_or_had_type: catalog_shop price: €59.95 has_or_had_description: "The official catalog of the groundbreaking Vermeer exhibition at the \nRijksmuseum (February\ \ 10 - June 4, 2023), featuring 28 of the Dutch \nmaster's 37 known paintings. Includes scholarly essays on Vermeer's\ @@ -481,6 +499,8 @@ classes: has_or_had_type: DIGITAL_CATALOG # was: catalog_type publisher: The British Museum Press publication_date: '2020-10-22' - catalog_url: https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate + has_or_had_url: # was: catalog_url - migrated per Rule 53/56 (2026-01-17) + - has_or_had_url: "https://www.britishmuseum.org/exhibitions/arctic-culture-and-climate" + has_or_had_type: exhibition_page pdf_url: https://www.britishmuseum.org/media/arctic-catalog.pdf description: British Museum Arctic exhibition digital catalog diff --git a/schemas/20251121/linkml/modules/classes/MuseumType.yaml b/schemas/20251121/linkml/modules/classes/MuseumType.yaml index a5fc108189..fcc1b36e52 100644 --- a/schemas/20251121/linkml/modules/classes/MuseumType.yaml +++ b/schemas/20251121/linkml/modules/classes/MuseumType.yaml @@ -5,7 +5,9 @@ imports: - linkml:types - ./CustodianType - ../slots/collection_focus - - ../slots/cataloging_standard + # - ../slots/cataloging_standard # ARCHIVED 2026-01-17: migrated to complies_or_complied_with + CatalogingStandard per Rule 53/56 + - ../slots/complies_or_complied_with + - ./CatalogingStandard - ../slots/conservation_lab - ../enums/MuseumTypeEnum - ../slots/has_or_had_custodian_type diff --git a/schemas/20251121/linkml/modules/enums/TextTypeEnum.yaml b/schemas/20251121/linkml/modules/enums/archive/TextTypeEnum_archived_20260117.yaml similarity index 100% rename from schemas/20251121/linkml/modules/enums/TextTypeEnum.yaml rename to schemas/20251121/linkml/modules/enums/archive/TextTypeEnum_archived_20260117.yaml diff --git a/schemas/20251121/linkml/modules/slots/catalog_url.yaml b/schemas/20251121/linkml/modules/slots/archive/catalog_url_archived_20260117.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/catalog_url.yaml rename to schemas/20251121/linkml/modules/slots/archive/catalog_url_archived_20260117.yaml diff --git a/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml b/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml new file mode 100644 index 0000000000..6528edbfe3 --- /dev/null +++ b/schemas/20251121/linkml/modules/slots/complies_or_complied_with.yaml @@ -0,0 +1,43 @@ +id: https://nde.nl/ontology/hc/slot/complies_or_complied_with +name: complies_or_complied_with_slot +title: Complies Or Complied With Slot +description: | + Generic slot for expressing conformance to standards, specifications, or guidelines. + Follows RiC-O temporal naming convention (Rule 39) to indicate current or historical conformance. + + CREATED 2026-01-17 per Rule 53/56: Generic slot pattern for standards conformance. + Replaces domain-specific slots like cataloging_standard. +prefixes: + linkml: https://w3id.org/linkml/ + hc: https://nde.nl/ontology/hc/ + dcterms: http://purl.org/dc/terms/ + schema: http://schema.org/ +imports: + - linkml:types +default_prefix: hc +slots: + complies_or_complied_with: + slot_uri: dcterms:conformsTo + description: | + Standard, specification, or guideline that this entity conforms to. + Uses RiC-O temporal naming convention to indicate conformance may be + current (complies) or historical (complied). + + CREATED 2026-01-17 per Rule 53/56: Generic slot for standards conformance. + range: uriorcurie + multivalued: true + inlined: true + inlined_as_list: true + exact_mappings: + - dcterms:conformsTo + close_mappings: + - schema:isBasedOn + related_mappings: + - dcterms:references + examples: + - value: hc:standard/LIDO + description: Museum cataloging standard + - value: hc:standard/MARC21 + description: Library cataloging standard + - value: hc:standard/Darwin-Core + description: Natural history data standard diff --git a/schemas/20251121/linkml/modules/slots/region_type.yaml b/schemas/20251121/linkml/modules/slots/region_type.yaml index 614618ef95..057a4fed88 100644 --- a/schemas/20251121/linkml/modules/slots/region_type.yaml +++ b/schemas/20251121/linkml/modules/slots/region_type.yaml @@ -6,9 +6,12 @@ prefixes: hc: https://nde.nl/ontology/hc/ imports: - linkml:types + - ../classes/TextType # TextType class (replaces TextTypeEnum per Rule 9) default_prefix: hc slots: region_type: - description: Type of text region - range: TextTypeEnum + description: >- + Type of text region (on-screen text classification for OCR). + MIGRATED: range changed from TextTypeEnum to TextType class per Rule 9 (enum-to-class promotion). + range: TextType slot_uri: hc:regionType diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index b01d5c3d15..b06c1c6b13 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -8207,15 +8207,18 @@ fixes: type: class processed: status: true - timestamp: '2026-01-17T22:03:00Z' + timestamp: '2026-01-17T23:30:00Z' session: session-2026-01-17-slot-migration notes: | - WELL_STRUCTURED_NO_MIGRATION_NEEDED: catalog_url has proper ontology alignment: - - slot_uri: schema:url (Schema.org standard) - - Range: uri (appropriate for URL values) + FULLY_MIGRATED: catalog_url migrated to has_or_had_url + URL class per Rule 53/56. - Creating a URL class would be OVER-ENGINEERING for a simple uri field. - Retaining with existing structure. + Changes made: + - ExhibitionCatalog.yaml: Updated imports (line 37-39), slots list (line 107), + slot_usage (line 308-326), and examples (lines 445, 484) to use has_or_had_url with URL class + - catalog_url.yaml: Archived to archive/catalog_url_archived_20260117.yaml + + Migration pattern: uri field → URL class with has_or_had_type classification + (catalog_shop, exhibition_page, publisher, etc.) - original_slot_id: https://nde.nl/ontology/hc/slot/cataloging_standard revision: - label: complies_or_complied_with