GA Forum Specifications
Edit this Page
Background on forum structure. There is only one forum. Filters can be applied to select a subset of forum items. Internally we say "items" instead of "messages" because the intent is eventually to allow structured xml types of items such as book reviews, web site reviews, etc as well as messages. For the participant we will say "messages". There are two basic types of items, dialog-related items and dialog-independent items. Every item is tagged as either dialog-related or dialog-independent. Dialog-related items are dialog messages or items submitted to the forum in a reply thread that has a dialog message as a root. At present all roots come from a dialog, so all messages need to be tagged as dialog-related, but in the future, participants will be allowed to create root messages for the forum independently of any dialog.
Forum pages all have the normal InterMix menu on the left. All applicable links are shown. For the participant, this means at present, the logout, update registration, invite a friend, return to dialog or home page links are active. If the participant did not come from a dialog then the home page link is shown. If the participant came into the forum from a dialog, then the Return to Dialog link is shown. If possible without extra code, the admin and moderators should be able to participate in the forum same as any regular participant, but if special code is needed, better to just not allow the admin and moderator to enter the forum.
The Forum List page. This page lists messages giving title of the message, author, date, dialog, round, value/interest/approval/controversy depending on sort used, and optionally the first 25 words of the message - never any images - all in a simple font without any links regardless of how the original was modified. For each message that has a thread there is a "Show Thread" link. The message title is also a link to the message text itself. At the very top of the page is a page title formed from the current filter settings. When the user changes a filter setting, the title changes. Page title: "Message List for: Dialog Name :: Group Name :: My Messages & Replies :: Original Messages Only :: Current Round :: Sorted by Whatever". If a more user friendly format can be done, so much the better. If items do not apply, they are not part of the page title, for instance if My messages is not specified, then that part of the title is not present. Just below that at the top of the page are sorting and filtering controls:
Sort buttons at the top: "Sort by Date", "Sort by Value". "Sort by Controversy", "Sort by Interest" and "Sort by Approval".
a) radio button to display first 25 words of message or not (25 words or 256 characters, whichever is shorter)
(*) Display first 25 words of each message
( ) Display message title and basic info only
b) radio button for current dialog by name: eg
( ) Global Assembly Dialog messages only
(*) Messages from all Dialogs
c) radio button for current round
( ) Current round messages only
(*) All messages
e) radio button for "my messages"
(*) All messages
( ) My messages only
( ) My messages and direct replies to my messages only
e) radio button for "root messages"
(*) All messages
( ) Original messages only (these are the first message in each thread)
f) dropdown for number of messages to display on the page: with default option 25, further options of 50 and 100.
g) dropdown for selection by group or Network including sub-groups
Forum Thread page
like the starter kit thread page with some way to highlight the message that
Message Display page
The message display page is titled "Dialog Message for the Dialog ALT", or "Forum Message" depending on whether we are looking at an active candidate message that is part of the dialog or at a reply. If it is the current round, the following is appended to the page title: " :: Current Round". If it is a current round, and we are looking at a candidate message or an earlier version of a candidate message, then the author and group are suppressed if we are in the writing phase, and if we are in the rating phase, then author and group are suppressed until the participant rates the message.
The message is displayed with a rating box below just as in the Dialog. However, the rating box in the forum normally has a light yellow and dark yellow background instead of light green and dark green. The first exception is that if the message is a Dialog message from the current round of dialog that the participant is active in, and if the message is in an active distribution to this participant, then the rating box is light green and dark green. The second exception is that if the message is a Dialog message is not both in the current active section and in an active distribution to this participant, but was in a previous rating section of the current round in a past round and was rated in the Dialog by the participant, then the rating box should be frozen and should be displayed in light and darker pink and will not have a "Submit" button.
In addition to the rating box, the current rating statistics for the message are always shown if the message has any ratings. The current rating statistics in the forum come from all ratings both Dialog ratings and Forum ratings for the message. Beneath the rating statistics for a Dialog message for a past round or for a current round that is in the rating phase we should have an informatory message that says: "The above message is a candidate message in the DialogALT. The rating statisitics shown, however, may include ratings from forum participants who are not part of the dialog as well as ratings from the dialog participants."
At both top and bottom of the message information are two buttons: "Return to Message List" and "Show Thread".
Visibility
At the dialog level there are message visibility controls. These control visibility of messages in the Forum.
1) remove "Round Summary", Active Together and History Together lines leaving only "Active Apart Rounds" and "History Apart Rounds" rows.
2) change "Active Apart Rounds" to "Current Diversity Round" and change "History Apart Rounds" to "Completed Diversity Rounds"
3) values should be "Public has access", "All members have access", "Group members have access".
4) for our purpose now "Public has access" means the same as "All members have access".
5) In the Forum, if only "Group Members have access" then only members of the author's Network can see and reply to Candidate messages or to any reply messages from Candidate message threads. To carry this out, we may need to tag replies with the Network of the message being replied to.
Forum Participation
A new section of the Dialog Administration page allows a choice for the Dialog of "Forum Participation" or "No Forum Participation". An informatory message says "Select forum participation to allow dialog participants to enter the hub forum." If "No Forum Participation" is selected, then the forum link on the menu is suppressed and Dialog messages are not visible in the forum.
Each round of the dialog inherits the dialog forum participation setting but it can be changed for that round, so the forum for a round can be turned on or off by the dialog coordinator. The setting for completed rounds cannot be changed.
Variance
The average of the sqares of the difference of the approval ratings for a message from the mean approval rating for that message gives the controversy score for the message. We need to make sure we are saving all the information we need to get this score efficiently. The biggest variance score will occur if half the approval ratings for a message are +3 and half -3. In this case the mean is zero and the square of the diff to the mean for all scores is 9, so the average is 9. Therefore the biggest controversy score is 9. The least controversy is zero if all approval ratings for the message are the same.
Moderation
For now, the forum will not be moderated.
--------------------------------------------------------------------
A. User is the participant
1. Case - the user is in a Dialog and wants to go to the Forum
a. There is always a "Forum Messages" link on the menu for participants who are logged in and also for Visitor. We are not sandwiching a "discussion section" between the writing and rating sections. Rather regardless of what section we are in, there is always a "Forum Messages" link.
b. If the participant has posted messages in the forum, then there is also a "My Forum Messages" link on the menu just above the "Forum Messages" link. The "My Forum Messages" and the "Forum Messages" work exactly the same except the "My Forum Messages" has a filter on to show the messages from the participant primarily. (When threads are expanded, all messages are listed regardless of author even if the author filter is on.)
c. If there are visible messages in the forum for the current dialog and round, then the link goes to the forum with filters set to show messages for the current dialog and round.
d. If there are visible messages in the forum for the current dialog but not for the current round, then the link goes to the forum with filters set to show messages for all rounds of the current dialog.
e. If there are no messages in the forum for the current dialog, then the link goes to the forum with all filters turned off (except the author filter if the "My Forum Messages" link was used).
f. When first clicking in to the forum, the "Show roots only" filter is turned off.
2. Case - the user has arrived at the Forum from the Dialog with filters set.
The Message List page is displayed with messages sorted in descending date order showing 25 messages.
3. Case - the user is on the Forum message list page and wants to display a message.
The user clicks the message title link and is taken to the Forum Message Display page for that message.
4. Case - the user is on the Forum List page and wants to display the thread for a message.
The user clicks on the "Show Thread" link for the message and is taken to the Forum Thread page with that message somehow highlighted in its place in the thread.
5. Case - the user is on the Message Display page and wants to show the thread for the message.
The user clicks on one of the two "Show Thread" buttons for the message (one above the message info and one below) and is taken to the Forum Thread page with that message somehow highlighted in its place in the thread.
6. Case - the user is on the Message Display page and wants to go back to the message list.
Since the user entered the forum on a Message List page, there is always a last message list with a page number. The user clicks on one of the "Return to Message List" buttons and is taken to the previously shown message list on the same page of the list as before.
7. Case - the user is on the Message Display page and wants to rate the message.
Except in the case where the user already rated the message in a Dialog and that message is not currently distributed to the user in an active rating section, the user can rate the message. After rating the message the "Thank you for your input!" message is displayed in the rating box in blue visible to the user on return of the screen. If the message is currently distributed to the user in an active rating section (this is the case where the rating box is in light and darker green), the ratings count in both the forum and the Dialog. Otherwise the ratings count only in the Forum. However if later that message that was previously rated is distributed to the user in an active Dialog rating section, then the rating that was previously used only for the forum is now automatically applied to the Dialog as well. After the rating goes in for the first time on a message, then the author and group for the message is displayed. It is ok to change a rating except when the rating box is pink with no submit button, of course.
8. Case - the user is on the Dialog Write Message page and wants to submit the message to the forum.
In the dialog on a round that has a forum, a message author will have two buttons instead of the one "Submit" button. The two buttons will be "Save" and "Submit to Forum". When the participant chooses "Submit to Forum" then the message is saved and becomes available in the forum for reply. If the participant has previously submitted the message to the forum and if the message has been changed, then the changed message is displayed in the forum as a reply to the originally submitted message. If then the participant submits a changed version to the forum a third time, that message is posted as a reply to version 2. Any version after the first, when it is displayed in the forum has the version number in parentheses after the title with the word "Version" so: (Version 3). At the end of the round the message is automatically submitted to the forum and if it was previously submitted and has been changed, is submitted as a new version.
To support versions and multiple submissions to the forum we will make some structural changes:
a) the key to the message will be Message-ID+Version - the first version is always version 1. Notice that we do not save every version, but only versions that are either Dialog messages or Forum messages. If there is no Forum for a particular dialog ro9und, then all messages for that dialog round will have version = 1.
b) We continue to keep all messages in the same file, but we add two flags, a Dialog-flag and a Forum-flag. If the message has been submitted to the forum then the Forum-flag is turned on. If the message is a Dialog message then the Dialog-Fag is turned on.
c) for easy access to Forum and Dialog messages we may want to maintain two separate indices, one containing only Forum messages and the other only Dialog messages. This needs to be discussed.
d) we will keep root-ID and reply-to-ID as two new fields on the message
The root ID is the message ID of the root of the thread
the reply-to-ID is the message ID of the message being replied to
If A is the root and B and C are replies to A, and D is a reply to B, then
A--B--D
A--C
Then the root ID of A, B, C and D is A.
The reply-to ID of A is null
The reply-to ID of B is A
The reply-to ID of C is A
The reply-to ID of D is B.
e) a new all-purpose relationship-table will have 4 columns: item1-ID, relation-type, item2-ID, value - we will use this table to maintain easy access to the thread hierarchy, where relation-type is msg-thread, item1 is parent message and item2 is child message and value is null. In this case the relation-type is a code that means "parent-child in message thread". For instance we might have relation-type "THREAD" and message B has reply C, so one row in the table will be: B,THREAD,D,null. Another row would be A,THREAD,B,null. We can mark the roots by using null as the parent: null,THREAD,A,null. (interesting link http://www.sitepoint.com/article/hierarchical-data-database) On the basis of the sitepoint remarks, we have decided to use the more complex "modified preorder tree traversal" but generalize the table to handle multiple hierchies using the relation-type field.
Forum Specs - these are coming along, but not yet complete.
Background on forum structure. There is only one forum. Filters can be applied to select a subset of forum items. Internally we say "items" instead of "messages" because the intent is eventually to allow structured xml types of items such as book reviews, web site reviews, etc as well as messages. For the participant we will say "messages". There are two basic types of items, dialog-related items and dialog-independent items. Every item is tagged as either dialog-related or dialog-independent. Dialog-related items are dialog messages or items submitted to the forum in a reply thread that has a dialog message as a root. At present all roots come from a dialog, so all messages need to be tagged as dialog-related, but in the future, participants will be allowed to create root messages for the forum independently of any dialog.
Forum pages all have the normal InterMix menu on the left. All applicable links are shown. For the participant, this means at present, the logout, update registration, invite a friend, return to dialog or home page links are active. If the participant did not come from a dialog then the home page link is shown. If the participant came into the forum from a dialog, then the Return to Dialog link is shown. If possible without extra code, the admin and moderators should be able to participate in the forum same as any regular participant, but if special code is needed, better to just not allow the admin and moderator to enter the forum.
The Forum List page. This page lists messages giving title of the message, author, date, dialog, round, value/interest/approval/controversy depending on sort used, and optionally the first 25 words of the message - never any images - all in a simple font without any links regardless of how the original was modified. For each message that has a thread there is a "Show Thread" link. The message title is also a link to the message text itself. At the very top of the page is a page title formed from the current filter settings. When the user changes a filter setting, the title changes. Page title: "Message List for: Dialog Name :: Group Name :: My Messages & Replies :: Original Messages Only :: Current Round :: Sorted by Whatever". If a more user friendly format can be done, so much the better. If items do not apply, they are not part of the page title, for instance if My messages is not specified, then that part of the title is not present. Just below that at the top of the page are sorting and filtering controls:
Sort buttons at the top: "Sort by Date", "Sort by Value". "Sort by Controversy", "Sort by Interest" and "Sort by Approval".
a) radio button to display first 25 words of message or not (25 words or 256 characters, whichever is shorter)
(*) Display first 25 words of each message
( ) Display message title and basic info only
b) radio button for current dialog by name: eg
( ) Global Assembly Dialog messages only
(*) Messages from all Dialogs
c) radio button for current round
( ) Current round messages only
(*) All messages
e) radio button for "my messages"
(*) All messages
( ) My messages only
( ) My messages and direct replies to my messages only
e) radio button for "root messages"
(*) All messages
( ) Original messages only (these are the first message in each thread)
f) dropdown for number of messages to display on the page: with default option 25, further options of 50 and 100.
g) dropdown for selection by group or Network including sub-groups
Forum Thread page
like the starter kit thread page with some way to highlight the message that
Message Display page
The message display page is titled "Dialog Message for the Dialog ALT", or "Forum Message" depending on whether we are looking at an active candidate message that is part of the dialog or at a reply. If it is the current round, the following is appended to the page title: " :: Current Round". If it is a current round, and we are looking at a candidate message or an earlier version of a candidate message, then the author and group are suppressed if we are in the writing phase, and if we are in the rating phase, then author and group are suppressed until the participant rates the message.
The message is displayed with a rating box below just as in the Dialog. However, the rating box in the forum normally has a light yellow and dark yellow background instead of light green and dark green. The first exception is that if the message is a Dialog message from the current round of dialog that the participant is active in, and if the message is in an active distribution to this participant, then the rating box is light green and dark green. The second exception is that if the message is a Dialog message is not both in the current active section and in an active distribution to this participant, but was in a previous rating section of the current round in a past round and was rated in the Dialog by the participant, then the rating box should be frozen and should be displayed in light and darker pink and will not have a "Submit" button.
In addition to the rating box, the current rating statistics for the message are always shown if the message has any ratings. The current rating statistics in the forum come from all ratings both Dialog ratings and Forum ratings for the message. Beneath the rating statistics for a Dialog message for a past round or for a current round that is in the rating phase we should have an informatory message that says: "The above message is a candidate message in the DialogALT. The rating statisitics shown, however, may include ratings from forum participants who are not part of the dialog as well as ratings from the dialog participants."
At both top and bottom of the message information are two buttons: "Return to Message List" and "Show Thread".
Visibility
At the dialog level there are message visibility controls. These control visibility of messages in the Forum.
1) remove "Round Summary", Active Together and History Together lines leaving only "Active Apart Rounds" and "History Apart Rounds" rows.
2) change "Active Apart Rounds" to "Current Diversity Round" and change "History Apart Rounds" to "Completed Diversity Rounds"
3) values should be "Public has access", "All members have access", "Group members have access".
4) for our purpose now "Public has access" means the same as "All members have access".
5) In the Forum, if only "Group Members have access" then only members of the author's Network can see and reply to Candidate messages or to any reply messages from Candidate message threads. To carry this out, we may need to tag replies with the Network of the message being replied to.
Forum Participation
A new section of the Dialog Administration page allows a choice for the Dialog of "Forum Participation" or "No Forum Participation". An informatory message says "Select forum participation to allow dialog participants to enter the hub forum." If "No Forum Participation" is selected, then the forum link on the menu is suppressed and Dialog messages are not visible in the forum.
Each round of the dialog inherits the dialog forum participation setting but it can be changed for that round, so the forum for a round can be turned on or off by the dialog coordinator. The setting for completed rounds cannot be changed.
Variance
The average of the sqares of the difference of the approval ratings for a message from the mean approval rating for that message gives the controversy score for the message. We need to make sure we are saving all the information we need to get this score efficiently. The biggest variance score will occur if half the approval ratings for a message are +3 and half -3. In this case the mean is zero and the square of the diff to the mean for all scores is 9, so the average is 9. Therefore the biggest controversy score is 9. The least controversy is zero if all approval ratings for the message are the same.
Moderation
For now, the forum will not be moderated.
--------------------------------------------------------------------
A. User is the participant
1. Case - the user is in a Dialog and wants to go to the Forum
a. There is always a "Forum Messages" link on the menu for participants who are logged in and also for Visitor. We are not sandwiching a "discussion section" between the writing and rating sections. Rather regardless of what section we are in, there is always a "Forum Messages" link.
b. If the participant has posted messages in the forum, then there is also a "My Forum Messages" link on the menu just above the "Forum Messages" link. The "My Forum Messages" and the "Forum Messages" work exactly the same except the "My Forum Messages" has a filter on to show the messages from the participant primarily. (When threads are expanded, all messages are listed regardless of author even if the author filter is on.)
c. If there are visible messages in the forum for the current dialog and round, then the link goes to the forum with filters set to show messages for the current dialog and round.
d. If there are visible messages in the forum for the current dialog but not for the current round, then the link goes to the forum with filters set to show messages for all rounds of the current dialog.
e. If there are no messages in the forum for the current dialog, then the link goes to the forum with all filters turned off (except the author filter if the "My Forum Messages" link was used).
f. When first clicking in to the forum, the "Show roots only" filter is turned off.
2. Case - the user has arrived at the Forum from the Dialog with filters set.
The Message List page is displayed with messages sorted in descending date order showing 25 messages.
3. Case - the user is on the Forum message list page and wants to display a message.
The user clicks the message title link and is taken to the Forum Message Display page for that message.
4. Case - the user is on the Forum List page and wants to display the thread for a message.
The user clicks on the "Show Thread" link for the message and is taken to the Forum Thread page with that message somehow highlighted in its place in the thread.
5. Case - the user is on the Message Display page and wants to show the thread for the message.
The user clicks on one of the two "Show Thread" buttons for the message (one above the message info and one below) and is taken to the Forum Thread page with that message somehow highlighted in its place in the thread.
6. Case - the user is on the Message Display page and wants to go back to the message list.
Since the user entered the forum on a Message List page, there is always a last message list with a page number. The user clicks on one of the "Return to Message List" buttons and is taken to the previously shown message list on the same page of the list as before.
7. Case - the user is on the Message Display page and wants to rate the message.
Except in the case where the user already rated the message in a Dialog and that message is not currently distributed to the user in an active rating section, the user can rate the message. After rating the message the "Thank you for your input!" message is displayed in the rating box in blue visible to the user on return of the screen. If the message is currently distributed to the user in an active rating section (this is the case where the rating box is in light and darker green), the ratings count in both the forum and the Dialog. Otherwise the ratings count only in the Forum. However if later that message that was previously rated is distributed to the user in an active Dialog rating section, then the rating that was previously used only for the forum is now automatically applied to the Dialog as well. After the rating goes in for the first time on a message, then the author and group for the message is displayed. It is ok to change a rating except when the rating box is pink with no submit button, of course.
8. Case - the user is on the Dialog Write Message page and wants to submit the message to the forum.
In the dialog on a round that has a forum, a message author will have two buttons instead of the one "Submit" button. The two buttons will be "Save" and "Submit to Forum". When the participant chooses "Submit to Forum" then the message is saved and becomes available in the forum for reply. If the participant has previously submitted the message to the forum and if the message has been changed, then the changed message is displayed in the forum as a reply to the originally submitted message. If then the participant submits a changed version to the forum a third time, that message is posted as a reply to version 2. Any version after the first, when it is displayed in the forum has the version number in parentheses after the title with the word "Version" so: (Version 3). At the end of the round the message is automatically submitted to the forum and if it was previously submitted and has been changed, is submitted as a new version.
To support versions and multiple submissions to the forum we will make some structural changes:
a) the key to the message will be Message-ID+Version - the first version is always version 1. Notice that we do not save every version, but only versions that are either Dialog messages or Forum messages. If there is no Forum for a particular dialog ro9und, then all messages for that dialog round will have version = 1.
b) We continue to keep all messages in the same file, but we add two flags, a Dialog-flag and a Forum-flag. If the message has been submitted to the forum then the Forum-flag is turned on. If the message is a Dialog message then the Dialog-Fag is turned on.
c) for easy access to Forum and Dialog messages we may want to maintain two separate indices, one containing only Forum messages and the other only Dialog messages. This needs to be discussed.
d) we will keep root-ID and reply-to-ID as two new fields on the message
The root ID is the message ID of the root of the thread
the reply-to-ID is the message ID of the message being replied to
If A is the root and B and C are replies to A, and D is a reply to B, then
A--B--D
A--C
Then the root ID of A, B, C and D is A.
The reply-to ID of A is null
The reply-to ID of B is A
The reply-to ID of C is A
The reply-to ID of D is B.
e) a new all-purpose relationship-table will have 4 columns: item1-ID, relation-type, item2-ID, value - we will use this table to maintain easy access to the thread hierarchy, where relation-type is msg-thread, item1 is parent message and item2 is child message and value is null. In this case the relation-type is a code that means "parent-child in message thread". For instance we might have relation-type "THREAD" and message B has reply C, so one row in the table will be: B,THREAD,D,null. Another row would be A,THREAD,B,null. We can mark the roots by using null as the parent: null,THREAD,A,null. (interesting link http://www.sitepoint.com/article/hierarchical-data-database) On the basis of the sitepoint remarks, we have decided to use the more complex "modified preorder tree traversal" but generalize the table to handle multiple hierchies using the relation-type field.


