Pursuing a goal like eradicating poverty throughout the world is not for someone without patience. There are NGO and governmental initiatives and programs to get behind, there are minds to change both inside poverty-striken countries and in the rest of the world, and there are outcomes to measure. Defeating poverty is just one such challenge that requires a continuous, long-term effort to achieve. Damaging climate change, human trafficking, childhood obesity are some other larger-than-life types of challenges.
As a software developer, I have learned to break large challenges, large problems, down into manageable chunks. It’s the only way to wrap your head around a problem (after you have rejected alternatives to solving the particular problem — always required when building software). Over the past couple of years, in my spare time, as I have thought about poverty and how to eradicate it, learning about the Millenium Development Goals (MDGs) and seeing how different communities have approached the problem, I have not often strayed from the issue of monitoring progress. How do you know a country, a city, a demographic group, is better off? Is an influx of aid to an African country, e.g., even a good sign at all, given the need to build sustainable communities and industries?
As I’ve seen my daughter become part of a Christian mission group helping to build a sustainable village community in Rwanda, as I’ve seen an NGO expand its fight against human-trafficking from Cambodia to the world (including here in America where the problem does exist), as I’ve seen local non-profits benefit from a virtual warehouse of donated goods, helping them to sustain their programs in difficult economic times, I’ve started turning a good deal of my own attention to software technology solutions to what has been broadly called ‘government transparency.’
It occurred to me that transparency is a critical infrastructure of a world in which those larger-than-life challenges are addressed and eventually their problems solved. Transparency is more than just having information, data available to read and keep up to date on a government’s activities. Transparency also describes the interaction and engagement of the public with its government. As someone concerned with seeing that our government’s aid to other countries be used appropriately, what can I do? And how can I do something that will increase the chance the officials will listen to reasoned criticisms of their work?
There is a lot of excitement about our federal government becoming more transparent. In his memo to all executive departments and agencies, President Obama pointed out that ‘transparency promotes accountability’, that ‘public engagement enhances Government’s effectiveness and improves the quality of its decisions’ and ‘collaboration actively engages Americans in the work of their government.’
In the early days of many previous US administrations, I might have been cynical about such language. It’s common for new presidents to expound on the virtues of our system of government. The phenomenon that is Barack Obama and the unmatched integrity of his presidential campaign, however, underscore the significance of that memorandum to the American people. We citizens believe he means what he says and it motivates us to take a more active part in our civic world.
As a software developer, transparency has a special meaning. So much of what happens in government is written in the public record. One major step toward a more transparent government was the passing of the Freedom of Information Act (FOIA) which entitles us to, for example, copies of opinions rendered, policy statements, selected staff manuals. Each of the federal agencies has an FOIA website where you can go to ‘reading rooms’ or websites for browsing the agency’s material released under FOIA. Here is the Department of Justice’s list of reading rooms. Here is the Department of State’s. When I went looking for a specific document in State’s room, it eventually led me to Word or PDF document. That’s useful for reading online or printing, but what if I wanted to write a program to aggregate selected data from one of these sites?
There has been a lot of requests for public APIs or downloadable bulk data from government agencies. Tim O’Reilly recently wrote about a rider added to the Omnibus Appropriations Bill that would require agencies to ‘distribute their data in bulk.’ That’s a very interesting article, by the way, and the comments should also be required reading for anyone interested in government transparency. I learned, e.g., that Canada has a Statistics Canada site for browsing a myriad of topics of interest to a federal government.
I started learning about open-source software projects involved with transparency through Sunlight Labs, which ’started as a Sunlight Foundation pilot project to prototype tech ideas to improve government transparency.’ The Labs have interesting projects such asĀ django-brainstorm, an open-source voting application and Open Congress, a joint project between the Sunlight Foundation and the Participatory Politics Foundation. They also publish APIs, the Sunlight Labs API and the Capitol Words API.
Here’s a simple Python script that uses the Capitol Words service to report the top five words used by Oregon Senator Ron Wyden on 12/12/2008:
[source:python]
import capitolwords
for w in capitolwords.lawmaker(’W000779′, 2008, 12, 12, maxrows=5):
print w.word, w.word_count
[/source]
Output:
oregon 3
leader 3
economic 2
billion 2
industry 2
The Senator is identified by the lawmaker’s bioguide_id, accessible from the Sunlight Labs’ Lawmakers data dump (you can click on this link without downloading the CSV file. I’m just pointing to the web page where Sunlight Labs lists their data dumps).
Sunlight Labs is currently running a contest called Apps for America, encouraging developers to use theirs and other transparency-related APIs to make Congress more accountable. The deadline is March 31, 2009.