Sensing
Pervasive computing applications rely on sensor readings to provide information regarding entities within the environment. These sensors can range from bluetooth or ubisense location sensors to temperature sensors.
It is important that each of these sensors be accessible seamlessly. The ontonym ontologies allow for sensors and the observations they make to be defined in a standard way. To do this, two ontologies are created for each sensor. The first is a description of the sensor and its capabilities. The second describes the observation made by a specific sensor of that type.
Take for example, a bluetooth sensor .
Bluetooth Sensor
A Bluetooth sensor has the following characteristics:
- Frequency: How often a scan is performed.
- Coverage: What location it represents. In this case, the coverage is a 10 metres from the location of the scanner.
- Running On: The URI of the physical device the sensor is running on.
- Location: A bluetoooth sensor must have a location from which the coverage is derived.
Here is an example of a bluetooth sensor, running on a device in Bob’s office.
:exampleBluetoothSensor rdf:type sensor:Sensor ;
sensor:coverage :sensorCoverage ;
sensor:frequency :sensorFrequency ;
sensor:runningOn sensingDevice:exampleSensingDevice
location:locatedAt :sensorlocation .
:sensorCoverage rdf:type location:CentredLocation ;
location:radius "10"^^xsd:double ;
location:baseLocation :sensorlocation .
:sensorFrequency rdf:type time:DurationDescription ;
time:seconds "20"^^xsd:int .
:sensorlocation rdf:type location:Coordinate ;
location:z "1.22"^^xsd:float ;
location:x "15.56"^^xsd:float ;
location:y "8.92"^^xsd:float .
Bluetooth Observation
The second ontology represents the observation made by a sensor of that type. In the case of a bluetooth scanner, an observation contains the following:
- The URI of the bluetooth sensor.
- The MAC address of the sighted device. This corresponds to the MAC address defined in a device ontology. Using the device information, we may infer the location of its owner.
- The time of the sighting.
- The expected rate of change of the observation.
Here is an example of a bluetooth observation made by the above sensor:
(Note: the “105″ at the end allows this observation to be uniquely identified — clearly an integer like this is not adequate, but an integer was chosen for simplicity)
:bluetoothObservation105 sensor:observed :sightedDevice ;
sensor:observedAt :sightingTime ;
sensor:observedBy bluetoothSensor:exampleBluetoothSensor ;
sensor:rateOfChange :expectedRateOfChange .
:sightedDevice rdf:type device:Device ;
device:MACAddress "11:22:33:44:55:66"^^xsd:string .
:expectedRateOfChange time:second "10"^^xsd:duration .
:sightingTime rdf:type time:Instant ;
time:inXSDDateTime "2009-04-10T13:05:00Z"^^xsd:dateTime .
When creating a new bluetooth sensor, the details of the sensor ontology are simply changed to the appropriate values. When a new observation is made by that sensor, the above observation ontology is created, with the appropriate values replaced.
The second sensor we will define is a Ubisense sensor.
Ubisense Sensor
The Ubisense system is a tag-based location tracking system. By wearing a tag around their necks, users can be tracked to within less than a metre within a building.
Similar to the bluetooth sensor, the ubisense system has a frequency. It, however does not specifically have a specific location, as it can be installed over a set of floors within a building. Therefore the coverage is the more appropriate description of the sensors capability.
:FourthFloorCASL rdf:type location:SymbolicRepresentation .
:ThirdFloorCASL rdf:type location:SymbolicRepresentation .
:sensorCoverage sensor:coverage :FourthFloorCASL , :ThirdFloorCASL .
:sensorFrequency rdf:type time:DurationDescription ;
time:seconds "1"^^xsd:int .
:ubisenseSensor rdf:type sensor:Sensor ;
sensor:coverage :sensorCoverage ;
sensor:frequency :sensorFrequency .
In a similar manner to the bluetooth scanner, every observation creates an observation ontology. This is very similar to the bluetooth observation, but with a different type of device being observed.
:ubisenseObservation1102 sensor:observed :sightedDevice ;
sensor:observedAt :sightingTime ;
sensor:rateOfChange :expectedRateOfChange ;
sensor:observedBy ubisenseSensor:ubisenseSensor .
:observedLocation rdf:type location:Coordinate ;
location:z "1.12"^^xsd:double ;
location:x "23.34"^^xsd:double ;
location:y "4.66"^^xsd:double .
:expectedRateOfChange time:second "1"^^xsd:duration .
:sightedDevice rdf:type device:LocatableTag ;
device:tagIdentifier "016:000:004:187"^^xsd:string ;
location:locatedAt :observedLocation .
:sightingTime rdf:type time:Instant ;
time:inXSDDateTime "2009-04-10T15:05:00Z"^^xsd:dateTime .
Here a ubisense tag is observed by the ubisense sensor. The tag is assigned a location defined in observedLocation. It is important to note that the device has a location, not the observation.
No Comments Yet