**********************************************************************
FTSC                             FIDONET TECHNICAL STANDARDS COMMITTEE
**********************************************************************

Publication:    FSP-1014
Revision:       1
Title:          Moderating by Voting echomail distribution system
Author:         Amir Shabashvili 2:5049/12@fidonet
               Adel Chepckunov 2:5049/57@fidonet
Revision Date:  21 Sept 1999
Expire Date:    21 Sept 2001
----------------------------------------------------------------------
Contents:

            1. Background
            2. MV-system components
            3. Vote transport protocol
            4. Moderating by Voting process overview
            5. MV-conference initializing procedure
            6. Formats
            7. List of MVS-compatible software
            8. MV-System example
----------------------------------------------------------------------


Status of this document
-----------------------

 This document is a Fidonet Standards Proposal (FSP).

 This document specifies an optional Fidonet standard protocol for
 the Fidonet community, and requests discussion and suggestions for
 improvements.

 This document is released to the public domain, and may be used,
 copied or modified for any purpose whatever.


Abstract
--------

 Moderating by Voting establish additional procedures of FidoNet
 echomail distribution for giving opportunity to every member of
 echo-conference to take part in moderating process by sending
 moderating messages. Moderating messages must be processed by
 special software, then this information must be stored and used
 for auto-moderating of incoming echo-stream on the nodes where
 MV-System installed.


1. Background
-------------

  Objectives

 This  document defines terminology basis, data structures, rules
 and procedures of Moderating by Voting for better cooperation of
 MV-systems software developers and for compatible software
 developing.


  Motivation for a MVS

 An idea of Moderating by Voting comes from authors real experience
 in FidoNet echomail usage and moderating. We refer to FTS-0004,
 FSC-0074 as to basic documents concerning echomail distribution.

 There are three well-known schemes of echo-conference "driving" and,
 correspondingly, three kinds of echoes exists in FidoNet:

 - non-moderated;
 - moderated in "Usenet" style (pre-moderated);
 - moderated in "FidoNet" style;

 MVS introduce to the new moderating scheme, and we hope this method
 will be helpful, for example for thouse popular R50 echoes, where
 traffic is growing day by day and tend to flow out of moderator's
 hands.


  Terminology

 Because of much number of new terms used in this document and some
 of this terms are very important for MV System realization, we
 place next glossary in the beginning of document:

 Moderating - echo-messages deletion process.

 Moderating by Voting System (MV System, MVS)- software for FidoNet
 echoes auto-moderating.

 MV-conference, MV-echo, (Moderated by Voting Echo-Conference,MVE)
 - moderated by voting echo-conference.

 Moderated Message (MM)- message which must (may) be moderated.

 Vote Message (VM) - message of special format which participant of
 echo-conference sends to all MV-Systems to express his opinion
 about message he read (twit or anti-twit, vote "for" or "against").

 V-conference,V-echo,Twit-echo (Vote Transport Echo-Conference,VTE)-
 echo-conference for  Vote messages transportation.

 Moderating by Voting indicator (MV-indicator,MVI) - part of message
 header (AddressFrom, Subject or combination), used as moderating
 criterion in Vote Message.

 Twit-time - lifetime of moderating decision.

 Coordinator,V-Coordinator (VC) - System Operator, responsible for
 some MV-echo(s) configuring and managing

 Configuring message (CM) - specially formatted message which VC
 sends to all MV-systems for whole MV-bone (see below) parameters
 configuration (for some MV-echo)

 Moderating by Voting Criterion (MV-Criterion, MVC)- result of Vote
 Messages processing, used as message filtering criterion in
 moderating process.

 Moderating by Voting Base,Twit-Base (MVB) - database which contains
 MV-Criterions.

 Moderating by Voting Bone (MV-bone) - set of FidoNet nodes using
 MV-system for MV echoes distribution


2. MV-system components
-----------------------

 Name                 Function

 Vote transport       Protocol for VMM dissipation from source
                      system to all  MV-systems of current MV-Bone.

 VMM Processor        MV-Criterions from Vote Messages construction.

 MV database          Vote processing, storing criterions in
                      MV-Base.

 MV Executor          Makes decisions based on MV-Base info and
                      moderated MV-echo parameters; moderating.

 MVFix                Answers on downlinks request; produce reports
                      and info; statistics; configuring MV-system.



