RISC World

Scoring rules in Messenger Pro

A quick walkthrough with Hariet Bazley

The value of a message

Every message stored by Messenger Pro has a 'score' value associated with it. The easiest way to illustrate this is to display the 'Score' column for a given newsgroup - say comp.sys.acorn.apps. By default only three columns are shown, 'Subject', 'Sender' and 'Date' (and the status icon on the left, which shows whether the message has been read yet or not). Open the newsgroup window, display all (both read and unread) messages and select Display->Columns->Score from the menu.

comp.sys.acorn apps

This will show you what the current score for each individual message is. You can update the scores shown in a group after adding new scoring rules by selecting 'refresh' or by closing and reopening the window. If you have not previously set up any scoring rules, most if not all of the messages will have the default score defined in the Scoring rules section of the Choices window - when a new user is first created, this score is set to zero.

Sorting by score

Messenger Pro's scoring rules allow you to highlight postings by specific individuals or on a named topic, visually (by colouring the subject line and thread title) and/or by using the option to display a group sorted by score. If you click ADJUST on the 'Score' label at the top of the column, any current messages with negative scores (i.e. those to which a killfile has been applied) should come to the top of the window. Likewise, if you click SELECT, any messages with scores higher than the default (you probably won't have any of these yet) will come into view. In order to sort a given group permanently by score, set it up the way you want it, then click MENU over the group display and select Display->Settings->Save.

Default values

Open the Choices window and click on the 'Scoring rules' icon. This shows the current contents of your 'killfile'; in fact, it shows all your scoring rules, both positive and negative, so to speak!

List of scoring rules

It also allows you to define the default score to assign to a message before any scoring rules are applied to it, and how low the score must be before messages are killfiled (not displayed at all). If you set the default score to be 1 instead of 0, you will see that one side-effect of this is that sorting by score now displays the threads in order according to the number of posts they contain.

The 'Kill if score not above' setting has two effects, the most obvious being that this is the score assigned to any messages which you explicitly killfile via the 'mark as read' instruction. A more subtle effect is that you can cause messages to be killfiled cumulatively; for example, if this level is set to -10 and you have two negative rules each subtracting 6 from the message score, messages matching both will score -12 and be hidden, but messages matching one of the rules but not the other will score only -6 and thus still be visible.

Editing the rules - step by step

You can double-click on the rule names to edit them (or select them and then click on the 'Edit' icon). Just as an example, I'll explain the details of the first rule in my own list: "List us"

Editing a scoring rule

The order in which rules are applied

In the top right-hand corner of the rule editing window is a numerical value labelled 'Priority'. This allows you to ensure that certain rules are executed before all others, by allocating them a higher priority. You probably won't ever need to use this; it does however provide a mechanism for changing the order of the rules in the list, as rules with a higher priority are displayed towards the top, whereas normally new rules are added at the bottom (and carried out last).

Name and group

On the top left is an icon for the rule's name - Messenger will supply a default name if you leave this blank, but for any long-term rules (i.e. anything other than 'kill subject x') it is a good idea to give them some kind of meaningful name. This name is the text which will be displayed in the list of scoring rules.

name of rule and groups to which it applies

The 'For groups' icon specifies for which groups this rule will be carried out. If you opened this window by clicking on one of the 'x' icons on a message window, the name of the group will be filled in for you; you can also select further names from the list of groups to which you are subscribed via the pop-up menu to the right of this icon. You can edit the groups specified using the '*' wildcard. In this "List us" example, I have simply listed * on its own so that this rule applies to all groups. Another useful name to give is comp.sys.acorn.*, which will affect all groups in the comp.sys.acorn hierarchy, but not, for example,

Altering the message value

menu of choicesThe 'If matched' icon is where you define what effect this rule will actually have on the messages which match its criteria. The most useful options available from this menu are 'mark as read', 'increase score by' and 'just colour'.

action to take if matched

In this case, I have used 'increase score by' and set a value of 50 in the numerical icon to the right. I have also set the rule (by clicking on the 'Edit...' icon to the far right) to change the colour of the subject lines of all messages matched - to a sort of yellowy-greeny colour: R 65%, G 72%, B 0%. This highlights the messages (and any threads containing them) visually, so that they stand out even if I do not actively sort them to the top of a newsgroup.

'Mark as read' simply sets the score for those messages to the minimum necessary to match your 'Kill if score not above' setting.

A 'Decrease score by' rule can be used to downgrade the priority of messages by an inflammable individual without killfiling him outright. Using a threaded display, if you set Messenger to assign a small negative value to each of his posts, the more times he posts to a given thread the less that thread will score - so if you sort the display by score, threads to which he has posted multiple times (likely to be a flamewar) will appear below those to which he has posted only once or twice. Likewise, threads containing posts which match a rule awarding them an increased score will rise up the list. This means that you get to read the interesting stuff first!

Note that multiplying the score of a message will have the effect of intensifying the effect of any previous rules that apply; 'good' messages will acquire very high scores, but any slightly negative messages may well be transformed into killfile fodder. If this isn't what you intend, beware of the order in which your rules are processed - and remember that this can be adjusted if necessary via the 'Priority' icon.

Which messages match?

The 'Matching criteria' are the important parts. This is where you define what Messenger actually checks for when deciding whether to apply this rule. Again, you need to use wildcards here when matching strings - unlike when using Messenger's search facility (which is otherwise very similar). A lot of people have already complained that this is very confusing....

