Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I assume for your calculations you only consider the karma of the item you only consider the karma earlier voters had at the time of their vote and not their current karma (which may have changed since them) as this would result in a recursive function which probably would involve all items and all users.<br> Another assumption is, that the karma is indeed absolute but is recalculated when a new vote is done as votes are less frequent then views.<br> I'd store all votes of all users, the karma they had at the time of the vote and the voting direction for each item.<br> The final assumption: you add karma to the submiter not right after a vote but after a certain timespan. If you add it right away the submiters karma would go up/down quite often and result in a heavy jitter in your system. If you get a new vote I'd first calculate the new karma of the item and then add karma to the user depending on the absolute karma-change of the item: </p> <p>The karma of an item is the sum of karma of all voting users: For example you have three votes: one up with 50 karma, one up with 150 karma, one down with 30 karma. This would result in a total karma of 170. So the item has an karma of +170.<br> Once a new user votes, you recalculate the karma of the item with the new vote taking into account: (previous example) new users votes up with 10 karma. New karma of the item is +180. The difference of the item's old and new karma is the karma the user gets: (previous example) the user's vote changed the item's karma by +10, so the user gets +10 karma (for future votes). The downside of this idea is, that high-karma users gain new karma very very fast, so you probably should add some limiting faktors here too (like logarithm) to scale it properly. As you want to consider the age of the item too, you can multiply the gained karma-points by a factor depending of the age (for example, if the item is older then 5 days, the user doesn't get any karma at all: 5 days - timespan to vote multiplied with the changed karma-value). </p> <p>This is of course a very vague draft of the system you want to implement and I don't know if it fits your idea. It probably can be modified to add other factors as well:<br> You can determine the % relevance with: (absolute postitive karma/absolute negative karma): values less then 1 have more negative carma then postive karma and the other way round. But for a reliable % value you need some value to compare too in my oppinion (be it constant or calculated otherwise).</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload