Re: Last Call: draft-ietf-imapext-sort (INTERNET MESSAGE ACCESS PROTOCOL - SORT AND THREAD EXTENSIONS) to Proposed Standard

Mark Crispin <MRC@Washington.EDU> Tue, 04 March 2008 01:43 UTC

Received: from balder-227.proper.com (localhost [127.0.0.1]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id m241hdNq095602 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 3 Mar 2008 18:43:39 -0700 (MST) (envelope-from owner-ietf-imapext@mail.imc.org)
Received: (from majordom@localhost) by balder-227.proper.com (8.13.5/8.13.5/Submit) id m241hdUa095600; Mon, 3 Mar 2008 18:43:39 -0700 (MST) (envelope-from owner-ietf-imapext@mail.imc.org)
X-Authentication-Warning: balder-227.proper.com: majordom set sender to owner-ietf-imapext@mail.imc.org using -f
Received: from mxout2.cac.washington.edu (mxout2.cac.washington.edu [140.142.33.4]) by balder-227.proper.com (8.13.5/8.13.5) with ESMTP id m241hZEs095588 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for <ietf-imapext@imc.org>; Mon, 3 Mar 2008 18:43:36 -0700 (MST) (envelope-from MRC@Washington.EDU)
Received: from smtp.washington.edu (smtp.washington.edu [140.142.33.9] (may be forged)) by mxout2.cac.washington.edu (8.13.7+UW06.06/8.13.7+UW07.09) with ESMTP id m241hUCs002529 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 3 Mar 2008 17:43:30 -0800
X-Auth-Received: from Tomobiki-Cho.CAC.Washignton.EDU (tomobiki-cho.cac.washington.edu [128.95.135.58]) (authenticated authid=mrc) by smtp.washington.edu (8.13.7+UW06.06/8.13.7+UW07.09) with ESMTP id m241hUTg013432 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Mon, 3 Mar 2008 17:43:30 -0800
Date: Mon, 03 Mar 2008 17:42:58 -0800
From: Mark Crispin <MRC@Washington.EDU>
To: Dave Cridland <dave@cridland.net>
cc: Cyrus Daboo <cyrus@daboo.name>, ietf-imapext@imc.org, Dan Karp <dkarp@zimbra.com>, Alexey Melnikov <alexey.melnikov@isode.com>, Messaging Organization <morg@ietf.org>
Subject: Re: Last Call: draft-ietf-imapext-sort (INTERNET MESSAGE ACCESS PROTOCOL - SORT AND THREAD EXTENSIONS) to Proposed Standard
In-Reply-To: <11196.1204577994.323505@peirce.dave.cridland.net>
Message-ID: <alpine.WNT.1.00.0803031716020.4324@Tomobiki-Cho.CAC.Washignton.EDU>
References: <308708312.105681204528070348.JavaMail.root@dogfood.zimbra.com> <39C27EE6CA7A1E19A496AFF8@caldav.corp.apple.com> <2684.1204560897.167053@peirce.dave.cridland.net> <47CC25E5.3060906@isode.com> <alpine.OSX.1.00.0803031029180.18870@pangtzu.panda.com> <11196.1204577994.323505@peirce.dave.cridland.net>
User-Agent: Alpine 1.00 (WNT 941 2008-03-03)
Organization: UW Technology
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset="US-ASCII"; format="flowed"
X-PMX-Version: 5.4.1.325704, Antispam-Engine: 2.6.0.325393, Antispam-Data: 2008.3.3.172748
X-Uwash-Spam: Gauge=IIIIIII, Probability=7%, Report='__CP_URI_IN_BODY 0, __CT 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __SANE_MSGID 0, __USER_AGENT 0'
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 Mon, 3 Mar 2008, Dave Cridland wrote:
> I can think of circumstances where sorting by the full email address is 
> useful (which would also catch the above), and where sorting by the full name 
> is also useful.

I agree with all this; which is why the SORT/THREAD specification is 
extensible.  I have said many times that I would support a follow-on 
specification that adds new sort keys and thread algorithms.  As long as 
the keys are not preposterous I would seriously consider implementing 
them.  I might even implement a preposterous key if the implementation is 
straightforward.

My objections are not -- and have never been -- about adding new keys. 
My objections are to ademand that existing keys with a long history be 
removed.

If the keys in question are difficult to implement in a server, then the 
server is fundamentally flawed in its frameworks.  The most plausible 
explanation would be a server that uses a database back end that doesn't 
have ready access to the necessary addr-mailbox components.  That's no 
excuse.  The same data are needed to deliver satisfactory ENVELOPE 
performance; if the server can not do that well then it is not doing IMAP 
well.

Then there is the postulate that the presence of "useless" keys will make 
it more difficult to add "more useful" keys.  That would happen in only 
two scenarios:
  (1) The existing keys are good enough.
and/or
  (2) Nobody cares enough about the issue.

Neither is a justification to remove functionality.

If something is "good enough", then it should win especially when it is 
entrenched for decades.  The ridiculous notion that "good enough" must 
yield to "perfect" has led to the current situation where the IETF never 
gets anything done.

And, if nobody cared enough about the issue, then the "more useful" keys 
are a solution in search of a problem and should die.

Put another way, we should add new sort keys iff the current set of keys 
are not "good enough" AND some consituency cares.  I consider both 
conditions to be plausible; but my stake is that these new keys are 
additions, not replacements, for the existing keys.

> Threads "changing" is indeed a problem for many cases - I'm not sure I see 
> the value in ordering by subject to address it though - could you explain a 
> bit more? (I'm not saying there's no value, I just can't visualize how this 
> helps).

Typically, the thread-changer thinks that he has broken the thread by 
changing the subject, but did not do anything about the references links. 
A SUBJECT sort or ORDEREDSUBJECT thread breaks the thread, since neither 
uses the references links at all.

Now, there are also cases where the subject changes but the thread is 
legitimately the same.  That's why I don't use just one collation; I 
normally use THREAD=REFERENCES by default but switch to other collations 
when the situation is such that I think one of them will do a better job.

> Hard - one has to consider what the flag's precedence is, and how to order 
> flag combinations. Some cases are easy - one might say that (\Flagged) > 
> (\Flagged \Seen) > () > (\Seen), but where user-defined keywords are heavily 
> used, any sort order really needs to be client-defined.

I agree.  If flag sorting is done at all, it needs to be engineered 
carefully and probably via a client-defined mechanism.

> I've seen people doing both "Sent" and "Received" date sorts.

Strong agreement.

-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.