glam/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml
kempersc 626bd3a095 refactor(schemas): apply naming conventions to 261 class files
- Apply Rule 39: RiC-O style hasOrHad*/isOrWas* for temporal slots
- Apply Rule 43: Singular noun convention (keywords → keyword)
- Update slot references to match renamed slot files
- Maintain schema integrity across all class definitions
2026-01-10 15:36:33 +01:00

608 lines
22 KiB
YAML

id: https://nde.nl/ontology/hc/class/InternetOfThings
name: internet_of_things_class
title: InternetOfThings Class
imports:
- linkml:types
- ./Custodian
- ./CustodianObservation
- ./ReconstructionActivity
- ./TimeSpan
- ./CustodianPlace
- ../enums/DigitalPresenceTypeEnum
- ../slots/has_or_had_api_endpoint
- ./ReconstructedEntity
- ../slots/connectivity_type
- ../slots/coverage_area
- ../slots/data_format
- ../slots/decommission_date
- ../slots/device_count
- ../slots/device_id
- ../slots/device_manufacturer
- ../slots/device_model
- ../slots/device_name
- ../slots/device_type
- ../slots/installation_date
- ../slots/installed_at_place
- ../slots/maintenance_schedule
- ../slots/operational_status
- ../slots/power_source
- ../slots/publishes_to
- ../slots/purpose
- ../slots/refers_to_custodian
- ../slots/specificity_annotation
- ../slots/technical_specification
- ../slots/template_specificity
- ../slots/temporal_extent
- ../slots/update_frequency
- ../slots/was_derived_from
- ../slots/was_generated_by
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
sosa: http://www.w3.org/ns/sosa/
ssn: http://www.w3.org/ns/ssn/
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
crm: http://www.cidoc-crm.org/cidoc-crm/
geosparql: http://www.opengis.net/ont/geosparql#
wd: http://www.wikidata.org/entity/
default_prefix: hc
classes:
InternetOfThings:
is_a: ReconstructedEntity
class_uri: sosa:Platform
description: "Physical device with digital connectivity used by a heritage custodian\n\
to enhance visitor experience, monitor conditions, or provide services.\n\n\
**WHY IOT CLASS?**\n\nModern heritage institutions increasingly deploy IoT devices:\n\
- **Beacons**: Location-based triggers for mobile apps\n- **Kiosks**: Interactive\
\ information terminals\n- **Sensors**: Environmental monitoring (climate, light,\
\ visitor counts)\n- **Displays**: Digital signage, interactive screens\n\n\
These are a form of DIGITAL PRESENCE that bridges physical and digital worlds.\n\
\n**RELATIONSHIP TO OTHER DIGITAL PRESENCE TYPES**:\n\n```\nDigital Presence\
\ Hierarchy:\n\nDigitalPlatform (PRIMARY - websites)\n │\n └── AuxiliaryDigitalPlatform\
\ (SECONDARY - project sites)\n\nSocialMediaProfile (THIRD-PARTY - external\
\ platforms)\n\nInternetOfThings (PHYSICAL-DIGITAL - in-venue devices) ← THIS\
\ CLASS\n```\n\n**SOSA/SSN ALIGNMENT**:\n\nW3C Semantic Sensor Network (SSN)\
\ and Sensor, Observation, Sample, \nand Actuator (SOSA) ontologies provide\
\ the semantic foundation:\n\n- `sosa:Platform` - Entity hosting sensors/systems\
\ (building, room, beacon)\n- `sosa:Sensor` - Device that observes properties\n\
- `sosa:Observation` - Act of observing a property\n- `ssn:System` - System\
\ comprising multiple components\n\n**USE CASES**:\n\n1. **Visitor Experience\
\ Enhancement**:\n - Bluetooth beacons trigger app content near artworks\n\
\ - NFC tags on object labels for detailed information\n - Interactive kiosks\
\ for self-guided exploration\n \n2. **Environmental Monitoring**:\n - Climate\
\ sensors (temperature, humidity) for conservation\n - Light level sensors\
\ to protect sensitive materials\n - Air quality monitoring in storage areas\n\
\ \n3. **Visitor Analytics**:\n - People counters at entrances\n - Heat\
\ maps of gallery traffic\n - Dwell time sensors near exhibits\n \n4. **Digital\
\ Signage**:\n - Rotating information displays\n - Exhibition schedules\n\
\ - Wayfinding screens\n\n**EXAMPLE - Museum with IoT Devices**:\n\n```yaml\n\
Custodian:\n hc_id: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n\
\ preferred_label: \"Rijksmuseum\"\n iot_devices:\n - device_id: \".../iot/rijksmuseum-beacon-gallery-1\"\
\n device_name: \"Gallery of Honour Beacon Network\"\n device_type:\
\ IOT_BEACON\n device_count: 24\n coverage_area: \"Gallery of Honour\
\ (main wing)\"\n purpose: \"Proximity triggers for mobile app content\"\
\n \n - device_id: \".../iot/rijksmuseum-climate-monitor\"\n device_name:\
\ \"Conservation Climate Monitoring\"\n device_type: IOT_SENSOR\n \
\ device_count: 150\n coverage_area: \"All galleries and storage\"\n \
\ purpose: \"Temperature and humidity monitoring for preservation\"\n \
\ publishes_to: \"https://dashboard.rijksmuseum.nl/climate\"\n```\n\n**TEMPORAL\
\ CONSIDERATIONS**:\n\nIoT devices have installation/decommissioning dates:\n\
- Beacons may be temporary for exhibitions\n- Sensors may be upgraded/replaced\n\
- Kiosks may be moved between venues\n\n**NOT INCLUDED**:\n\n- Smartphones/tablets\
\ (user devices, not custodian-owned)\n- Standard IT infrastructure (servers,\
\ networking)\n- Security cameras (unless part of heritage experience)\n"
exact_mappings:
- sosa:Platform
- ssn:System
close_mappings:
- schema:Thing
- crm:E22_Human-Made_Object
related_mappings:
- sosa:Sensor
- sosa:Actuator
- schema:Product
slots:
- has_or_had_api_endpoint
- connectivity_type
- coverage_area
- data_format
- decommission_date
- device_count
- device_id
- device_manufacturer
- device_model
- device_name
- device_type
- installation_date
- installed_at_place
- maintenance_schedule
- operational_status
- power_source
- publishes_to
- purpose
- refers_to_custodian
- specificity_annotation
- technical_specification
- template_specificity
- temporal_extent
- update_frequency
- was_derived_from
- was_generated_by
slot_usage:
device_id:
slot_uri: dcterms:identifier
description: |
Unique identifier for this IoT device or device network.
Format: URI following NDE Heritage Custodian ontology conventions.
range: uriorcurie
required: true
identifier: true
examples:
- value: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-1
description: Beacon network in Gallery of Honour
device_name:
slot_uri: schema:name
description: |
Human-readable name for this IoT device or network.
Should be descriptive of location and purpose.
range: string
required: true
examples:
- value: Gallery of Honour Beacon Network
description: Beacon network name
- value: Depot Climate Monitoring System
description: Sensor network name
device_type:
slot_uri: dcterms:type
description: |
Type of IoT device using DigitalPresenceTypeEnum IoT values.
Types:
- IOT_BEACON: Bluetooth/NFC beacons for location services
- IOT_KIOSK: Interactive terminals/touch screens
- IOT_SENSOR: Environmental/monitoring sensors
Additional device categories may be added.
range: DigitalPresenceTypeEnum
required: true
examples:
- value: IOT_BEACON
description: Bluetooth beacon
- value: IOT_SENSOR
description: Environmental sensor
- value: IOT_KIOSK
description: Interactive kiosk
device_model:
slot_uri: schema:model
description: |
Model name/number of the device.
Schema.org: model for product model.
Examples:
- "Estimote Proximity Beacon"
- "Samsung Kiosk 24"
- "Sensirion SHT45 Climate Sensor"
range: string
examples:
- value: Estimote Proximity Beacon
description: Beacon model
device_manufacturer:
slot_uri: schema:manufacturer
description: |
Manufacturer of the IoT device.
Schema.org: manufacturer for producer.
range: string
examples:
- value: Estimote
description: Beacon manufacturer
- value: Samsung
description: Kiosk manufacturer
device_count:
slot_uri: schema:numberOfItems
description: |
Number of devices in this device group/network.
For individual devices, value is 1.
For beacon networks or sensor arrays, value is total count.
range: integer
minimum_value: 1
examples:
- value: 24
description: 24 beacons in gallery network
- value: 150
description: 150 climate sensors across facility
- value: 1
description: Single information kiosk
coverage_area:
slot_uri: schema:areaServed
description: |
Physical area covered by this device or device network.
Schema.org: areaServed for geographic coverage.
Can be room names, zones, or descriptions.
range: string
examples:
- value: Gallery of Honour (main wing)
description: Specific gallery
- value: All galleries and storage areas
description: Facility-wide
- value: Main entrance lobby
description: Specific location
purpose:
slot_uri: dcterms:description
description: |
Purpose and use case for this IoT device/network.
Dublin Core: description for purpose statement.
range: string
required: true
examples:
- value: Proximity triggers for mobile app content
description: Beacon purpose
- value: Temperature and humidity monitoring for preservation
description: Climate sensor purpose
- value: Self-service collection search for visitors
description: Kiosk purpose
technical_specification:
slot_uri: schema:description
description: |
Technical details about the device.
May include:
- Transmission range (for beacons)
- Measurement accuracy (for sensors)
- Screen resolution (for kiosks)
- Battery life
- Operating temperature range
range: string
examples:
- value: BLE 5.0, 50m range, 5-year battery, IP67 rated
description: Beacon specifications
connectivity_type:
slot_uri: schema:potentialAction
description: |
Type of connectivity used by the device.
Values:
- BLUETOOTH_LE: Bluetooth Low Energy (beacons)
- WIFI: WiFi network connection
- ETHERNET: Wired network connection
- LORAWAN: Long-range low-power IoT network
- NFC: Near-field communication
- ZIGBEE: Zigbee mesh network
- CELLULAR: 4G/5G cellular connection
range: string
multivalued: true
examples:
- value: BLUETOOTH_LE
description: Beacon connectivity
- value: WIFI
description: Kiosk connectivity
power_source:
slot_uri: schema:fuelType
description: |
Power source for the device.
Values:
- BATTERY: Battery-powered
- MAINS: Mains electricity
- POE: Power over Ethernet
- SOLAR: Solar-powered
- USB: USB-powered
range: string
examples:
- value: BATTERY
description: Battery-powered beacon
- value: MAINS
description: Mains-powered kiosk
publishes_to:
slot_uri: dcat:endpointURL
description: |
URL where device data is published (dashboard, API).
DCAT: endpointURL for data publication endpoint.
For sensors, this may be a monitoring dashboard.
For beacons, this may be analytics platform.
range: uri
examples:
- value: https://dashboard.museum.nl/climate
description: Climate monitoring dashboard
- value: https://analytics.museum.nl/beacons
description: Beacon analytics platform
has_or_had_api_endpoint:
slot_uri: dcat:endpointURL
description: |
API endpoint for programmatic access to device data.
DCAT: endpointURL for API access.
range: uri
examples:
- value: https://api.museum.nl/sensors/v1/
description: Sensor data API
data_format:
slot_uri: dcterms:format
description: |
Format of data produced by the device.
Dublin Core: format for data format.
Examples:
- "JSON"
- "SensorML"
- "CSV"
- "MQTT payload"
range: string
examples:
- value: JSON
description: JSON data format
update_frequency:
slot_uri: dcterms:accrualPeriodicity
description: |
How often the device sends data/updates.
Dublin Core: accrualPeriodicity for frequency.
Examples:
- "Every 5 minutes"
- "On proximity trigger"
- "Hourly"
- "Real-time"
range: string
examples:
- value: Every 5 minutes
description: Climate sensor update frequency
- value: On proximity trigger
description: Beacon trigger frequency
installed_at_place:
slot_uri: schema:location
description: |
CustodianPlace where this device is installed.
Links to CustodianPlace for precise location.
Schema.org: location for physical location.
range: CustodianPlace
examples:
- value: https://nde.nl/ontology/hc/place/rijksmuseum-gallery-of-honour
description: Gallery location
installation_date:
slot_uri: schema:dateCreated
description: |
Date when the device was installed.
Schema.org: dateCreated for installation date.
range: date
examples:
- value: '2023-06-15'
description: Installation date
decommission_date:
slot_uri: schema:expires
description: |
Date when the device was or will be decommissioned.
NULL if still operational.
Schema.org: expires for end date.
range: date
examples:
- value: '2028-12-31'
description: Planned decommission date
temporal_extent:
slot_uri: crm:P4_has_time-span
description: |
Temporal period during which this device is operational.
CIDOC-CRM: P4_has_time-span for fuzzy temporal boundaries.
For temporary exhibition devices, captures exhibition dates.
range: TimeSpan
examples:
- value:
begin_of_the_begin: '2023-06-15'
description: Device operational since June 2023
operational_status:
slot_uri: schema:status
description: |
Current operational status of the device.
Values:
- ACTIVE: Currently operational
- MAINTENANCE: Under maintenance
- OFFLINE: Not currently functional
- DECOMMISSIONED: Permanently retired
- PLANNED: Not yet installed
Schema.org: status for current status.
range: string
examples:
- value: ACTIVE
description: Device is operational
- value: MAINTENANCE
description: Device under maintenance
maintenance_schedule:
slot_uri: schema:maintenanceSchedule
description: |
Maintenance schedule for the device.
Examples:
- "Monthly battery check"
- "Quarterly calibration"
- "Annual hardware inspection"
range: string
examples:
- value: Monthly battery check
description: Beacon maintenance
was_derived_from:
slot_uri: prov:wasDerivedFrom
description: |
CustodianObservation(s) documenting this device.
PROV-O: wasDerivedFrom for observation provenance.
range: CustodianObservation
multivalued: true
required: false
was_generated_by:
slot_uri: prov:wasGeneratedBy
description: |
ReconstructionActivity that generated this device record.
PROV-O: wasGeneratedBy for generation activity.
range: ReconstructionActivity
required: false
refers_to_custodian:
slot_uri: dcterms:references
description: |
The Custodian hub that operates this IoT device (REQUIRED).
Links the IoT device to the custodian that owns/operates it.
Dublin Core: references for entity reference.
range: Custodian
required: true
examples:
- value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Rijksmuseum custodian hub
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Models physical devices with digital connectivity (beacons, kiosks, sensors)
- SOSA/SSN ontology alignment for semantic sensor data
- Bridges physical and digital presence of heritage custodians
- Supports environmental monitoring, visitor experience, analytics use cases
- Temporal validity tracks installation and decommission dates
- Links to CustodianPlace for location context
see_also:
- https://www.w3.org/TR/vocab-ssn/
- https://www.w3.org/TR/vocab-sosa/
- https://schema.org/Thing
examples:
- value:
device_id: https://nde.nl/ontology/hc/iot/rijksmuseum-beacon-gallery-honour
device_name: Gallery of Honour Beacon Network
device_type: IOT_BEACON
device_model: Estimote Proximity Beacon
device_manufacturer: Estimote
device_count: 24
coverage_area: Gallery of Honour (main wing)
purpose: Proximity triggers for mobile app content near masterpieces
connectivity_type:
- BLUETOOTH_LE
power_source: BATTERY
publishes_to: https://analytics.rijksmuseum.nl/beacons
installation_date: '2019-03-01'
operational_status: ACTIVE
maintenance_schedule: Monthly battery check
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Beacon network in Rijksmuseum Gallery of Honour
- value:
device_id: https://nde.nl/ontology/hc/iot/rijksmuseum-climate-monitoring
device_name: Conservation Climate Monitoring System
device_type: IOT_SENSOR
device_model: Sensirion SHT45
device_manufacturer: Sensirion
device_count: 150
coverage_area: All galleries and storage areas
purpose: Temperature and humidity monitoring for preservation
connectivity_type:
- WIFI
- LORAWAN
power_source: BATTERY
publishes_to: https://dashboard.rijksmuseum.nl/climate
api_endpoint: https://api.rijksmuseum.nl/climate/v1/
data_format: JSON
update_frequency: Every 5 minutes
installation_date: '2020-01-15'
operational_status: ACTIVE
maintenance_schedule: Quarterly calibration
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Climate monitoring sensor network at Rijksmuseum
- value:
device_id: https://nde.nl/ontology/hc/iot/rijksmuseum-entrance-kiosk
device_name: Main Entrance Information Kiosks
device_type: IOT_KIOSK
device_model: Samsung Kiosk 24 Touch
device_manufacturer: Samsung
device_count: 4
coverage_area: Main entrance lobby
purpose: Self-service collection search and wayfinding for visitors
technical_specifications: 24-inch touchscreen, 1920x1080 resolution, wheelchair
accessible
connectivity_type:
- ETHERNET
power_source: MAINS
installation_date: '2021-09-01'
operational_status: ACTIVE
maintenance_schedule: Weekly software updates, monthly hardware inspection
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
description: Information kiosks at Rijksmuseum entrance
slots:
device_id:
description: Unique identifier for IoT device/network
range: uriorcurie
device_name:
description: Human-readable device name
range: string
device_type:
description: Type of IoT device
range: DigitalPresenceTypeEnum
device_model:
description: Device model name/number
range: string
device_manufacturer:
description: Device manufacturer
range: string
device_count:
description: Number of devices in network
range: integer
coverage_area:
description: Physical area covered
range: string
purpose:
description: Purpose and use case
range: string
technical_specification:
description: Technical details
range: string
connectivity_type:
description: Network connectivity type
range: string
power_source:
description: Power source type
range: string
publishes_to:
description: Data publication endpoint
range: uri
data_format:
description: Format of data produced
range: string
update_frequency:
description: Data update frequency
range: string
installed_at_place:
description: Installation location
range: CustodianPlace
installation_date:
description: Date device was installed
range: date
decommission_date:
description: Date device was/will be decommissioned
range: date
operational_status:
description: Current operational status
range: string
maintenance_schedule:
description: Maintenance schedule
range: string