From 849e5354cc35e82a20b72e463397f4d9057ca8a6 Mon Sep 17 00:00:00 2001 From: kempersc Date: Thu, 22 Jan 2026 22:17:35 +0100 Subject: [PATCH] feat: Migrate data_format to has_or_had_output; archive previous data_format slot and update related schemas --- .../schemas/20251121/linkml/manifest.json | 2 +- schemas/20251121/linkml/manifest.json | 2 +- .../modules/classes/InternetOfThings.yaml | 30 ++++++++++++++----- .../data_format_archived_20260122.yaml} | 0 .../linkml/modules/slots/slot_fixes.yaml | 20 +++++++++++++ 5 files changed, 45 insertions(+), 9 deletions(-) rename schemas/20251121/linkml/modules/slots/{data_format.yaml => archive/data_format_archived_20260122.yaml} (100%) diff --git a/frontend/public/schemas/20251121/linkml/manifest.json b/frontend/public/schemas/20251121/linkml/manifest.json index b75b210dbb..b27b20b12c 100644 --- a/frontend/public/schemas/20251121/linkml/manifest.json +++ b/frontend/public/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-22T21:08:05.291Z", + "generated": "2026-01-22T21:16:36.017Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3037, "categoryCounts": { diff --git a/schemas/20251121/linkml/manifest.json b/schemas/20251121/linkml/manifest.json index b27b20b12c..ab95ed2aa4 100644 --- a/schemas/20251121/linkml/manifest.json +++ b/schemas/20251121/linkml/manifest.json @@ -1,5 +1,5 @@ { - "generated": "2026-01-22T21:16:36.017Z", + "generated": "2026-01-22T21:17:35.747Z", "schemaRoot": "/schemas/20251121/linkml", "totalFiles": 3037, "categoryCounts": { diff --git a/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml b/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml index b18181b74e..c54967d934 100644 --- a/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml +++ b/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml @@ -13,7 +13,10 @@ imports: - ./ReconstructedEntity - ../slots/connectivity_type - ../slots/coverage_area - - ../slots/data_format + - ./OutputData + - ./DataFormat + - ../slots/has_or_had_output + # REMOVED 2026-01-22: data_format migrated to has_or_had_output + OutputData (Rule 53) - ../slots/decommission_date - ../slots/device_count - ../slots/device_id @@ -100,7 +103,7 @@ classes: - has_or_had_api_endpoint - connectivity_type - coverage_area - - data_format + - has_or_had_output # was: data_format - migrated per Rule 53 (2026-01-22) - decommission_date - device_count - device_id @@ -225,11 +228,20 @@ classes: examples: - value: https://api.museum.nl/sensors/v1/ description: Sensor data API - data_format: - range: string + has_or_had_output: # was: data_format - migrated per Rule 53 (2026-01-22) + range: OutputData + inlined: true + description: | + Output data specification for this device. + MIGRATED from data_format per slot_fixes.yaml (Rule 53). + Uses OutputData class with DataFormat for format specification. examples: - - value: JSON - description: JSON data format + - value: + has_or_had_format: + has_or_had_type: JsonFormat + has_or_had_media_type: "application/json" + has_or_had_description: "Sensor readings in JSON format" + description: JSON data format (was data_format) has_or_had_frequency: range: UpdateFrequency inlined: true @@ -342,7 +354,11 @@ classes: power_source: BATTERY publishes_to: https://dashboard.rijksmuseum.nl/climate api_endpoint: https://api.rijksmuseum.nl/climate/v1/ - data_format: JSON + has_or_had_output: # was: data_format - migrated per Rule 53 + has_or_had_format: + has_or_had_type: JsonFormat + has_or_had_media_type: "application/json" + has_or_had_description: "Climate sensor data" has_or_had_frequency: frequency_description: "Every 5 minutes" has_or_had_quantity: diff --git a/schemas/20251121/linkml/modules/slots/data_format.yaml b/schemas/20251121/linkml/modules/slots/archive/data_format_archived_20260122.yaml similarity index 100% rename from schemas/20251121/linkml/modules/slots/data_format.yaml rename to schemas/20251121/linkml/modules/slots/archive/data_format_archived_20260122.yaml diff --git a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml index c1315a105a..8b1bd09379 100644 --- a/schemas/20251121/linkml/modules/slots/slot_fixes.yaml +++ b/schemas/20251121/linkml/modules/slots/slot_fixes.yaml @@ -11428,6 +11428,26 @@ fixes: type: slot - label: DataFormat type: class + processed: + status: true + date: '2026-01-22' + agent: claude-claude-sonnet-4-20250514 + notes: | + **Migration #62: data_format** ✅ COMPLETE + + **Pattern**: data_format → has_or_had_output + OutputData + has_or_had_format + DataFormat + + **Files Created**: + - has_or_had_output.yaml: New slot for device/service outputs + - OutputData.yaml: Class for output specifications + - DataFormat.yaml: Class for format specs + DataFormatType base class + - DataFormatTypes.yaml: 19 concrete format subclasses (JSON, XML, CSV, RDF, MARC, etc.) + + **Files Modified**: + - InternetOfThings.yaml: Replaced data_format with has_or_had_output + OutputData + - Updated imports, slots list, slot_usage, and examples + + **Archived**: modules/slots/archive/data_format_archived_20260122.yaml - original_slot_id: https://nde.nl/ontology/hc/slot/data_license_policy revision: - label: has_or_had_policy