Personal tools
You are here: Home Members Gary Alexander Software specification for a discussion system for Connected Communities
Taste of Diss

taste of diss logo

Coming 12th - 19th July
Find out how to participate.
View the program and participants.

Welcome!
Taste of Diss

taste of diss logo

Our LOCAL FOOD DIRECTORY

is now online, and also available in print from some participants in Taste of Diss.

The festival was a great success. Read our Diary of what happened.
Navigation
 
Document Actions

Software specification for a discussion system for Connected Communities

by Gary Alexander last modified 06-September-2008 02:18

A contribution to ongoing discussions for Plone developers and for the Transition Town platform.

Status:

REVISED 2 SEPT 08 INCORPORATING COMMENTS  MADE BEFORE THIS DATE. PREVIOUS VERSION ALSO AVAILABLE.

This is a draft document, that builds on many people’s ideas over many years, and the details are open to discussion and change.

Still to come is a development plan, including priorities. Some of the features will be needed in a first release while others will come in later stages.

Purpose:

We want to create a discussion system for use by community groups, integrated within a community portal providing a range of other facilities, that will:

  • be much clearer and easier to use for group discussions than conventional email-based mailing lists and many other online forums
  • provide a set of features designed to help groups to come to agreement, to facilitate collaboration.


There is a strong social dimension in this, with skilled moderators needed for it to work most effectively. The software structure and facilities will encourage effective use, but there will also need to be a well constructed set of help files, and pop-up hints created for users and especially for moderators.
 
This proposal builds on best practice in existing online forums, and its innovative features could make it and the portal containing it a very useful app.

  • Discussions available wherever needed: in a public forums folder, in group folders, in individual folders
  • Simple linear chronological display, but with ways to display comments on given messages and ‘summary’ messages.
  • Clear indication of new messages (since last logged in)
  • Special message type for ‘sensitive’ issues, and polls for checking agreement.
  • Facilities to support moderators to keep discussions effective.
  • Flexible email notification of new messages.


I am assuming the context for this specification is a Plone 3 CMS but it is intended to be much more generally applicable. I am assuming that this system will be added to a CMS that has a 'Public Forums' area, group areas and individual users' areas.

Overall structure:

The discussion system should consist of ‘conversations’ that in turn are made up of ‘threads’ that in turn are made up of ‘messages’.

Conversations:

  1. A conversation can be created by any registered user in a context: We assume that there is a general ‘Public Forums’ folder available to all users, logged in or not, that there are 'group folders' accessible to defined groups of users, or individual users' personal folders.
    1a. To consider: Whether a conversation or a thread can be created in other contexts as well, such as embedded within other forms of content. By default in Plone, there is a comment system for all content. This could replace that or now.
  2. A conversation has a list of members. By default, the members of a conversation created in the Public Forums folder are all users registered on the system. The default members of a conversation created in a group folder are all the members of that group. The only default member in a conversation created in a users' personal folder is the creator. Other members need to be added.
  3. Members of a conversation have rights to create new threads, write messages to existing threads, and delete messages they have previously written. They may edit messages they have created for a defined period of time, say 1 hour, after being created.
  4. The creator of a conversation is its owner. The owner has additional permissions to delete the conversation, to remove threads and messages in threads, close threads and remove members.
  5. The owner of a conversation also can create and remove additional owners, and can create and remove ‘moderators’, who are members with additional permissions to remove threads and messages in threads, close threads and remove members. (So there are three classes of member: owner, moderator, member.)
  6. A conversation is normally visible to anyone who can access it, whether or not logged in, but non-logged in users cannot write to it.
  7. When a conversation is created, the owner can adjust the usage and membership:  it can be made private, so it can only be viewed by users who are members of the group containing it (all logged-in users if in the public forums folder). If it is created in a group folder, it can be made open to other groups. If it is created in the owners personal folder, the owner can specify groups or individuals to whom it is open.
  8. Upon creation, a conversation should be given a short description.
  9. Display of a conversation: A conversation should be displayed on a portal-like front page of the place where it is created:  the public forum folder, a group folder, or a users personal profile page. Each conversation displayed should first show the owners’ avatar, its description and creation date. It should then show a sequence of small avatars of the members who have created messages in it, in order of most recent contribution, up to a maximum limit of members. It should then show a line for each thread giving a descriptive summary of that thread (see threads). The order of display of threads should be by the date of the most recently added new message in that thread.
  10. Additional display of conversations: So that a user doesn't need to check for new activity in conversations sprinkled all over the site, there could be a personalised summary on the front page of the site, where a user gets a list of the conversations of which they are members that have messages added since their last log in.
  11. There should be a specified maximum number of threads displayed. If there are more threads than the maximum, a 'more threads' button should appear at the end of the list of threads.
  12. Before the list of threads there should be an ‘add new thread’ button, which should appear greyed out to users without suitable permissions (i.e. not logged in, or not in group). At the end of the list there should be an additional button for 'show archived threads', if there are any archived threads. (See threads.)
  13.  Upon creation of a conversation a thread should be automatically created called ‘moderation’ which is visible and writable only to members who are moderators or owners. Thus there is a built-in expectation that there will be some people whose role it is to look after the discussion.

 

