Too Busy For Words - the PaulWay Blog

Thu 25th Aug, 2011

Git for Nomic

I read of an interesting project today: Open Knesset (in Hebrew). It takes the laws created by the Knesset (the Israeli parliament) and checks them into Git, an open-source, distributed version control system. Other people can then get those versions and modify them to their own preferred wording. Because git provides information about what lines of each text file have changed, it's easy to see where people agree and disagree, and to see what improvements people might have. By merging and copying from other people's work, you can converge on a more universally applicable system of laws.

Long ago I started playing Thring Nomic, and I and some friends created Mornington Crescent Nomic. Nomic is a game where you start with an initial set of rules and people propose modifications to the rules; the modifications get voted on and the ruleset changes. You can win either by satisfying some condition in the rules, or by proving that the game is in a state of paradox. It's an amusing system for exploring how rules work and what makes rules function - you get very good at coming up with loopholes and thinking of problems with the way rules are worded.

The fundamental burden of traditional Nomics is that the ruleset changes and other game mechanisms have to be coordinated by a person, usually designated "the Speaker". I wrote a system of Perl scripts and a database to encode and automate some of this (it's not worth linking to, it's mainly defunct). The type of game you play, of course, depends in part on the functionality of the system implementing it; in CGI Nomic there's no point in proposing a rule that states there's a fourth sub-level of rules, because the system was only ever designed to cope with three. (Well, you could propose it, but it would be impossible to implement in the game system with out me revising the code.)

Most games, and most Nomics in my experience, work on having a common, single set of rules. But what if everyone worked on their own personal set of rules, and could request updates from other people? I would say "I've got a new rule that allows people to collect a point for each new rule they've created that gets into another person's ruleset", and people would choose whether to add that rule to their ruleset or not. Rules would be numbered by the ID of the commit that first introduced them, to avoid overlap. And there would have to be some understanding of 'consensus' in the game - for instance, you can only declare a thing to be true if two thirds of all the rulesets allow for it to be true. So I can create a rule saying "Paul wins the game", but it only becomes true if two thirds of the people then copy that rule (verbatim) into their ruleset.

The automatic versioning might also come into play with fixing rules. One of the traditional problems in Nomics is that a rule might be proposed which has a flaw that the author missed but that's obvious to someone else. Usually you can't change your proposal, so while there's some incentive to get it right first time, there's also an incentive to vote against version A and then propose version B. With git, however, you can see what someone else has done and say "hey, I like that, but I think it could be better written like this". And then the other person can see your improvement and might think "that version really is better, although it misses out a thing I wanted to avoid", and changes their old rule to a new version. Then you might copy that because it has the best of both authors, and others might do the same. That way you can collaboratively work on fixing rules rather than being limited by the fixed interaction of traditional Nomics.

It'd be an intriguing game to play, that's for sure. One where everyone has a copy of the rules that is divergent to a lesser or greater extent, yet one where there is a growing consensus about what's going on in the game. Would it inevitably fracture, or would it keep a core of rules that kept on working and people kept on using?

If only I had the free time to try it out.

Last updated: | path: personal | permanent link to this entry


All posts licensed under the CC-BY-NC license. Author Paul Wayper.


Main index / tbfw/ - © 2004-2023 Paul Wayper
Valid HTML5 Valid CSS!