RE: Fuzzy words [was Uppercase question for RFC2119 words]

Eric Gray <> Mon, 28 March 2016 20:27 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 8BD7B12D19B; Mon, 28 Mar 2016 13:27:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.202
X-Spam-Status: No, score=-4.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id fSKmlUxycqIC; Mon, 28 Mar 2016 13:27:23 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 2C3A112D1B0; Mon, 28 Mar 2016 13:27:18 -0700 (PDT)
X-AuditID: c6180641-f79fa6d0000057a9-15-56f993810c81
Received: from (Unknown_Domain []) by (Symantec Mail Security) with SMTP id C9.C3.22441.18399F65; Mon, 28 Mar 2016 22:26:42 +0200 (CEST)
Received: from ([]) by ([]) with mapi id 14.03.0248.002; Mon, 28 Mar 2016 16:27:17 -0400
From: Eric Gray <>
To: Brian E Carpenter <>, "Scott O. Bradner" <>, Barry Leiba <>
Subject: RE: Fuzzy words [was Uppercase question for RFC2119 words]
Thread-Topic: Fuzzy words [was Uppercase question for RFC2119 words]
Thread-Index: AQHRiSw33A+4lBlJ1EWj5YxJCPJ3Tp9vRxEQ
Date: Mon, 28 Mar 2016 20:27:15 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <20160328104731.GO88304@verdi> <> <20160328132859.GP88304@verdi> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrEIsWRmVeSWpSXmKPExsUyuXRPiG7T5J9hBqvDLQ4tvsRq0XZxH5PF jD8TmS2ebZzPYnH7mZXF2n/t7BbHO5Ud2D1aVvUye+ycdZfdY8mSn0weDW3HWD1eHPjGHMAa xWWTkpqTWZZapG+XwJVx9uB3poIvthVTt69naWBcYdPFyMkhIWAicanxGSuELSZx4d56ti5G Lg4hgaOMEi/+dLFDOMsZJQ492McOUsUmoCFx7M5aRpCEiEADo8TbuZPBHGaBJYwSU/ZfYQKp EhZwlvjwaR4LiC0i4CKxcsNpKNtIYs/GbrB9LAKqEscmXWYDsXkFfCW2TlsCtfs7q8TcJb+Z QRKcAuoS5xc9AVvNCHTg91NrwBYwC4hL3HoynwnicAGJJXvOM0PYohIvH/+DekhRYl//dKBe DqB6TYn1u/QhWhUlpnQ/ZIfYKyhxcuYTlgmMYrOQTJ2F0DELSccsJB0LGFlWMXKUFhfk5KYb GW5iBMbcMQk2xx2Me3s9DzEKcDAq8fA+CP8RJsSaWFZcmXuIUYKDWUmEd92kn2FCvCmJlVWp RfnxRaU5qcWHGKU5WJTEeb99vBwmJJCeWJKanZpakFoEk2Xi4JRqYFz0MffuxZKGWX5hgoxr 3FgfZWkutj/QK8gUs+6Js+LxdS3lD9ZZ/9uf+Wdqs1oaS0d4Jnvwp/6jQhMMPv/TZPytyPbD 703qJrYIGW/Buts1DVO//C6bPXFXSe+aKbw1884XflAw8BPJ/j9Fuklq56SJVjMmF384aCf5 UVjpR8Lqu5FxXmqH1JRYijMSDbWYi4oTAVyu75i1AgAA
Archived-At: <>
Cc: "Heather Flanagan (RFC Series Editor)" <>, "" <>, IETF discussion list <>, IESG <>
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: IETF-Discussion <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 28 Mar 2016 20:27:25 -0000


	 I agree with most of what you say.  My impression has been that many times the use of some 
of the fuzzier words stems from the fact that the author(s) have occasionally forgotten that they are 
writing a specification, and not a bit of literary prose.

	Using variation in wording does not make a specification more readable, as it might a piece of
literature.  It makes it less readable, even if it might make it a less boring read.

	I am not certain that making a specification exciting enough to keep the average reader awake is 
a goal.

	One area where I do slightly disagree is in your characterization of the use of must verses MUST,
