Was looking around and surprised how little discussion there is on a point system in drupal. Has one ever been developed? Is karma part of future plans? Until then, is there a way to create something like a points that could be passed between users. I was thinking maybe node moderation could be tweaked a bit to have votes equal points, but there seems to be no connection between votes and the author, only the node. Any ideas?

Comments

killes@www.drop.org’s picture

We once had a rating module, but it was removed from core and nobody took care of it...
--
If you have troubles with a particular contrib project, please consider to file a support request. Thanks.

bertboerland’s picture

gravity it was called I remember. Like "drupals" (drops in Dutch) going down due to gravity. I would like to see this module make a comeback.

On a sitenote, did anyone upgrade drop.org recently. Cause it already was an abandoned village ("dorp", "drop") but now one cant even look at abandoned houses anymore
--

groets


bertb

--
groets
bert boerland

gábor hojtsy’s picture

It was not upgraded, juding from the URLs it spits out: http://www.drop.org/module.php?mod=user

killes@www.drop.org’s picture

Feel free :)

http://cvs.drupal.org/viewcvs/drupal/contributions/modules/rating/Attic/
--
If you have troubles with a particular contrib project, please consider to file a support request. Thanks.

grohk’s picture

I am very interested in the possibility of the updating this module.

Code Orange: Drink Your Juice

Steven’s picture

We shut down drop.org as it was nothing but a haven for linkspammers. Maybe it will make a comeback in the future.

bertboerland’s picture

I have to say I havent looked at drop.org for years. But still, pulling the plug is the end of an era. I visited it often during 2000 when I still used *ahum* phpnuke.

Hope the drop.org domain will keep to exists otherwise I'll end up with a new UID somewhere in the 15xxx range :-)

In case we / someone comes up with a good use for the domain, it might get a new life. I hope it does. Anyone a good idea?

--

groets


bertb

--
groets
bert boerland

media girl’s picture

Drupal.org I feel is best kept on topic ... development and administration of Drupal-running sites.

But what about a more informal place where people can let their hair down and blog/discuss/etc. about things not necessarily "problems" for the Drupal.org environment, and not necessarily things we'd want to share on our own sites?

It could either be wide open or closed to people with Drupal sites. (Maybe a module in our own sites to ping drop.org for membership confirmation?) Or, using taxonomy_access, have both.

What's to be gained? Perhaps a greater sense of community as to who we all are. This can lead to viral marketing of our own sites/stuff just through friendly networking. It could also lead to new ideas as to what we'd want Drupal to be able to do. Interactivity is going to explode in the coming few years, and a strong sense of community can help Drupal keep apace.

I know that a lot of people already know each other here. But as this user base grows, that sense is going to fade. A Drupal lounge of sorts would be great, IMHO.
--
mediagirl.org

javanaut’s picture

I certainly agree that many Drupal developers need to lighten up :P

I think the levity and camaraderie that you seek happens to some degree on the IRC channel and through private emails. Some people have an aversion to "letting loose" when they know that there's going to be a permanent public record of it. However, I'd certainly appreciate it.

I have very little knowledge of people's personality on this site, other than their technical side. That's really the only side of my persona that I show here. In many ways, it is good that this site keeps a professional tone about it. A separate "hang-out", perhaps even a blog-oriented site, might give more insight into the developer community here.

When people are wondering why the hell javanaut has been slacking for the past few weeks and has contributed absolutely no code, they can find out the he's been consumed with a 'paying' project, on the road, living in a hotel, renovating a home, on a drinking binge, etc.. Basically, offering more channels of expression other than "when was the last CVS commit from user xyz?"

grohk’s picture

I have been hanging out on the #drupal-support IRC channel and think it is better suited to some types of Drupal conversation...more ephemeral topics. but the #drupal channel does not look informal or inviting, since many highly technical users are on that channel and the topic message sounds rather menacing.

Hell, IRC itself is not exactly a very inviting place for non-technical users. Perhaps we could have a Jabber chat room or something?

A Drupal blog section might be a nice idea...Informal discussion would be nice...Perhaps it could just be a subdomained blogs section like http://planet.debian.net ?

Code Orange: Drink Your Juice

moshe weitzman’s picture

I think a specification fow how this should work would be a good next step. That means taking a look at existing implementations (kuro5hin, Slashdot, ...) and picking the best ideas.

