"... Think of what version control software could mean for the Congress [...]. If bills were created under a system where strike-throughs and additions were carefully tracked, the public would know which legislator made which change to a proposed piece of legislation as it made its way through the Capitol.
At last, there would be transparency in the legislative process. Best-case scenario, it would shame legislators from inserting language against the public interest and only meant to reward political contributors; at worst, it would make such insertions public and allow the voters to punish the politicians who made them. ..."
The Hacker News Community (hah) needs to lobby hard to pass a law (what boostrapping!) to require the https://en.wikipedia.org/wiki/Office_of_the_Law_Revision_Cou... to maintain the repo as part of their duties, and do it retroactively for the entire history of the US Code.
It's a simple idea; it's cheap; there are no outstanding technical questions; it benefits almost everyone. Let's get this done.
I've been working with government entities for document management for 15 years now, writing software that does exactly what we are talking about - versioning, tracking, publishing legislative records both through the authoring and approval cycles and then to the public. I have not worked at the federal level, but with small government - school districts, small towns etc.
Those years tell me 2 things:
1) Yes, absolutely version control for legislation is critical.
2) That doesn't mean Git is the right answer.
Since I don't work at the federal level, I don't know what system they use, but I do know that their workflow is already based on specific changes - they will write up the changes to a document, then apply the changes and publish a new document. Those documents are posted on congress.gov. So they do have a versioning workflow and public accessibility, just not the same style as software devs are used to. I'm sure it could be improved, but I'm not sure forcing them into our working style is the right answer.
The real goal here is not "Use Git". That is an implementation detail, and one that has also been presented and discussed quite a bit in my niche of the industry. Mostly, it is unwanted. Or was unwanted the last time the discussion went around. Git makes sense to software engineers, but not to the general public, and not to any of the document authors I've worked with. Maybe we can add a UX layer to fix that, but that isn't the bigger point...
What we want is to work towards the actual goals: For the tracking to be more detailed, with more transparency including not only authorship of the change, but the source of the change. And presumably, some commentary as to why the change was made. Then all of that should be available to the public.
If git works as a data structure that supports a solution that meets those goals, fine. I'm not anti-git. But when designing solutions, we need to start from the goals of the system, not the data layer. And we need to design solutions that the document authors will actually use, not force them to work like us.
I hadn't thought of using git to track the changes in legislation. This is a cool idea.
In Australia, I spent a bit of time trying to work out how to find which politician voted for what (both at state and federal level), so that when elections come, you can single out the individuals who voted for what legislation. I think AI may make this easier, but the challenge is in not spamming the "free and open" access to the online record of our legislation.
So far, it's probably a one-person $50K per year job to do this task manually, and the language of the public legislation record didn't lend itself easily to determining the laws or rights that actually changed when bills were passed into legislation. They are explicitly stated, but hard to distill with regexes, filters or other analysis tools (e.g. "Who voted to stop electric scooters going over 25km/h?") If you try reading the legislation, you will know what I mean.
"A complete and open record of the proceedings of our parliament" still needs people spend a good chunk of time interpreting and summarising it (e.g. the media, commentators, etc) which means it's a time-consuming hobby or a paid gig.
Cool project, good thread. Tracking activity in the US is a big challenge. A company we built helps hundreds of non-profits try to keep track of the happenings at the Federal and State level. States are actually where most of the game is played out these days. Let us know what you think of https://billtrack50.com
If you're like me and also eager for cool uses for git, I'll share a cool one I use -- try out git for your resume! Commits change as you progress in life, and make branches for individually tailored resumes.
A surprising amount of tracking and diffing in legal texts is actually very different to git. It's a trap to assume software version control fits the needs for legal work.
I'm doing this as open source for all amendment-driven law for the world.
Finnish/Estonian law basically solved now but US/UK are a lot more complex to do correctly for some reason.
Now major version coming within 1 month probably with many architectural changes. The thesis is that it's basically all doable as a compiler but there may be certain cases which are irreducibly ambiguous and need human/AI to adjudicate them. The rest must be deterministic.
Unlike code, natural language laws have many exceptions and context dependencies, so trying to manage them cleanly with Git seems like it would be tough as data structuring costs and exception handling (hardcode-style responses) increase.
I had this idea over 10 years ago but never finished it. I hope this takes off. I do fear it's not very practical for many big pieces of legislation which are often written in secret.
I'm not an expert in this domain but I'm aware there has been prior work to attempt this. I'd appreciate if someone knowledgeable could post some of that context.
Cool idea but I can't find anywhere on the linked page to try it? It reads like a neat concept but it's not clear if this is a thing they've actually made or not (or am I just missing something super obvious?)
Wow! This is very cool. I had an idea for something very similar to this when I found out the US federal government offered API keys, maybe three or four years ago. I found that while Congress did list bill revisions as they were made the format and retrieval of these was not an easy task. The idea was that I wanted to look at any line of any bill and see who proposed it that particular line’s inclusion.
For the record, and feel free to steal it if you like it, I called it “G(overnm)it-blame”
I love this, and I feel every legal document (of which there are many, for example, a random one: insurance companies' policies) should have something like this (and no, Word is not good for it)
"... Think of what version control software could mean for the Congress [...]. If bills were created under a system where strike-throughs and additions were carefully tracked, the public would know which legislator made which change to a proposed piece of legislation as it made its way through the Capitol.
At last, there would be transparency in the legislative process. Best-case scenario, it would shame legislators from inserting language against the public interest and only meant to reward political contributors; at worst, it would make such insertions public and allow the voters to punish the politicians who made them. ..."
(from https://www.nytimes.com/2007/07/23/business/media/23link.htm... )
It's a simple idea; it's cheap; there are no outstanding technical questions; it benefits almost everyone. Let's get this done.
Those years tell me 2 things:
1) Yes, absolutely version control for legislation is critical.
2) That doesn't mean Git is the right answer.
Since I don't work at the federal level, I don't know what system they use, but I do know that their workflow is already based on specific changes - they will write up the changes to a document, then apply the changes and publish a new document. Those documents are posted on congress.gov. So they do have a versioning workflow and public accessibility, just not the same style as software devs are used to. I'm sure it could be improved, but I'm not sure forcing them into our working style is the right answer.
The real goal here is not "Use Git". That is an implementation detail, and one that has also been presented and discussed quite a bit in my niche of the industry. Mostly, it is unwanted. Or was unwanted the last time the discussion went around. Git makes sense to software engineers, but not to the general public, and not to any of the document authors I've worked with. Maybe we can add a UX layer to fix that, but that isn't the bigger point...
What we want is to work towards the actual goals: For the tracking to be more detailed, with more transparency including not only authorship of the change, but the source of the change. And presumably, some commentary as to why the change was made. Then all of that should be available to the public.
If git works as a data structure that supports a solution that meets those goals, fine. I'm not anti-git. But when designing solutions, we need to start from the goals of the system, not the data layer. And we need to design solutions that the document authors will actually use, not force them to work like us.
French bills evolution versioned in git and visualized The Law Factory: french bills as git, opendata and dataviz https://www.lafabriquedelaloi.fr/
"Law is Code" on The Law Factory: french bills as git, opendata and dataviz - https://news.ycombinator.com/item?id=7817357 May 2014 (0 comments)
In Switzerland, at least at the federal level, and since 2020, laws are created in HTML too. You can compare between versions as well as languages.
Swiss Constitution, under "Tools" click on "Version comparison" - https://www.fedlex.admin.ch/eli/cc/1999/404/en
I tired to do something similar, it's somewhat okay (In german)
https://shadowofthepit.github.io/Projekt-Gesetzvergleich/Bun...
In Australia, I spent a bit of time trying to work out how to find which politician voted for what (both at state and federal level), so that when elections come, you can single out the individuals who voted for what legislation. I think AI may make this easier, but the challenge is in not spamming the "free and open" access to the online record of our legislation.
So far, it's probably a one-person $50K per year job to do this task manually, and the language of the public legislation record didn't lend itself easily to determining the laws or rights that actually changed when bills were passed into legislation. They are explicitly stated, but hard to distill with regexes, filters or other analysis tools (e.g. "Who voted to stop electric scooters going over 25km/h?") If you try reading the legislation, you will know what I mean.
"A complete and open record of the proceedings of our parliament" still needs people spend a good chunk of time interpreting and summarising it (e.g. the media, commentators, etc) which means it's a time-consuming hobby or a paid gig.
The idea is cool though.
Blew my mind when I realized I could do that.
A surprising amount of tracking and diffing in legal texts is actually very different to git. It's a trap to assume software version control fits the needs for legal work.
Now major version coming within 1 month probably with many architectural changes. The thesis is that it's basically all doable as a compiler but there may be certain cases which are irreducibly ambiguous and need human/AI to adjudicate them. The rest must be deterministic.
https://github.com/eliask/lawvm
For the record, and feel free to steal it if you like it, I called it “G(overnm)it-blame”
Does it already exist?