So I just stumbled accross a great set of projects I didn’t even know about.
The most visible is http://www.openstreetmap.org/ , a very nice free mapping system ala Google Maps or Yahoo Maps etc, but with all the data user-contributed and open access. (it doesn’t have driving directions though). It’s out of the UK, but had pretty complete street maps for Baltimore MD, at least I didn’t check more.
But that’s not what got me excited. What got me excited is http://www.geonames.org/, an open access gazetteer/geocoder/etc. Check it out, enter a place name, get lattitude and longtitude. Also in their db is hieararchical relationships between place names (ie, topopnyms) (locations in cities in states in countries), alternate language names for a place, and a bunch more.
And they’ve got a great set of APIs, and also their entire dataset is freely downloadable if you need to do something the API is incapable of. Enjoy the open access!
This is a great additional option to commercial companies geocoding APIs, like Yahoo and Google.
It’s got a pretty good free text query that determines ranked matching places–that is, place name geocoding. As you can guess, I immediately tried it out with a few LCSH geographic headings. It works pretty well, although not perfectly.
Remove punctuation from “Detroit (Mich.)” turning into “Detroit Mich”, and the first hit is exactly what you want. “Illinois and Michigan Canal”? It’s in there, man! And is matched by that string. Ah, but “Illinois and Michigan Canal (Ill.)”, another heading for the same place in my catalog does not hit, not even if you remove the punctuation, not even if you change our weird “Ill.” abbreviation to the postal code IL. So maybe a good heuristic is to remove the parenthetical qualifier and try again if at first you don’t succeed.
So anyhow, I can imagine all sorts of cool interfaces we can do with geocoded LCSH (and possibly other place vocabularies, if we have them). In the “place” facet of your fancy facetted search, have a button to show all the places on a map. But wait, there’s more! Let the user draw a bounding box on the map to limit the search to just the places within it. We could do that! And lots more.
I wonder if Ed Summers would feel like using the geonames.org db to add lattitude and longitude to all of the LCSH geographic terms in his SKOS vocabulary? It’s do-able. And would be SUPER cool.
One frustrating thing for me in general is that I can think of all sorts of cool experimental features, but we don’t even have the basics in place yet. I can’t add that to my “cool new facetted discovery tool” until I _have_ a cool new facetted discovery tool. We’ve got to catch up to “barely decent what is expected in 2008” before we can add actual forward-looking things. This was a frustrating with my Umlaut link resolver too–I did spend a lot of time getting it up and running as a really good link resolver platform, but it doesn’t have very many really forward looking features yet. But it’s a great platform for them, it should be easy to add them now that the infrastructure is there—but I don’t have the time, I’m busy getting the next set of services (metasearch) up to “barely decent what is expected in 2008”. Although for Umlaut, I’m hoping Jason Ronallo, who is doing an internship for his school developing Umlaut this summer, can crank out some impressive stuff.