Poster by: Pavel Golodoniuc, CSIRO; Nick Ardlie, formerly of Geoscience Australia; and Simon Cox, CSIRO.
Geographic information is ubiquitous, so the use of standards is desirable in order to enable interoperability between applications and systems. The primary standardization bodies are ISO Technical Committee 211 (ISO/TC 211), which focuses mainly on abstract standards including information models for cross-domain concerns, and the Open Geospatial Consortium (OGC), which works on implementations, including Geography Markup Language (GML). GML does not try to implement a generalized language usable as-is by all application domains,
but provides a set of cross-domain XML components to serve as a framework for the implementation of specialized languages. GML is based on the models provided in a number of ISO/TC 211 standards, such that aspects that are common across domains are implemented in a common way. GML is an XML grammar written in W3C XML Schema (WXS), so its use in a so-called “Application Schema” is through the standard <import> and <extension> mechanisms provided by WXS.
However, developing an Application Schema that is to be implemented using GML is complex. The ISO/TC 211 process requires that the information model is developed and formalized in UML (Class and Package diagrams) following a strict UML profile (patterns, stereotypes, tagged values) and with dependencies on ISO packages for any common elements (e.g. geometry, time, spatial functions). The UML model is then converted to an XML schema according to a set of rules defined in ISO 19136. FullMoon was developed initially to automate this XML Schema generation.
FullMoon is a framework for processing and transforming XML documents. It was designed for processing large UML models using XML mapping rules defined in ISO 19118, 19136 and 19139. FullMoon processes the XML Metadata Interchange (XMI) representation of a model, generating XML schemas (and other views). Mapping rules are implemented as XQuery scripts. Models may be large, and their XMI representation is highly verbose, so using traditional DOM and SAX parsers can be problematic. Efficient performance is achieved using an
XML-DB engine to cache the model.
GML specifies XML encodings of conceptual classes defined in the ISO 19100 series, but application schemas may also use externally governed packages from other sources, which may have existing canonical WXS representations. FullMoon supports this through a register for the application schema (which associates each externally governed package with an XML namespace and schema location) and a mapping table for each package (which associates each UML class with its representation as WXS element declarations and type definitions). The registers and tables are accessed by URI, so may be web-hosted at authoritative locations.
The FullMoon framework is a “rules-driven” application that facilitates introducing, maintaining and enhancing of existent rules within rule sets. XQuery scripts implement logical rules used to transform input model into other XML formats. Rulesets have been implemented for (1) XML Schema (2) HTML documentation. A ruleset has also been developed to test a model’s validity and conformity to the profile. The use of rule sets makes the FullMoon framework flexible to upgrade and easy to maintenance, allowing to introduce new conformance tests and/or processing rules.