Quality information integration into 52north's Sensor Observation Service (SOS)

Overview

Each O&M observation contains an optional series of quality elements. The content of these quality information is implemented according to the ISO specifications 19113, 19114 and 19115. There are multiple quality informations specified. We decided to support at first only a subset of these quality types and within these quality types only the mandatory elements. The following quality types are supported by the 52north's Sensor Observation Service:

  • gmd:DQ_CompletenessCommission: excess data present in a dataset
  • gmd:DQ_CompletenessOmission: data absent from a dataset.
  • gmd:DQ_QuantitativeAttributeAccuracy: accuracy of quantitative attributes
  • gmd:DQ_NonQuantitativeAttributeAccuracy: correctness of non-quantitative attributes

The only mandatory element for each quality type is the gmd:result element. This element must contain either an gmd:DQ_ConformanceResult or an gmd:DQ_QuantitativeResult. We decided to implement at the moment only the gmd:DQ_QuantitativeResult. These element must have the following subelements:

  • gmd:value: represents the result and the content is of record type, so the result could contain any kind of content.
  • gmd:valueUnit: the unit of the value, which consists of a name and a unit type
  • optional: gmd:valueType: this element could be used to describe the record contained in the value element.

An example of a quality element, which is returned in a Measurement or CategoryObservation is shown below: quality_listing.jpg

In the generic observation the quality values are contained in the value tuples of the result element. An example could be: quality_listing_genObs.jpg

Implementation of quality integration in 52north's SOS

Because every quality information has the same elements and differs only through the type, we decide to use just one class SosQuality to represent the quality information and in this class an enumeration 'QualityType' to indicate the type. Because each observation can have multiple quality informations, each AbstractSosObservation subclass has a collection of SosQuality objects. The picture below shows the UML diagram of the SosQuality class: SosQuality_UML.jpg

Discussion of quality integration

The implementation of quality integration is a first step and should be open for discussion. Very interesting for the programmers are the needs of the users for specific quality types described in the ISO specs or in general. Also every proposal for improvement of code, datamodel, or conceptual design is very appreciated! Feel free to use the 52north's SWE mailing list to comment on the implementation!

Datamodel for SOS database

The picture below shows the model of the 'quality' table:

SosQuality_ERM.jpg

In our SOS standard datamodel, we have created a new table 'quality', which contains the elements:
  • 'quality_value': value of the quality information
  • 'quality_value_type': type of the record, in which the quality value is returned
  • 'quality_value_unit': unit of the quality value
  • 'quality_value_unit_type': unit type of the quality value
  • 'quality_type': type of the quality. According to the enumeration 'QualityType' the value has to be either 'completenessComission', 'completenessOmission', 'quantAttributeAccuracy' or 'nonQuantAttributeAccuracy'

-- ChristophStasch - 16 May 2007
Topic attachments
I Attachment Action Size Date Who Comment
SosQuality_ERM.jpgjpg SosQuality_ERM.jpg manage 10 K 16 May 2007 - 11:03 ChristophStasch  
SosQuality_UML.jpgjpg SosQuality_UML.jpg manage 17 K 16 May 2007 - 11:04 ChristophStasch  
quality_listing.jpgjpg quality_listing.jpg manage 19 K 16 May 2007 - 10:43 ChristophStasch  
quality_listing_genObs.jpgjpg quality_listing_genObs.jpg manage 31 K 16 May 2007 - 10:43 ChristophStasch  
Topic revision: r2 - 16 May 2007, ChristophStasch
Legal Notice | Privacy Statement


This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback