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

94 lines
3.8 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
- ../slots/has_quantity
- ../slots/has_time_interval
# default_range: string
classes:
UpdateFrequency:
description: 'Structured representation of how often a device, system, or data
source sends updates or refreshes data.
**WHY A DEDICATED CLASS?**
Update 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
**SLOT_FIXES.YAML REVISION** (lines 1893-1910): - Branch 1: has_quantity
→ Quantity (numeric value) - Branch 2: has_time_interval → TimeInterval
(duration)
**ONTOLOGY MAPPING**: - class_uri: dcterms:Frequency (Dublin Core) - Dublin
Core `accrualPeriodicity` uses Frequency for collection update rates
**USE CASES**: - IoT sensors: "Every 5 minutes", "Hourly", "Real-time" - Data
feeds: "Daily", "Weekly", "Monthly" - Event-driven: "On proximity trigger",
"On change"
**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
close_mappings:
- dcat:frequency
- schema:Schedule
related_mappings:
- time:TemporalEntity
slots:
- has_quantity
- has_time_interval
slot_usage:
has_quantity:
range: integer
inlined: false # Fixed invalid inline for primitive type
examples:
- value: "has_quantity:\n numeric_value: 5\n has_measurement_unit:\n\
\ has_symbol: \"updates\"\n"
has_time_interval:
range: TimeInterval
inlined: true
examples:
- value: "has_time_interval:\n duration_value: \"PT1M\"\n duration_description:\
\ \"per minute\"\n"
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_quantity:\n\
\ numeric_value: 5\n has_time_interval:\n duration_value: \"\
PT1M\"\n duration_description: \"minute\"\n"
- value: "UpdateFrequency:\n frequency_description: \"Hourly\"\n has_quantity:\n\
\ numeric_value: 1\n has_time_interval:\n duration_value: \"\
PT1H\"\n duration_description: \"hour\"\n"
- value: "UpdateFrequency:\n frequency_description: \"On proximity trigger\"\n\
\ is_event_driven: true\n trigger_type: \"proximity\"\n"
- value: "UpdateFrequency:\n frequency_description: \"Real-time\"\n is_event_driven:\
\ true\n trigger_type: \"continuous\"\n"
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