That project is the Howlab Reference Implementation for the OSGi4AMI ontology, which consider suitable devices for being used in ambient intelligence environments, describing its properties and behaviour.
That ontology is implemented by mean of java interfaces, which provide a common framework for definition of devices, which can be used by the AmI applications without taking care of specific implementation, but their functionalities.
The ontology considers several kind of interfaces:
Devices are core interfaces, which define minimal, mandatory, functionalities of the physical devices.
It is defined a base Device, which comprises common characteristics for all devices, regardless their type, such as deviceId or description.
When specialyzing the device, new devices are defined, which inherits the base Device, and introduce new characteristics:
Any object representing a device under the OSGi4AMI ontology, must implement the Device interface, and most likely any of the Sensor, Actuator or SimpleHMI subinterfaces
Core devices define minimal funcionalities, but phisical devices may offer aditional functionalities wich are not mandatory, like the ability of reporting a battery level or automatically refreshing the value meassured by a sensor.
Those characteristics are covered by Clusters, partial interfaces wich define functionalities related with a specialized domain, wich will be used only by those devices offering such capabilities.
Clusters are grouped into device domains (packages):
Any object representing a device under the OSGi4AMI ontology, may implement any cluster interface, modelling its specific behaviour.
Core devices and clusters allow modelling characteristics of devices, but does not define specific device, like a temperature sensor or a door actuator.
The OSGi4AMI ontology proposes reference definitions for specific devices with the Extended Devices interfaces, which inherits appropriate core devices and clusters, and introduce specific functionalities for the device, like getTemperature() for a TemperatureSensor, which redefines the getValue() method at the sensor level.
There are defined extended devices for all the core devices domain:
Any object representing a device under the OSGi4AMI ontology, may implement any extended device, plus desired cluster interfaces not included in the default OSGi4AMI proposal.