ProcessModel Atomic Non-Physical Process

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