The actual problem is one of power and intention. Yes, version control would make earmarks obvious. Yes, it would make tracking contributors (lobbies) easier. Yes, it would make tailoring tried and trusted legal documents easy.
All of these are reasons why version control will never be applied to the law. We want these things, but we are not the customer. The real customer is actively trying to prevent these things from ever happening.
The reality is that these tools are probably already being used for these exact purposes - in private, and for personal gain.
I even registered gitlaw.us a few years ago and then let it expire because I couldn't bridge the impedance mismatch between the idea and the implementation.
But again, I would never voice such thoughts, for many reasons:
1. It's exactly the attitude that your 'real customers' want in the public - learned helplessness.
2. You start believing it, and there is an insidious, negative effect on your judgement, decisions, and life. I'm not saying be a rose-tinted-glasses optimist, but don't be the opposite extreme either.
3. It is possible to win. Remember Gandi, Mandela, etc. Imagine how bleak their outlook was, yet they remained committed, steadfast, relentless, constant as the dawn, and eventually the time came for their ideas and there was nothing more powerful or unstoppable.
4. Real hackers aren't like that. The bigger the problem, the bigger the opportunity for disruption and making the world better. There are few bigger than this.
It takes efforts like these to eventually make the time come for the ideas that change the world, so it behooves us all never to talk them down out of mere pessimism. Constructively criticize yes, but no shootdowns.
Remember, first they ignore you, then they ridicule you, then they fight you, then you win.
It can be done.
Of course we won't see Congress outlaw lobbying, but there's definitely an opportunity today to try some of these concepts in an organization, community, or even willing local government.
The problem is that the government is too big and has too much power, so the rewards for lobbying are so great.
However, in the 200+ year history of the United States Congress, no tool like this has existed that could bring the kind of transparency to the process that reformers have been pushing for for nearly as long.
It is one thing to say "We need more transparency!" It is another thing entirely to say "Publish all bill modifications with attribution using a public version control system!" Having something specific and concrete to push for, something the implementation of which can be said to be completed or not completed in definitive terms, can make the difference between a successful push for reform and an unsuccessful one.
Continuing with OP's thought. Making the legislator who introduces the bill commit the bill would be an awesome piece of information and might make some legislators think twice about what they introduce and how they title it. And all the statistics that could be run on a repo of laws would be a ridiculously useful resource.
So make it happen first, then make it work well.
It's not cynicism, its realism which must be reflected in the strategy for change, otherwise failure is inevitable.
A separate problem, however, is that this is essentially a process improvement, that doesn't generate much advantage to the person who makes it happen. A politician would need to use significant personal resources to push this type of reform through the system, yet the 'payoff' is probably minimal compared to substantive policy or constituent service activities. By raising the issue from process improvement to substantive issue, the chances of implementation improve. Discussing and spreading the idea is valuable in that light.
On a side note, once these types of distributed systems begin to take root, it becomes quickly apparent that co-location in Washington is of at least questionable value. (Look at the attendance records of members at Congressional hearings.) Virtually everything that Congress does can be accomplished without the need for the massive physical and personnel support system found at the Capitol. It would be interesting to see how government would be designed given the communication tools available today.
The reality is that most of the people who complain about the lack of transparency are those who put the least effort into finding the available sources.
You may not know but there have been three big "generations" of law systems. Many parliaments are starting to use fourth generation systems. Third and fourth generation systems look a lot like a complex git, but there are many things that should and do work differently.
When I started dealing with these things I thought that it was a solved problem, just use SVN (the cool kid at the time) and everything will be solved. Well, none of the existing versioning models work well with law documents, especially acts. The general ideas do apply, but many of the details do not. For example, just think of a merge conflict: who are you so solve a merge a conflict? What you have to do is to just record the conflict and create two parallel universes, one in which the conflict has been resolved using branch A and another one in which the conflict is resolved using branch B. You then keep these two universes alive and apply all the later changes twice. You have to do this until a judge or a legal body declares one of the "branches" the correct one; this may take years and the decision reverted (even partially) many times.
A few links to relevant standards and systems:
* Legal XML: http://www.legalxml.org/ An OASIS working group that is merging all the relevant national standards into a worldwide standard.
* Akoma Ntoso: http://www.akomantoso.org/ A UN/DESA-sponsored format for legal documents.
* CEN Metalex: http://www.leibnizcenter.org/ a meta-format that acts as an exchange format between legacy formats and new systems.
* LexML: http://projeto.lexml.gov.br/documentacao/resumo-em-ingles A huge Akoma Ntoso-based repository of Brazilian laws.
* ICA/SPP: http://www.ica.org/792/about-section-for-archives-of-parliam... The groups of archivists that deals with all the fine points you have to deal with when archiving laws and dealing with legal documents in general.
The main international conference on Law and IT is Jurix, it started in 1988. Check out their proceedings to see how things evolved over time.
If you are interested in hacking something related to laws or legal documents (judgements, parliamentary debate records, historical versions of laws) just get in contact with me.
Disclaimer: I work in this field and I am related to some of these systems.
Maybe it's possible to parse that and apply that sort of bill most of the time, but I'd be surprised if it were possible to do so reliably (unless natural language processing becomes a solved problem) (or perhaps I'm overestimating the complexity of legislative language and converting legislation into a patch against existing law is not a hard problem).
The first step, however, could be to do revision control of bills, blind to references to existing law.
Representing bills as patches to current body of law is the endgame, but I think simple revision control of bills as they wind through the legislative process would add a lot of value and would be relatively straightforward.
Conceivably, changes to the US code could be tracked in the same way that changes to a bill are tracked, and every bill could be introduced as a branch of the US Code (i.e. a patch on the trunk), and every vote on a bill would be a vote to merge that branch.
The way modification acts are voted and then enter into force is quite complex and cumbersome. It is very common for a modification act to do things like removing a sentence from another act, a sentence that, in the meantime, has been changed by an urgent decree or another modification act. What is the final text of the modified act? How do you solve this? Or can you solve this? Or, which authority have you got to solve this?
This kind of "merge conflicts" require attention by a competent authority, either a court or a legislative body. Generally speaking, a resolution a merge conflict is an _authentic interpretation_ (http://en.wikipedia.org/wiki/Authentic_interpretation).
There are publishing houses that, for a quite big amount of money, will tell you "there is conflict here, these are the chances for interpretation A, these are the chances for interpretation B".
In law systems derived from roman law (like in my country) law doesn't depend on judges decisions.
You also need multiple contemporary universes whenever a law system has _favor rei_, i.e. the most favourable interpretation or version of the law is used while judging.
git clone legislature/generalstatutes
git commit -am "Turn sugar into a controlled substance."
If interested, # git branch bill_12345
git pull nathanhammond/generalstatutes
// Continue editing the "Sugar as a controlled substance" bill.
Spin off to committee (read/write to committee members)
git clone legislature/generalstatutes
git checkout bill_12345
// Continue editing the "Sugar as a controlled substance" bill.
git commit -am "Committee updates."
Take a vote for leaving committee.
If successful, # git request-pull
General legislature takes a vote.
If successful, # git merge bill_12345 master --signoff (Legislators that voted for it.)
- Encourages broader participation in democracy.
- Cryptographically signed. We'll know if you voted for or wrote it.
- Tracks history of all changes (at least at the commit level). If something comes out of committee very different from how it went in you can easily find every change.
- Makes it easier for newspeople to identify how the law is changing.
- An interface like GitHub over top of the repository could hide all of the complexity, allow for line-by-line comments, and general comments.
- Registering to the interface with your voter ID could allow for representatives to identify or poll constituents.
- Requires behavioral change for legislators who I would not necessarily classify as "early adopters."
- Still possible to "launder" the creator by having somebody else make the changes for you.
- In place modification of the law. To this point when something is repealed it typically looks something like this: http://www.ncleg.net/EnactedLegislation/Statutes/HTML/BySect...
Right now laws are openly available, but people don't care enough to get look into them. Also, just because you have "git blame" doesn't mean you'll now magically be able to see what corporate lobbyist wrote the law, because they'd just ask the legislator to commit it instead. Wouldn't change anything.
one big reason why people don't look at the laws is because they get changed all the time without a transparant way to see what ends up getting changed right before a vote. something like gitlaw would allow people, and lawyers, to track changes to laws much easier.
adoption is definitely the problem, but this can help lawyers make proposals and counterproposals with the speed of software developers, which may give lawyers a reason to sign on.
Unfortunately, the key challenge with the problem isn't architecting a DVCS-like service for legal documents (for an MVP, you could easily get by simply designing a novel frontend to git), it's an adoption problem. The current system is flawed, yes, but merely offering a superior product for less money isn't enough to make a dent in the bureaucratic nightmare of modern-day Washington.
I'm reminded of an article I saw here on HN a few months back: http://www.informationdiet.com/blog/read/dear-internet-its-n...
Your pessimism is unwarranted. There is already one user on GitHub that scrapes the US Code and mirrors it. He even tags
the changes so you can diff them quite easily.
Here's an example of a service built on Ontario laws (disclosure: I made it): www.ontariomonitor.ca. It emails people when a bill passes a committee or when new laws are introduced (+ lots of other stuff).
The question is how up-to-date the bill texts are. I doubt it can tracks in real time with changes/amendments voted on, etc. but then again any system bolted on the process as opposed to being fundamentally integrated into the process wouldn't be.
Not the best list of such towns, but a starting point: http://en.wikipedia.org/wiki/List_of_planned_cities#Unbuilt_...
However, I do see a niche for DIY contract law. Sort of like Nolo Press on steroids. Where you can browse standard contracts and then modify them to suit your needs in a visible and traceable way. Or possibly for contract negotiations, where each party makes changes. This would keep track of history in a neutral and verifiable way. (Could save time and errors for individuals and small law firms....)
We haven't had any issues or pull requests recently but we would welcome them for sure.
In a number of ways the process is more open and participatory than legislative law making, and, as mentioned, the regulations passed often have more of a direct impact on day to day life. There are a number of solutions out there that are attempting to make this process more transparent and participatory: for example, http://regulationroom.org/ (operated by a clinic at Cornell law school). In my opinion, informing the public of the importance and participatory nature of rulemaking (and getting more people involved) is probably a more realistically achievable goal than the proposed solution, and would likely have more tangible effect.
I know very little about how law is written, but my impression is that most people who pay attention to it are more concerned about the large ideas than the exact wordings - that's how you have politicians voting on bills when they haven't read every word. How can they when it's thousands of pages long?
So this might be more useful to a small number of politicians and lawyers who are examining law closely, looking for loopholes, or concerned about the exact details of a particular statement's pedigree, but I don't really see the general appeal.
I would rather have a tool which provides similar information, but on a higher level. An independent overview in layman language, general information about how it came about, how it's significant historically or with respect to existing law, and with the option to drill down to the actual language and gritty details. Of course, this would take much more work to build and maintain. I've been a fan of opencongress.org but I've found that switching between opencongress and wikipedia is the most effective way to understand the context and significance of a bill.
Reading the actual text of a law is usually about as useful to me for determining its implications as reading the source code of a printer driver would be to my dad for figuring out how to install a printer.
Unfortunately, I don't think the problem (with Congress) is technological. If GitLaw were implemented, a lobbyist wouldn't be making a pull request directly, they'd influence someone to do it for them so it wouldn't be traceable -- which is pretty much the way it works now.
Because now there are hundreds of people to check. We don't known exactly who did what.
With GitLow there will be one direct person responsible.
SCM helps a lot with source code. Imagine 400 people software project without SCM.
John (Co-Founder of Docracy)
"A distributed, open-source platform for the collaborative evaluation of information. It will enable sentence-level critique of written words combined with a sophisticated yet easy-to-use model of community peer-review. It will work as an overlay on top of any stable content, including news, blogs, scientific articles, books, terms of service, ballot initiatives, legislation and regulations, software code and more-without requiring participation of the underlying site.
"It is based on a new draft standard for annotating digital documents currently being developed by the Open Annotation Collaboration, a consortium that includes the Internet Archive, NISO (National Information Standards Organization), O'Reilly Books, Amazon, Barnes and Noble, and a number of academic institutions.
I've been eagerly waiting to see what comes out of this group for a while now. The principles seem great, but I think they should apply their 12 principles to the initiation phases, as well. It's currently hard to discern from their site what their short term goals are or even where they currently are in the process.
Seems like an enormously positive effort, but I'm remaining skeptical. I wish that they had more public dialogue of what they're doing and more demonstration of getting the general public involved early. Plus, I think their approach may be too grandiose and top down.
I would like to see it first applied effectively at the grassroots. For instance, can the model successfully be applied to a small collective? If that's possible, then try to scale it to city, state, nation, and globe. Also, do they really need funding first to start rolling forward toward some of their objectives? There seems to be a lot of passion in this space and a lot of smart people willing to work for free now, with the right leadership.
Github for law is a much more modest and realizable idea, by comparison.
Hypothes.is annotations are great for legal content, and are similar to the stated goal of the GitLaw project -- namely to see how the laws are created, modified, debated, and by whom.
@michael, you make a valid point but I believe a crowd-sourced vested individuals like Wikimedia would work in keeping the problems at bay.
@tobi, I would suggest that the concept be kept private and not government controlled as any government initiative would only create a bureaucracy that would stifle innovation and open discourse.
My country, Mexico is going through a national referendum right now with the drug war as a backdrop and part of the drama. Although it is a national election I call it a referendum because the results will give an insight into what our country wants in terms of dealing with the narco-types. Will we continue with the strategy, increase the engagement or back-off and let them do as they please?
My original idea was to crowd-source political commentary/analysis but your post is making me expand the concept to include your idea.
The initial countries I would like to include are the United States and Mexico as I have a basic understanding of their political processes but I would love for it to include as many countries as possible.
I noticed that there is a lot of interest in this concept/idea and therefore I want to officially put out a call for those interested in forming such a site. I am willing to put up server space, domain name (polit.co) and initial programming. With Abe’s permission and hopefully, his participation I have a created a Twitter handle @polit_co to start the organizing. I look forward to everyone’s participation. Let’s get this going.
I recommend taking a look at Rogers' 5 Factors of Adoption  as a starting point. It would be extremely challenging to get this approach adopted from the top down, especially in an entrenched democratic system. Instead, a less risky approach may be to first get it successfully applied at the small scale. For instance, can you get a small township/incorporation to adopt this method?
I'm working on a project called http://makeyourlaws.org. It's open source and non profit. Simply put, it's a practical project that aims to completely replace existing legislatures with online liquid democracies, through incremental steps within the existing legal system that have real teeth all the way. No waiting for a revolution and no begging. Read the site & its G+ page for details.
In particular having a git for laws is going to be a necessary backend system — along with e.g. pretty diff, blame, mass import, in-browser editor, simple markup language for laws, etc.
MYL is not git-based as it were — the policy authoring process is discussion- and voting-based, as it's a fundamentally different process than code authoring — but once it does get to being about laws, git is a good model.
There are of course also a number of other subprojects within MYL, like legal identity verification, empathy-creating discussion systems, factchecking, privacy-preserving voter-verifiable auditable-in-aggregate cryptographic vote proofs, etc etc.
If you're interested in working on git-law, or online liquid democracy in general, please contact me either by email to email@example.com or posting a comment at https://plus.google.com/100183759660923071401/posts/NQVuM65j...
We're making it happen.
Why don't we instead build a "Startup Law Standard" kind of thing that can get network effects in the startup scene. Get all the big firms law firm / VCs / angels / etc. signed on to these standards.
How would this look? I've read a lot of contracts, and you see some similar stuff. In many ways, it's kind of like programming:
VARIABLE DEFINITIONS: at the top - like: "'Company' shall be XYZ, Inc., a Delaware Corporation located in 100 Main St.", and so on.
TESTS: These are normally "Warranties and Representations" - these are often quite boiler-plate like: "Assignor is owner of all Intellectual Property", etc.
AUTHENTICATION: Signatures, etc.
I bet that 80-90% documents could be generated by a set of 500 boiler-plate sections with fill-in-the-blank type of stuff. There could be built into these something that'd figure out the incompatibility (i.e. "exclusive" in one section wouldn't work with "non-exclusive" in another).
Term Sheets are pretty standardized now with a couple made forms that are considered modern. Why can't we do the rest?
Call me crazy, but couldn't this at the very least reduce law costs, and at best be the first step down a road of nearly full-auto law?
Then again - IANAL...
Obviously, standardized language has done nothing to reduce costs. The problem is supply-side: despite the glut of (new) lawyers, there are still not enough lawyers that people are willing to trust with their business.
My reasoning is that I feel that politicians are constantly filling with existing laws and the changes are conveyed via strang legal terms, e.g. "This changes "they to us in paragraph five, section 2, line 3". This is a complete bullshit way of informing the public about the changes to our laws. If laws where tracked the same way we as developers track our code, hiding even minor changes would be impossible. Just imagine getting a daily / weekly change log for the laws passed by your government. Even our lazy journalists should be able to dig up something in appropriate every now and then if they knew what changed.
There was a barcamp not long ago: http://transparencycamp.org/ with many people from all over the world.
Having legislative markup is necessary for any git-like system, because of the complex ways that amendments are currently made.
We'll be joined at the hackathon by Grant Vergottini, a member of the LegalXML OASIS committee, and the person who built the legislative editor that California uses.
As many people here have commented, adoption by legislatures of
[seems my earlier comment does not appear]
There would be a need for people writing the laws into text and coders for implementing different aspects. Maybe crowdfunded. I don't know, just throwing ideas to see if anyone is interested.
We don't need the government to do this. We have the data (or most of it). We need to start changing it from the outside.
RDF has several other formats besides XML (turtle being one of the more human readable formats).
1. Date of third (and final) vote = the date the parliament has voted a bill as law
2. Date of publication (for technical reasons this might not coincide with the vote date)
3. Date of validity - a bill is usually passed with a date of validity, between the date of publication and validity the bill is not formally law yet. Sometimes there are separate dates of validity for separate parts of the bill. To make matters more complicated, dates of validity can be changed when the bill designates government ministers with the authority to change them (the dates).
Also, in Israel many laws never "make it" to their date of validity since the yearly Law of Arrangements (http://www.knesset.gov.il/lexicon/eng/hesderim_eng.htm) decides which laws passed in the previous year have proper funding, such that officially some laws get "punted" into the future, possibly indefinitely. It gets quite confusing because from a legal point of view, the dates that are relevant to the justice system (as in, when a bill is relevant or not to the court) are usually the date of voting, whereas when it comes to government the third date is the important one.
We are still moving forward with our initiative, but it seems that for now there are no version control systems which are a good solution to the law management problem.
(edited for formatting)
Then I'll vote for _any party_ which will deploy the git law system.
There is no free source of up-to-date UK law: many of the statute on legislation.gov.uk is not guaranteed to be up to date, and if you're looking to practice this is obviously no good at all. This is in itself very sad. The people who run legislation.gov.uk do a fantastic job, and hopefully access will get much better in the future.
They say it's updated within 24h of publication. Which seems to be as up to date as you'll get.
There are http://services.parliament.uk/bills/ and http://bills.ais.co.uk/AC.asp for tracking bills before publication (the later one isn't working at the moment though).
So for example the 1st reading in the Lords of the Online Safety Bill was on 14th May and the text can be read at http://services.parliament.uk/bills/2012-13/onlinesafety.htm....
Having said that you can (and do) have Wikis that are backed by git.
(xkcd 191 comic joke notwithstanding)