A Hybrid Discussion-Voting Web Based Software Application

Pattern number within this pattern set: 
Benjamin Slade
Benjamin Slade
HammerSoft LLC

How to hold the online equivalent of a town meeting discussion, but permit the to scale up to large numbers of participants without degenerating into noise.


Software solutions for online internet based message board style discussions


The internet has millions of users, but no efficient way for large numbers of users to exchange and discuss ideas online

Static websites are essentially and alternate form of broadcast media, except with a low cost of entry to the market.

Message boards and newsgroups permit large numbers of users to contribute, but because of the volume of individual messages, one has wonder if most messages are ever read.

Polls do permit large numbers of users to express an opinion, but only from a pre-selected set of choices presented by the poll organizer. For about polls I see online, I sometimes want to vote for "None of the above" or "The question is missing the point", but choices like these are rarely available.

What's needed is a idea exchange application that balances off the need for individual contribution with the need for summarization and dedeuplication of content for the casual reader.


I'm proposing a solution which is a hybrid between a message board newsgroup application which I'm calling a discussion poll.

The specific solution I'm proposing involves the following steps:

* An organizer setups up an initial question and set of choices for that question.

* The choices are presented to participants in the order of those choices with the most votes listed first.

* Participants can vote for choices *and* write-in new choices.

* Participants are allowed to change their vote to new choices as interesting choices "bubble up".


This application is sensitive to initial choices in the poll. Moderation and vetting procedures are necessary to make sure "write-in choices" are not redundant suggestions or other types of noise that will destroy people's ability to review new low vote count choices.

Initially, this moderation can be done by hand. Eventually, more automated moderation can be implemented based on vetting by users with a good voting history.

Even with moderation of new choices, this sort of application is susceptible to people ganging up to vote on their own previously accepted new choices to get the new choices out of the "noise" of the low vote count choices.

To combat this there would also need to be views of discussion/voting booths that present alternate selections of newly accepted choices. Specifically:

* A random selection of newly accepted choices.

* A selection of newly accepted choices with authors who have a voting history that typically predicts winning choices (aka "good" voting histories)

* A selection of newly accepted choices where people who have voted for those choices have "good" voting histories.

There can be many variations on the trust feedback mechanisms and they will need to dynamically change as users try and spam the system. A good example of this is Slashdot.org which uses multiple, unpublished, and changing criteria to assign "Karma" to users. It should be pointed out that this application is tuned towards a less sophisticated audience than websites like SlashDot.org

Lastly, in terms of difficulties, preventing a participant from voting multiple times is difficult as there is no easy way of uniquely identifying a person on the internet. While there is no way to easily prevent this for a new system, as participants build up histories, it should be possible to detect voting booths that have an unusually high percentage of new voters.

There is one way to uniquely identify users on the internet that is applicable in some situations. For non-profits and other organizations where users have a credit card relationship with the organization (eg. have previously made a donation to the non-profit), it's possible to associate a user login with a billing address for that person.

The web address of prototype implementation of this application is included in the references below.

Pattern status: