On Tue, 17 Jun 2003, Vladimir A. Butenko wrote:
> These syntax constructs just specify the syntax of UID *REFERENCES*. They do
> not say anything about their *values*. It's not a client that assigns UIDs
> to messages, but the server. So the syntax just says that you would have
> problems accessing (or referring to) messages with negative UIDs, but it
> does not [explicitly] say that the server cannot create them.

Although this argument is not invalid (and indicates something that should
be explicitly stated in a revision), it is also academic.

It is an historic convention in Internet protocols to stipulate
restrictions and rules through the syntax; e.g. by making it impossible to
represent something that is not permitted.

It's somewhat like Newspeak in Orwell's novel "1984" -- a language that
made it impossible to formulate politically incorrect speech, and by doing
so controlling thought.

> Speaking less formally, my note can be re-formulated this way:
> If UIDs are 32-bit numbers, then how can I refer to the message with UID
> -23?

The answer would be "since UID -23 does not (can not) exist, the question
is meaningless."

Admittedly, this answer would not be helpful to an implementor who has to
export a mail store with such a UID to IMAP.  So let's try an alternative
answer: "UID -23 does not (can not) exist in IMAP, so you must create some
form of mapping between your mail store's system of UIDs and IMAP UIDs.
The IMAP UID from the mapping must also comply with IMAP's other
restrictions, such as strict ascendency.  Other than some kind of
one-to-one mapping, and compliance with IMAP's rules, how to do it is up
to you.  Good luck."

> I.e. the syntax serves semantics, not vice versa. Syntax can always be
> extended, preserving the compatibility with the existing semantics.

In general, syntax extensions have never violated semantic assumptions
that existing implementations can presume from the unextended syntax.
Put another way, negative UIDs can't happen because it would break
existing implementations.

> All
> modern mailers expect that the UIDs are strictly positive integers, and this
> fact should be specified in the semantics part of the standard. The fact
> that negative UIDs would have problems with the current syntax is [almost]
> irrelevant.

I agree with the first statement, but not the second statement.  But I'm
willing to moderate that with a rephrase such as "semantic rules such as
no-negative-UIDs should be explicit, and not derived implicitly from the
syntax."

-- Mark --

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

Reply via email to