Geocoding is the process of finding associated geographic coordinates (often expressed as latitude and longitude) from other data, such as street addresses, or zip codes (postal codes).

Most geocoding services such as Geonames or the Yahoo PlaceFinder represent everything as a single point – a set of latitude and longitude coordinates. This limits their use for plotting things like long rivers on a map.

Geocoding has traditionally only attempted to represent places

Furthermore, geocoding has traditionally only attempted to represent physical places on a map. This is reasonable enough since it is primarily places that we want to find. However, we wanted to go a step further and place things like Vikings on a map. Although Vikings are not a place, they did inhabit a particular area – primarily Scandinavia.

We created a DBpedia/Geonames/Google Maps mashup that provides geographic coordinates for pretty much any placeable DBPedia term (e.g. there’s not much point geocoding Philosophy).

It works really well for geographic features such as rivers, deserts and fault lines, as well as ancient civilisations and even religions. It doesn’t work so well for things that have associations with lots of places around the globe. Germaine Greer, for example, was born in Australia but emigrated to the UK. This creates a very large area which she relates to, which is not very useful. To solve that problem we had to use a clustering algorithm called DBSCAN, but that’s another post.

We’re currently developing this approach for the BBC’s Learning Development department, who are charged with developing the next generation of classroom tools for the BBC.

Hiring: We are looking for experienced developers