The top set of icons in this section may already be filled in for you with a suggested entry, i.e. if you selected Add->Rule to killfile-> Subject, the top line might read Subject = Re: ChangeFSI. (If you did a 'Kill subject' on the first article in a boring thread, however, the string supplied would be Subject = ChangeFSI, which would then fail to match all the subsequent followups with their subject line of "Re: ChangeFSI", and you would have to edit the rule manually to specify *ChangeFSI as the subject - an oversight on the part of Messenger.)

comparison criteria

The pop-up menu for the first icon allows you to pick from nine possible common header fields. In the case of my "List us" rule, the top line reads From = *Bazley*, which will pick up postings by either my brothers or myself. You may also pick from a menu of possible comparisons; generally only '=' or '<>' are sensible for string values. The other operators are only useful for scoring on the 'Date', 'Lines' or 'Size' values, which one doesn't normally wish to do.

However, a single criterion may sometimes prove insufficient to pick up all the messages you wish to match your rule - or, as in this example, you may wish your rule to perform more than one function. The "List us" rule not only highlights posts by us, it also (more usefully) picks up any follow-ups. In order to do this, I supplied a second line of criteria - as you can see by the rows of icons, Messenger allows you to have up to four. However, the second three have an additional icon on the far left, which controls how they combine with the first (non-optional) line. By default, this icon is set to 'off', which greys out that line altogether. You may switch it to either 'And' or 'Or' in order to activate the remaining icons. In my case, I used 'Or', since follow-ups will obviously not contain Bazley in the From: header and thus will not match the first criterion.

I set the remaining lines to Or References = ** and Or References = ** to pick up any threads replying to either of our messages. References = ** would also have picked up posts by other FreeUK subscribers such as Dave Ruck!

Alternatively, I could have used References = * to pick up posts where mine was the last entry in the References: header, namely direct responses only, since threads can wander quite a long way off-topic after five or six further replies....

Rules that apply for a limited period

The life of a rule is defined in the 'Expiry' section. Messenger has fairly sensible defaults here. If you add a new rule manually, it will use 'Do not expire', which means that the rule will remain in force until you delete it manually from the scoring rules list window. If you use the automatic 'Kill sender' it will do the same. If you use the automatic 'Kill subject/descendants', it defaults to 'Remove if unused for 7 days', to save having large numbers of rules hanging around relating to threads which are long since defunct.

timed removal of rules

Personally, I normally killfile a given sender and/or follow-ups to their posts (not always possible, depending on the format of their Message-ID headers) for an initial period of one to three weeks, only resorting to permanent killfiling if they do not appear to have become more coherent/less offensive after that time has elapsed. Hence I usually set the Expiry time to 'Remove after x weeks', the third option in this section. You can also set a rule to expire on a specific date - for example, in, I might set Messenger to filter out (mark as read) all posts tagged as [I]rrelevant over Christmas, until the date when Christopher goes back up to university and I have access to his computer for somewhat more extended periods of time.

Note that 'use' in the 'unused' option applies to every time the group window is opened, rather than every time new messages are downloaded. In other words, the rule will not start to 'expire' until after the last message to which it can possibly apply has expired. If you set it to expire 'if unused for 1 week', and that group is set to expire messages received more than 2 weeks ago, it will thus be three weeks before the rule disappears from the list.

Hiding spam

Scoring rules can be used as a simple and non-drastic way of removing spam e-mail. (In other words, if you get it wrong, the message has not actually been deleted!)

In order to remove e-mail not addressed to you directly, you need to set up a scoring rule for the group 'Incoming mail'. If your address is (for example) "Colin Baxter <>", then create a rule where the criterion is To <> ** (to match all possible variants on your address - with and without the 'Colin Baxter', with and without enclosing angle brackets, etc) and the action to be taken if matched is 'mark message as read'. It would probably be a good idea to add colouring as well (perhaps a faint silver grey?) so that later, when displaying both read and unread messages in your inbox, you can distinguish between those which you have really read and those which have simply been 'marked as read'! You can then sort your inbox by score to collect all the 'killed' messages together and delete them manually.

Silver spam

Downloading message bodies

There is one situation in which the Size: header can be used to great effect - in a newsgroup which is downloaded headers-only, so that a subset of messages can be marked manually for full download at the next fetch. It is common to download groups which carry binaries in this way, since it avoids downloading large files in which the user may not be interested, and it is also convenient for high-traffic groups in which much of the content is off-topic or mutual flaming. Unfortunately Messenger's standard thread icons do not distinguish between threads which contain unread message bodies (fetched in the last download) from those which contain only fresh headers. By setting up a size scoring rule for such a group, however (Size > 21 for example) and colouring all messages which match, it is easy to identify the threads which contain unread material.

Full downloads highlighted in blue

This is one example where you will probably want the group always to be sorted by score - if you don't want the side-effect of long threads appearing near the top, set the default score to be -1 and cancel this out by increasing the score of full-size articles by 1. Headers will thus be slightly negative while normal articles again score zero. Of course, this will affect all your other groups as well....

The next thrilling installment...
...filtering in Messenger Pro

My second article will build on this one to explain how to use filters to move/delete messages at source, and how to have separate addresses on a single [FreeUK] account.

>Harriet Bazley <>