S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
10 SensorML XML Encodings and Examples Informative
The primary focus of SensorML is to define processes and processing components associated with the measurement and post-measurement transformation of observations.
All processes share a common set of base elements, whether the process is atomic or composite, physical or non-physical.
ProcessType elements in SensorML are derived from the gml:AbstractFeatureType and thus inherit gml:description and gml:name properties, as well as the gml:id attribute. In
addition, all processes include input, output, and parameter properties, as well as a rich set of metadata. The input, output, and parameter properties take swe:anyData for their
values, providing consistency between process descriptions and descriptions of observations and services throughout the SWE framework.
As discussed in the model section, processes can be classified as atomic processes, which are considered to be indivisible, and composite processes, which consist of a collection of
processes that can be linked together for the purpose of providing desired output. In addition, processes can be classified as physical processes, if the location and physical
interface of these processes are relevant, and non-physical processes, if location and physical interface are irrelevant.
10.1 ProcessModel Atomic Non-Physical Process
The main purpose of the ProcessModel is to provide an atomic, potentially executable process description of processes where physical location and physical interfaces for the
process itself are not important. While ProcessModel provides metadata that is useful for discovery and assistance to humans, the properties that are critical for supporting
execution of the ProcessModel within SensorML-enabled software are the inputs, outputs, parameters, and method properties.
The following example describes the process of calculating wind chill factor from temperature and wind speed. When associated with software implementation or MathML
algorithm description, defined within the method property, it serializes an executable process for deriving higher-level products from low-level sensor observations. This
example has minimal metadata presented and no parameters required.
?xml version=1.0 encoding=UTF-8? sml:SensorML
xmlns:sml =
http:www.opengis.netsensorML1.0 xmlns:swe
= http:www.opengis.netswe1.0
xmlns:gml =
http:www.opengis.netgml xmlns:xlink
= http:www.w3.org1999xlink
xmlns:xsi =
http:www.w3.org2001XMLSchema-instance xsi:schemaLocation
= http:www.opengis.netsensorML1.0
http:schemas.opengis.netsensorML1.0.0sensorML.xsd version
= 1.0
sml:member xlink:arcrole
= urn:ogc:def:role:process
sml:ProcessModel gml:id
= WINDCHILL_PROCESS
-- METADATA SECTION
-- gml:description
Wind chill temperature computation process gml:description
-- INPUTS DEFINITION
-- sml:inputs
sml:InputList sml:input
name =
atmosphericConditions
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
80
S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
swe:DataRecord swe:field
name =
ambient_temperature swe:Quantity
definition =
urn:ogc:def:property:OGC:temperature swe:uom
code =
degF swe:Quantity
swe:field swe:field
name =
wind_speed swe:Quantity
definition =
urn:ogc:def:property:OGC:windSpeed swe:uom
code =
mph swe:Quantity
swe:field swe:DataRecord
sml:input sml:InputList
sml:inputs --
OUTPUTS DEFINITION --
sml:outputs sml:OutputList
sml:output name
= windchill_temperature
swe:Quantity definition
= urn:ogc:def:property:OGC:temperature
swe:uom code
= degF
swe:Quantity sml:output
sml:OutputList sml:outputs
-- METHOD DEFINITION
-- sml:method
xlink:href =
urn:ogc:def:process:WindChill:1.0 sml:ProcessModel
sml:member sml:SensorML
10.1.1 ProcessMethod
The method property within a ProcessModel and a Component, as well provides several important pieces of information for validating and possibly executing individual atomic
processes. The method property takes a ProcessMethod object that provides rules for validating instances of the process, an algorithm to be used for execution of this process
model, and one or more reference implantations of software for on-demand execution of the process.
The algorithm can be defined using the content version the most rigorous of MathML, so that the software is able to generate a new model dynamically. If no MathML is
provided, the software can rely on a local implementation of this method provided by the implementation property of ProcessMethod, or download a particular implementation
adapted to the particular platform and processing framework used. For this last purpose, the ProcessMethod object can also contain a list of approved implementations, which can
include source andor binary code for a specific combination of language, platform and processing framework.
Each ProcessMethod is also identified by a unique URI typically a URN, so that software can relate it to a previously cached method description andor implementation.
A ProcessModel will thus typically use this URI to point to a method defined elsewhere, rather than include the whole definition inline. The software can then decide to download
the whole method definition again, or simply rely on the URI to find a local matching implementation. It is expected that a ProcessMethod will be defined and discoverable
within online registries or other online resources.
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
81
S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
Finally, in order to make sure that the ProcessModel inputs, outputs and parameters are defined according to what is specified in the method, the ProcessMethod rules property
encapsulates a rule set defined by some rule-based language, such as XML RelaxNG or Schematron. This finer grain rule set can be used in addition to the SensorML XML
Schema to further validate a specific ProcessModel as well as to automatically generate new instances of specific processes using the chosen method. Such a rules set should
rigorously define name, definition and unit of measure for each input, output and parameter, as well as any metadata appropriate for that process.
An example of a ProcessMethod instance for the previously provided wind chill ProcessModel is given below.
?xml version=1.0 encoding=UTF-8? sml: ProcessMethod
xmlns:sml =
http:www.opengis.netsensorML1.0 xmlns:swe
= http:www.opengis.netswe1.0
xmlns:gml =
http:www.opengis.netgml xmlns:xlink
= http:www.w3.org1999xlink
xmlns:xsi =
http:www.w3.org2001XMLSchema-instance xsi:schemaLocation
= http:www.opengis.netsensorML1.0
http:schemas.opengis.netsensorML1.0.0process.xsd version
= 1.0
-- Description
-- gml:description
Method defining the Wind Chill Temperature calculation process gml:description
-- Contact
-- sml:contact
xlink:arcrole =
author sml:ResponsibleParty
sml:individualName Alexandre Robin
sml:individualName sml:organizationName
University of Alabama in Huntsville sml:organizationName
sml:positionName Research Scientist
sml:positionName sml:contactInfo
sml:phone sml:voice
256 961-7978 sml:voice
sml:phone sml:address
sml:electronicMailAddress robinnsstc.uah.edu
sml:electronicMailAddress sml:address
sml:contactInfo sml:ResponsibleParty
sml:contact --
Documentation --
sml:documentation xlink:arcrole
= formula
sml:Document gml:description
NWS document giving wind chill temperature formula gml:description
sml:onlineResource xlink:href
= http:www.wrh.noaa.govslcprojectswxcalcwindChill.pdf
sml:Document sml:documentation
-- Rules Set
-- sml:rules
sml:RulesDefinition gml:description
1 input must be ambiant_temperature in degF. 1 input must be wind_speed in mph. 1 output must be windchill_temperature in degF. No parameters
gml:description sml:relaxNG
xlink:href =
http:vast.uah.eduSensorMLprofileprocessWindChill.rng sml:RulesDefinition
sml:rules --
Algorithm --
sml:algorithm sml:AlgorithmDefinition
gml:description Apply following formula: Tc
= 35.74 + 0.6215T - 35.75V0.16 + 0.4275TV0.16
gml:description sml:mathML
xlink:href =
http:vast.uah.eduSensorMLprocessmathWindChill_Algorithm.xml sml:AlgorithmDefinition
Copyright © 2007 Open Geospatial Consortium, Inc. All Rights Reserved.
82
S e n s o r M o d e l
L a n g u a g e O G C
0 7 - 0 0 0
sml:algorithm --
Implementations --
sml:implementation sml:ImplementationCode
language =
java framework
= uah-dpf
version =
1.0 sml:sourceRef
xlink:href =
http:vast.uah.eduSensorMLprocesssrcWindChill_Process.java sml:binaryRef
xlink:href =
http:vast.uah.eduSensorMLprocessbinWindChill_Process.class sml:ImplementationCode
sml:implementation sml:ProcessMethod
A description and example of RelaxNG and MathML is beyond the scope of this document.
10.2 Component Atomic Physical Process