and similar words.  The English usage of the word "must" can vary slightly from the normative use of the 
word "MUST."

	As an example - in the statement "what goes up, must come down" - the word "must" is almost 
certainly meant to reflect a fact of nature, as opposed to an implementation choice that is needed if we
want to have interoperable implementations of a specification. 

	If you could throw a ball into the air, and it just hung there, I'm not sure we should refer to it as
"non-compliant."  :-)

	Also, a statement along the lines of "electronic equipment MUST have a power source of some 
sort" is not particularly useful for interoperability - even though it seems likely to be true.

	Nor do I think we would want an implementation that did not have this limitation to be deemed

	There are similar uses for "need" for instance.  And - while I cannot think of an example at the 
moment - I am not prepared to bet the farm that there are no such similar uses for "required."  Maybe
this might be the case for a legal requirement that has nothing to do with compatible implementation?

	In any case, it is occasionally necessary to use these terms in an explanatory sense, having not 
very much to do with specification of normative behavior.  The good news is that most of us can tell if
the meaning is explanatory, verses normative.


-----Original Message-----
From: ietf [] On Behalf Of Brian E Carpenter
Sent: Monday, March 28, 2016 3:58 PM
To: Scott O. Bradner; Barry Leiba
Cc: Heather Flanagan (RFC Series Editor);; IETF discussion list; IESG
Subject: Fuzzy words [was Uppercase question for RFC2119 words]

There are times when I think RFC2119 was a really bad idea, despite it having
become probably the most frequently cited RFC (inside and outside the IETF).
It seems to create as much confusion as it avoids.

There are four words whose RFC2119 meaning is different from the dictionary
meaning: should, recommended, may and optional. Having special typography
for them is useful, because it signals the RFC2119 meanings. But if a spec
uses, for example, a mixture of SHOULD and should, who knows what the authors
intended? To that extent, the proposed clarification is helpful.

The other words (must, shall, required, not) mean what they always mean.
The only argument for upper-casing them is aesthetic symmetry. If a spec
uses alternatives like mandatory, necessary or forbidden, they are just as

> these definitions are only meaningful if the words are capitalized
can be applied to should, recommended, may and optional if we want,
but strictly doesn't apply to must, shall, required, not, mandatory,
necessary, forbidden, need, or any other such words.

Where we can get into real trouble is if a spec contains should, recommended,
may and optional *plus* other non-categorical (fuzzy) words like ought,
encourage, suggest, can, might, allowed, permit (and I did not pull those
words out of the air, but out of draft-hansen-nonkeywords-non2119). What do
they mean? It can be very unclear. If a node receives a message containing
an element covered in the spec by "allowed" instead of "OPTIONAL", is the
receiver supposed to interoperate or to reject the message?

If we are issuing guidance, it should probably include a specific warning
to use any such fuzzy words with extreme care.

On 29/03/2016 03:13, Scott O. Bradner wrote:
> one minor tweak
>> On Mar 28, 2016, at 10:09 AM, Barry Leiba <> wrote:
>>> The wishy washy descriptive rather than proscriptive language in the abstract was because I,
>>> the IESG and the community were not of one mind to say that the use of such capitalized
>>> terms should be mandatory - quite a few people felt that the english language was at
>>> least good enough to convey  the writer’s intent without having to aggrandize specific words.
>>> Thus the abstract basically was saying: if you want to use capitalized words here is a standard
>>> way to say what they mean
>> Ah.  Then perhaps the clarification needs to go a little further and
>> make this clear:
>> - We're defining specific terms that specifications can use.
>> - These terms are always capitalized when these definitions are used.
> these definitions are only meaningful if the words are capitalized
>> - You don't have to use them.  If you do, they're capitalized and
>> their meanings are as specified here.
>> - There are similar-looking English words that are not capitalized,
>> and they have their normal English meanings; this document has nothing
>> to do with them.
>> ...and I'd like to add one more, because so many people think that
>> text isn't normative unless it has 2119 key words in all caps in it:
>> - Normative text doesn't require the use of these key words.  They're
>> used for clarity and consistency when you want that, but lots of
>> normative text doesn't need to use them, and doesn't use them.
>> Barry