687 lines
22 KiB
YAML
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
|