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