This new SoapBlox-powered site has a nice explanation of how their recommended diaries module works. I thought it might be helpful to point to it here in hopes of spurring some ideas on features for nmoderation (and perhaps node vote?).

Here are the rules of how Recommended diaries are figured out in SoapBlox. There are four variables that a blog owner (the Admin role) can set.

1. Number of Recommended Diaries - this is the total number of diaries that can appear on the front page in the "Recommended Diaries" area.

2. Maximum days to Recommend - A user is only allowed to recommend a diary for a certain amount of time. This makes sure that the "Recommended Diaries" area stays fresh.

3. Recommend Half Life - A measure of time, in hours, of when a Recommendation from a user will be worth half it's value. This time is based on when a diary is posted.

4. Initial Recommendation Points - How many points the original recommendation will be worth.

Further explanation of the algorithms:

The formula for figuring the scores of the diaries works like this:

hoursSincePost = the hours since a diary has been posted (truncated)
halfLife = the half life, in hours

We calculate a value called halfLifeExponent

halfLifeExponent = hoursSincePost / halfLife

Then we define:
initialPoints - the initial points
numberOfRecs - the number of times this diary has been recommended.

And we get our formula:

diaryScore = (intialPoints * numberOfRecs) / (2 ^ halfLifeExponent)

I thought this was interesting and specific enough to share here.

Comments

Boris Mann’s picture

It's an interesting algorithm...the math by itself seems a bit esoteric for me: that is, I can't tell what it would do in a live community...

NModeration deals (mainly) with promoting/demoting posts, rather than showing them in a block. Userpoints and/or voting would likely be the correct place to implement things like this.

Hmmm...might be interesting to have a place to enter in different algorithms, e.g., I could tie in the age of the member account somehow.

laura s’s picture

...is that Drupal is superior community software than Scoop (which frequently seems to want to crash Firefox), but Scoop is the #1 prog of choice among the superbloggers of the political blogosphere. A lot of their features are better or cleaner in Drupal, but some are pretty nice. This is one that really helps manage that precious front-page space.

The math on this module is explained more at the link.

===
Laura
pingV

_____ ____ ___ __ _ _
Laura Scott :: design » blog » tweet

moshe weitzman’s picture

boris - please don't limit nmoderation to its current form. it can easily omit the promote/demote stuff and should get some blocks and API functions for building 'recommended diaries' type pages.

basically, nmoderation is a node voting engine and it will keep on doing more over time.

Boris Mann’s picture

Moshe, I'm talking about what stuff does out of the box. If a codebase doesn't do something *today*, that's not much good for people that want to install a module and have it work.

I'm sure your codebase is technically sound, as are all your modules -- I didn't mean to imply otherwise. If you want people to extend nmoderation, maybe you should change the description. Today it says:

As each vote is processed, the score is recalculated and if necessary, the post is either promoted to home page or unpublished. The thresholds for these actions are defined by the admin.

I would have it say something like:

This module implements a generalized node voting system which can drive multiple different actions. Currently it only handles promotion and unpublishing, but it can easily be extended to handle rating or other actions.

laura s’s picture

I wish I had edit permissions, I'd just update above.

The site mentioned is using Soapblox:

SoapBlox is blog framework implemented in Java inspired by Scoop, the software that powers Daily Kos. SoapBlox is the pet project of a web developer by day, political junkie/blogger by night: me.

Don't hold the Java against him. The algorithm is still promising.

===
Laura
pingV

_____ ____ ___ __ _ _
Laura Scott :: design » blog » tweet

sepeck’s picture

edited the name and topic of the post for you.

-sp
---------
Test site...always start with a test site.
Drupal Best Practices Guide

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

laura s’s picture

===
Laura
pingV

_____ ____ ___ __ _ _
Laura Scott :: design » blog » tweet

laura s’s picture

This also could/should tie in with comments moderation, too. I know there's been talk of a mojo module. Any word on that?

===
Laura
pingV

_____ ____ ___ __ _ _
Laura Scott :: design » blog » tweet