glam/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml

84 lines
4.9 KiB
YAML

id: https://nde.nl/ontology/hc/classes/UpdateFrequency
name: UpdateFrequency
title: UpdateFrequency
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
dcterms: http://purl.org/dc/terms/
dcat: http://www.w3.org/ns/dcat#
schema: http://schema.org/
time: http://www.w3.org/2006/time#
prov: http://www.w3.org/ns/prov#
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
rdfs: http://www.w3.org/2000/01/rdf-schema#
org: http://www.w3.org/ns/org#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ./Quantity
- ./TimeInterval
- ../slots/has_or_had_quantity
- ../slots/has_or_had_time_interval
default_range: string
classes:
UpdateFrequency:
description: "Structured representation of how often a device, system, or data source sends updates or refreshes data.\n**WHY A DEDICATED CLASS?**\nUpdate frequency is more than a simple string - it has: - **Quantity**: How many updates (e.g., \"5\" in \"every 5 minutes\") - **Time Interval**: The period (e.g., \"minutes\" in \"every 5 minutes\") - **Trigger-based**: Some updates are event-driven, not time-based\n**SLOT_FIXES.YAML REVISION** (lines 1893-1910): - Branch 1: has_or_had_quantity \u2192 Quantity (numeric value) - Branch 2: has_or_had_time_interval \u2192 TimeInterval (duration)\n**ONTOLOGY MAPPING**: - class_uri: dcterms:Frequency (Dublin Core) - Dublin Core `accrualPeriodicity` uses Frequency for collection update rates\n**USE CASES**: - IoT sensors: \"Every 5 minutes\", \"Hourly\", \"Real-time\" - Data feeds: \"Daily\", \"Weekly\", \"Monthly\" - Event-driven: \"On proximity trigger\", \"On change\"\n**EXAMPLES**: - Climate sensor: 5 updates per minute - Beacon: On proximity\
\ trigger (no time interval) - Database sync: Daily at midnight"
class_uri: dcterms:Frequency
exact_mappings:
- dcterms:Frequency
- dcat:frequency
close_mappings:
- schema:Schedule
related_mappings:
- time:TemporalEntity
slots:
- has_or_had_quantity
- has_or_had_time_interval
attributes:
frequency_description:
range: string
description: 'Human-readable description of the update frequency. Examples: "Every 5 minutes", "Hourly", "Real-time", "On proximity trigger"'
is_event_driven:
range: boolean
description: 'True if updates are triggered by events rather than time intervals. Examples: beacon proximity triggers, change detection, user actions.'
ifabsent: 'false'
trigger_type:
range: string
description: 'Type of event that triggers updates (when is_event_driven is true). Examples: "proximity", "change", "request", "threshold"'
slot_usage:
has_or_had_quantity:
range: Quantity
inlined: true
description: The numeric quantity component of the frequency. For "every 5 minutes", this would be a Quantity with value 5.
examples:
- value: "has_or_had_quantity:\n numeric_value: 5\n has_or_had_measurement_unit:\n has_or_had_symbol: \"updates\"\n"
description: 5 updates per interval
has_or_had_time_interval:
range: TimeInterval
inlined: true
description: The time interval/period component of the frequency. For "every 5 minutes", this would be a TimeInterval representing minutes.
examples:
- value: "has_or_had_time_interval:\n duration_value: \"PT1M\"\n duration_description: \"per minute\"\n"
description: Per-minute interval
annotations:
custodian_types: '["*"]'
custodian_types_rationale: Update frequency applicable to all custodian types with IoT or data systems.
custodian_types_primary: '*'
specificity_score: 0.35
specificity_rationale: Moderate specificity - relevant to custodians with digital/IoT infrastructure.
examples:
- value: "UpdateFrequency:\n frequency_description: \"Every 5 minutes\"\n has_or_had_quantity:\n numeric_value: 5\n has_or_had_time_interval:\n duration_value: \"PT1M\"\n duration_description: \"minute\"\n"
description: Climate sensor updating every 5 minutes.
- value: "UpdateFrequency:\n frequency_description: \"Hourly\"\n has_or_had_quantity:\n numeric_value: 1\n has_or_had_time_interval:\n duration_value: \"PT1H\"\n duration_description: \"hour\"\n"
description: Hourly update frequency.
- value: "UpdateFrequency:\n frequency_description: \"On proximity trigger\"\n is_event_driven: true\n trigger_type: \"proximity\"\n"
description: Event-driven beacon updates (no time interval).
- value: "UpdateFrequency:\n frequency_description: \"Real-time\"\n is_event_driven: true\n trigger_type: \"continuous\"\n"
description: Real-time streaming updates.
comments:
- Created from slot_fixes.yaml migration (2026-01-14)
- Replaces simple string update_frequency slot
- Supports both time-based and event-driven frequencies
- Uses Dublin Core Frequency class for semantic alignment