Brian, I think your note goes to how important it is to write clearly and to get a lot of eyes on it before we publish it. Well-written documents, with or without 2119 key words, and with or without lower-case look-alikes, can still be clear. Fuzzily written documents will be fuzzy. In particular: > 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? Well, this is where 2119 advises that we *use* the key words when interoperability is at stake. It's fine to be fuzzy when it doesn't matter, though even then, I'd argue for more explanation: Every frobotz MUST contain a valid bleeg. The glorp field in the frobotz is an unsigned integer that is normally between 0 and 666, inclusive. Values greater than 666 are allowed, but recipients using older software might not be able to handle such values. ... When processing a frobotz that does not meet the requirements in section 3.1.4, it is permissible to reject the frobotz outright, or to attempt to process the parts of it that make sense; the choice is an implementation decision. However, any frobotz that does not contain a valid bleeg MUST be rejected. That sort of thing. Barry On Mon, Mar 28, 2016 at 3:58 PM, Brian E Carpenter <brian.e.carpenter@xxxxxxxxx> wrote: > 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 > powerful. > > So >> 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. > > Brian > On 29/03/2016 03:13, Scott O. Bradner wrote: >> one minor tweak >> >>> On Mar 28, 2016, at 10:09 AM, Barry Leiba <barryleiba@xxxxxxxxxxxx> 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 >> >> >