3. Vote transport protocol
--------------------------

 Echomail transport (fts-0004, fsc-0074) is used as Vote transport
 protocol. It is possible to use alternative transport types (for
 example, netmail or file-transfer) for backup or testing purposes.
 Special echo-conference must be used for vote transportation.


4. Moderating by Voting process overview
----------------------------------------

 - echo-conference participant meets message which annoys him and
   sends moderating message.
 - All MV-Systems catch votes from vote-transport echo area.
 - Votes are being processed on every system using the same
   algorithm for same echo area.
 - resulted criterions are placed in MV-Base.
 - every echo-message coming to the system with MVS installed must
   be compared with criterions stored and then moderated, if needed.

 Remark:  See more detailed description in Addendum I.


5. MV-conference initializing procedure
---------------------------------------

 - Coordinator creates echo-conference by usual way on one or more
   MV-Bone hubs (it is recommended to add .MV or _MV prefix to echo
   tag, for example: RU.MV.ANEKDOT, for better echotags navigation).
 - Coordinator places echo-conference rules in the conference,
   which contains MV echo configuration parameters and point to
   "START" time (HH/DD/MM/YY UTC).

 After this time MV mechanism must be used. Before "START" time
 conference exists as non-moderated; moderating messages in
 Vote-transport echo for this conference are allowed. Coordinator
 can change "START" time, if he wants to.

     - 1st variant:
       every potential participant of echo discussion must notify
       coordinator of MV-echo about his presence by netmail.
     - 2nd variant:
       Coordinator collects info about planned population
       of echo from his own sources.
     - Coordinator sets MV-echo parameters depending on amount of
       active participants of moderated echo.
     - Coordinator puts specially formatted Configuring Message (CM)
       in VT-echo.
     - Based on this Configuring message all MV-systems update
       configuration for this MV-echo area

 - MV-mode usage of conference begins since "START" time coming.


6. Formats
----------

 Vote message format

 Header:

 NameFrom    - VM-message source system Sysop name
 AddressFrom - VM-message source system address
 NameTo      - Name of moderated message sender
 Subj        - subject of moderated message


 Body:
 One line, consist of fields with space(s) as delimiter

 NN    set of used symbols     destination

 1     0..9,"/",":","."        4D address
 2     ASCII                   moderated echo-conference EchoTag,
                               letter case is unimportant.

 3     1 ,  0                  0 - twit (vote "against"),
                               1 - antitwit (vote "for").
                               Must be used one symbol only.

 4     A, S                    MV-Indicators. A-AddressFrom,
                               S-Subject of moderated message.
                               Symbols may be used in
                               combination. Letter case is
                               unimportant.

 All information below the first line will be ignored.

 Example:

 -------------------------------------------------------
 From: Amirko Shaab                        2:5049/12.12
   To: Amir Shabashvili
 Subj: Hen cooks egg!
 -------------------------------------------------------
 2:5049/12 RU.ANEKDOT.VM 0 S


 MV-Criterion format

 MV-Base record being used as moderating criterion must contain next
 fields:

 Name              description
 --------------------------------------------------------
 EchoTag           Moderated echo name (or its number in
                   configuration file)

 M-indicators      One or more MV-indicators.
 --------------------------------------------------------

 Remark: You may add your own fields in MV-Base structure; one
 possible example in Addendum below.


 Configuring message format

 NameFrom    - "Coordinator","VC"
 AddressFrom - Vote Coordinator address
 NameTo      - "MVFix","MVS"
 AddressTo   - destination address (used in case of netmail
               transportation)
 Subject     - password (optional)

 Remark: message body must be defined by programmer; see example in
 Addendum I.


7. List of MVS-compatible software
----------------------------------

 - Relax! packet processor. Author Adel Chepckunov , 2:5049/57,
   written under GNU license, see:
   ftp://ftp.n5049.z2.fidonet.net/pub/mvs


