Date: Tue, 25 Mar 1997 21:03:40 -0700 (MST) From: Terry Lambert <terry@lambert.org> To: hasty@rah.star-gate.com (Amancio Hasty) Cc: terry@lambert.org, hackers@freebsd.org Subject: Re: Cool Web page interface to mail + search engine? Message-ID: <199703260403.VAA26869@phaeton.artisoft.com> In-Reply-To: <199703260131.RAA15627@rah.star-gate.com> from "Amancio Hasty" at Mar 25, 97 05:31:56 pm
index | next in thread | previous in thread | raw e-mail
> Odd, I think that you think like a Physics. There are LAWS which can
> not be broken.
Yes, physics is the only real science (mathematics is not a science,
it is a tool). What has that got to do with the price of tea in
China?
> Terry, I am going to leave this simple exercise for you to solve .
> When you have a "cool" solution, please let us know about it.
>
> >From The Desk Of Terry Lambert :
> > > It is just a distraction from Terry for now just ignore it and
> > > concentrate on the real project .
> >
> > Ignore this: HOW WILL YOU DESIGNATE A MESSAGE'S THREAD WITHOUT
> > AN "In-Reply-To:" HEADER?
> >
> > That's the point of the discussion.
OK, I have a cool soloution; the pain is that it took so long to
write up (I think vastly faster than I type):
The problem may be solved in two parts:
I Assignment of message ID's to messages that came into the
list server without a "Message-ID:" header.
Discussion: There are several examples of messages
without "Message-ID:" headers in the
archives (mostly exmh users).
List Change: Messages received without "Message-ID:"
headers shall be given one in the list
remailing process, before the messages
are the archived. This means the
messages will have an archival ID, and
they will be likely to generate correct
"In-reply-to:" headers from user mailers,
guaranteeing threadability of correctly
formatted replies/followups.
II Designation of root messages and ordering for messages that
do not have an "In-reply-to:" header.
Case 1: The message does not have an "In-reply-to:"
because it is the head of a new thread
Case 2: The message does not have an "In-reply-to:"
because the MUA used by the user failed
to provide one
Case 3: The message has an "In-reply-to:" for a
message archived by the list
Case 4: The message has an "In-reply-to:" for a
message not archived by the list
Archive Change: Case 1 be grossly distinguished from
case 2 by determination of "Subject:"
line contents.
If the "Subject:" line contains an "Re:"
prefix to the subject, it is considered
an "orphan" message from an existing
thread.
Alternate: If processing time can be
spared, an index search of existing
subjects should be used to identify the
subject, and categorize the message
that way; a date-cutoff parameter (which
we will call <timeout #1>) should allow
regeneration of a subject thread without
considering the thread an orphan.
Archive Change: Case 3 is time domain indistinguishable
from case 4 for a given time window in
the case that a case 4 message resulted
from a transport propagation delay. This
may occur if a list and a user are both
copied on a message, and the user replies
before the list archives the message, and
the network propagation delay topology is
such that the original message arrives
after the response to both the list and
the orginal sender (most often caused by
"group replies").
The Archive processing must be two-tiered,
such that there is a configurable window
of time in which a non-archived referenced
message may arrive before the refrencing
message is archived (which we will call
<timeout #2>).
If <timeout #2> expires prior to the arrival
of the orginal message, then the message
that followed it is declared an "orphan".
Define Orphan: An orphan message is the result of a missing
or "In-Reply-to:", a new message with an
archived subject which recurrs within a
<timeout #1> window, or a followup to a non-list
message (an 'invalid' "In-reply-to:") for
which an original message has not appeared
within a <timeout #2> window.
Said messages shall be marked with the headers:
"X-Orphan: no in-reply-to",
"X-Orphan: no in-reply-to AND active subject",
"X-Orphan: unarchived in-reply-to 'reply-to'",
respectively ('reply-to' in the last is the
original "In-reply-to:" header).
Handle Orphan: If the subject does not exist, it is treated
as the head of a new thread.
If the subject exists, but has not been
added to in <timeout #1> days, the subject
is considered to have "recurred", and it is
treated as the head of a new thread with the
same subject.
If the subject exists, and the has been added
to in <timeout #1> days, the subject is
considered to be "live" and the message is
considered to be "unthreadable". An message
which is "unthreadable" is determined to have
occurred in the "unthreadable" thread for the
subject, and is treated as follows:
a) If it is the first "unthreadable"
message for a subject, the root
message gains a new thread as if
the unthreadable message were a
response to the root message itself.
The messages's "In-Reply-to:" is
adjusted accordingly.
b) If it is not the first "unthreadable"
message for a subject, the root
message's "unthreadable message list
is followed to the tail of the thread,
and it is insrted there. The message's
"In-reply-to:" is adjusted to point
to the "Message-ID:" of the message at
the tail of the thread.
Alternate (b):
b) If sufficient processing power exists,
the message is inserted in the thread
"unthreadable" based on it's date/time
stamp in UTC. Both it's, and the message
following it's "In-Reply-to:" field are
adjusted to indicate the link insertion.
It should be ovious that given the time-order domain of
message header adjustments, it is possible to:
o Reindex messages in the case that the message index
is somehow lost
o Periodically reindex messages based on the "X-Orphan:"
header to "unorphan" messages for which the:
"X-Orphan: unarchived in-reply-to 'reply-to'"
unarchived parent has subsequently arrived outside the
<timeout #2> period (the purpose of which is to get
important data into the archive in a timely fashion).
o Periodically reindex messages based on the "X-Orphan:"
header to "unorpahn" messages for which the:
"X-Orphan: no in-reply-to AND active subject"
has caused the messages to be interpreted as active
subject orphans rather than new thread heads (typically
this would be done when <timeout #1> has been increased).
o Periodically reindex messages based on the lack of an
"In-reply-to:" header that are considered message heads
to force them into the:
"X-Orphan: no in-reply-to AND active subject"
category (typically this would be done when <timeout #1>
has been decreased).
o Apply administrative fiat to adjust headers to force
messages from one category to another, and to join and
split threads, as necessary. To support this, there
should be a valid "In-reply-to: root" or similar thread
head directive which is treated as a pseudo-directive.
I think that about covers it...
Regards,
Terry Lambert
terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199703260403.VAA26869>
