Due to the fact that the W3C has
published dictionaries and
ontologies of geospatial data, I want to dwell on this in more detail.
GML for starters
Geography Markup Language (GML) is an XML dictionary defined by the Open Geospatial Consortium (OGC) for describing geographic data. One of the main features is integration with other XML dictionaries.
Standards
')
The OGC World Volunteer Organization has organized the GML specification. During the development of GML, ISO TC 211 was created to link ISO and OGC standardization work. GML is now expected to be released as a worldwide standard (within ISO 19136).
GML is an XML data dictionary for GeoWeb infrastructure, giving devices connected to the Internet access to geographic information, such as traffic conditions or bank addresses.
GML model
Initially, GML was based on RDF, but later XML Schema was provided to simplify the integration and transfer of various geographic data into GML. The implementation of the XML schema allowed us to create a more perfect and powerful structure of the language itself.
GML has a set of primitives that is used to create schemas, this set includes:
- Properties
- Geometry
- Coordinate reference system
- Time
- Dynamic features
- Layers
- Units
- Rules for describing map styles
Profiles
Profiles in GML are clear rules for the expression of a document, mainly used to "adopt" GML in other languages, such as RSS.
These profiles are included in the specification and offered for public use.
- Point profile (for programs using dot construction, but not using GML dictionaries completely)
- Simple properties (for using GML in vector data)
- Coatings
- Topology
- Observations
- Variable objects (for realtime changing data)
- No support for dynamic parameters
This profile is one of the most complete and allows you to solve a large number of real-life tasks.
- GMLJP2000 (GML for Jepeg 2000)
- Profile for RSS
The specification suggests the possibility of building user profiles to use the necessary GML parameters.
Application scheme
GML has an interesting feature. Sphere of Interest. For example, an application for tourism will receive data on tourist sites (mountains, roads, hotels, attractions, etc.) and will not receive, for example, business data.
KML
KML, made popular by Google, is an addition to GML. GML only describes geographic data, while KML is responsible for displaying it, so KML can carry GML data. However, GML display properties can be configured without KML.
Geometry
Geometry in GML has these types of data.
Geometrically, GML and RML are identical.
GeoRSS
The list of ontologies GeoOWL includes an interesting (although IMHO useless) format GeoRSS is a way to transfer geo-data to RSS (more precisely, the format is intended for Atom 1.0, RSS 2.0, RSS 1.0, but it can be used in other non-RSS XML formats). The language has two options GeoRSS-Simple and GeoRSS-GML.
They differ in recording forms. GeoRSS-GML simply adds GML to RSS, and Sipmle has its own simplified form of recording.
for example
Simple
<georss: point> 45.256 -71.92 </ georss: point>
GML
<georss: where>
<gml: Point>
<gml: pos> 45.256 -71.92 </ gml: pos>
</ gml: Point>
</ georss: where>
An example of the finished document GeoRSS
Simple (Atom)
<feed xmlns = "http://www.w3.org/2005/Atom"
xmlns: georss = "http://www.georss.org/georss">
<title> scribble </ title>
<id> http://example.com/atom </ id>
<author> <name> Christopher Schmidt </ name> </ author>
<entry>
<id> http://example.com/19.atom </ id>
<link href = "http://example.com/19.html" />
<title> Feature # 19 </ title>
<content type = "html"> Some content. </ content>
<georss: line>
23.1811523438 -159.609375
22.5 -161.564941406
20.654296875 -160.422363281
18.4350585938 -156.247558594
18.3471679688 -154.731445312
19.951171875 -153.588867188
21.8188476562 -155.983886719
23.02734375 -158.994140625
23.0932617188 -159.631347656
</ georss: line>
</ entry>
</ feed>
GML RSS (time reference)
<item>
<title> FLIGHT 1003 </ title>
<link> http: // flightdata / ... </ link>
<description> FLIGHT 1003 to BOS </ description>
<guid isPermaLink = "false"> dl1003 </ guid>
<pubDate> Wed, 06 Jun 2007 18:53:36 GMT </ pubDate>
<gml: TimePeriod>
<gml: relatedTime>
<gml: TimePeriod gml: id = "time-0A05000263007CS.0.0.TKF">
<gml: beginPosition> 2006-06-16T07: 45: 00.000Z </ gml: beginPosition>
<gml: endPosition> 2006-06-16T07: 45: 00.000Z </ gml: endPosition>
</ gml: TimePeriod>
</ gml: relatedTime>
<gml: relatedTime>
<gml: TimePeriod gml: id = "time-0A05000263007CS.0.1.ORB">
<gml: beginPosition> 2006-06-16T08: 00: 00.000Z </ gml: beginPosition>
<gml: endPosition> 2006-06-16T09: 00: 00.000Z </ gml: endPosition>
</ gml: TimePeriod>
</ gml: relatedTime>
<gml: relatedTime>
<gml: TimePeriod gml: id = "time-0A05000263007CS.0.2.LND">
<gml: beginPosition> 2006-06-16T09: 13: 00.000Z </ gml: beginPosition>
<gml: endPosition> 2006-06-16T09: 13: 00.000Z </ gml: endPosition>
</ gml: TimePeriod>
</ gml: relatedTime>
<gml: beginPosition> 2006-06-16T07: 45: 00.000Z </ gml: beginPosition>
<gml: endPosition> 2006-06-16T09: 13: 00.000Z </ gml: endPosition>
</ gml: TimePeriod>
<georss: where>
<gml: LineString>
<gml: pointProperty>
<gml: Point gml: id = "point-0A05000263007CS.0.0.TKF">
<gml: pos srsName = "WGS84 (DD)"> 36.235 -115.03333333333333 </ gml: pos>
</ gml: Point>
</ gml: pointProperty>
<gml: pointProperty>
<gml: Point gml: id = "point-0A05000263007CS.0.1.ORB">
<gml: pos srsName = "WGS84 (DD)"> 37.65356495497155-114.5048399056895 </ gml: pos>
</ gml: Point>
</ gml: pointProperty>
<gml: pointProperty>
<gml: Point gml: id = "point-0A05000263007CS.0.2.LND">
<gml: pos srsName = "WGS84 (DD)"> 36.235 -115.03333333333333 </ gml: pos>
</ gml: Point>
</ gml: pointProperty>
</ gml: LineString>
</ georss: where>
</ item>