top | item 43466509

German parliament votes as a Git contribution graph

630 points| mxschll | 11 months ago |abstimmung.eu

169 comments

order

nikeee|11 months ago

There are also a repository containing some laws in markdown format on GitHub. They even used PRs for actual changes proposed by the parties in the parliament. Also, the commits have their proper date, so you can `git blame` on the laws and even see which president signed-off that change.

Sadly, it is unmaintained.

https://github.com/bundestag/gesetze

jandinter|11 months ago

I maintain a repository with all German legal acts which is up to date:

https://github.com/jandinter/gesetze-im-internet

I scrape the official website (https://www.gesetze-im-internet.de) once a week. The repository contains the "official" XML files with a formatting that is more focussed on presentation than on the logical structure of the legal acts, unfortunately (https://www.gesetze-im-internet.de/dtd/1.01/gii-norm.dtd).

Some time ago, someone from the digital service of Germany reached out and asked about my use case. Maybe there will be an official version of a "Git law" repo someday...

mrweasel|11 months ago

German laws might work different, but I'm not really under the impression that software version control is really that compatible with law making.

In source code we replace or modify the parts that doesn't work in place. Many laws does not work like that, they are a labyrinth of add ons. A new law is introduced with wordings like "This replaces the words "small businesses" with "nuclear rockets" in the law on "Workplace safety of fishing vessels of 1992", §12, section 3, line 5.

No amount of version control will ever find these changes.

majkinetor|11 months ago

I usually convert to markdown from PDF local laws when I need them as a reference for the functional specification. That way its easier to pinpoint to exact section of the thing.

Its not easy to convert general law to markdown, it involved online converters and manual fixes. Currently experimenting with marker [1] on local LLM hardware and so far it is the best out there.

[1]: https://github.com/VikParuchuri/marker

thu|11 months ago

I maintain a web site where I re-render to HTML a scrapped version of the (consolidated version of) the Official Belgian Journal[0].

One of the nice thing about having an underlying structured representation of those texts is that I can also render them to e.g. Markdown[1].

I've experimented about generating the Markdown files corresponding to multiple versions (archives) of a given text and committing them to the same Git repository to be able to see diffs or blames[2].

I would like to assign the proper dates to each commit, but given there are texts in e.g. 1791, it's not possible.

0: https://refli.be/fr/lex 1: https://github.com/hypered/iterata-md 2: https://github.com/hypered/iterata-archive

Defletter|11 months ago

> They even used PRs for actual changes proposed by the parties in the parliament. Also, the commits have their proper date, so you can `git blame` on the laws and even see which president signed-off that change.

This is something I'm very interested in for a different use case: model legislatures. The infrastructure and tooling for model congresses and parliaments is very limited: largely relegated to wikis and Google Docs. And that's fine, but it becomes a problem long term with tracking and archival.

We had a situation where our model parliament did not own the Google Doc for a particular treaty with another model legislature. It was changed out from under us, which is not ideal. But that brings into question ownership of Google Docs, and what happens if that person withdraws from the game.

Another issue is respecting and maintaining the creativity of those who play. People put a lot of effort into their bills with the fonts, formatting, layout, and imagery they use. It would be a shame to erase all that effort by converting it a bland wall of text a la markdown.

Markdown also has its issues: if the legislature removes an entry of an ordered list, how do you prevent markdown from renumbering the list? And the ways around this involve extending markdown, or using plaintext (eg: https://www.apache.org/licenses/LICENSE-2.0.txt)

Another solution could be QuillJS (https://quilljs.com/), which serialises into a JSON array of Deltas. However, this would make any kind of git-diff difficult to read. You'd need a custom differ, which is not impossible, but that may be a lot of work and may not be supported on git sites like Github.

Another issue is that, if you're using commits-as-enactments, then that probably means using the commit message (or notes) for the enactment's text. To what extent is that supported? As in, how long can commit messages be before it starts wreaking havoc on git clients? Will my Github tab or GitKraken client crash if I view the commit history? Could the commit message itself contain a serialised QuillJS document? What if that document contained a base64-encoded image?

ZuLuuuuuu|11 months ago

This kind of digitization is great.

I don't know if they are doing it, but I always thought that it should be easy for regular citizens to see the historical reasons why a law or regulation exists. Because there is sometimes a good reason why a regulation exists, but nobody knows it.

bilekas|11 months ago

I do think you're putting the horse before the carriage here.. It's just info, which is public .. What are you worried about ?

Edit : I see you're focus is on another thing completely. Share it, could be a great topic also.

slt2021|11 months ago

I would love to see more governments operate on a Git-first basis, so that each and every decision/contribution can be tracked online for transparency.

For example in USA we would have budget ceiling crisis, and both parties try to ram through a law to bump up the debt ceiling "to prevent government shutdown". It is being sold as a measure to keep government afloat and running, and is usually ran through pre-holiday like Christmas.

But what actually happens, is thousands and thousands of pages of various pork is rammed through with various cutouts and carveouts for special interest groups due to lobbying.

Public needs to know who when and how is adding these lines and how is bipartisan consensus is being achieved in real-time, not post-factum.

arlort|11 months ago

> and how is bipartisan consensus is being achieved in real-time

This is a horrible idea in practice because everything that is public and open turns into a purity test.

You need people to be able to negotiate with each other in order for consensus to be established, and negotiations only work if the negotiators give up on something that they want to get something else. The moment you make this public all that you get is people turning negotiations into a way to generate soundbites and scared of doing any actual work because they'll just give ammunition to their opponents.

This is doubly bad in the US with the primary systems which makes legislators even more vulnerable to attacks from their flanks.

Legislators are not elected to be proxies for the voters, that's not how it's supposed to work. They're elected to use their judgement, that's why there usually aren't recall elections or restrictions on how they can vote etc.

As a matter of fact I'm of the opinion politics everywhere would be a lot better if plenaries, committees and hearings were not recorded or televised in the first place. I'm ok with minutes being made available but I'm convinced without being able to clip soundbites or tiktoks out of every meeting legislatures would be a lot more productive. Definitely more so than if we attached a camera crew to everyone in politics for "transparency"

daedrdev|11 months ago

This is because the budget is the only bill of significance that passes in the US in many terms

ekianjo|11 months ago

> can be tracked online for transparency

Government and officials will fight to the teeth to avoid accountability and transparency because that's where the money and power is.

eru|11 months ago

> I would love to see more governments operate on a Git-first basis, so that each and every decision/contribution can be tracked online for transparency.

Alas, that sounds like a great idea in principle, but is probably a bad idea in practice.

Speeches in parliament (or on the senate floor, in the US) are already public. And that's a big reason those speeches are useless: they are just used as grandstanding to the general public.

The real work in finding compromises happens behind closed doors. That way you avoid producing sound bytes that can be used against you next election season. Especially from challengers in your own party, who could otherwise accuse you of being insufficiently pure.

KennyBlanken|11 months ago

> Public needs to know who when and how is adding these lines and how is bipartisan consensus is being achieved in real-time, not post-factum.

This is what the press and various independent groups already do. They have people that pour through the stuff, as well as getting tips and press releases from congressional reps and third party interest groups. It's just that there's only so much they can cover, and most of the public can't be bothered to do more than turn on the evening news.

There's a lot of good, in-depth journalism out there. You just have to look a bit harder for it.

umanwizard|11 months ago

How would using git prevent what you’re talking about? Instead of one congressman proposing a bill with thousands of pages he hasn’t read, he’ll submit a pull request with one commit whose content is thousands of pages he hasn’t read. What difference does it make?

__MatrixMan__|11 months ago

If I were putting government procedure on a blockchain, I'd want something stronger than SHA1 for the edges.

refulgentis|11 months ago

I don't want to be mean or assert without evidence, but, I'm not really sure how to respond: #2 simply doesn't happen, or even close, and it's also not a common partisan interpretation I'm being smug about. It's just flat out wrong, both parties don't try to ram a bill through, the government actually does shut down, and there's no calendar association.

prawn|11 months ago

Are those thousands of pages made public at the time?

yallpendantools|11 months ago

Sorry it might be my turn on the Dunce hat but what is so "Git" here other than the contribution calendar popularized by Github then copied by Gitlab?

trashchomper|11 months ago

I feel like you answered your own question...

Like I get it, but English is fluid and is it really that far to make the assumptive leap from "git" to "github/lab/service", seems pretty clear what they meant (even if it's not completely/technically/um-actually correct because git != github).

codedokode|11 months ago

I remember reading about someone simply adding legal texts to git. This is pretty much useless. I think that people who do this never saw a commercial legal database (or how it is called).

What one usually need, is for example, to have cross-references, i.e. when a law contains phrase like "the certification is issued by a relevant authority", you want to have the "relevant authority" wrapped in a hyperlink pointing to an government order that designates that authority. Also, you typically want to have links to court cases related to some paragraph near it etc. If some change is planned to the law you want to have a note in the text like "this is going to change on September, 1", etc.

Given that many countries have local laws, you might want to be able to filter by a place.

Github might be used for storing raw documents as some weird kind of a database, but it is useless for actually trying to find out the answers to legal questions.

To make an analogy, reading laws on Github is like reading source code without syntax highlighting and navigation.

seba_dos1|11 months ago

I have once used git to track proposed changes to existing legal texts - it was very helpful for that already.

adastra22|11 months ago

Isn’t that a different concern?

hnben|11 months ago

iirc some european countries are currently exploring the idea of "law as code", i.e. law in a machine-readable format that can be parsed algorithmically. iirc austria already made some progress by converting some of their lawbooks to such a format. (I remember being in a presentation about that topic, and I explicitly asked about some actual laws being converted, and they actually showed some of these laws, but I can not find publicly available sources I could link, except some general corporate statements like this https://wwwdev.unisys.com/our-clients/advancing-public-servi... ). EU seems to work on something similar, e.g. https://interoperable-europe.ec.europa.eu/collection/endorse...

sam_lowry_|11 months ago

Let us not confuse git and Github, the later belonging to a reviled US monopoly.

rob74|11 months ago

I used to revile (can you use this verb this way?) M$ in the 1980s/1990s as well, but at the moment I could think of several tech companies that I like even less. And yes, technically they can still be considered a monopolist because of Windows, but it has lost a lot of its significance...

rozab|11 months ago

To be fair, every git forge (as they are known for some reason) has this feature

high_na_euv|11 months ago

Indeed,

Github is high quality, software engineering enablement platform

And git is letter management engine

rwoerz|11 months ago

Some of the voting results on https://abstimmung.eu/git/2024 are misleading. Votings are about a decision recommendation (Beschlussempfehlung) which sometimes negates the original request (Antrag), e.g., https://abstimmung.eu/votes/55

werzum|11 months ago

Perfect, thanks for pointing that out - I was just starting to think it inverted votes, since all major parties except AFD were in favor, which contradicted what the text implied to me at first glance.

Hackbraten|11 months ago

I agree. In the example you quoted, it’s entirely unclear what Yes and No even refers to. It doesn’t help that the summary appears to be generated by an LLM.

This needs human curation to be useful.

YmiYugy|11 months ago

This is nice, but it would be great to see some more features from VCS applied to laws, e.g. git blame and git log.

bjourne|11 months ago

It exists. The "commits" to the legal code is published in a government gazette: https://en.wikipedia.org/wiki/Government_gazette The current laws are just the tip of the main branch. In theory you could run a git blame and find out exactly which update inserted which specific words into the code. There is even branches in case of state succession, like the breakup of the USSR.

n2d4|11 months ago

I wish there were more beautiful government data aggregators like this one — most people don't even know how much stuff the gov makes publicly accessible (voluntarily or by means of FOIA), probably because it's all buried in 20-year-old Java applets.

What similar resources are out there? Any favorites?

mxschll|11 months ago

I would also like to know. The German government actually has a decent API for accessing countless parliamentary documents, but it doesn't make the data very accessible to normal people...

qrush|11 months ago

Oof. Did the Bundestag recently get promoted to be a manager?

eru|11 months ago

They certainly have more lawyers and administrators than engineers.

mxschll|11 months ago

Getting actionable insights.

notTooFarGone|11 months ago

They get promotions based on LoL (lines of laws)

ThinkBeat|11 months ago

That should probably be "Github" contribution graph.

flobosg|11 months ago

> a Git contribution graph

Aka a heatmap.

mxschll|11 months ago

I learned early on it doesn't matter what's inside, but how you present it ;)

zaik|11 months ago

Also contains some "git = GitHub"

blablabla123|11 months ago

This is IMHO a very problematic take. This suggests the more votes, the more initiatives, the better. But this is very obviously wrong. Generally most industry nations have "only" a handful of large problems. (Something along climate, pensions, health care, housing and economy)

What happens when these get solved in a Stakkato timeframe shows the current US government which at this point even fails to fulfill basic needs of supermarkets. Proper laws/initiatives aren't created/fleshed out by actual politicians but by a whole army of employees of the related institutions.

Everything else is pure populism.

agnishom|11 months ago

I first parsed this as [(German parliament) votes as a (Git contribution graph)]. But now I realize that the intended tree is [(German parliament votes) as a (Git contribution graph)]

outside1234|11 months ago

Was thinking I was going to see a Merkle Tree here :)

rwoerz|11 months ago

You can get her with

  git blame

Terr_|11 months ago

"The Tree of Merkle must be refreshed from time to time with the blood of patriots and tyrants."

flohofwoe|11 months ago

Merkel and Merkle are different names though, just saying ;)

lucb1e|11 months ago

Somehow I expected something about merges and branches when reading git contributions graph. The missing keyword is hub

bilekas|11 months ago

This is great. No maybe everyone wont see it, but making it visual, it hits harder these days. I love this.

maxekman|11 months ago

Awesome! I was thinking about implementing something similar for the Swedish government APIs to improve transparency and knowledge of the democratic processes.

I wonder how easy it is to adopt this project to that?

AlexChalakov|11 months ago

I've been wanting to do smth similar for the Bulgarian government for some time now. Let us know if you try to undertake this project

mcintyre1994|11 months ago

Interesting visualisation! On mobile there seems to be an issue with the months where they all display as one word instead of being spaced out: JanFebMarAprMayJunJulAugSepOctNovDec

a3w|11 months ago

Wäre cool, wenn man die Boxen klicken könnte, ohne gegen das Popup der Box eins drunter zu kämpfen.

pragmatick|11 months ago

Works fine for me on Firefox.

6510|11 months ago

It would be fascinating to have side by side comparison for all countries and history. It would be full of brilliant and stupid solutions. It should really be convenient enough that law makers cant continue to pretend to be the first one to address a topic.

NooneAtAll3|11 months ago

as Github* contribution graph

zoobab|11 months ago

Soon we will be able to replace politicians by citizens.

And everybody should be able to submit improvements to the law.

mvdtnz|11 months ago

GitHub is not git.

throwaway290|11 months ago

This is not a Git contribution graph.

littlecranky67|11 months ago

If my graph at work looked like this, you could derive from it I would hardly be working.

mcintyre1994|11 months ago

I guess it’d be like if you only committed once when you release a new product.

JanSchu|11 months ago

love it. Will be bookmarking this page

_7acn|11 months ago

This is great, but I think blockchain would be even better