re: draft-ietf-imapext-thread

Mark Crispin <MRC@cac.washington.edu> Tue, 29 May 2001 21:06 UTC

Received: by above.proper.com (8.9.3/8.9.3) id OAA14422 for ietf-imapext-bks; Tue, 29 May 2001 14:06:46 -0700 (PDT)
Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by above.proper.com (8.9.3/8.9.3) with ESMTP id OAA14407 for <ietf-imapext@imc.org>; Tue, 29 May 2001 14:06:40 -0700 (PDT)
Received: from mailhost1.u.washington.edu (mailhost1.u.washington.edu [140.142.32.2]) by mxout2.cac.washington.edu (8.11.2+UW01.01/8.11.2+UW01.04) with ESMTP id f4TL6go16094; Tue, 29 May 2001 14:06:43 -0700
Received: from Tomobiki-Cho.CAC.Washington.EDU (murphy@tomobiki-cho.cac.washington.edu [128.95.135.58]) by mailhost1.u.washington.edu (8.11.2+UW01.01/8.11.2+UW01.04) with ESMTP id f4TL6gi20039; Tue, 29 May 2001 14:06:42 -0700
Date: Tue, 29 May 2001 13:57:38 -0700
From: Mark Crispin <MRC@cac.washington.edu>
Subject: re: draft-ietf-imapext-thread
To: Arnt Gulbrandsen <arnt@gulbrandsen.priv.no>
cc: ietf-imapext@imc.org
In-Reply-To: <20010529223543.E26574@melkebalanse.troll.no>
Message-ID: <MailManager.991169858.2809.mrc@Tomobiki-Cho.CAC.Washington.EDU>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET="US-ASCII"
Sender: owner-ietf-imapext@mail.imc.org
Precedence: bulk
List-Archive: <http://www.imc.org/ietf-imapext/mail-archive/>
List-ID: <ietf-imapext.imc.org>
List-Unsubscribe: <mailto:ietf-imapext-request@imc.org?body=unsubscribe>

On Tue, 29 May 2001 22:35:43 +0200, Arnt Gulbrandsen wrote:
> The thread extension offers no way to get threading information for only
> some mail (typically, the newly arrived messages).  Isn't this a problem?

Did you notice that the last argument specifies what messages are to be
threaded?  So if you only want to thread new messages, you can do:
	THREAD REFERENCES UTF-8 NEW

However, usually ALL is used, because you want to thread in context.

> The thread=references model specifies an algorithm to be used, in detail,
> and that algorithm is one that makes several passes over the entire set of
> messages.  The algorithm is complex, and it's not clear to me whether it
> can be adapted to be incremental without possibly changing its output, and
> whether such changes are permitted by the draft.

That's the problem -- a newly-arrived message can completely change the thread
tree.  It's therefore quite possible that an "incremental" change (one that
simply says what is different from the previous tree) is larger in size that
the previous tree.

To complicate matters, there is no obvious algorithm for determining how a
newly arrived message would change the tree; without such an algorithm, you
have to rethread on the server, and then do a comparison between the old and
new tree.

This has been the flaw in the arguments for "subsetting"; you can only
"subset" in the simplest cases.  It turns out that the only meaningful
subsetting is on a static tree, which makes subsetting much less valuable than
its proponents claim.  That's why subsetting hasn't been particularly
interesting to the people who've actually implemented server-based sorting and
threading; it's one of those things that sounds better on paper than in
reality.

> So, if a server does incremental References:-based threading on delivery,
> can it advertise thread=references?

I don't know what that means.