07 Jul 2008 - Cascading and Federated WFS and the Concept of Geolinking
As many people have pointed out, especially here in Canada, there is a great deal of geographic or geographically related information which does not reside in spatial or GIS databases. Nonetheless there is the need to link this information with associated geospatial entities (e.g. administrative or jurisdictional boundaries) for the purposes of spatial analysis and map display. In fact, a geolinking service has been proposed at the Open Geospatial Consortium (OGC), for just this purpose.
An apparently unrelated issue is that modeling of geographic features and their consequent support in a Web Feature Service (WFS). One organization might for example, model a road as a generic “RoadWay” and define specific subtypes for “Street”, “Highway”, “Expressway”, while another might simply add a classification attribute to the “RoadWay”. Clearly the two models are not equivalent, but they are very similar.
Another apparently unrelated issue is that of traditional conflation. In this case you may have two different descriptions of a building, with different geometric and non-spatial properties. In conflating these two descriptions, you might like to use the geometry from one description and the spatial and non-spatial properties of the other.
How are these three issues – geolinking, model representation and conflation related to each other? And what has this got to do with the WFS (Web Feature Service)?
For a quick review, a WFS is a web service that provides transactional (update/delete/insert, request) to geospatial data using XML messages in a manner that is vendor neutral and that hides the underlying data store (e.g. storage technology, schemas etc). Most WFS have been implemented as client-server architectures, and many even employ RPC (Remote Procedure Call), but this is not really required. REST-based architectures are not inconsistent with the WFS specification.
Let’s start with the idea of geolinking. To make matters more concrete, we assume that we have two databases, one a relational database containing population data (birth rates, mortality rates, and current populations for a variety of jurisdictional entities (e.g. cities, municipalities, provinces, counties, states, etc.). The schema of this data base is as follows:
| Jurisdiction | Jurisdiction Type |
Birth Rate (births/year) |
Mortality (deaths/year) |
Population (current) |
A sample fragment from the database table might then look like:
| Jurisdiction |
Jurisdiction Type |
Birth Rate (births/year) |
Mortality (deaths/year) |
Population (current) |
| Niagara | County | 10.62 | 6.81 | |
| Welland | Municipality | 10.7 | 6.9 | 51,275 |
Completely separate from this database (i.e. located in a different data store and likely managed by a different organization) is a database that contains the boundaries or extents of the jurisdictional entities for example the Province of Ontario. (This is the Canadian Province containing Niagara and Welland). Assume that this database provides the spatial extent, expressed as a polygon, for all of the jurisdictional entities in Canada, and that there are features defined for Municipalities, Counties and Provinces, with each instance of these feature types having an ID value (e.g. type = Municipality, ID=”Welland”).
Now let’s proceed to link these two databases together – to geolink them – which is to associate the attributes in the relational database with the geometry in the spatial database.
To begin with, take a feature perspective on the relational database, and implicitly assert features, with types defined by the values of the enumerated attribute “JurisdictionType”, and with local database resource identifier “Jurisdiction”. Such a mapping could readily be supported by installing a WFS on the relation database and suitably configuring the WFS schema mapping (see http://www.galdosinc.com/archives/525 ). Note that this will give rise to a particularly simple GML schema representing the demographic data.
Now let’s also install a WFS onto the geospatial database as well, so in both cases we can request features by ID and other properties, using the WFS request protocol.
To link these two datasets there needs to be a special kind of cascading WFS that can perform the needed schema mapping, and effect the desired geolinking. This special WFS presents the usual WFS interfaces to the rest of the world, namely GetCapabilities, DescribeFeatureType, and GetFeature operations. It then translates these operations into further operations against the two WFS installed above. A GetCapabilities operation to this cascading WFS would result in GetCapabilities requests to each of the WFS’, with the Cascading WFS using its mapping rules to create a single Capabilities document response. For example, it could return a single list of feature types, namely Province, County, and Municipality. If we then requested a DescribeFeatureType (Municipality) it would return a single application schema for Municipality that combined the spatial information from one WFS and the attribute information from the other (Mortality, Birth Rate etc), by doing a “join” on the feature ID. To generate a map of Ontario showing the birth rate by county, a client would make a request to the Cascading WFS, which would in turn translate this request into queries to the other WFS’ and effect the required join operation on the returned data.
Such a specialized cascading or federated WFS can also deal with the issue of variant models for geographic features. Consider two spatial databases for roads as discussed earlier. Suppose we now deploy a Cascading WFS which exposes a different road model, namely one with a generic notion of a NavigablePath and with subtypes for Road, Railway, and FerryRoute. For the Roads subtype assume also a “type attribute” specifying the kinds of Roads, as an enumerated value, namely (Road, Street, Boulevard, Highway, Freeway, and Tollway. The Cascading WFS is then configured to map its feature types to the feature types of the cascaded WFS’. For example, (Road, type=”Road, Street, Boulevard” is mapped to the feature type “Street” of one database, and to (“RoadWay”, classification=”Street”), in the other. When a client issues a request to the Cascading WFS, the WFS uses its mapping rules to generate queries to the cascaded WFS’, and then transforms and integrates the responses. With this approach, different models for the road system can be handled using an extended Cascading WFS.
By now it should be apparent, that conflation is also something that “could” be handled by a suitably configured Cascading WFS. Of course this discussion has glossed over issues of performance, and the complexity of the mappings involved, some of which clearly will require numerical, string or even geometric transformations. Nonetheless, it makes sense to think of these three different issues as related to particular Cascading WFS implementations, each performing data translation in addition to cascading of requests, and then to explore the needed types of translations. This will come in a future blog.
No Comments | Leave a comment»
Comments
No comments yet.
Leave a comment
Blog Entries:
07 Oct 2008 - From the Age of Aerospace to… ?02 Oct 2008 - KML, GML and REST
16 Sep 2008 - GeoPresence
08 Sep 2008 - GeoEquilibria-There is no surplus in Nature
29 Aug 2008 - Geographic Entity Registries
01 Aug 2008 - GeoWeb and the State of the World
23 Jul 2008 - Virtual Globes as Essential Services?
07 Jul 2008 - Cascading and Federated WFS and the Concept of Geolinking
30 Jun 2008 - What is an SDI?
16 Jun 2008 - WFS - Schema Mapping is Key
05 Jun 2008 - KML Support
08 May 2008 - Looking ahead to GeoWeb 2009
21 Apr 2008 - Spatial Infrastructures, IFC & Collaborative Engineering
14 Apr 2008 - KML released as an OGC Specification
02 Apr 2008 - BIM/CAD/GIS Integration
13 Mar 2008 - Structuralism and Data Exchange
05 Mar 2008 - Building the GeoWeb in your own backyard
03 Mar 2008 - Davos of Geo in Vancouver
28 Feb 2008 - What are coordinates?
19 Feb 2008 - Does the invisible hand always get it right?
31 Jan 2008 - “Design for Test” in the GeoWeb
23 Jan 2008 - GeoWeb Local - GML in Local Government
15 Jan 2008 - GML Core and Extensions
04 Jan 2008 - GeoWeb 3D
21 Dec 2007 - What are the key issues for geographic information technology?
26 Nov 2007 - GML in the Back Office
19 Nov 2007 - CAD- BIM-GIS-Games Integration
07 Nov 2007 - What’s in a name? Searching for the right words
23 Aug 2007 - KML Placemarks as Observations
29 Jun 2007 - Where GML was right .. and wrong
17 May 2007 - From GML 1.0 onwards - a brief history
17 May 2007 - GML and Database Interoperability
10 May 2007 - GeoWeb Manifesto
09 May 2007 - Meltdown and the Maze - Toward a Real Time Geography
08 May 2007 - GML, KML, Sensor Data, Imagery
20 Apr 2007 - Transporting GML in KML
21 Mar 2007 - The Architecture of the GeoWeb
14 Feb 2007 - From Interoperability to Infrastructure
14 Feb 2007 - GML without Geometry
18 Dec 2006 - ebRIM gets the nod at the OGC
06 Oct 2006 - In praise of complexity
05 Oct 2006 - Infrastructure - the next step past interoperability
12 Jun 2006 - GML and ebRIM
21 May 2006 - Features, Observations and Authorization
21 Apr 2006 - Transfer and Transaction Models
12 Apr 2006 - Feature Catalogues/Dictionaries, GML and RDF/S
10 Apr 2006 - Genus Loci
04 Apr 2006 - GeoWeb and Survival Part II - Towards Environmental Security
04 Apr 2006 - GeoWeb and Survival
17 Mar 2006 - Schemas, Interoperability and RDBMS
14 Mar 2006 - SDI Concepts
05 Mar 2006 - GML Complexity Re-visited
05 Mar 2006 - Observations are for more than sensor data
05 Mar 2006 - Application Schemas Drive Profiles
25 Feb 2006 - The problem with XML
15 Feb 2006 - The importance of profiles
08 Feb 2006 - One person’s metadata is another person’s …
07 Feb 2006 - From Soup to Nuts
02 Feb 2006 - GeoRSS - GML in news feeds
31 Jan 2006 - Performance and the GeoWeb
27 Jan 2006 - Remote API’S, Web Services and the GeoWeb
19 Jan 2006 - GeoWeb 2006 - GeoWeb Grows Up
09 Jan 2006 - Dealing with time in GML
23 Dec 2005 - Dynamic
14 Dec 2005 - GML in the cockpit
01 Dec 2005 - SDI - What is it really?
25 Nov 2005 - GML is the same for all applications
25 Nov 2005 - Schemas and Profiles - whats the difference?
22 Nov 2005 - Schemas - why the big deal?
15 Nov 2005 - GML for Geographic Imagery
13 Nov 2005 - GML, and KML - Why the fuss?
10 Nov 2005 - Is GML a format?
09 Nov 2005 - Embedding GML in “foreign” grammars
03 Nov 2005 - Authentication and Access Control
03 Nov 2005 - OnStar in the era of the GeoWeb
03 Nov 2005 - Do we need to encode location in news feeds?
03 Nov 2005 - gMedia - Towards Geographically Aware Media
03 Nov 2005 - Where are we going?
02 Nov 2005 - Sample XSLT Style Sheet
02 Nov 2005 - Sample KML Output
02 Nov 2005 - Sample GML Data File
02 Nov 2005 - Styling GML to KML - XSLT
02 Nov 2005 - Simple Geometry Schema
01 Nov 2005 - Simple GML Geometry
18 Oct 2005 - Simple GML Geometries
18 Oct 2005 - Styling GML to KML for Visualization
18 Oct 2005 - Some Simple GML Profiles
17 Oct 2005 - Embedding GML in non-GML grammars
17 Oct 2005 - Geotags - the answer to everything?
20 Sep 2005 - GeoWeb 2006
20 Sep 2005 - GML Observations and Features
14 Sep 2005 - What is KML?
07 Sep 2005 - Time in GML
07 Sep 2005 - GML Observations
07 Sep 2005 - GML and KML Syntax
07 Sep 2005 - GeoWeb - Part II - GML and KML
07 Sep 2005 - GI Markup - Part I - Feeding the web with Geographic Information
06 Sep 2005 - GML Complexity
06 Sep 2005 - GML “Sucks”
24 Aug 2005 - Web Feeds and Geographic Information
23 Aug 2005 - What is the Geo-Web?
23 Aug 2005 - IS WGS84 Enough
04 Aug 2005 - Coordinates in GML
03 Aug 2005 - GML Profiles
03 Aug 2005 - GML and Coordinate Systems
03 Aug 2005 - Information Sources
03 Aug 2005 - Features and Geometry Properties
03 Aug 2005 - GML Geometries
03 Aug 2005 - GML FAQ for RSS Geeks and others



