UPDATED ON MAY 9, 2009
Overview: This proposal is about the development of a new system that enable users to manage opinions in an advanced way. It should become the evolution of bulletin boards (forums) and it will be developed to replace them.
Mentors:
- Greg Knaddison
Difficulty: medium
Description: Bulletin boards are a valid product that came up in 1977, and remain approximately the same untill today. This are generalistic as they could satisfy every need, but the web progresses and expand itself, so this structure is not so good to manage opinions.
The internet is build upon truth and opinion. You could have support forums where a user searches truth, real information (like Ubuntu or Drupal forum), which I call from now "Q&A forum", or "opinion" forums (like an hi-tech product reviews forum, or a politic forum). In this project I wanna make a new system that makes opinion forums better.
I am sure that you already run into a website where people says their opinion about a product and fill pages and pages. If so, you know that it's really difficult and it's a waste of time understanding people opinions. Different people repeats the same things, filling pages and making your research longer, people speaks without having that product in their hand and sometimes they invent things. Into a bulletin board you could say wrong things into a long thread, there are lot of possibility that noone will check what you say because the thread could become very long and your stupid opinion was at page 3. Noone read all the thread before adding a new answer, except the user maybe, but when he reach page 20 he forget to correct you or he think it's useless at this time.
This project idea is built to correct this lacks using a peer review system.
How can I do this? Here's a list of the feature I would like to add.
- How to consult the forum:
- Categories: show a list of the categories, clicking upon one of them you enter into the threads list
- if admin decided to use categories, the forum could be showed by category
- if admin decided to avoid using of categories, the category visualization is disabled
- if the categorization is enabled later the threads already opened will be moved to a category called "no category" until admin choose where to put them
- Tags: show the tag list, a click upon anyone shows the corresponding threads
- every thread has a series of tags, you can show lists on the fly with one or more tags by doing a simple search
- Highest rated threads
- Most viewed threads
- Without answer threads
- With x answers: shows only threads with x answers
- Community stuff: shows only threads with vote > a or number of answers > b (configurable)
- How to consult a thread:
- Standard: show thread in a classic forum style
- Collapsable: show thread with answers > x opened and answer < x collapsed
- Best answers: show thread ordered by most rated answers
- Only the meat: show only the k answers with more votes
- Every thread:
- will be tagged from who opens it; tag is a changeable field from who has karma > n
- could be rated with +1/-1 from who has karma > z
- could be noticed as offensive
- could be noticed as favourite from every user
- could be closed if:
- it's duplicated
- it's offensive
- if it's community stuff:
- no more votes to the author that takes a bonus for the good question
- will be showed inside the community stuff
- Every post:
- could be rated with +1/-1 from who has karma > h
- could be choosed as best answer
- if after y time there will be no best answer the most rated become the best answer
- it could be noticed as offensive
- allow comments (everyone could comment himself or the others but in that case he need karma > w, his comments are editable and eraseable)
- deletion means comments deletion
- There will be an automatic system that make administration tasks:
- searches for bad written tags such as "drupal_usability" and "drupal usability" and call admin for choosing the correct to change everything using that rule
- Users:
- has starting karma/reputation = 0
- earn karma:
- + x if an answer is voted with +1 or -1
- + y + bonus if one of his answers will be set as best answer
- + d if one anwer is noticed as best because the question time finishes
- + k if he indicate an answer to his question as best answer
- + j if a negative vote at one of his post is removed
- + l if he takes off a -1 that he gived before
- lose karma:
- - s if one post is voted as not useful
- - l if one post is indicated as offensive
- - d if he vote -1 somewhere
- - v if someone takes off a vote that he indicate as +1 before
- have a limit k of karma they can add every day for operations dependant from himself
- Karma:
- it's useful to motivate good work on the forum, the better it is, more power you have
- only with a determined value you can do some operations (these are not in the correct order):
- x to vote positively
- y to vote negatively
- k to add/edit/delete comments of itself
- a to change/delete comments of others
- j to tag threads
- m to close threads of itself
- e to close threads of othres
- l to edit community stuff threads
- v to edit other's post
- q to make joins
- w to make forks
- z to access to moderator role
- Moderator:
- Could do every moderation option
- Join and Fork:
- if a comment is a new question, you can do a fork
- fork starts a new thread with that comment as head
- if thread is duplicated it's possible to close it and make the join with the one already present
- join moves the answers in the already present thread taking the votes with them
- RDF support:
- maybe I could provide as extra RDF support

Comments
Could be a very interesting
Could be a very interesting project -- here's one article that explores dozens of examples / theories around how to preserve the quality of discussions within an online community.
http://www.kuro5hin.org/story/2009/3/12/33338/3000
Kyle Mathews
Kyle Mathews
Thank you...
Thank you Kyle for this really interesting article.
It's very complete and it analizes the situation in a point of view I rarely seen before, looking for interaction between users and not only for promoting content.
Good knowledge for me and for this project.
So is this meant as a replacement of Drupal's Core forums?
I'm a bit confused as to what you plan on doing here: where's the decision making mojo coming from? How is it different from some use of user points and voting api?
I'd be curious to hear more- I like the idea of having better knowledge management tools, but so far I can't tell what this tool is, how it would work, or what it would do.
--
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
Alex Urevick-Ackelsberg
ZivTech: Illuminating Technology
No it's not...
No it's not a replacement of drupal's core forums. After thinking about it in terms of code, I think it could be an external module that works as an extension upon drupal's core forum. Just like advanced forum does.
These days I'm trying to search around the web any example of this things, to understand which ideas I could use. Surely user points should be the base of this project and should be fully customizable (but I don't think rating will be very useful). I'm thinking about a new way to display contents too, that is different from the classic list of disconnected answers.
There are other nice things which I am considering, such as a way to split a thread from another, such a way to create a sort of "wiki-view" for contents that are fully commented and so on.
Unfortunately at this time I really can't answer your last question...I think I can post a detailed plan of this idea in the next few days, when I have finished looking at the links I have.
As other users done I really appreciate any link to read that could give me more ideas.
Decision making API
It's also worth checking out the conversation around the Decision Making and Consensus API: http://groups.drupal.org/node/14775
How would your project be different than (or connect with) these pre-existing efforts?
Cheers,
Bill
FunnyMonkey
Click. Connect. Learn.
Using Drupal in Education
FunnyMonkey
Well, my idea is a different...
Well, my idea is different than the Decision Making and Consensus API.
I though about the idea of a module that makes better interaction inside a community or an organization, but not in the way that the consensus method does.
This will be absolutely useful and I will ask AlexUA for the possibility of make another proposal about that. It will be really stimulant.
Thank You.
Ingo86
After reading a lot I can put down some ideas...
After reading a lot I can put down some ideas about the realization of the system that could manage opinions. I will analize things that maybe are obvious because I don't wanna leave anything without thinking upon before. I will analyze the registration problem too which could appear unuseful as with Drupal you could choose the permissions and roles you want, but I wanna talk about an ideal setup of the system, not only about a feature list.
So here is it:
Planning about how could it works: I have a thread and a series of opinion, everyone different from the others. Users should be able to add new opinions, add comments to improve opinions posted by others and rate the opinions itself. Besides users should be able to rate the thread and give it a series of tags.
An opinion is a mini-thread where anyone could post comments.
The main goal is to solve the classic forum problematics, so:
- reach for every thread a small number of completed opinions
- design a better way to show opinions that will be easy and immediate
- reward good contents and users that posts that
- avoid opinions such as “apple is better because it's apple”
- avoid LOL and ROTFL posts
- create a knowledge view that enable you to look with the simplicity of a wiki inside a forum content
- take off flame war
- take off spammers and troll
So I'm not focus this upon the community but i'm focus everything on opinions.
Registration: There are lot of discussions on the web that look for a solution about the registrated/anonymous user problem. Despite kuro5hin post (linked in comment #1) I think that anonymous is wrong at all in this situation. For example, when someone asks for an opinion it's easy for a user to take ideological position. If someone takes an ideological position there are lot of chance that the thread will end with a flame war.
Registration is a way to raise the barriers and I think that it could really reduce the amount of spam and make the forum a better place.
This considerations could be obvious, but they're not. There are lot of examples where anonymous give benefits. So this is a point that I'll leave open for a discussion with the community but i'm oriented towards a registration system.
Restrict capabilities: I think that a user needs to earn capabilities. Stackoverflow approach (which is nothing alse than an improvement of slashdot's one) is a good starting point but we can improve it.
Earning capabilities means that a user is encouraged on taking part of discussions in a costructive way. At the same time, I agree with the non-power earnings policy, surely not at a low level. This is a great risk, users are ready to do anything to become power possessors above others and they will surely try to game the system.
So, earning privileges for good behaviour is ok, but only really long-time and really active contributors could obtain privileges that goes upon the other users.
I think that there will be a little barrier to be sure that a user is not a bad user, just like stackoverflow, that doesn't give you the chance to vote before you post some messages. Here I have to examine the methods but I have to find a set of capabilities, put them in the correct order and then make them configurable.
Content rating: At the same time of restricting capabilities I'm really intentioned of giving to users a way to rate content. Stackoverflow gives a great example on how a rating system could be designed, obviously with some things that could be improved, and slashdot has a different approach but it's cool too.
First of all, rating a content with votes from one to five is not a good idea. Maybe you and others agree about a content that worth five, but it's difficult that you could agree on a 3 or a 2. For someone who is rigorous a three is a good vote, for others is a bad vote, it's too much personalized.
Stackoverflow implement a different voting system. You could give +1 or -1 on the contents you think are great or are bad. There's no limit (a content could have thousands of votes) and a user is able to vote only after some posts.
This is not a bad system, it's quick and slightly intrusive, but a user could add a +1 on a content though is not wonderful but is only good and a +1 on a content that is awesome. So this scale reduce the differences between the contents as it's too little.
Slashdot system is more complex, in fact not anyone could rate contents. Only moderators can. Moderators are choosen from others using some parameters (stuff read, registration time, karma) and moderator time is little and gives you very limited power (you could vote only a limited amount of times). Votes are restricted through a scale that starts from -1 and finish at 5, and a moderator could give a vote choosing from a select a text value that explain the content, such as “flooding”, “spam” etc.
What I appreciate from slashdot is the idea of giving a word that explain the content. In fact I think that a word limit user interpretation providing a more valid rating system.
This is a starting point, I hope that someone could help, maybe proposing himself to make some discussions on IRC or here, posting answers.
Ingo86
I have just updated...
I have just updated my proposal on top. Please provide feedbacks!
add recommendation functions to the ratings?
I'm going to work on a SoC project as well this summer (http://groups.drupal.org/node/19894). Maybe we can join force and work on a patch that provide native recommendation support to the module you proposed? It's going to be some API calls to the Recommender API module, shouldn't be too much different than using VotingAPI.
Okay...
Okay, i think we have to talk about it and I think that this idea should be implemented at the end of my work, but for me it sounds good.
Stay in touch!
Awhile ago I was intending
Awhile ago I was intending to build something like this (see here for the detailed plan). I don't have time to help or mentor but I wish you luck and hopefully my previous efforts at organizing such a module (particularly the list of related modules) can help you somewhat. :)
Thank you
Thank you, I'm looking around for existing modules in this period. I'll surely look inside your list!
subscribing
subscribing
Hey Dario, I would like to
Hey Dario,
I would like to really follow your work as it progresses. I read this page/thread the other day and it really got me thinking about the future of the internet. I really like some of your ides especially being able to filter out best rated answers and solutions. This is an exciting project you are undertaking and i can't wait to see what you and you mentor come up with as well as the community!
I just came across this video on the new Reddit TV and instantly thought of this thread so I thought I would share.
The above linked video is a great example of why we need work done in this area! It just really describes why we need this!
Cheers,
Elijah Lynn
Nice video...
Nice video...it's a huge problem on the internet and I hop that my project will give help to avoid this common situation.
In the next days I will update this thread, so follow it for updates!
Thank you,
Ingo86