Threads:

  1. A thread has a creator, a creation date, a subject and an initial message. (Individual messages that make it up do not have their own subject.)
  2. The creator of a thread has no special privileges in it. Only moderators and owners have additional privileges.
  3. A thread can be displayed as a descriptive summary (in the display of a conversation) or in full.
  4. The descriptive summary display of a thread should include its subject and creation date, the number of messages, the avatar and date of the most recent message.
  5. For logged in members of a conversation, the summary display of each thread should be preceded by the number of messages that were created since their last login, to give an indication of how much new content has been added.
  6. The full display of a thread should consist of a linear, chronological sequence of the messages in it, starting with the initial message, so it can be read in sequence. For logged in members, there should be a suitable symbol in front of each message added since they last logged in so they can easily scroll to what is new.
  7. At the beginning of the full display there should be buttons for ‘new message’ and ‘delete thread’. The 'new message' button should only be active for members with write-permission in the thread. The 'delete thread' button should only be visible to owners and moderators. (For other controls, see below.)
  8. A moderator or owner of a conversation can 'close' a thread, meaning that no new messages can be added. A thread that is closed is considered to be 'archived' and is no longer displayed in the list of threads.

 

Messages:

  1. Messages have creators, creation dates, and a body.
  2. When a message is created or edited the usual Plone Kupu editor (or equivalent WYSISYG editor for other CMSs) should appear with its normal facilities.
  3. The editor should have additional buttons incorporated for three types of special message: ‘summary’, ‘poll’, ‘sensitive’, intended to promote convergent conversations, where people are encouraged to come to agreement.
  4. A ‘summary’ message, is an ordinary message, indicated in some fashion such as a different coloured border. It’s use (purely social, no attempt to enforce it through software controls) is to summarise recent messages, (which is good practice in any discussion, online or face-to-face). Thus users wishing to get an overall sense of the thread can scroll through, looking for the summaries. At the head of a thread should be a ‘show summaries’ button, changing to ‘show all’ when pressed. When pressed, all messages that aren’t summaries should be greyed out to make summaries stand out clearly.
  5. A ‘sensitive’ message is meant to be used in situations where there is an actual or potential conflict between users. It is an ordinary editable message with three fields defined headed, respectively: ‘Your view as I understand it’, ‘Where I agree’, ‘Where I disagree’.
  6. Polls: Simple polls, should be an optional message type. The purpose of this is to provide a low overhead means of checking group agreement, whether or serious matters of principal or minor matters such as the date or time of a meeting. The proposed functionality for this is that in Doodle or some reasonable equivalent. An initial option might be to create a link to Doodle.
  7. New messages in a thread can be created simply as an addition to the thread, or as a comment on an earlier message in the thread. Each message should have a ‘comment on this’ button (greyed out if the user doesn’t have suitable permissions.) Messages that are comments are still displayed in linear, chronological sequence.
  8. Each message should have a ‘display comments’ button, greyed if there are no comments. Pressing it should grey out all subsequent messages that are not comments on that message, making them stand out. (It should change to ‘display all’ when activated.)
  9. Quoting text: If a user selects text either in the initial message of a thread, or any other message, the new message created will include that selected text, indicated stylistically as a quotation.
  10. Each message should have a ‘report to moderators’ button (visible only to users with write permissions). When pressed, an editor should appear with a field headed ‘reason for reporting this message’. When sent, the message will appear in the moderators thread.

 