8. MV-System example
--------------------

 Configuration parameters

 (may be set separately for every MV-conference)

 Name              Description
 ------------------------------------------------------------------
 TimeCollect      Votes collection time

 TimeCollectMax   Maximum vote collection time(if after
                  TimeCollectMax moderating process is not started,
                  criterion must be deleted)

 TimeMin          Minimum criterion action time

 TimeMiddle       Middle criterion action time

 TimeMax          Maximum criterion action time

 VotesMinA        Amount of votes "against" (twits) which is enough
                  to activate criterion with combination of
                  indicators during TimeMin action time.

 VotesMidA        Amount of twits which is enough to activate
                  criterion with combination of indicators during
                  TimeMiddle action time.

 VotesMaxA        Amount of twits which is enough to activate
                  criterion with combination of indicators during
                  TimeMax action time.

 VotesMinB        Amount of twits which is enough to activate
                  criterion with one of Address,Address+Name,Name,
                  Subject indicators during minimum interval
                  (TimeMin).

 VotesMidB        Amount of twits which is enough to activate
                  criterion with one of Address,Address+Name,Name,
                  Subject indicators during minimum interval
                  (TimeMiddle).

 VotesMaxB        Amount of twits which is enough to activate
                  criterion with one of Address,Address+Name,Name,
                  Subject indicators during minimum interval
                  (TimeMax).

 PointSw          On - node only mode, Off - accept votes from
                  points
 ------------------------------------------------------------------

 Remark: Time measured in 24h.


 Algorithm

 - all installed MV-systems catch Vote Messages from VT-Echo and put
   collected MV-Indicators in local MV-Bases.
 - Set of collected and stored MV-Indicators forms Moderating
   Criterions.
 - Criterion must be launched in action after TimeCollect if number
   of votes is equal or greater than VotesMinA (If after TimeCollect
   criterion still is not working, it  must be deleted).
 - the time criterion which is still working as moderating rule must
   be equal to TimeMin, TimeMiddle or TimeMax, depending on number
   of votes.
   After the end of criterion's lifetime, it must be deleted from
   MV-Base.
 - Vote-message collection continues after time criterion activated
   and moderating decision can be changed.

 Remark: Votes with more common indicators (Address, Subject)
 take part in voting processes with more "soft" indicator
 (Address+Subject), if exists.


 Configuring message

 Echo-mail or netmail transport must be used for Configuring
 Messages transportation.

 Message body consist from one to three lines.
 First line contains the command. Command starts with '%' symbol.
 Next two lines contain additional information for this command.
 Only 'CONFIG' command is described in this document.


  '%CONFIG' command

 'CONFIG' command is used for configuring of those MV Systems, which
 receipt configuring message(s).
 2nd line contains moderated conference echotag.
 3rd line consists of the numerical fields delimited by space (' '):
 TimeCollect TimeCollectMax TimeMin TimeMiddle TimeMax
 VotesMinA,...,VotesMaxB

 All lines below 3rd line must be ignored.

 Example (case of netmail-transport):
 ----------------------------------------------------
 From: Coordinator                         2:5049/12
   To: VMS                                 2:5049/57
 Subj: <PASSWORD>
 ----------------------------------------------------
 %CONFIG
 KAZAN.GENERAL.VM
 4 7 30 60 90 10 15 20 15 30 50


 MV-base structure

 Field Name         Description
 -------------------------------------------------------------------
 CreationTime      The time criterion was created

 EchoTag           Echotag of moderated conference (or its number in
                   configuration file)

 NVotesYes         Number of votes "Against" (twits)

 NVotesNo          Number of votes "For" (anti-twits)

 V-Addresses       List of addresses votes are accepted from (use
                   this list for duplicated voices checking)

 M-indicators      one or more moderating indicators.
 -------------------------------------------------------------------


A. Author contact data
----------------------

Amir Shabashvili
FidoNet: 2:5049/12
E-mail: [email protected]
WWW: http://ashabash.zarech.ru

Adel Chepckunov
FidoNet: 2:5049/57@fidonet


B. Acknowledgements
-------------------

The authors would like to thank Alex V. Ivanov for
fixing of our poor English.


C. History
------------

Rev.1, 19990921   First release.