This is an introduction (to begin with) to GML for RSS Geeks and other web developers. The objective is to take the fear and loathing of that big GML specification and make it something friendly and accessible.
To begin with – why was GML created ?
GML was created to enable geographic transactions on the Internet, that is to support the dynamic sharing of geographic information – in effect to lay the foundation for a Geo-Web.
What makes GML so complex? Why is the specification so long?
The model behind GML is not complex. It is largely borrowed from RDF. GML provides, effectively, an XML encoding of extended Entity-Relationship diagrams (meaning we have entities, relationships between them, and we allow for inheritance between entities).
The GML specification is long because (at least since GML 3.) it describes a lot of primitive objects that are useful in building a geographic vocabulary.
What sort of basic or primitive objects does GML provide?
The list is now fairly long. It includes:
various types of geometries (we will come back to that in a minute)
coordinate reference systems
coverages (that includes geographic images)
units of measure
styles for map presentation.
What is a feature in GML?
A feature is one of the key building blocks in GML. Features are meaningful entities in the user's world. GML does not try to define what a road is or what a river is. These are features in GML. GML provides the framework for users to create there own feature definitions.
Why is GML written in XML Schema?
It may come as a surprise but GML 1.0 did use RDF (not XML Schema). We switched to XML Schema in GML version 1.0 – because we thought that semantic description could be separated from object description and that XML Schema could better connect to the world of geographic databases. We kept many features from RDF however in the design of GML.
Can GML be written in RDF?
While that would not currently be normative – I would argue YES. GML provides core objects and rules for building application domain objects. Currently these rules and core objects are expressed in XML Schema – but they COULD be translated to RDF.
How do users build application vocabularies?
My application area is tourism. We are interested in objects like monuments, places of interest, museums, road exits, viewpoints etc. Using GML you would create an Application Schema that "describes" these objects for your purposes. This means you create in the GML Application Schema using GML core objects and using the rules for creating application schemas.
Are Aplication Schemas Unique to GML?
No. Other markup languages for geography, such as Google KML, use schema constructs also. The main difference is that GML does not invent a new schema language as KML does, but rather uses an existing one, namely XML Schema.