[foaf-dev] Fwd: [StatusNet-dev] User Karma

Dan Brickley danbri at danbri.org
Fri Nov 27 08:10:34 CET 2009

Interesting discussion of karma (well not the religious kind) over on  
the statusnet / identi.ca list...


Begin forwarded message:

> From: Jon Phillips <jon at status.net>
> Date: 27 November 2009 06:35:33 CET
> To: Christopher Vollick <chris at controlyourself.ca>
> Cc: statusnet-dev <statusnet-dev at lists.status.net>
> Subject: Re: [StatusNet-dev] User Karma

> <toppost />
> This is super cool!
> I wrote-up a high level spec of what I'd like to see with karma in  
> allowing people to track different types of karma, similar to some  
> bots:
> http://rejon.org/wiki/IDEA_20090906_Identica_Karma
> I like that your system is to be used for spam control, etc, but  
> hey, we should just start the global karma from 0, and allow for  
> users to give karma themselves.
> Also, hey, gaming the system, might allow for some cool results,  
> depending upon how its gamed. Of course, a scenario where the  
> spammers can game a system like I describe, might put us right back  
> in the same boat, but still interesting.
> Curious your thoughts on what I propose and how your system might be  
> adapted for this usage.
> My real intent is to use karma as a type of point system or game/ 
> task system, a way to drive traffic and interest.
> Jon
> On Thu, Nov 26, 2009 at 7:39 AM, Christopher Vollick <chris at controlyourself.ca 
> > 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
> StatusNet-dev at lists.status.net
> http://lists.status.net/mailman/listinfo/statusnet-dev
> -- 
> Jon Phillips
> http://rejon.org/
> +1.415.830.3884 (sf/global)
> +86.134.3957.2035 (china)
> Sent from Ho Chi Minh City, Vietnam
> _______________________________________________
> StatusNet-dev mailing list
> StatusNet-dev at lists.status.net
> http://lists.status.net/mailman/listinfo/statusnet-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.foaf-project.org/pipermail/foaf-dev/attachments/20091127/05eb6905/attachment.htm 

More information about the foaf-dev mailing list