Question: Is it possible to version boundary sets? #14

Open
palewire opened this Issue Jul 25, 2011 · 4 comments

Projects

None yet

3 participants

Contributor

What if you had, say, different version of the same boundary set that you wanted to include. How would you accomplish it with this app? For instance, let's say your state government's redistricting process created multiple drafts of next generation political boundaries. If you want to include Draft A, Draft B and the final version, how would you do it?

Contributor

Currently, there is no explicit way of handling versions, though there is a ticket for it! #6 Honestly, I'm inclined to solve these sorts of issues with naming conventions rather than formal relationships, though if someone wanted to hack together a versioning system, I would be open to merging it in.

Contributor

yeah, my reaction before seeing Chris's comment was pretty much the same; just assign 'kinds' in definitions.py

I would want to hear more use cases for versioning before voting for any specific implementation; seems too easy to do wrong if you base it just on the first case you come to.

Contributor

Here's a couple I can think of:

  • You want to compare differences and similarities between versions in an application. An example would be an application, like this one, that shows political boundaries at different stages of a redistricting process.
  • You have built one or more applications based on a particular dataset—say, Census 2000 maps—and blindly updating the API to serve a newer version of the data would make them inaccurate.
Contributor

I would solve both of those problems with namespacing. Its not a perfect solution, but its dramatically less engineering overhead. In both cases your application "knows" the constraints of its requests and could be easily modified to append "_2000" or "_2010" when requesting the geographies it needs to compare. Of course, there is not reason you can't also have a non-namespaced version that serves the most current geographies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment