From: Charles Lindsey (chl@clerew.man.ac.uk)
Date: Tue Mar 23 2004 - 07:05:38 CST
In <405E8B63.6030900@erols.com> Bruce Lilly <blilly@erols.com> writes:
>For more insight into what In-Reply-To adds, consider
>http://users.erols.com/blilly/mparse/usefor/ref+irt.png
>and
>http://users.erols.com/blilly/mparse/usefor/ref-only.png
Your examples are interesting, but your interpretation of them is
incorrect.
>They are graphs corresponding to predecessors of a message
>(indicated by the letter 'z') constructed from a) the
>combination of References and In-Reply-To information from
>all articles, and b) information from References only
>where several messages are followups to multiple messages.
You cannot say that they were constructed from the References with or
without the aid if In-Reply-To without first defining how the protocol for
constructing References headers had been extended to include the case
where messages are allowed to be permitted to be followups to multiple
messages (a case not recognixed by either RFC 1036 or RFC 2822).
First some notation:
Let "R a b c d e M f" mean that "Message f had "a b c d e", in its
References header (i.e. the notation shows the Message-ID at the end of the
list of References).
Then, if I were designing a protocol for the purpose, it would
generate the following for the data in your example.
M a
R a M c
R a M d
R a c M h
R a d M i
R a c h d i M k
R a d M j
R a c h d i k j M l
M q
R q M r
R q M s
R q r M t
R q s M u
R q r t s u M v
R q s M w
R q r t s u v w M x
R a c h d i k j l q r t s u v w x M z
How would that now get displayed in a reader? Understand first that there
is no "perfect" way to do it. There are several ways, and any attempt to
show the tree structure is boud to fail, because it isn't a tree.
But if you apply the Zawinski algorithm, as described in that IMAP draft,
and if you assume that the dates of the articles were from left to right
and top to bottom in your diagram, then it would give you
(a(c(h)d((i(k))(j(l))))) (q(r(t))(s(u(v))(w(x(z)))))
which is not a bad attempt, and certainly presents them in an acceptable
order.
However, I mentioned earlier that there was a bug in the Zawinski
algorithm (essentially, once it had discovered that the parent of C was P,
it never went back to change that view, even if it found later evidence
that there was an intermediate article between P and C). In the case
above, it cannot be guaranteed that some other thread might not have been
interpolated at the gap in the middle of my result above (assuming that
articles a and q had different Subjects, as is likely). If you fix the
algorithm, then it would not have that problem and, moreover, it would
linearize the whole thing so as not to appear as a tree when it wasn't.
-- Charles H. Lindsey ---------At Home, doing my own thing------------------------ Tel: +44 161 436 6131 Fax: +44 161 436 6133 Web: http://www.cs.man.ac.uk/~chl Email: chl@clerew.man.ac.uk Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K. PGP: 2C15F1A9 Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5