Germany's laws on github, machine-readable and ready to be forked

13 years ago (github.com)

There was a great discussion on HN previously about this topic which also explains why a straight git implementation isn't viable for US law; I'm not sure if doing the same with Germany's laws would be similarly difficult:

http://news.ycombinator.com/item?id=3968653

  • As discussed in the linked HN discussion, VCS/diffs are not compatible with the established workflow for discussing and changing laws. However, as far as I understand, this repository is not primarily intended as a tool for supporting lawmakers but serves two purposes:

    a) It allows the public to track all changes made to a law.

    b) it allows NGOs and other parties to suggest changes to a law by forking the repo and sending a pull request. [1]

    In summary: no revolutionary shift but a nice tool.

    [1] https://github.com/bundestag/gesetze/pull/2/files

  • Thanks for the link. I read the following from that earlier discussion and immediately thought, isn't this what the Darcs version control system was designed to do?

    "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."

    • Normaly you work out consequetials so if amedment to a law a and amadement b contradict if amendement a is passed then b is deemed to have been defeated.

  • Isn't US law not public-domain anyway? Or at least on a state by state basis? I remember a copyright issue concerning someone reprinting some of Oregon's laws.

    • The law is non-copyrightable. However a lot of state laws say "You will build your building according to Document X by Corporation Y" and that is copyrighted and not given out without a lot of money. The reason why these exist is that lawmakers aren't experts in, say, concrete; and those who are tend to be employed privately, and make industrial standards. As an example consider specifying that a program will be written in C (a bad idea here, but saying "structural members for buildings shall be steel as defined by this standard" isn't a terrible idea). C is defined by the relevant ANSI or ISO standard; now if you want to know what the law actually says, you have to pony up the money for an official standard.

      I don't know what settled law is about this, but it is at the least morally questionable activity.

      4 replies →

  • Merges definitely seem like they'd be difficult if there are two concurrent changes to a statute, but that's always going to be the case (and is the case with or without source control).

    I think a lot of the initial focus/discussion here is about machine-readable interpretation and management of laws themselves, and hence the challenges of turning gray into black and white - but I think that having a historical, digital record of changes in laws -- especially if clear attributions to individuals or groups can be made -- could be just as significant, if not more so.

    Imagine having a full historical record of legal changes across and within a nation, and the data measurements to back up the effects of those changes. The results could be linked back to the individuals/groups involved in drafting the laws - data-based legal review.

  • Since Germany has a civil law instead of a common law system, this might be easier. (But I don't know, really.)

    • Not really. Common law systems still have statutes that are compiled and amended. The "common law" potion of the system just means that court rulings are (potentially) binding upon other courts.

      1 reply →

Sorry semi-OT humour but this is one of the very few times were you can actualy fork with the law and come out ontop :).

Sadly though alot of laws due to changes and word-smith pervertions can be hard to understand and in that it would be nice if there was some universal way to express law's that you could get any law in any country and express. That would be immpressive though hard to do. Only comparision would be picture based traffic signs, that is somewhat as close to universal with regards to laws as can get.

Be nice when all the countries have there laws up in such a way. Will make grepping alot more fun and probrbaly be the birth of lgrep (law-grep).

  • The closest thing to a universal expression of law is probably English. In older times, it would have been... Latin?

    • The problem with translating law is that a lot of the time words are used as "terms of art" that have a special meaning based on tradition or, worse, precedent: some court at some point was forced to decide on the meaning of some very fuzzy word, they came down one way, and now the very fuzzy word has a very precise meaning and lawyers like to use it precisely because it has a precise meaning!

      That sort of stuff easily gets lost in translation, which is why legal translation is such a pain to do. And probably a good part of why it took the English courts so long to switch from Law French (an old dialect of Norman French long used for English legal writing) to English.

They should definitely do this for bills also, so you can easily see who has incorporated what into each bill, and how the bill is evolving as it happens

Awesome stuff. I couldn't find anywhere though: is this an 'official' project, or is it just someone who processed the XML forms into markdown?

Also, this: "All German citizens can easily find an up-to-date version of their laws online."

And it's only 130 megs of markdown when zipped (246 unzipped)! A mere 4,737,628 lines[1]! Surely you have time to read it, right? And therefore be a well-informed, law-abiding citizen?

I wonder how big America's would be :|

  [1] `wc -l $(find . -name '*.md')` admittedly very rough

  • This is not an official project, "just" someone who registered the organization "Bundesregierung" ("Federal Government") at github and processed the official XMLs into markdown.

    • Yeah, sorry - 'just' is a relative term :) Didn't mean to belittle the act, it's still a big and interesting project.

  • I think this is where "German citizens can easily find an up-to-date version of their laws online" :

    http://www.bgbl.de/Xaver/start.xav?startbk=Bundesanzeiger_BG...

    • It's not. You still have to have the complete text of the law and manually add the changes that are described in the Bundesanzeiger. It states for example something like "Change in BGB: Paragraph 123, section 45, change the word 'and' to 'and/or'. Only completely new texts would be printed in full.

      The Bundesanzeiger is merely the last step in the law making process. First, the two law making institutions (Bundestag, Bundesrat) have to vote in favor of the law and the president has put his X under it. Only after the law is published in the Bundesanzeiger it takes effect.

      1 reply →

The concept is great, especially seeing the specific contributions legislators make (of course in this example all commits are coming from one guy, so not so useful here). I'd love to see this advance, as well as seeing more developments in semantic markup of laws (think: 'Siri, how do I get out of this ticket?'). Not to mention just better avenues for laypeople to educate themselves on the law. I find it a little ridiculous that the legal system, which pretty much runs our lives, is so complex that it requires an industry of some of the most highly paid people in our society to interact with it. The whole thing is ripe for hacking IMO.

I do not know about Germany, but in my country the issue is that "An update to the law X" may introduce changes not just to parts of X, but to govern the parts of laws Y, Z too. Or it may introduce completly new regulations not being a part of either law text.

This is why it is hard to make current versions of X, Y or Z in terms of a version control.

It is also common to have laws X and Y both applying in the same context, and sometimes it is not clear which one is newer or how to apply "An update to X".

It is little easier to work on a more fine grain, in terms of sections and articles and not the law text as a whole, but this makes it a lot less official.

  • Isn't that precisely taken into account by patches, hunks, and branches?

    • The readme suggests that he only gets a copy of the final laws. That means he can diff two versions of a law, but more work would need to be done to say that a change to two different laws belongs in the same patch. Apparently that data is not machine readable.

Gesetze sind Prosa, sie enthalten keine maschinenlesbare Semantik. (Laws are prose, they contain no machine readable semantics)

And there was me hoping they had fixed that! Ahwell, one step at a time :)

  • Rewriting law to be machine-readable as in "instructions a machine can understand" would be quite a task I suppose. Interesting project though. Would that even be possible? How well does the law map on the black and white logic of a computer?

    • There's a large area of legal philosophy around those kinds of questions. Pragmatism vs. formalism in judging is one split that's sometimes identified, with "formalism" being closer to a view that the law is a precise set of procedures that must be followed mechanically, and "pragmatism" closer to the view that the law is a set of principles that must be applied using common sense to reach equitable outcomes. Lots of other positions as well, around that "what is law, anyway" question.

      There are some attempts to formalize something like the pragmatic view, too (oddly enough), in artificial intelligence "legal argumentation" systems, which try to model the back-and-forth of adversarial legal systems, determining when to bring up an argument, how to counter an argument, etc.

    • Sometimes, I fantasize about turning that around. What if parts of the law (say, fiscal law sounds like a candidate) are chosen to be as black and white as the logic of a computer?

      Policymakers could get automated compile errors when trying to craft conflicting laws. They could instantly compute what the effect of a law change is on this and that demographic or persona.

      5 replies →

Someone should come out with an artificial intelligence app, which reads through the laws and past history of cases and helps lawyers build cases. :-)

If only they'd accept pull requests.

  • "You are encouraged to open pull request. Of course only valid legistation voted on by the Bundestag will be merged."

    • > Of course only valid legistation voted on by the Bundestag will be merged.

      And I was excited for a moment...

Germany is killing it. Their economy is roaring, they've set very strong renewable energy goals and are acting on them, and to top it all off, they protect their civil liberties and are a relatively benevolent nation.

I find it fascinating that for a repository of German law, written in German, the README and commit history are all in English. I wonder if that will have the effect of scaring off any would-be contributors.

  • I second that.

    I'd like my government to do the same! Don't really care about the versioning system, as long as it's open-source and alive.

    • Actually, it is not "the government" doing this. It is somebody scraping an official web site containing every law, processing it and pushing the result to this repository.

Start with the IP-related laws. They seem to have some of the most aggressive ones in the world, which could explain why the Pirate Party there is also the fastest growing branch.

  • I doubt it. Germans started getting sued for illegal downloads right when DSL grew popular (a decade ago), without any political response. We also have no software patents; we can still (CMIIW) freely share copyrighted works with friends, just not with the public; we can crack what wouldn't otherwise run.

    The only part that is so terrible and draconic that everybody knows about it is the GEMA, which is concerned with music and loyalties.

    • This is not completely true. You can share copyrighted materials but you are not allowed to bypass or crack any security measures to do so. Also, the information on cracking a protection system, like ripping a DVD or an LP, may not be discussed publicly. Tutorials on these topics are illegal. The same is true for software products that would allow network intrusions. Wireshark is illegal, as well.

      1 reply →

    • Yeah, and now the GEMA want Kindergardens to pay fees for singing child songs that are in the portfolio of the GEMA. ridiculous!

Applying versioning to laws is a fantastic idea, if only to make an easily accessible account of legislation's evolution.

Amazing idea, which should be implemented by all sorts of governments around the world!

That....is fucking awesome.

And since US law is a much larger project with more forks, I feel as though it should use Mercurial. :)

What sucks is this would never happen in the US. The reason being that most of the earmarks and so forth are added to bills after they're passed. And not only that, they're added as images in tiny fonts so that they can't even be scanned in.

God bless America.