Hi Christopher - Thanks for sharing - this is an interesting approach. One thing you might consider is to add Karma aging to the model e.g. the Karma of people is aging over a certain period of time. Also you might be interested how we calculate Karma in Community Equity (we call Karma *Equity) - an open source social value systems (see intro paper), And last but not least you can check-out the demo site where we calculate Community Equity for a status.net microblog ..
Regards Peter On Nov 26, 2009, at 1:39 AM, Christopher Vollick wrote: > ** This email gets kind of long, rambley, and a little bit technical. Read as > much of it as you like, and feel free to ignore the rest ** > > So, today I woke up and felt like writing a User Karma thing. > So, I did: > http://gitorious.org/~cvollick/statusnet/cvollicks-clone/commits/karma > > It's intended to be for Spam Things. > > The way it currently works is this: > When User A subscribes to User B, User B's Karma increases by 1/10th of User > A's (Assuming it's positive), by default. > When they unsubscribe again those points are by default removed. > > The same when one of their notices gets faved. > > When a user gets blocked their Karma goes down by 1/10th of User A's. > > When a user gets blocked by a group it's 1/50th the blocking user's karma. > I did this because I figured that people are more likely to be blocked by a > group for legitimate reasons that to be blocked by people. > > This required adding some more Events. > Having added 4 or so of then in occasionally questionable ways, I feel like > there might be a better way. > > I've capped Karma at -1000 and 1000. > This was so that popular people like Evan and BUGabundo don't end up with, > like, 1 500 000 000 karma. > Then, with a single fave one of you Titans would descend from Heaven and give > but a taste of your power to mortals who amuse you. > Or, I feel bad for the person who one of the Titans decides to block, and > completely destroys their account. > Anyway.... > > > So, the "Karma" plugin is just infrastructure, it only maintains Karma, but > doesn't do anything with it. > So, I wrote "KarmaModerator" to demonstrate my vision for Karma. > KarmaModerator is a second plugin that emulates sandboxing a user when their > karma drops below 0 and emulates silencing a user when their karma drops > below -500. > At no point does it autodelete their account, but it would put them out of > commission until they can be dealt with. > I could have used normal silence and sandbox, but I didn't want to interfere > with the other methods of sandboxing and silencing. > That could have been the wrong thing to do, time (And Evan) will tell. > > > I tried to make a system that was not gameable. > As a result, there isn't really any boot strapping. > There is nothing that you should be able to do that generates Karma out of > nowhere. It's all currently dependent on existing karma. > This was so that newly created accounts aren't capable of wrecking things. > In this system, I'll admit, if a spammer were ever able to get a significant > amount of power somehow, he could do some damage to the lesser mortals. > It would take a concerted effort of might to bring down one of the Titans, > though. > With the 1000 cap, it would take 10 people all with 1000 points blocking > someone with 1000 points to even get them blacklisted. > Currently nothing costs. > It's possible that something like blocking requires spending Karma. > I decided against that for now. > > Back to bootstrapping: > So, I'm planning on writing a script that takes the existing system and > generates a rough Karma for existing accounts based on a few initial values. > For example, it's probably be like "Take the top 10 most popular accounts and > give them each max karma. Now, pretend that they all just started following > all the people they're following. Then pretend that they all just started > blocking everyone they've blocked. Pretend they've all just faved all the > things they've faved." > That'd probably generate some fairly fair scores off the bat, and the system > can take over from there with everyone else. > > Also, there are currently ways to game the system kind. > Of course, two people could fave all of each other's notices in turn gaining > popularity slowly. (This is only possible once they have over 10 karma) > A lot of the gaming I've considered involves a chain of following and > unfollowing. > I considered writing another Plugin that would implement a history for this, > so once I follow someone my Karma will be snapshot and any time I follow or > unfollow them it will be that value. > This is to fix an issue I considered where I start an account and follow > someone, giving them 0/10, or 0 points. > Then I become popular, and then when I decide to unfollow them, perhaps with > no ill intentions, it reduces their karma by 1000/10, or 100. > > Currently it's my feeling that only Moderators should be able to even see > Karma. > Other than that it's just a hidden value that most people don't even really > know about. > This makes it harder to game, because you can't see your progress. > > Anyway, this is just the first iteration. > I mostly just wanted to write it, so I did. > > There are probably far better ways of doing most of the things I did, but > it's always easier to augment then to create. > > So, what do you think? > _______________________________________________ > StatusNet-dev mailing list > [email protected] > http://lists.status.net/mailman/listinfo/statusnet-dev
_______________________________________________ StatusNet-dev mailing list [email protected] http://lists.status.net/mailman/listinfo/statusnet-dev