Email notification

Email is still the dominant application for most people, many of whom don’t check it that often, and would not be likely to check a website to find out if there are new messages in a conversation. Thus, we need to offer an option of email notification of new messages in an online discussion.

  1. There should be a control at the start of each conversation and each thread saying ‘email on off’ with the ‘on’ and ‘off’ buttons highlighted as appropriate.
  2. Switching email on at the level of a conversation switches it on for all threads in that conversation and for all new threads created. Switching email off on a thread overrides this. If email is off for a conversation, it can be switched on or off for each thread separately.
  3. If email is on for a thread, then when a new message is created, a mail message is sent to that user. The creator of the message in the thread should be given as the sender of the email message, the subject should be the subject of the thread. The body of the email message should have a statement like “You have requested email notification of this message. You can see it in context, reply to it, or switch off email notification at: [URL].” The body of the message should then follow.

General Comments

Posted by Josiah Thomas Meldrum at 28-August-2008 11:45
Hi Gary,

The above is very clear.

I have a few minor comments and questions.

I think all users should have the right to 'report to moderator' - no permissions should be necessary.

I'm not sure about users being able to edit or delete postings without permission - this kind of retrospective editing can be confusing. Perhaps a post could be editable for a short period (say 30 mins) or frozen once it has received a reply? Or maybe previous versions of a post could be preserved in the moderation thread?

There are sets of circumstances where the person who should moderate a site or conversation is obvious; a site / coverstation owner, interested party (known to the owner), group or community member, someone with special knowledge of the subject discussed etc. etc. In other instances, particularly the kind of general discussion that DissConnected might expect, it is perhaps less clear. More to the point if discussions really take off lots of skilled moderators will be required. I think it would be great if a community using the discussion feature could idenify and develop potential moderators.

A common way of doing this is to recruit from regular posters, but this only really involves the community if those posts have been rated in some way (which as we discussed last week is often pretty meaningless). Another related mechanism might be through a recommendation feature based on the summaries written by users. I have a feeling that users would be more likley to take the time to rate a summary. Good summarisers with lots of recommendations could then be screened by pre-existing moderators.

I think malicious or misleading summaries could be damaging, so poor or obviously partisan summarisers so clear rules should be laid out perhaps with some sort of moderated penalty such as having their right to summarise removed for a period.

There is a risk that the site (any site) will become cluttered with conversations. Is there a way to limit duration - either when the thread is created (for example in the case of a poll and associated discussion) or when the moderators see that there is limited or zero activity. I'm not suggesting that these conversations / threads be deleted, but that they are moved to a searchable archive.

Josiah



Excellent comments

Posted by Gary Alexander at 28-August-2008 11:58
Thanks for those clear and thoughtful comments Josiah. I think we should wait for some more comments and discussion and then come up with a revised version that takes them into account.

Joergs comments

Posted by Joerg Baach at 30-August-2008 12:44
First: very well defined spec. Good read, and nice ideas in it. I like it.

Ok, now some comments on it:

- who are the default members in a personal area?
- Are groups and members folders and special forum folders the only
places where conversations can be started?
- Right now in plone you have the ability to comment on individual
pieces of content, like we do here. In your system only special
places have these abilities. How do you discuss content then?
- I have to write down the permissons system - it looks slightly complex
to me.
- I agree on Joshias comments on editing comments - I think undoing what
you said in an ongoing conversation is not the best idea. It should
be left as an option to remove 'illegal' content bits
- I really like the idea with the summaries
- Display of conversation - I don't quite understand how that summary
page works if there are 50 threads in a conversation. Could you do
a scribble and scan that in?
- Polls - it does not have to be doodle, its about the functionality.
Would something like popolls suffice as well? (Also, because this
is coupling the discussion set of technical features to another set
of features, the polls)
- Who is exactly getting when email messages?
- Joshias point about the discussions being spread around the whole
site is a valid one. I wonder how it could all be aggregated in one
overview place.

There is also some (potential) overlap with a todo list / bugtracker system we are talking about for the hub. There you have issues (threads?) to which people respond in a chronological order (messages), with the addition of being able to change the status of the issue in one go. Quite similar. I need to think how we could combine that. Poll integtration also makes sense to a lot of issues on a bugtracker/to do list). So does mail out.

Cheers,

Joerg

Joerg's comments

Posted by Gary Alexander at 31-August-2008 23:56
Thanks for your comments Joerg. I'm very pleased you like it. I've had a discussion about the spec with Josiah and Tim, and after we talk about it tomorrow I'll do a revised version, incorporating all the comments.

More specifically on your comments:
1. Editing comments: Yes, I agree too. Not a good idea. To be removed only when there is a very good reason, and replaced by a suitable message saying 'removed by moderator because..."
2. Summaries: There might be some confusion, as I've used the same term in two ways. There is the 1 line summary of a thread, to be displayed in the listing of a conversation, which I describe in Threads 4. If a conversation has 50 there will be 50 lines of summary, or perhaps only a smaller number will be displayed with a 'more' button.

There is also the idea of a special type of message I call a summary, as part of a thread. That will be displayed as one of the alternative views of a thread.

3. Polls: I didn't have time to specify polls, but Josiah pointed out Doodle and that seemed an easy way to describe an adequate functionality. We could literally use Doodle as a first, temporary measure, or do somthing ourselves.

4. Email: I guess that needs more careful spelling out.
5. Spread out discussions: needs thought, as does the bugtracker idea.

The important point is that we are quite close to a reasonable spec here, and should have one agreed in time for the sprint.

Gary

Very nice comments system for texts

Posted by Joerg Baach at 01-September-2008 14:18
Not sure how exactly it fits in, but somehow I find it a great way to comment on texts:

http://djangobook.com/en/1.0/chapter01/

(The yellow bubbles)

Joerg

Yellow Bubbles

Posted by Josiah Thomas Meldrum at 02-September-2008 01:16
I like them too Joerg!

Though at first I was a little mystified as I could see no yellow bubbles...

I found this page helpful: http://djangobook.com/about/comments/

I couldn't make the system work - the gutter at the side didn't offer the option of commenting, but is a nice idea, especially for collaborative working.

compare to the listen mailing list view

Posted by Joerg Baach at 02-September-2008 12:55
Hi Gary,

while working on listen (the mailing list product) I came across a discussion they have

http://www.openplans.org/projects/listen/lists/listen-dev/archive/2008/08/1219249522465/forum_view

The content of the discussion is not really important - but have a look on the right side - this shows how listen works. They use use word 'conversation'. What do you think about it?

Joerg

Lessons from 'Listen'

Posted by Gary Alexander at 02-September-2008 17:01
The Listen mailing list application has lots in common with this specification and various interesting additional features that we could consider. Perhaps it could be a starting point? They give more display options than I have been suggesting, (flat/threaded and reverse order) and my inclination is to keep it simple and not include these.

They seem to use 'conversation' for what I have been calling a thread, and using Forum for what I have been calling conversation.

They raise the issue of two other features we might (or might not) consider: a 'moderated' discussion in the sense that messages must be approved by a moderator before they can be posted, and a discussion where only the moderators can post messages. These, and especially the latter is particularly useful for special restricted 'discussions' such as announcement lists.

I have not included these in the latest revised version, but wonder what other people think.

threads/ conversations / forums

Posted by Joerg Baach at 06-September-2008 02:22
I agree with you on the point of keeping things simple, but I wonder what would be more complicated: a switch between flat and threaded view on the one side, and moderation and restricted discussions on the other side?

On the issue of naming: in my opinion there is no difference between forums and conversations - effectively they are both a position in a tree structure, and have (at least hiddeen) tree structures below them.


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: