GeoWebDNS is service modeled after DNS and reverse-geocoding. Given a lat/long, what is the URI of the standardized API, protocol, or file for a given service namespace (eg 311 services). The GeoWebDNS servers would be decentralized and redundant, automatically mirroring one-another and propagating out changes like normal DNS servers. All that the client would need to do would be to send the lat/long and request the URI for a given namespace. The server would then have to look at the shapefile that contains that lat/long for that service namespace and return the URI associated with it.
Here's perhaps a basic outline of the work:
So, let's say it's something like:
GET /service?lat=100.1234&long=35.1234&type=http://open311.org/jurisdiction
And the result is like:
Content-type: application/json
{"results": [
{"type": "http://open311.org/jurisdiction",
"uri": "http://sfgov.org/311",
"name": "San Francisco 311",
"for": {"lat": 100.1234, "long": 35.1234},
"confidence": 1.0
]
}
One can imagine multiple &type=... arguments, which would be OR'd together. It's also possible an entity might have multiple types.