After many years of being less than progressive, it looks like Government in Australia is finally going through the process of being Nerdified.
This is a much needed change, because of Australia's highly participatory democracy.
We have no equivalent of the US Bill of Rights, and for many issues like freedom of speech, assembly, and so on there is nothing in our Constitution in the same way as there is in other countries.
This means that issues around very contentious subjects are usually resolved by the political process, rather than by lawyers in funny wigs. There is always a lot of lobbying going to the government by non-profits and community groups, and the lobbying often has a sense of urgency and immediacy.
And the size of our country (21 million) puts us in a range high enough to expect quality governance, but just small enough that it is reasonably plausible that a common person who takes up a particular subject with drive can be heard and provide input on a subject.
Once data is exposed by the various governments, this wide-ranging hunger for information creates fertile ground for creating software for tracking, integrating and analysing of the process of government. The Australian mentality of getting things done in low-cost and low-headcount ways helps feed this further.
This community appears to be making the phase change for scattered efforts to organised community, centred around the community-based Open Australia website.
On Saturday I attended the first ever Open Australia Hackathon (i.e. "Nerds for Democracy") which was as much about letting different parts of the community meet each other as it was about actually getting anything done on the Open Australia website itself.
My good friend and former business partner Jeffery Candiloro took the opportunity to release his pet project http://myrepresentatives.org/. This website is a demonstration of combining geo-coding with politics.
You can put in any address in Australia (including some of the more obscure island territories) and the website will resolve the address to a Geo point (using Google Maps), applies the Geo point to a polygon database to find the electorates you are part of, and then uses the list of electorates to find the people that represent each of the electorates for your address.
The result is pretty awesome.
What I've been helping with is to help him to take this first-pass implementation and convert the code into proper CPAN distributions, so that it can be integrated into other people's websites as well.
The result is a new Politics:: top level namespace, and a new Politics::AU::Geo module (which Jeffery should own, but I ended up doing the first release of) that you can use yourself.
By reusing all the things I learned with the ORDB:: modules, this small module implements the Geo resolver itself, but fetches (and caches) the polygon data as a SQLite database from the myrepresentatives.org website as needed.
The data is rather crude at the moment, and the real challenge we are facing is that there are no universal identifiers for any of the concepts involved.
I'm hoping to kick off a conversation amongst all the different parts of the community on the creation of RDF-quality identifiers for all the major concepts (houses, electorates, members, et al) that all the disparate code (in several different languages) can operate on.
You should give Champlain a try. It will allow you to easily build a GUI with various map sources and to display your results thanks to libchamplain. Take a look at the existing examples, they should give you an idea on how to use it.
Yesterday I've finished adjusting the Perl bindings for the next release of libchamplain which will be out this week. So for the following days it will be better that you simply use the git version. The Perl bindings are distributed with the C library, just look under bindings/perl/Champlain.