Index ] [ Anonymity ] [ Privacy ] [ Security ] [ Search ] [ Feedback ] [ Index ] [ Anonymity ] [ Privacy ] [ Security ] [ Search ] [ Feedback ]

Threading articles

"Threading" is a Usenet term for maintaining the correct order in which a discussion appears. This mechanism is far superior to any sorting algorithm, as it can even maintain the correct sorting order after articles have disappeared from the server, or when a reply arrives before the original article.

A followup (ie, any article that is in response to another article) will always have a special header line, References: , which contains a list of the Message-ID's of all articles prior in this thread (subsection of the discussion).

As an example, take a look at the following discussion. Letters denote articles, and lines indicate where the article was a followup to.

 A -- B -- C
     -- D -- E
               -- F

In this example, "A B C" is one thread, and "A D F" is another. Article "F" contains the Message-ID's of "A" and "D" in its References: header.
It is easy to see how the discussion evolved, and you can even skip a certain 'sub-thread' if you think it is going off-topic, for example. But it's even more powerful. Imagine that a person reads article "B", and wants to followup, even though "B" was a few days old. His article, "G", now arrives at your site. Where should it go? With subject/date sorting, the article tree would look like this:

 A -- B -- C
  |-- D -- E
  |      |     -- F
     -- G

but that's not correct. The correct location for article "G" would be as another branch off "B".

 A -- B -- C
  |      |     -- G
     -- D -- E
               -- F

Using the Usenet threading mechanism, this can be done quite easily. The newsreader simply adds the Message-ID of "B" to the References: header of "B", and then copies that new header to the header section of article "G".

When article "G" now arrives at a new server, the readers there can see that article "G" was a followup to "B", and so it should be put in the thread at the location above.

HTML 3.2 Checked!
Last modified: 26 Jan 1997
Author: Arnoud "Galactus" Engelfriet
This document was generated with Orb v1.3 for OS/2.