Structural overview

From InstaGov
Revision as of 01:46, 15 January 2015 by Woozle (talk | contribs) (→‎Modules: removed redundant link)
Jump to navigation Jump to search

Introduction

This solution is about using computing technology -- primarily the internet and web software -- as a system with which to form the basis of new, inherently democratic and equally-owned government.

I should be clear that computing and software are not the final product; they are just the framework upon which the solutions will be built, by people interacting in the real world and using physical tools and resources as well as computing and software tools. Ultimately, though, the informational structure is more important than the physical structures built through it; it is failure of informational structures -- laws -- which have led to the present illegitimacy of the US and other governments, and it is those structures which therefore need to be redesigned in order to repair this situation and prevent it from happening again.

Pieces

Let me put some of the pieces on the table before I try to show how they go together, just so I'm not explaining one thing in the middle of explaining another.

First off, everything should be distributed and interoperable, to maximize self-healing -- a feature that is a basic part of the internet, although parts of it have become de facto centralized for convenience of the stakeholders (a solvable problem). If one node becomes corrupted or is otherwise "taken out" (server seized? domain taken down?), users can migrate elsewhere permanently or temporarily without losing much.

Second, there will be heavy usage of range voting. (This seems to be a thing that is very underrated.) I'm envisioning the UI as allowing the selection of any integer between -10 and 10 inclusive, but there are a zillion different ways it could be done and perhaps in different contexts the UI could be quite different (and the different levels of approval could be labeled differently to give more of a sense of meaning). Those are details to work out later.

...but when I say "vote", I mean range voting (as described above) unless otherwise specified. (one-up-vote-per-voter-per-election is a trap used by the powerful to manipulate the outcome. Range voting results in the minimum RMS error (i.e. SUM(([voter preference]-[final vote])^2)^0.5) of all the voting systems I'm aware of. At least, that's what I understand; I haven't done exhaustive tests myself, but I'm pretty sure that's the case.

Third, the software will of course be free and open-source. I'm trying to change the culture by getting people used to the idea of working together in particular new ways, so I don't want to do anything that would hinder adoption.

The software would come with a bunch of modules, some of which might not be of use in all situations -- so each node may have only a subset, or it may have all of them.

I think of them as being kind of like software Lego blocks that you can connect together in a lot of different ways, some useful and some not. I'll provide a few designs with the package, but nodemeisters should feel free to alter those designs or come up with their own.

Modules

The modules I've come up with so far -- some are political, some are not --

Liquid Agenda: Anyone can ask a question, anyone can answer a question that has been asked, and anyone can vote on the answers. This can either be an ongoing poll kind of thing (so we know where sentiment currently is) or for decisionmaking purposes. (I have a demo of this module working; need testers and affirmation.)

Liquid Proxying: this allows each voter to delegate a subset of their decisions to one or more other voters whom they consider to be more informed or having better judgment in one or more areas. This makes it possible, for example, for experts in a given field to have more influence than non-experts. Delegation can either be "advisory" (look and see what your proxies say, then vote) or "automatic" (system automatically sums how your proxies have voted, and votes for you based on that).

I prefer the version in which each proxy can be assigned a weight before summing, but that could just mean I spent too much time playing with neural networks: Weighted proxy voting

Structured Debate lets people collaboratively map out the facts behind any assertion and decide -- objectively and in a highly-documented way -- whether the facts available do in fact support the assertion or not.

I have hand-built a number of mockups of structured debate, and have a pretty detailed data design worked out -- but I'm having trouble with the UI, since it really needs to be somewhat dynamic, and JavaScript seems to hate me.

Credibility management to reward those who make the most valuable comments by amplifying their reach and to punish those who abuse the privilege of networked communication by selectively curtailing that privilege (i.e. troll prevention). A CM system allows users to rate other users in terms of things like credibility, honesty, empathy... (Actually, they can rate them for anything they want, but I'm listing what immediately seems useful. I'll consider it a success if people find uses that I never thought of.) There are some questions as to whether each rating should be public, or if they should only be public in aggregate, or what... but those are questions that could be decided at the node level... perhaps by voting.

Crowdsourced taxonomy would be useful for a number of things -- e.g. for users not to have to manually assign each question to a category (upon which the proxy selection would depend). I'm thinking there would be some combination of global taxonomy and per-user taxonomy, with the nature of the relationship being decided (or invented) at the node level.

Crowdfunded bounty tracker: this would be kind of like a smaller, faster Kickstarter for certain kinds of problems -- starting with open-source software (fixing bugs, adding features, writing new apps...) but I think it has possible uses way beyond that.

Basically, someone describes a problem and pledges to contribute money to the individual or org who fixes it. Others can add their pledges. When someone fixes the problem, everyone (participants and others) votes on whether the problem was actually solved. If the vote succeeds, then the pledgers are asked to pony up. Records are kept of each pledger's actual contribution versus their original pledge, from which the system can predict the likely total reward for any given task completed.

Federated retail would let small merchants and artisans cooperate in ways that would give them some of the leverage of a large retail chain - not to mention giving customers more input.

I need to update that page to add the idea of allowing users to create their own requests for things -- even things that nobody in the network is selling yet. Vendors would see what people want, and could more efficiently fill demand. Taxonomy management would play a large part in this.

I already have an online retail store that I wrote from scratch and which has been in business, off and on, since 1996; the current plan is to adapt its code for this module, since I have a much better understanding of how it works than any of the other FOSS retail packages (such as ZenCart). (It's also pretty well documented from the data schema level upwards.)

The first task on the list is devising an interchange format for catalog and other relevant data. I've sketched out some ideas for that.

Interconnections

Anyway, maybe you can see how some of these things could work together.

Shoppers could rate merchants and products on whatever qualities they wanted to rate them on, and could decide how to aggregate the ratings of other shoppers before making decisions. Merchants could view product ratings across different merchants, and decide which products to carry and which companies to do business with. Shoppers and merchants could reach consensus together on issues affecting them.

When participants in a structured debate disagree about whether a given statement follows logically from the facts, spectators could vote on that (preferably just looking at the statement in isolation, without any names or other context attached -- but again, that would be a node-level policy matter).

I also had an idea for a social network where people could form discussion groups that allowed people in only after they answered pre-set questions about their position on various things -- half of the time, trolls are only able to get away with trolling because they keep their position ambiguous, so they can dance around and snipe from any angle they like.

I'm thinking the whole thing might be packaged as a kind of "social network for thinkers/tool-users", but there's got to be a better way to encapsulate it.

Ultimately, I want it to be the House of Commons for Humanity, the People's Chamber of Commerce, the International Citizens' Union...

Notes

Adapted from my comment here.