Archive for the ‘GovTrack’ Category

Posts related to my site GovTrack, which tracks the U.S. Congress, and related issues in the world of civics and technology.

oGosh! IRC Meeting Aug 16 4pm EDT

Wednesday, August 6th, 2008

Join me at an IRC chat to talk about open source civic technology projects, on Saturday, August 16 at 4pm Eastern time! The agenda will be a mix between seeing what various civic technology projects are up to like GovTrack (my site, powered by Mono), OpenCongress, and any others run by people who show up, and getting new people involved in ongoing projects. “oGosh” is Open Government Open Source Hacking (wiki | Facebook), what I’m calling the loose community that binds these projects together.

The chat will be in the #transparency channel on Freenode. For more information on the meeting (and on how to get to the chat), see http://wiki.opengovdata.org/index.php/OGosh.

Suggestions for agenda topics are most welcome either to me directly or by revising the wiki page above. Hope to see you there.

The Open House Project

Thursday, February 8th, 2007

(Just here for archival purposes…)

On my GovTrack blog: It’s rare when Congress asks the people for help being transparent, and so I’m particularly pleased to announce the formation of The Open House Project, a Sunlight Foundation-sponsored project with the encouragement of Speaker Pelosi that will be making specific proposals about how The House can better use the Internet in the interests of transparency. Various people, including myself, will be blogging on that site over the next few weeks about some ideas on this point. Feel free to contribute your ideas by commenting on the TOHP website, joining the project’s mail list, or talking on GovTrack’s own mail list.

And on the TOHP blog:

Mash-ups for government transparency

January 25th, 2007 by Joshua Tauberer

A few years ago I launched GovTrack.us. I didn’t think of it this way at the time, but these days you might call it a mash-up of data about the U.S. Congress. At the time what I was thinking was just collecting information about Congress from various sources (THOMAS, the Senate website, and the House website) and cross-referencing and hyperlinking the data in a way that no one had done yet. In fact, it was the huge amount of public data on the status of legislation that was made available through THOMAS (as I understand it thanks to the Republican take-over in 1994) that inspired me to try to put the data to new uses. It started with updates by email of what your congressmen were up to each day, generated automatically by grabbing data from THOMAS and, effectively, transforming it into a customized email update for anyone who wanted it.

The trouble with building GovTrack is that one has to do a bit of friendly reverse-engineering. The information is all “out there”, meant for public consumption, but it’s not out there in a way that makes it easy to transform into other formats for other uses, like the email updates, RSS feeds, and cross-referenced pages. The trouble is this: While people have no trouble browsing and searching THOMAS (for instance) for the information they need, we can’t make computers do the same thing automatically without much difficulty. To take an example, if I want to have my computer automatically fetch for me a list of all bills that were acted on the previous day (and in fact this is something GovTrack does), I would write a program that fetches the Daily Digest in the Congressional Record from THOMAS, which has bullets like this:

“Eleven bills and one resolution were introduced, as follows: S. 360-370 and S. Res. 37.”

I have no trouble understanding that. But, well, let me say as someone studying linguistics and natural language processing, computers are a long way from being able to understand English prose as well as people, nay as well as three-year-olds. Was the bill S. 365 introduced yesterday? Yes, of course — even though it was not mentioned explicitly (it’s merely in the range 360-370), and that’s just the first problem for a computer trying to make heads or tails of this information. So what’s a programmer to do?

Let’s go back to the goal of this. Certainly I don’t think it’s the government’s job to necessarily provide email updates, RSS feeds, Google Calendar integration of events, and whatever the latest technology hits are. There are a million and one things that one can do with information about the status of legislation, and someone will want each of them. So the question is this: How can the government, and Congress in particular, publish information about what it is doing in a way that makes it easy for others to put the information to new uses?

To be concrete again, because it’s always good to be concrete: How can THOMAS publish a list of bills that were acted on in a purpose-neutral way, a way that makes it easy for programmers to go and write applications to take the information and do anything with it that someone might want?

This is a question that I’ll probably blog more than once about on this site in the next few months. The answer is what’s called structured (or “machine-readable”) data, and it comes down to publishing information twice, once for humans clicking away at links, and once in boring, explicit tables meant for computer applications to transform into different formats. But more on that later.

Meaningful Reform

Thursday, January 11th, 2007

About a year ago following a few scandals, the House and Senate saw a flurry of Congressional reform legislation get introduced… and then promptly ignored. Finally, however, we may see meaningful reform. Senate majority leader Harry Reid has introduced S. 1: Commission to Strengthen Confidence in Congress Act of 2007. The bill would make two incredibly important advances:

(Sec 103) It shall not be in order to consider any Senate bill or Senate amendment or conference [without] a list of– (1) all earmarks in such measure; (2) an identification of the Member or Members who proposed the earmark; and (3) an explanation of the essential governmental purpose for the earmark is available … to all Members and made available on the Internet to the general public for at least 48 hours before its consideration.’.

