XOMGL

From HandWiki

XOMGL (eXtensible Open Municipal Geodata Language) is an XML-based open standard for the exchange of large amounts of government data between a municipal agency and regular citizens and developers creating web-based mapping applications. It is part of the OMG Standard, which seeks to promote the free flow of information between government agencies and citizens by establishing a common set of technical standards for organizing and sharing public data.[1]

Types of data

The XOMGL format is good for organizing and distributing digitally many types of government data, including crime, building permits, restaurant health reviews, pollution sources, political contributions, property values, traffic accidents, sex offenders, and historic sites.

Fields

It has just enough required fields to allow easy updates and the plotting of data on online maps. It also has enough optional data to allow categorization, filtering, date ranges, images, external links, and latitude and longitude. It provides all of this without overwhelming the end user, providing too much irrelevant data, and displays in an easy to read and manage format.

Usage examples

A government agency would make data available on its website with either static links to files in this format, or queryable versions that allow users to filter the data by last updated date, date range, category, etc.

The XML and JSON versions can be used to automate data importing into web-based software applications, while the CSV version allows regular people to browse, filter, sort, edit, and re-purpose the information with only spreadsheet software knowledge.

Formats vs. Standards

Note there is a distinction between data standards and data formats. A data format like KML, GeoRSS, JSON, XML, CSV, and others describe how to format data to make it machine readable by specific applications. A data standard defines which fields/columns are needed to make raw data usable in these formats. Information in the XOMGL standard can be machine-output to any of the above listed data formats.[2]

Example XOMGL format

<?xml version="1.0" encoding="utf-8"?>
<dataset name=""><!-- * name:string - name of the dataset -->
	<metadata><!-- * metadata about the dataset -->
		<sourcename><!-- * string: name of the source of the data --></sourcename> 
		<sourceurl><!-- string: full path to the page that has the source data --></sourceurl> 
		<sourcecity><!-- string: name of the originating city --></sourcecity> 
		<sourcestateid><!-- int: id of the originating state --></sourcestateid> 
		<sourcecountryid><!-- int: id of the originating country --></sourcecountryid> 
		<description><!-- string: text description of source of the data --></description> 
		<updatefrequency><!-- string: frequency of data updates, daily, monthly, weekly, etc --></updatefrequency> 
		<lastupdated><!-- datetime: stamp of last update to this dataset --></lastupdated> 
		<startdatetime><!-- datetime: earliest date of data coverage --></startdatetime> 
		<enddatetime><!-- datetime: latest date of data coverage --></enddatetime> 
	</metadata>
	<locationdata><!-- * location-based information -->
		<centercity><!-- string: name of the city of the data center --></centercity>
		<centerstateid><!-- int: id of the state of the data center --></centerstateid>
		<centercountryid><!-- int: id of the country of the data center --></centercountryid>
		<centerlatitude><!-- float: latitude of center --></centerlatitude>
		<centerlongitude><!-- float: longitude of center --></centerlongitude>
		<coveragecity><!-- string: city of the dataset coverage area. Leave out if coverage area is greater --></coveragecity>
		<coveragestateid><!-- int: id of the state of the dataset coverage area. Leave out if coverage area is greater --></coveragestateid>
		<coveragecountryid><!-- * int: id of the country of the dataset coverage area. --></coveragecountryid>
		<minlatitude><!-- float: based on data coverage area --></minlatitude>
		<maxlatitude><!-- float: based on data coverage area --></maxlatitude>
		<minlongitude><!-- float: based on data coverage area --></minlongitude>
		<maxlongitude><!-- float: based on data coverage area --></maxlongitude>
	</locationdata>
	<itemdata> <!-- data concerning all items -->
		<externalurl><!-- full path to more info with [ExternalID] in place of item->id in a url --></externalurl>
	</itemdata>
	<item> <!-- * one item of data. there can be many of these -->
		<id><!-- * string: unique id of this item based on internal system id. used for updating data later --></id>
		<name><!-- * string: name of the item --></name>
		<description><!-- string: html formatted or plain text full description of item --></description>
		<categories><!-- one or more categories the item can be classified as. id links to other xml formatted data that shows category name-->
			<categoryid><!-- int: id of categorization of item. --></categoryid>
		</categories>
		<location><!-- string: full text string of location. this can be used instead of address, city, state, zip --></location>
		<address><!-- string: street address with house number --></address>
		<address2><!-- string: more detailed street address info or location description --></address2>
		<city><!-- string: city of item location --></city>
		<state><!-- string: state of item location --></state>
		<zip><!-- string: zip code of item location --></zip>
		<date><!-- date: date associated with item --></date>
		<latitude><!-- float: latitude of item location --></latitude>
		<longitude><!-- float: longitude of item location --></longitude>
		<fullurl><!-- string: full path to more information about this item --></fullurl>
		<imagepath><!-- string: full path to location of image on a server --></imagepath>
		<detaillink><!-- boolean: if true, will us item->id to link to another XML dataset with full details --></detaillink>
	</item>
</dataset>

References

External links