OSGi DAL ontology

URL

https://sites.google.com/site/smartappliancesproject/ontologies/osgidal.ttl

Description

The Osgi_dal ontology focuses on the concept of ‘device’ and ‘function’ that are central in the OSGi architecture. A device (Device class) represents a physical device or a functional part of it in the OSGi service registry. A device is characterized by a mandatory unique identifier (hasDeviceUID property) and a set of properties, most of which are optional, namely the device type, such as DVD or TV (hasDeviceType property), model (hasModel property), serial number (hasSerialNumber property), driver (hasDriver property), firmware and hardware vendor and version (hasFirmwareVendor, hasFirmwareVersion, hasHardwareVendor and hasHardwareVendor properties). Moreover, a device has a status (hasStatus mandatory property) that can assume one of the values “Removed”, “Offline”, “Online”, “Processing”, “NotInitialized”, or “NotConfigured”. Optionally, the reason of the current device status can be defined using the hasStatusDetail property, which can assume fixed values, such as “Connecting”, “Initializing”, or “DeviceBroken”, among others. A device supports zero or more functions, which are described by the Function class.

A function is an atomic functional entity that characterizes a device. A function is registered in the OSGi service registry. There are 8 functions defined by OSGi, namely Alarm, BooleanControl, BooleanSensor, KeyPad, Meter, MultiLevelControl, MultiLevelSensor and WakeUp. The ontology also defines several function types (FunctionType class), such as Light, Occupancy and Temperature, which further specifies a certain function. For example, one can have a temperature sensor or an occupancy sensor represented by a BooleanSensor function with Temperature or Occupancy function type, respectively. Each function provides a set of operations and properties (hasPropertyName and hasOperationName properties). For example, the Meter function has an operation “resetTotal” and two properties, namely “current” which contains the current consumption, and “total” which contains the total consumption measured since the last call of the “resetTotal” operation or the device initial run. The ontology also defines metadata about function's operations (OperationMetadata class) and function's properties (PropertyMetadata class). Finally, the ontology defines units of measure in the UnitOfMeasure class.

Observations

  • The ontology defines the status of a device (Status class), but not the status transitions to go from one state to another, namely the dynamic behaviour of the device, which is represented by state diagrams in the OSGi specification.
  • Operations and properties that correspond to a certain function are currently defined as hasPropertyName and hasOperationName properties. Eventually, one could extend the ontology by defining the Operation and Property classes under which those can be further detailed.
  • The ontology includes some example units under the UnitOfMeasure class, but more units should to be added for completeness according to the OSGi DAL specification.
  • Events are also part of the OSGi specification, but they are out of scope for our study. However, the ontology could be extended by defining a FunctionEvent class and its corresponding properties.