glam/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml
kempersc fc405445c6 Refactor and update schema definitions
- Removed obsolete slots: `has_or_had_custodian_observation`, `provider`, and `specificity_annotation`.
- Updated `has_or_had_score` slot to use `SpecificityScore` class and modified its description and examples.
- Added new slots: `end_seconds`, `end_time`, `has_archive_path`, `has_or_had_custodian_name`, `protocol_name`, and `protocol_version`.
- Introduced a script `check_annotation_types.py` to validate the presence and structure of `custodian_types` in YAML files.
- Added a script `update_specificity.py` to automate updates related to `SpecificityAnnotation` to `SpecificityScore`.
2026-02-01 19:55:38 +01:00

94 lines
3.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
- ../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.
**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_or_had_quantity
→ Quantity (numeric value) - Branch 2: has_or_had_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_or_had_quantity
- has_or_had_time_interval
slot_usage:
has_or_had_quantity:
range: integer
inlined: true
examples:
- value: "has_or_had_quantity:\n numeric_value: 5\n has_or_had_measurement_unit:\n\
\ has_or_had_symbol: \"updates\"\n"
has_or_had_time_interval:
range: TimeInterval
inlined: true
examples:
- value: "has_or_had_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_or_had_quantity:\n\
\ numeric_value: 5\n has_or_had_time_interval:\n duration_value: \"\
PT1M\"\n duration_description: \"minute\"\n"
- 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"
- 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