glam/schemas/20251121/linkml/modules/classes/UpdateFrequency.yaml
kempersc ca4a54181e Refactor schema files to improve clarity and maintainability
- Updated WorldCatIdentifier.yaml to remove unnecessary description and ensure consistent formatting.
- Enhanced WorldHeritageSite.yaml by breaking long description into multiple lines for better readability and removed unused attributes.
- Simplified WritingSystem.yaml by removing redundant attributes and ensuring consistent formatting.
- Cleaned up XPathScore.yaml by removing unnecessary attributes and ensuring consistent formatting.
- Improved YoutubeChannel.yaml by breaking long description into multiple lines for better readability.
- Enhanced YoutubeEnrichment.yaml by breaking long description into multiple lines for better readability.
- Updated YoutubeVideo.yaml to break long description into multiple lines and removed legacy field name.
- Refined has_or_had_affiliation.yaml by removing unnecessary comments and ensuring clarity.
- Cleaned up is_or_was_retrieved_at.yaml by removing unnecessary comments and ensuring clarity.
- Added rules for generic slots and avoiding rough edits in schema files to maintain structural integrity.
- Introduced changes_or_changed_through.yaml to define a new slot for linking entities to change events.
2026-01-31 00:46:23 +01:00

76 lines
4.3 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
- ./Quantity
- ./TimeInterval
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: 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