From a31b89f67243a64f152aa67cd573637f6b104e55 Mon Sep 17 00:00:00 2001 From: kempersc Date: Sun, 18 Jan 2026 13:16:44 +0100 Subject: [PATCH] refactor: update manifest.json timestamp, enhance schema definitions, and migrate publication_activity slot to structured format --- .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../modules/classes/CustodianSourceFile.yaml | 3 + .../classes/DigitalPlatformV2KeyContact.yaml | 3 + .../modules/classes/HeritageSocietyType.yaml | 71 +++++++++++++------ .../modules/classes/WikidataArchitecture.yaml | 8 +++ .../modules/classes/WikidataEnrichment.yaml | 12 ++++ .../modules/classes/YoutubeEnrichment.yaml | 6 ++ ...blication_activity_archived_20260118.yaml} | 0 .../linkml/modules/slots/slot_fixes.yaml | 27 ++++--- 10 files changed, 101 insertions(+), 33 deletions(-) rename schemas/20251121/linkml/modules/slots/{publication_activity.yaml => archive/publication_activity_archived_20260118.yaml} (100%) diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index e9b45fdedc..84b748e983 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-18T00:23:32.898Z", + "generated": "2026-01-18T01:02:55.175Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2968, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index 84b748e983..c24457b16d 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-18T01:02:55.175Z", + "generated": "2026-01-18T12:16:45.194Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 2968, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml b/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml index 1808bfb8a3..079dbb89e1 100644 --- a/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml +++ b/schemas/20251121/linkml/modules/classes/CustodianSourceFile.yaml @@ -269,3 +269,6 @@ classes: range: Any description: Geocoding metadata (Nominatim, GeoNames resolution details) inlined: true + youtube_candidates_rejected: + range: integer + description: Number of YouTube search candidates that were rejected during matching diff --git a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml index 187d048da5..13a7ad838a 100644 --- a/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml +++ b/schemas/20251121/linkml/modules/classes/DigitalPlatformV2KeyContact.yaml @@ -36,3 +36,6 @@ classes: phone: range: string description: Phone number if available + additional_roles: + range: string + description: Additional roles or positions held by this person diff --git a/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml b/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml index a219f77082..2633567117 100644 --- a/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml +++ b/schemas/20251121/linkml/modules/classes/HeritageSocietyType.yaml @@ -397,29 +397,58 @@ classes: ' range: string slot_uri: schema:numberOfEmployees - publication_activity: - description: "Publications produced by the society (journals, newsletters, monographs).\n\nPeriodical Publications:\n\ - - Journals: Peer-reviewed or curated research articles\n - Quarterly, semi-annual, or annual frequency\n - Article\ - \ length: 2,000-10,000 words\n - Topics: Original research, object studies, historical analysis\n- Newsletters:\ - \ Shorter, more frequent updates\n - Monthly, bi-monthly, or quarterly\n - Society news, events, member contributions\n\ - \ - Brief articles, notices, reviews\n- Yearbooks: Annual summaries of society activities\n - Annual reports,\ - \ membership directories\n - Year's research highlights, event summaries\n\nMonographs and Books:\n- Research monographs:\ - \ In-depth studies on specific topics\n- Exhibition catalogs: Documenting society exhibitions\n- Collection catalogs:\ - \ Inventories of society holdings\n- Commemorative volumes: Anniversary publications, member tributes\n\nDigital\ - \ Publications:\n- Websites: Society information, online archives\n- Blogs: Regular posts on heritage topics\n-\ - \ E-newsletters: Digital-only or hybrid with print\n- Social media: Facebook groups, Twitter updates, Instagram\ - \ posts\n- Podcasts: Audio discussions on heritage themes\n\nPublication Quality:\n- Peer-reviewed: Academic standards,\ - \ external reviewers\n- Editorially reviewed: Society editorial board\n- Member contributions: Open submissions\ - \ from members\n- Invited articles: Solicited from experts\n\nAccess and Distribution:\n- Members-only: Publications\ - \ restricted to paid members\n- Open access: Freely available online\n- Subscription: Separate subscription beyond\ - \ membership\n- Print + digital: Hybrid distribution\n- Archives: Back issues digitized and accessible\n\nExamples:\n\ - - \"Quarterly journal 'Oud-Leiden' (founded 1925) with local history articles\"\n- \"Annual numismatic journal +\ - \ monthly newsletter; all digitized back to 1950\"\n- \"Bi-monthly newsletter; occasional monographs on local history\"\ - \n- \"No regular publications; irregular yearbooks documenting field trips\"\n\nThis field documents the society's\ - \ scholarly and communication outputs.\n" - range: string + is_or_was_published_at: # was: publication_activity - migrated per Rule 53/56 (2026-01-18) + description: | + Publications produced by the society, modeled as structured publication events. + MIGRATED from publication_activity (string list) per Rule 53/56 (2026-01-18). + + Each PublicationEvent captures: + - has_or_had_label: Publication name/description (e.g., "Quarterly journal 'Oud-Leiden'") + - temporal_extent: When the publication started/continues (using CIDOC-CRM TimeSpan) + + Publication Types Covered: + - Periodicals: Journals, newsletters, yearbooks + - Monographs: Research publications, exhibition catalogs, collection catalogs + - Digital: Websites, blogs, podcasts, social media + + Examples: + - "Quarterly journal 'Oud-Leiden' (founded 1925) with local history articles" + - "Annual numismatic journal + monthly newsletter; all digitized back to 1950" + - "Bi-monthly newsletter; occasional monographs on local history" + range: PublicationEvent multivalued: true + inlined: true + inlined_as_list: true slot_uri: schema:publishingPrinciples + examples: + - value: + - has_or_had_label: "Quarterly journal 'Oud-Leiden' (founded 1925)" + temporal_extent: + begin_of_the_begin: "1925-01-01T00:00:00Z" + end_of_the_begin: "1925-12-31T00:00:00Z" + begin_of_the_end: null + end_of_the_end: null + - has_or_had_label: "Monthly newsletter for members" + temporal_extent: + begin_of_the_begin: "2000-01-01T00:00:00Z" + end_of_the_begin: "2000-01-01T00:00:00Z" + begin_of_the_end: null + end_of_the_end: null + description: Heritage society with journal (since 1925) and newsletter (since 2000) + - value: + - has_or_had_label: "Annual numismatic journal" + temporal_extent: + begin_of_the_begin: "1950-01-01T00:00:00Z" + end_of_the_begin: "1950-12-31T00:00:00Z" + begin_of_the_end: null + end_of_the_end: null + - has_or_had_label: "Monthly e-newsletter (digital only)" + temporal_extent: + begin_of_the_begin: "2015-01-01T00:00:00Z" + end_of_the_begin: "2015-01-01T00:00:00Z" + begin_of_the_end: null + end_of_the_end: null + description: Numismatic society with print journal and digital newsletter collecting_scope: description: "Scope and nature of the society's collecting activities and holdings.\n\nCollection Types:\n- Objects:\ \ Physical artifacts relevant to society focus\n - Numismatics: Coins, banknotes, medals, tokens\n - Philately:\ diff --git a/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml b/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml index 9f9395be1d..8ed5a00e70 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataArchitecture.yaml @@ -57,3 +57,11 @@ classes: multivalued: true inlined_as_list: true description: Structural engineer(s) (P631) + architect: + range: Any + any_of: + - range: string + - range: WikidataEntity + multivalued: true + inlined_as_list: true + description: Architect(s) (P84) - simplified format, can be string or WikidataEntity diff --git a/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml b/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml index b6962d74f3..f1bc2a9290 100644 --- a/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml +++ b/schemas/20251121/linkml/modules/classes/WikidataEnrichment.yaml @@ -249,3 +249,15 @@ classes: source: range: string description: Source of enrichment data (e.g., 'Wikidata SPARQL import') + wikidata_url: + range: uri + description: Full URL to Wikidata entity page + label: + range: string + description: Primary label (simplified alias for wikidata_label) + description: + range: string + description: Primary description (simplified alias for wikidata_description) + enrichment_method: + range: string + description: Method used for enrichment (e.g., 'sparql_query', 'api_fetch') diff --git a/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml b/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml index 7b7ddec654..9ba40bbb33 100644 --- a/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml +++ b/schemas/20251121/linkml/modules/classes/YoutubeEnrichment.yaml @@ -154,3 +154,9 @@ classes: multivalued: true inlined_as_list: true description: Social media and website links from YouTube channel + country: + range: string + description: Country of the YouTube channel (ISO 3166-1 alpha-2 code) + description: + range: string + description: Channel description (simplified alias) diff --git a/schemas/20251121/linkml/modules/slots/publication_activity.yaml b/schemas/20251121/linkml/modules/slots/archive/publication_activity_archived_20260118.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/publication_activity.yaml rename to schemas/20251121/linkml/modules/slots/archive/publication_activity_archived_20260118.yaml diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index 581b2a1216..2e22fbf2d3 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -6966,16 +6966,23 @@ fixes: type: class processed: status: true - timestamp: '2026-01-17T20:15:00Z' - session: session-2026-01-17-slot-migration + timestamp: '2026-01-18T00:00:00Z' + session: session-2026-01-18-slot-migration notes: | - WELL_STRUCTURED_NO_MIGRATION_NEEDED: publication_activity is a multivalued - string field for describing publication activities: - - slot_uri: schema:publishingPrinciples - - Range: string (multivalued for activity descriptions) + FULLY_MIGRATED per Rule 53/56 (2026-01-18): - Used in: HeritageSocietyType.yaml for society publication activities - Retaining as string list for activity descriptions. + Migration completed: + - Replaced publication_activity (string list) with is_or_was_published_at (existing slot) + - Uses PublicationEvent class with: + - has_or_had_label: Publication name/description + - temporal_extent: When publication started (CIDOC-CRM TimeSpan pattern) + + Files updated: + - HeritageSocietyType.yaml: imports + inline attribute definition replaced + + Old slot archived: modules/slots/archive/publication_activity_archived_20260118.yaml + + Semantic enhancement: String descriptions now have structured temporal data. - original_slot_id: https://nde.nl/ontology/hc/slot/public_education revision: - label: has_or_had_service @@ -9489,7 +9496,7 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/confidence_method revision: - label: is_or_was_generated_by - type: slot + type: slot - label: GenerationEvent type: class - label: has_or_had_score @@ -9503,7 +9510,7 @@ fixes: - original_slot_id: https://nde.nl/ontology/hc/slot/confidence_score revision: - label: is_or_was_generated_by - type: slot + type: slot - label: GenerationEvent type: class - label: has_or_had_score