I agree that node moderation is a good basis for this. I think its more socially aceptable to rate content than rate people. Note that comment.module manages rating of comments and nmoderation manages rating of nodes.

I think a new karma module could simply listen for votes of either type and perform appropriate calculation.

We still need a spec for what to do with the person score.

javanaut’s picture

I would think that the privileges on a site would be granted or revoked based on the person score value.

Possible Implementations:

  • adjusting the role (automember module) and configuring node/comment moderation permissions accordingly
  • having nmoderation/comment modules verify that the person score is sufficient prior to allowing moderation.

I personally like the automember approach (though I've still never used this module). I think it would offer the most flexibility.

I also think that modules should define a hook_karma (or whatever it will be called) that is used to define events that it thinks are worthy of affecting the karma. It could return an array of:

array(
label,
action,
score modification,
default score modification
)

and an admin screen could be used to override the default values. The module would be responsible for applying the appropriate karma modification by calling some karma API with action and score modification value.

grohk’s picture

I think I agree that the role manipulation idea is indeed the most flexible idea. Basically Karma is a trust metric, and its only inherent value lies in whatever permissions are granted to a user that possesses it. This being said we should be careful about how it can be applied to our communities.

For instance, I think we should also have options for how Karma could behave on differing sites. Many sites may not want the karma of a user to be a publicly known value. Likewise, some people would like Karma to be a commodity, to be earned and spent like money. Other models could emphasize a fully public and accountable voting process where every moderation vote is logged for all to see. How do we accommodate all of these ideas?

Basically, my ultimate desire for this module is to distribute the moderation duties and thereby diluting the subjectivity of the act itself. My hope is that by doing so more differing points of view could co-exist and encourage quality content.

Code Orange: Drink Your Juice

adub’s picture

I would love to see something simple but powerful along the lines of reddit.com.

grohk’s picture

It is one of the projects I hope to sponsor in part someday. But before we have a Karma-like system (I like Scoop's Mojo system better), there needs to be better comment moderation. I want to help improve comment moderation so that it actually records users votes (it only records who voted, not what value they voted) and enhance our node moderation module so that maybe we could link it to a module like Automember (which currently only takes a users volume of posts into consideration) to change a users role based on something like Slash's Karma or Scoop's Mojo systems.

I am extremely interested in talking more about this possibility. I am going to go dig up the old rating module and see if it could be helpful or useful.

Code Orange: Drink Your Juice

adamrice’s picture

I wrote a rather lengthy comment on this exact topic a rather long time ago. I'm not up to the level of coding it up, but I'd be happy to contribute to a functional specification.

Adam Rice

adamrice’s picture

It's important to keep in mind that karma systems rate both content and users; these are inter-related but not identical.

Here are some thoughts on a karma system that would permit maximum flexibility (and perhaps maximum complexity).

The system would include several different rating schemes hard-coded in--there's the "time-weighted average" used in the mojo system (op cit), a simple cumulative score, an average score, total votes cast (for content), total contributions (for users), etc. It might be possible to let admins type in mathematical expressions for custom schemes--this raises obvious problems though.

1. The admin would create content-moderation rules (similar to mail-filtering rules).
Each rule is a set of conditions, AND|OR|NOT'd together, and a set of actions
Possible conditions:
- Content creator = [some role]
- Content rating points, according to ratings scheme X, <|=|> [some value]
- etc

Possible actions
- Set user role to [some role]
- Promote content to front page
- Show content to [these roles]
- Hide content from [these roles]
- Delete content
- Send user a private message
- Change user rating by N points.

2. The admin would create however many rules were needed, and then switch to a taxonomy-moderation view, which showed all the terms in the taxonomy with dropdown menus alongside to apply a moderation rule (or no rule) to each term.

3. The admin would define a system for allocating moderation points to the community.
The following should be sufficiently generic to cover most of the bases:
__ % of users with [some roles] receive __ points every __ days
points expire after __ days.
The blanks would take integers, except perhaps using "all" as a special keyword. In a scenario where users have an unlimited number of mod points, expiration becomes irrelevant.

4. The admin would set names for ratings and mod point "prices" for those ratings. Negative ratings could be costlier than positive; ratings assigned by advanced roles might be "cheaper" than than ratings assigned by newcomers.

5. The admin would select what kinds of ratings were displayed for content and for users, if any.

6. Content modules would allow filtering by rating.

Note that a lot of this overlaps with the functions currently filled by permissions--the two would need to be harmonized.

Adam Rice

javanaut’s picture

I have experience building and managing a slashcode-based community and would be willing to contribute whatever I can to this effort (or something like it). I would have to say that the karma system as implemented with slashcode seems to go against the notion of simplicity that drupal advocates. The user interface would have to be very accommodating, especially for non-technical users.

I understand the reasoning behind how slashcode karma works, but I received many complaints from users who didn't understand the nuances of how it worked and had points/moderations lost as a result. It's been a few years since I delved too deeply into it, but I'm sure (in retrospect) that it could be done better.

Also, this would only be useful on somewhat larger sites. Using some empirical statistics, if a typical site has 15,000 users, 10% of those are actually active. Only 10% of those will be interactive (i.e. they do more than just read articles), and only 1-5% really contribute in a way that fosters the community. Using such metrics (slide the numbers around to fit your site's profile), it becomes apparent to me that a karma based moderation system isn't worth the complexity unless you have enough active participants (in my opinion). If you have a smaller community and you end up with 20 active users sitting around waiting on karma points to "happen", your community will die a boring death.

Hopefully I haven't confused the issue here. I just have concerns about karma points that I think should be considered in a new rating design. The point system needs to be adjustable to fit the type of community and not stifle input while keeping noise from overcoming the signal.

jasonwhat’s picture

This could easily become it's own beast with no relation to current modules. It would be great to see this system hook in with some existing modules like automember, nodemoderation, and affiliate (once it is working). Spreadfirefox also has a great affiliate module that does give points, but they haven't updated it or added it to CVS here.

This may not actually work for what I'm looking at, because I'd like a point sytem with a limited number of points that are passed around. For example, you earn points by referring new members, and then give your points to others to up their rating or whatever. I think the point thing becomes a little more meaningful in a system like this where you have to really think, and like someone's content before you give them a point, a precisous point, "my precious." Of course I am not up to the level of programming this mythical Karma system, but if the one that does get built allows admin to set the number of points, I will be happy.

javanaut’s picture

I could see a karma system integrating with Node Moderation and automember in theory (I have not used either, and I haven't seen affiliate module yet).

I could see a scenario where a list of system events were listed out (views node, creates node, posts comment, creates xyz node, someone rates node, etc). These could be similar to what adamrice mentioned above, where next to each of these events would be an action to perform. So, you could have:

<code>
  Event                        Action                 Action Amount
post image node            add karma point               +5
post comment               add karma point               +1
node up rated              add karma point               +1
node down rated            add karma point               -1
rate node                  add moderation point          -2
rate comment               add moderation point          -1

etc..

There would definitely be more complexity to it (perhaps in a cron hook) involving weights for calculating point distribution using karma.

If this karma system were to randomly dish out moderation points (similar to slash) with a weighted preference for users with high karma value (this is getting to complex, isn't it?) whose value diminishes with time, I could see the following modules participating in the karma process:

automember:
I could see automember automatically (via cron) bumping the roles around based on changes in karma value.

node moderation:
I could see node moderation showing/hiding the moderation links based on availability of moderation points. There would have to be a hook defined to alert modules that a node was moderated so that points could be properly reduced (might exist already, I didn't check).

grohk’s picture

What is the purpose of Karma? I think we need to come to a consensus on this first. Karma, Mojo, Gravity, whatever we shall call it...It is most likely going to be just a number. Let's put aside the different ways in which we shall compute this number, the real question is what purpose shall it serve? What's the goal?

To me it shouldn't be a game. Hopefully it can be a way to maximize content quality by enabling good users to more generate better content by granting them greater flexibility through permissons.

To this end this magic number could be used by automember to change a user's role, and with it their permissions. Drupal's new multi-role system opens up a huge number of different combinations for how this could be used.

I would be fantastic if this module could be modular itself and allow drop in formulas and rules...But is that realistic?

Code Orange: Drink Your Juice

javanaut’s picture

Karma in this context is a quantitative value indicating the qualitative value of a user.

Often, karma is a misleading metric from which to base privileges on because people (users) are not inherently stable or consistent. Just because user "joe.user" plays well with others one day doesn't mean that he will continue to do so in the future. Privileges granted based on one day's good behavior may be abused on another day. This is one of the reasons that karma-based systems get so complex - to offset possible abuses from unstable users. Otherwise, we'd just make the "cool" users powerful and the "non-cool" users weak and keep it that way. The complexity involved is also why I'm only half interested in an implementation of it as I know it to be. I'm still hopeful that there is an easy solution for this.

It seems like the purpose of the features that we want (call it "karma2") is to promote good community behavior and restrict bad behavior. To this end, there appear to be several systems in existence that handle this. My only familiarity is with karma as Slashcode defines it. I'm interested to see how it compares to Mojo, Gravity and other such promotion/restriction mechanisms.

I'm interested to see how an effective system could do so merely based on rating the content and not the user, if at all. I don't see how any automated or subjectively activated user rating system could accurately gauge the usefulness of a user. The best you could do (IMO) is to create a set of metrics (business rules?) that covers the most ground, as presented above. Even that would be grossly inaccurate from time to time, and is certainly not a simple solution.

aries’s picture

Are there any working example?
--
Fehér János aka Aries

javanaut’s picture

We're still at the design phase here. The propstar module handles basic node rating, but nothing as of yet rates users and grants/revokes priveleges based on that rating.

jasonwhat’s picture

Node moderation also rates and has a configurable rating matrix that can very per user.

Automember does rate users by standards set by admin, but users don't directly rate each other.

chrismessina’s picture

Over at Spread Firefox, we're using some kind of voting system for nodes, but it's pretty meager. We could absolutely use this kind of functionality...

While you're at it, check out my rating demo. I don't think it works in IE yet, but it degrades hella nice. And I'm dying to get this into Spread Firefox.

Chris

--
User Advocate for CivicSpace Labs

jasonwhat’s picture

Any chance of getting spread firefox mods into contrib and updated?

sethcohn’s picture

Propstar is a fully working 5 star rating system for drupal (4.5)

http://www.madprops.org/index.php?q=node/2154

jasonwhat’s picture

Are the ratings tied to users in any way? Can users see how they have been rated or track points/ratings at all, or do ratings only relate to nodes?

sethcohn’s picture

and it tracks quite well. Most likely adding the rest should be easy, if it isn't already doing what you want...

I like it.... it'll be part of my stock install from now on...

sepeck’s picture

Any way you can store that on Drupal.org cvs so it can have a project of it's own?

-Steven Peck
---------
Test site, always start with a test site.
Drupal Best Practices Guide

sethcohn’s picture

Mabster is the man... If I had a cvs account, I'd add it, but I don't (yet)

media girl’s picture

What appeals to me personally about Karma is that it can provide a way to empower users making positive contributions -- as rated by other users, as rated by moderators, as rated by certain actions taken (to be defined by admins) -- so that the "good" players have a greater effect than the lurkers and trolls. It's a fabulous way to filter the good stuff from the chaff, and it provides a new level of automatic interactive moderation beyond spam filters and the like -- which is essential for any site that starts to grow. I would love to see new development of this module.

Perhaps I'm stating the obvious.

While I think like idea of points that you can "spend" on ratings, etc., ("commercie points"?), I don't know if that's not a different system. I can see how it would attenuate trash-rating wars between users, but it seems like perhaps commerce points can provide other opportunities for interactivity besides Karma. For one thing, Karma is about giving, and commerce is about spending. I feel there's a difference that can be explored.
--
mediagirl.org

grohk’s picture

I agree with you about the "commerce" aspects of this idea. Limiting the number of points could lead to hoarding instead of encouraging spending. I like the idea giving encouragement freely. This is one of my problems with Slash's Karma system...People become afraid to post for fear of ruining their Karma, or conversely, get the "I got Karma to Burn" syndrome and begin to Troll. Scoop's mojo system attempts to address these problems by time decaying your rating. In order to keep up your privileges, you must keep posting good stuff.

Ultimately, what do we want out of a rating system? Bascially, I think the main idea is that we want to determine who can be trusted with certain privileges and we want to rate content to determine its "goodness."

Code Orange: Drink Your Juice

jasonwhat’s picture

but the question is, can a module be flexible enought to do both- simply allowing admin to set points either as unlimited, or set the number. Also, any thoughts on hooking in with existing modules? Is that feasible?

grohk’s picture

I really hope that this kind of flexibility can be a reality. The basis for this idea exists in that the numbers are there. Node moderation gives value to nodes and comment moderation gives value to comments. But the real question, as Moshe puts it, what is it that we want this module to do?

My suggestion was:

It seems to me that more frequent and reliable people should build trust and be granted permissions as they build their reputation. Perhaps adding or removing roles based on user defined thresholds. That would seem to be the most flexible option. Maybe this score could be used by automember in addition to its current formula?

What we need here is an all encompassing wishlist for all the features we all want and decided what is reasonable, then write a spec.

Javanaut and adamrice both have good ideas above and I think we can figure something out that will help Drupal move beyond the current ideas of community moderation and ratings.

Code Orange: Drink Your Juice

hexa’s picture

It seems to me that here were posted a lot of good ideas, but i haven't seen any code produced yet. What;s the problem? People seem wiling to contribute code.
Mybe the module is in developement but i failed to notice?

grohk’s picture

As for myself, I just haven't had time to follow up on this yet. I think the coding of it is going to be beyond my abilities, so I am going to have to sponsor the module's development if I want it. But so far, I have been focusing on other issues.

---
Code Orange: Drink Your Juice

iandickson’s picture

There are three types of Karma - Public, Private and Small World.

Public Karma - you score points, you get stuff (access, power, promotion to front page, whatever). Most commonly understood type. BIG ISSUE - to work well it needs to proofed against gaming. This is hard. Other big issue - has implicit assumption that community members hve a common view re how you get respect. This is very rarely a correct assumption.

Private - people assign Karma points to those they respect. Only effect is that you get told when people with X karma have posted ( bit like tracking) or that people totalling X karma points have taken part in a thread in the past Y days. (I.e. chances are, you want to read it).

K recipients do not know you have given them K.

Small World. As private but recipients get told they have K, possibly how much and who by. Purpose - helps like minded people find each other.

Private and Small World is game proof as there is no benefit in gaming it. (Except inside corporate communities. Workaround there is to ration the K so that it gets spent wisely).

abqaria’s picture

great ideas

where can we get karma ???

help please

bertboerland’s picture

where can we get karma ???

Ooohmmmm!
sorry, could resist

here

--
groets
bertb

--
groets
bert boerland

edrupalec’s picture

Ian,
Your points are right on. Have you used Karma on a site (does not have to be Drupal). I would be very interested in following the development of anything like this.

Userpoints can be used for some of the public aspects.

Drupal ecommerce, at http://www.drupalecommerce.com
http://www.drupalecommerce.com/troubleshooting
http://www.drupalecommerce.com/modulesexplained
http://www.drupalecommerce.com/47vs46
http://www.drupalecommerce.com/howto

iandickson’s picture

In essence , as with most things social network oriented, it's all about people....

This is the sort of thing that we had decided to implement before the plug got pulled.

Not being a programmer however, I cannot develop it.

What I DO want to do though is talk with some good Drupal people regarding taxonomy, namely the development of a generic taxonomy toolkit to allow sites to use a common taxonomy, without having million item databases.

It would open up serious intersite linking and commnunity that scales liek real communities do.

I'm sure that it can be done, mainly because we did it. (The three pillars of our software were Common Taxonomy, Conversations as the basic block of community, and Huristic Interfaces).

Ian Dickson - community specialist.

edrupalec’s picture

Ian,
thanks for the reply.

Yes what you are talking about would be very useful.

By the way, there is a 4.7 karma, but I couldn't get it to work. It lets users vote on comments, and attaches a rating to each comment. So it's misnamed. It's not karma for the poster, but a rating of the comment.

I like your 3 categories.

Drupal ecommerce, at http://www.drupalecommerce.com
http://www.drupalecommerce.com/troubleshooting
http://www.drupalecommerce.com/modulesexplained
http://www.drupalecommerce.com/47vs46
http://www.drupalecommerce.com/howto

abqaria’s picture

Yes its all about comments, its not rating users

edrupalec’s picture

Thank you. If anyone wants to do a karma module for users, I'd be interested. Userpoints is public actions only.

Drupal ecommerce, at http://www.drupalecommerce.com
http://www.drupalecommerce.com/troubleshooting
http://www.drupalecommerce.com/modulesexplained
http://www.drupalecommerce.com/47vs46
http://www.drupalecommerce.com/howto