I am just planning to start an (or perhaps even more) Internet site. I am strongly for a collaborative site where the users create themselves the most part of the site. And now I face the question what model should I choose for the collaboration. I have researched the web a bit looking for diverse solutions. I am rather determined to use a perl engine, but actually the programming language is a secondary issue - the main issue is which model of collaboration is optimal for what application. I believe a guide in this subject should be helpful to many others.

In more detail I have researched following options:
  • WikiWiki and ascendants
    model:in the original every user can do everything, you rely on her responsibility; in Twiki you can: "Define groups and impose fine grained read and write access restrictions based on groups and users"
    applicability: in closed communities where you can throw away the wrong-doers, for non-controversial subjects or when the controversies can be settled, and consensus reached by other means, for information that once available can be easily verified.
  • everything engine You monks with more time spent at the monastery should know better than a beginner like me, but to start the discussion I present my wild guess.
    model: nodes are "owned" by the creator - she can modify them, there are: rating of nodes but with rather narrow application, the Chatterbox application, advanced mechanisms for linking between nodes, "nodeballs" for threaded discussion and wiki style editing (perhaps others?). What I feel is lacking is the possibility to filter the nodes based on their ranking (especially in the threaded mode).
  • slashcode and scoop
    model: user comments cannot be changed once posted, are collectively rated (moderated), you can view all or you can set a threshold on the rating, comments are grouped into threads of discussion
    applicability: scales quite well in the range of a few hundred thousands registered users and who knows of how many anonymous, good as a discussion forum when there are many controversies
  • bricolage
    model: a closed model, similar to traditional publishing
    applicability: for a small group of editors and writers where you can strictly define the responsibilities
  • livejournal
    model: multithreaded discussions, useful security feature - possibility to restrict readability of some write-ups to some defined audience
    applicability: can be used for groups that don't want to share some of the information with general public
  • yabb
    model: threaded discussion with private fora
  • phpbb
    There seems to be lots of simple php threaded fora.
    model: threaded discussion with private fora
  • Good old mail lists and Usenet
    model: threads, you can develop your own filters

There is also the proprietary DNA backing the h2g2 community with a really reasonable peer review model.

When I started this node I did not actually know how to name the different uses for collaborative media and thanks to the enlightening comment by ichimunki now I have two names: discussion and reference. For discussion the essential feature are threads, for reference essential is editing existing nodes to improve it’s content. Reference should always be accompanied by discussion in my opinion – so the ideal model should be mixed.

Related links:
  • livejournal – based on theorbtwo comment
  • mail lists and Usenet – based on Abigail-II comment
  • discussion and reference differentiation; Twiki; phpbb – based on ichimunki comment

Question to all - are there "fine grained read and write access restrictions based on groups and users" in the Wiki nodeball for the everything engine?