Even though Stack Overflow has an excellent system of upvoting and downvoting, we still need to find a way to get past unwanted answers easily. Can navigation systems be designed specifically for sites such as Stack Overflow? Users should be able to set their own policies/filtering rules. Can AI and data mining be of any use here? Will the data mining and AI experts provide some points on this?
As already mentioned, you can sort by votes. But there's actually a much more interesting deeper question here.
Anyone who follows the community knows that votes don't always reflect 'correctness' nor 'applicability' nor 'effort'. The "It sounds right to me" upvote is well-known, and it is followed closely by "Well, it's upvoted by others and it sounds right, so I'll upvote it too" phenomenon. In my experience, it is much easier to get a second vote than it is to get the first.
There is also the Fastest Gun In The West problem, whereby the earlier the post was made the more chance it has to get upvotes. This reinforces itself because the sort order will drive it up the list thereby giving it more exposure.
This means that if you have an example question with 5 upvotes, and 10 answers on it, with 10,9,8...1 votes on them respectively. With such an even spread, you don't necessarily know which answer is in fact the best, because there are too many factors.
Here are some of the factors which datamining could use (not all are necessarily possible right now)
- votes per minute since posted
- votes per unique pageview
- SortOrder of each PageView
- "currrent" place in the sort order of each individual pageview
- Number of votes on other posts at time of each vote
- average reputation of upvoters
- average reputation of downvoters
- average score of posts that voter votes on
- average reputation of poster of posts that voter votes on
- all of the above cross referenced by tags
- average reputation per previous answer
- average reputation per previous answer/reputation at time of answer
- reputation / days-since-joined
- Average reputation of the POSTER of the questions they answer
- Average score of the questions they answer
- Score of Answers/Score of question
- Average time between question posted and answer posted.
- all of the above based cross referenced by tags
Obviously, to generate one of these reports would take a foolishly long time, for each individual answer, because it requires parsing the entire history of the DB. But it would be fun. With that kind of information you could theoretically tease out a new sort order which would be the "ideal" sort order.
Now, here's the major problem with this.
It is a reinforcing system. Once you've been identified as a "strong user" then you will continue to be identified as such and will get more and more upvotes based on it.
That is not as troubling as the fact that any users who are identified negatively by this system will almost certainly never get any upvotes. This means that users who are active in helping newbies will usually be sorted low in this system. Users who are active in low-view tags will be sorted low by this system. Also, it would be wildly skewed by 'poll-style' questions where individual users can gain hundreds of votes on a single question.
Ultimately, although such information would be interesting to look at, any attempt to include past performance will end up wildly skewing the data. It also goes against the purpose of the site.
The site is about content not about users. Any attempt to use datamining would only be able to include information about users, and nothing about content. It would therefore never work correctly.