glam/schemas/20251121/linkml/modules/classes/InternetOfThings.yaml
2025-12-03 17:38:46 +01:00

687 lines
22 KiB
YAML

# Heritage Internet of Things (IoT) Device Class
# Models physical devices with digital connectivity used by heritage custodians
# Includes beacons, kiosks, sensors, and interactive displays
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/api_endpoint
- ./ReconstructedEntity
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
to enhance visitor experience, monitor conditions, or provide services.
**WHY IOT CLASS?**
Modern heritage institutions increasingly deploy IoT devices:
- **Beacons**: Location-based triggers for mobile apps
- **Kiosks**: Interactive information terminals
- **Sensors**: Environmental monitoring (climate, light, visitor counts)
- **Displays**: Digital signage, interactive screens
These are a form of DIGITAL PRESENCE that bridges physical and digital worlds.
**RELATIONSHIP TO OTHER DIGITAL PRESENCE TYPES**:
```
Digital Presence Hierarchy:
DigitalPlatform (PRIMARY - websites)
└── AuxiliaryDigitalPlatform (SECONDARY - project sites)
SocialMediaProfile (THIRD-PARTY - external platforms)
InternetOfThings (PHYSICAL-DIGITAL - in-venue devices) ← THIS CLASS
```
**SOSA/SSN ALIGNMENT**:
W3C Semantic Sensor Network (SSN) and Sensor, Observation, Sample,
and Actuator (SOSA) ontologies provide the semantic foundation:
- `sosa:Platform` - Entity hosting sensors/systems (building, room, beacon)
- `sosa:Sensor` - Device that observes properties
- `sosa:Observation` - Act of observing a property
- `ssn:System` - System comprising multiple components
**USE CASES**:
1. **Visitor Experience Enhancement**:
- Bluetooth beacons trigger app content near artworks
- NFC tags on object labels for detailed information
- Interactive kiosks for self-guided exploration
2. **Environmental Monitoring**:
- Climate sensors (temperature, humidity) for conservation
- Light level sensors to protect sensitive materials
- Air quality monitoring in storage areas
3. **Visitor Analytics**:
- People counters at entrances
- Heat maps of gallery traffic
- Dwell time sensors near exhibits
4. **Digital Signage**:
- Rotating information displays
- Exhibition schedules
- Wayfinding screens
**EXAMPLE - Museum with IoT Devices**:
```yaml
Custodian:
hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"
preferred_label: "Rijksmuseum"
iot_devices:
- device_id: ".../iot/rijksmuseum-beacon-gallery-1"
device_name: "Gallery of Honour Beacon Network"
device_type: IOT_BEACON
device_count: 24
coverage_area: "Gallery of Honour (main wing)"
purpose: "Proximity triggers for mobile app content"
- device_id: ".../iot/rijksmuseum-climate-monitor"
device_name: "Conservation Climate Monitoring"
device_type: IOT_SENSOR
device_count: 150
coverage_area: "All galleries and storage"
purpose: "Temperature and humidity monitoring for preservation"
publishes_to: "https://dashboard.rijksmuseum.nl/climate"
```
**TEMPORAL CONSIDERATIONS**:
IoT devices have installation/decommissioning dates:
- Beacons may be temporary for exhibitions
- Sensors may be upgraded/replaced
- Kiosks may be moved between venues
**NOT INCLUDED**:
- Smartphones/tablets (user devices, not custodian-owned)
- Standard IT infrastructure (servers, networking)
- Security cameras (unless part of heritage experience)
exact_mappings:
- sosa:Platform
- ssn:System
close_mappings:
- schema:Thing
- crm:E22_Human-Made_Object
related_mappings:
- sosa:Sensor
- sosa:Actuator
- schema:Product
slots:
- device_id
- device_name
- device_type
- device_model
- device_manufacturer
- device_count
- coverage_area
- purpose
- technical_specifications
- connectivity_type
- power_source
- publishes_to
- api_endpoint
- data_format
- update_frequency
- installed_at_place
- installation_date
- decommission_date
- temporal_extent
- operational_status
- maintenance_schedule
- was_derived_from
- was_generated_by
- refers_to_custodian
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_specifications:
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"
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"
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"
# Slot definitions
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_specifications:
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