(Sec 104) It shall not be in order to consider a conference report unless such report is available to all Members and made available to the general public by means of the Internet for at least 48 hours before its consideration.

Strangely, the bill does not require that bills (!) be available on the Internet for 48 hours before being voted on. Just conference reports. After a bill has been passed by both the House and the Senate, it’s often the case that the second chamber to get the bill has made amendments to the bill that the first chamber hasn’t yet gotten a chance to see. In that case, a conference committee is made to get the two chambers back in sync, and the final version of a bill comes out in a conference report.

Since it’s been introduced by Reid, I think it’s almost certainly going to get through the Senate. The House seems to be off in its own world, so I’m not sure whether we’ll see this bill ever become law, but it’s got a good shot.

Bounty on bringing state legislative info to the semantic web

Wednesday, June 1st, 2005

Taking the idea from the Gnome community, I’m placing a $150 bounty on the following programming project: Screen-scrape the website of a state legislature and put the information into XML or RDF so that it can be used on the semantic web. The code has to be released under an open-source-type license (and it must meet my personal satisfaction). It should parallel what I’ve done with federal legislative information. If you’re interested, join and post on the GovTrack mail list.

(They money comes from the advertising I have on GovTrack.)

My Trip to D.C.

Wednesday, March 9th, 2005

Last night I got back from a two-day trip to D.C. The point of the
trip was to make a presentation about GovTrack and also to start some
collaboration with others on expanding the political information that
is freely and openly available online.

\"\"

Monday afternoon I presented GovTrack and some ideas about the
semantic web to the people who are responsible for getting some
aspects of legislative information posted online in XML format. Right
now GovTrack gets its information from screen-scraping, which is an
inexact and fragile process of extracting information out of the same
HTML pages that you see when you view web sites. Having data
published also in XML format can greatly improve the accuracy of
getting information. What the people at the clerk of the House have
done to date, in terms of getting bills written in XML and roll call
votes posted in XML, has been a great step forward, although it
hasn’t been that useful for GovTrack. (One reason is the Senate
hasn’t followed suit because, as I understand it, the clerk of the
Senate isn’t authorized by the Senate itself to work on such things.)

I think I’ve met now almost all of the
players in the arena of building a network of political
information. Between everyone involved, we have enough data and enthusiasm to get
something very unique and useful started.

(For more details, see my posting on the GovTrack blog.)

Diffing and RDF

Saturday, March 5th, 2005

If you’re reading this, you’re probably reading this on Monologue, and that means I’ve successfully added myself to Monologue. :-)

Recently I got a helpful bug report for my Diff library for C# which pointed out that my port of Perl’s Algorithm::Diff wasn’t generating the same diffs as the original module. I fixed the bug and reposted a new version of the library.

In unrelated news, I’m working on building the semantic web for information about the U.S. government. This is a spin-off of my work on GovTrack (which is powered by Mono). To get this web built, I’m in the position of having to convince people that RDF is the right way to approach the problem of distributed information — over, for instance, XML, XML Schema, and XQuery. The problem is that RDF is complicated and often misunderstood, and I hadn’t found a good document explaining what RDF is and why it should be used for this. So, I wrote one. I’m not a master of RDF by any means, so any corrections and suggestions are welcome.

By the way, if you’re interested in building this political semantic web, join the GovTrack mail list.

Lastly, with my new interest in RDF, I was looking for a good C# library for working with RDF data models. I didn’t find one that I particularly liked (there are a few ones out there, but for various reasons I just couldn’t see myself using them), so I’m working on my own. I’ll post the source in a few weeks, probably.

My Face Is There

Monday, January 10th, 2005

Woot!  http://www.technorati.com/.

Mail Lists, Diffs, XPD

Wednesday, November 3rd, 2004
For anyone potentially reading, I’ve set up new mail lists for GovTrack and my Thunderbird SPF Extension. If you have an interest in either thing, please visit the site and join the list.

I’ve also posted a library for diffing/merging/patching written in C#, based on the Perl module Algorithm::Diff. And I posted the source for XPD, the XML pipline document generation engine that I wrote to power GovTrack. These things have helped me; I hope they help you.

GovTrack is now set up on a new server, and it’s much much more responsive than it used to be. In fact, you can’t tell anymore that it’s doing lots of XSLT transformations on each request.

Track Congress on Your Site

Thursday, October 14th, 2004
Presumably no one is actually reading this blog, although server logs say otherwise. Anywho…

GovTrack has a nice new feature where you can embed GovTrack’s tracked events into your own website. I’ve embedded the latest intellectual property-related events on this page, to the right and down.

GovTrack’s Insides

Monday, October 4th, 2004
I wrote an article about how GovTrack’s website works on the inside. The summary is:

Websites have some of the same design issues as programs. One common issue is how to avoid duplication, but while software developers have solved this issue with functions, website developers are still struggling for a solution. GovTrack.us, my new website, solves this problem using XSL transformations and the Mono framework.

In the interests of full disclosure, I wrote the article just so it would be blogged on Monologue, which it was, so I’m happy. Thanks, Miguel!