I’ve been working with Jeroen De Dauw, a student in the Google Summer of Code, on creating a full-scale mapping interface for Semantic MediaWiki for a few months now; by which I mean that he’s done the actual work, and I’ve been around to answer questions and try to bask in the glory. Anyway, I think mapping is crucial for any generic data project, because so much information that we need on a daily basis is location-based, whether it’s information about businesses, people, events, etc. There’s already an extension that handles all this stuff - Semantic Google Maps - but it’s incomplete, first because it relies on Google Maps, which not everyone can use, second because it doesn’t support the incredible Google Earth, and third because it can’t handle displaying locations on non-geographic surfaces (more on that later). Another extension, Semantic Layers, also exists, which uses the open-source OpenLayers mapping service, but it’s had some problems since the beginning that were never fully resolved,
Anyway, yesterday and the day before, Jeroen released the two extensions that he’s been working on, that are meant to provide the generic solution for all of SMW’s mapping needs: they are the Maps and Semantic Maps extensions. Here’s how the two work together: Maps handles the display of individual points, along with geocoding (determining the coordinates of a specific address); and Semantic Maps handles the display of multiple points on a map, defined via Semantic MediaWiki, as well as providing maps as Semantic Forms form inputs. Both support the same mapping services, currently three: Google Maps, Yahoo! Maps and OpenLayers.
Jeroen has been keeping track of all the progress on his blog, which has a lot of information on all of this stuff, including some great screenshots, including this rather breathtaking one of Google Earth being used as a form input.
There’s still a month left in the Google Summer of Code, and Jeroen and I are excited about the extra cushion of time that provides, because it means that there’s an opportunity to add extra features to the system; like being able to show a clickable list of points near each map, so that maps can work more like this; and being able to use OpenLayers to display locations on non-geographic surfaces, such as images. That second one opens up a lot of possibilities, because it allows for things like annotated anatomical charts (see here for an example, from the Semantic Layers wiki) and displaying points on floorplans (see here for an example from the same wiki). For the latter, the example provided is for a video game, although you could easily imagine the same concept being used for more practical purposes, such as displaying events at a conference, or… showing the locations of enemy combatants in a building (hey, I’m allowed to fantasize a little, right?).
By a stroke of good timing, on Saturday I’ll actually be speaking at the New York City wiki-conference (basically a smaller-scale version of Wikimania), on the subject of all this mapping stuff; and hopefully being able to do a Steve-Jobs-at-Macworld thing, where I demo a recently unveiled technology to the crowd. Here’s a link to the panel I’ll be on: “Mapping in MediaWiki”. It’s free to attend, if anyone’s interested.