Free our Bills!

The Nice Polite Campaign to Gently Encourage Parliament to Publish Bills in a 21st Century Way, Please. Now.

Details of the technical changes we want Parliament to make to the way it publishes bills.

We would like Bills, and bill-related data, to be published in a structured machine-readable way, as soon as is possible after the data has been generated.

  1. How are bills published online at the moment?
  2. What are the problems with the current system?
  3. What are the solutions that "Free Our Bills" proposes?
  4. What things could any programmer do if these changes were made?

How are bills published online at the moment?

As bills are written they go through various stages. Towards the very end of the process, they are dumped out in a format that is sent to the printers, and which is converted to HTML so that it can be put up on the Parliamentary website. Daily amendment lists, or proceedings of Public Bill Committees and the like, are treated similarly. This is a very complicated process with lots of input from many different places.

Currently, http://services.parliament.uk/bills/ is Parliament's main page for bills, with the Health Bill as an example bill – click the Show links to see how much information there is generated about this bill alone.

What are the problems with the current system?

This is easily illustrated with an example. As of writing, the Health Bill has just finished its Committee stage; here is the Bill as introduced to the House of Commons. Now here is the list of amendments for 16th June, the first day the Committee met. As a first question, can you tell me what Clause 2 would look like if all Stephen O'Brien's amendments were accepted? Or what Sandra Gidley's Clause 2 amendment does? The proceedings of the first meeting are elsewhere, as is the summary of proceedings – can you tell me what Clause 2 looked like given the proceedings as to which amendments were made or withdrawn?

What are the solutions that "Free Our Bills" proposes?

In an ideal world, we would like Bills (and related instruments such as amendment lists and Public Bill Committee debates) to be published in a structured data format, with all relevant metadata, as soon as is possible. This doesn't just mean "publishing bills online" as is currently done – it means publishing them online in such a way that each bit can be referred to and, more importantly, contains the data necessary to join things up – e.g. when an amendment paper says a particular amendment is going to change from halfway through line 15 to line 18 of page 3, that amendment has its own ID, and contains the means to point out what ID or IDs in the Bill are going to be changed by this amendment. When a Public Bill committee votes on a particular clause of a Bill, that reference is linked to the ID, so it can be cross-referenced to what is being voted on. This would be of use not just to the public, but to MPs, drafters, and everyone involved in the process.

As an alternative, weaker, solution, you could bolt something on to the current process, whereby just before the current bill or amendment text is to be published on the web, it is passed through to a parser which tries to extract as much structure as it can automatically, and then be passed on to a human for checking and adding anything that it could not cope with.

The Data Schema

We propose an initial structure for bills, amendments and explanatory notes that has only a fistful of types, such as:

  • Bill name
  • Title page rubrik
  • Date of publication
  • Name of MP who introduced the bill
  • Headings
  • Subheadings, sub-sub headings etc
  • Clauses, sub clauses, etc
  • Paragraphs, sub paragraphs etc
  • Names of other bills or acts and their paragraph and clause numbers.

We are aware that some people might attempt to use this spec to claim that mySociety doesn't understand the complex nature of bills. They will try to pull out cases where this specification wouldn't work, and use these as an excuse to say that what's really needed is a mega project that will solve all problems at once, contain no mistakes, and deliver in One Day. These people misunderstand the nature of specifications in the Internet era.

What is important about this, or indeed any specification is not that it is definitely right now and for the rest of eternity, what counts is that it is revised and improved whenever it is discovered to contain problems or mistakes. The key word above is initial: the spec should evolve as new bills that don't quite fit are thrown at it. As long as the spec is evolved in a sensible, open way, and published for all to read and use, it will do its job admirably, and do it in a hundredth the time of the 'ocean boiling' approach.

What things could any programmer do if these changes were made?

Here are just a few things we’ve thought of – but it is the structured nature of the data that is important, not what uses the data could possibly be put to.

  • You can’t get an email alert to tell you when a bill mentions something you might be interested in.
  • You can’t find out what amendments your own MP is asking for, or voting on.
  • You can’t learn, or help other people learn, about the process by annotating them to explain what they’re really going on about for everyone else.
  • MPs and their staff can’t receive services that would help them notice when they were being asked to vote on dumb or dubious things.
  • And about 12 zillion other things that we’re not even bright enough to think of yet.

Here is something that was thrown together quite quickly. It's nothing more than the start of the beginning of an idea of a rough-sketch demo, and in no way should any of its content be taken as what we would like Parliament to do, only the possibility of what could be done with more structured data.

We need you!

Free our Bills home