Open311

Wiki

Collaboration for an Open311 Standard
Personal tools

GeoWeb DNS

Collaboration for an Open311 Standard

Revision as of 19:48, 14 December 2009 by Phil.ashlock.us (Talk | contribs)

Jump to: navigation, search

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:

  • Presumably this would use HTTP, because everything uses HTTP
  • The return result is a URI, but the query should also be somewhat abstracted. So, for instance, there should be a way to ask for a "open 311 jurisdiction" or a "city council ward" or "all city jurisdictions" (ward, borough, CDB), etc. Let's say this is also identified by a URI much like the way an XML namespace is defined. E.g., http://ns.geowebdns.org/311/jurisdiction might be the identifier for 311 jurisdictions.

So, let's say it's something like:

GET /service?lat=100.1234&long=35.1234&type=http://ns.geowebdns.org/311/jurisdiction

And the result is like:

Content-type: application/json

{"results": [
    {"type": "http://ns.geowebdns.org/311/jursidiction",
     "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.