Hi all, I've been mulling over an idea for a while, and I've finally taken the time to write it down.
The problem that inspired me to think about this is my casual involvement at Daily Kos, which is a popular political discussion site. I find the sheer number of diaries and comments positively overwhelming. What's more, there doesn't seem to be much incentive for people to form subgroups of specific interest, other than the tagging system and a general consensus that one should band together with locals. I've thought about how the problem applies on the EM mailing list. There seems to be several different major schools of thought, with clusters around Condorcet-compliant methods, Range/Approval, IRV, maybe a smattering of people who still prefer plurality, and some that prefer more baroque mechanisms. However, the volume on this list, while sometimes heavy, is still within the bounds of what an interested reader could keep up with (though I personally haven't). Moreover, any fancy mechanisms are much harder to implement on a mailing list than on online forums. We just don't have a problem that would warrent any complicated solutions, though maybe it'd be fun to experiment anyway. Larger communities like Daily Kos have this scaling problem in spades. I suspect a lot of great thinking gets missed because of the shear volume. What's more, the strategy seems to be "write more, eventually someone will notice", rather than form groups to /concisely/ promote a shared agenda. Moreover, there's things that you just don't say over there, for fear of getting "cast off the island" (anything that isn't rabidly anti-Nader is "troll rated", meaning it won't stay on the site for long). Get troll rated too many times, and you can't even post. Slashdot (http://slashdot.org) has a some interesting filtering mechanisms, where one can say "give me all of the comments rated 5 and higher". However, how they arrive at those ratings is sorta mediocre. One can get a high rating simply by having only something moderately interesting to say, but doing it quickly. I've found getting a "5" on Slashdot has much more to do with timing than with the thought I've put into my work. My solution would be to come up with a hierarchical filtering mechanism, where all users are placed (via election method described below) in small groups of 6-10 people. The leaders of each of these groups would themselves be members of small groups, up to the top of the hierarchy. Members of each group see all posts by all other members. Either the leader or a majority of the group can then vote to promote items to a higher tier. Users can then set how many tiers of comment traffic they want to see. Everything from "only top tier" (plus my group) down to "everything everyone posts". Perhaps a user may be interested in filtering out everything from a particular subgroup. Given the detailed structure that would emerge, there'd potentially be a pretty rich mechanism for filtering out the riffraff, while at the same time potentially getting the "best of" certain perspectives. The interesting part about this system would be that it would potentially be a way to allow multiple viewpoints to co-exist on the same posting infrastructure. In addition to accomodating those that are only interested in hearing their own viewpoint reinforced, it would potentially allow for some great debates at the top tier. The key part of the system is the idea that everybody has a place among a small group of peers. The load of reading all of the comments is distributed by design. Group leaders have incentive to read and promote comments from those below them, because that's how they become even more popular (and move to the next tier). However, they also have incentive to ensure that they aren't promoting everything, because that could negatively affect their popularity. So, with all of that out of the way, here's the method I've come up with. ---- Method involves creating a hierarchical structure of workgroups, each of which has between 5 and 9 members. Vote every three months (with a persistant ballot that optionally lasts one year). The tier 1 leader is chosen by Schulze(wv) (or other suitable single winner system, preferably one that is good at taking ranked/rated ballots and chosing a negotiated winner). The tier 1 members are chosen using proportional representation. The members of tier 1 are also leaders of groups in tier 2. The same holds true for members of tier n; they are leaders of tier n+1. The members get distributed in the hierarchy as follows: 1. The membership of the tier n+1 (and beyond) members is first divided up and allocated as "constituants" amongst tier n, based on which tier n winner is ranked highest on that persons ballot. 2. Each tier n member (tier n+1 leader) is evaluated, in order of number of constituant ballots which they are ranked highest compared to other tier n members. 2a. Does this member have more than their quota of allocated constituants? If so, go to step 2b. If not, continue to the next member (repeat step 2). 2b. The ballot of the tier n+1 leader is inspected in order of ranking. Each constituant that appears on the leader's ballot remains as a constituant, until either the quota is filled or the ballot is exhausted. If a group of constituants being evaluated is ranked equally on the leader ballot, and retaining all of those constituants would put that leader over quota, then none of those constituants are retained. If the quota is filled, skip to step 2d. 2c. The remaining constituants are retained by one of the following methods: i. successive acceptance of Condorcet winner ii. by lot iii. other reproduceable but possibly arbitrary metric (e.g. seniority) (I'm not sure what makes the most sense here. This is complicated enough that something reproducable is probably preferable to randomness) 2d. The remaining constituants are distributed to the other leaders, as in step #1. Repeat step 2 until all constituants are divided. 3. Repeat the process for the next tier Quotas: If there are n tiers, then a minimum quota per group applies only to tier n-1. Maximum quota applies for all tiers. My current thinking is that the quota should be set to a minimum of five members plus one leader in a group, with a maximum of nine members plus the leader, where the algorithm for setting the quota should optimize for the minimum rather than the maximum. However, you always want to ensure that tier n+1 has more members than tier n. So, an example of how it would work: 6 members = 1 leader, with one group of 5 10 members = 1 leader, with one group of 9 11 members = 1 tier one leader, 5 tier one members, 5 tier two members, divided into up to 5 groups (quota 5) 31 members = 1 tier one leader, 5 tier one members, 25 tier two members, divided into 5 groups (quota 5) 32 members = 1 tier one leader, 5 tier one members, 26 tier two members, divided into 5 groups (quota 6) 91 members = 1 tier one leader, 9 tier one members, 81 tier two members, divided into 9 groups (quota 9) 92 members = 1 tier one leader, 5 tier one members, 25 tier two members, divided into 5 groups (quota 5) 61 tier three members, divided into up to 25 groups (quota 5) That's the basic idea. It seems rather B-Tree like, but I'm not sure the exact algorithm for determining the group quotas based on the the number of members and the min and max group size. Anyway, I'm interested in hearing thoughts on this. Rob ---- election-methods mailing list - see http://electorama.com/em for list info
