- From: Jeffrey Mogul <mogul@pa.dec.com>
- Date: Thu, 06 Aug 98 10:42:28 MDT
- To: http-wg@hplb.hpl.hp.com
Koen Holtman writes:
Generic editorial warning: I seem to remember (though I don't know
where I learnt it) that notes in an RFC are always non-normative by
convention, so there should be no MMS terminology in them. Jeff's
corrections seem to take the opposite view, whereas Scott makes
judgment calls on a note by note basis. I don't have a direct
connection to any RFC repository now so I can't check whether there
are generic conventions with respect to notes, but somebody should
check this.
It has indeed been our policy to avoid normative statements in
"Notes". I basically followed this policy, although there are
a few places where it seemed like a secondary priority. Also,
there are place where it's not clear whether a paragraph is
really a "Note" or not. In almost every case, I did point out
that the Note in question contained apparently normative
language. I didn't want to delete requirements simply because
they appeared in Notes, but I also didn't want to spend the
time to rewrite large chunks of text.
MMS_AUDIT_ITEM_008:
The paragraph starts with the word "Note", but it's not
indented like the other "Notes". The content is clearly
normative, but it might just be restating other normative
language.
MMS_AUDIT_ITEM_010:
An actual "Note"; I changed a "should" (ambiguous) to
an "ought" (non-normative).
issue MMS_AUDIT_ITEM_013
I pointed out that this is a case where normative
language appears in a Note, and it's not clear whether
it was meant to be normative or not. Someone with
an interest should comment on the substance, not just
the form.
issue MMS_AUDIT_ITEM_018:
Definitely in a Note, but also possibly an
interoperability requirement. Again, review by
a qualified person would be helpful.
issue MMS_AUDIT_ITEM_024:
A Note that restates a normative requirement.
issue MMS_AUDIT_ITEM_062:
I removed a "should not" from a Note.
issue MMS_AUDIT_ITEM_065:
issue MMS_AUDIT_ITEM_066:
Notes that contain what appear to be normative
requirements (aids to interoperability)
issue MMS_AUDIT_ITEM_075:
issue MMS_AUDIT_ITEM_104:
I removed two "mays" from each of these Notes.
In other words, I'm not sure why Koen thinks that I "took an
opposite view" rather than making "judgement calls on a note
by note basis." Nevertheless, if we really want to be consistent
on this formality, then someone should spend some effort
splitting some of these Notes into normative and true-Note parts.
MMS 025: I am not sure if Jeff is right in his assumption as to
what the term "common form" is supposed to mean. Maybe "common
form" means `not extended over multiple lines' here.
As I wrote, we don't have a definition for "common form" in general, so
we can argue until the end of the millenium about what this paragraph
actually means. The right solution is to either define a general
"common form", or make it clear which specific "common forms" are
intended. I tried to do the latter.
MMS 117: The musts in the two items define conditions to be met for
a MAY to apply, so they should be lowercase (or preferably
rephrased), not uppercase.
I think your logic is faulty. An analogy: in this sentence,
You MAY pilot an airliner, but in order to do so, you
MUST have a pilot's license.
it is pretty clear that the phrase "you MUST have a pilot's
license" does not apply to everyone; it only applies to pilots,
but then it is an "absolute requirement of the specification"
(to quote from RFC2119). I think you are arguing that one should
instead say
You MAY pilot an airliner, but in order to do so, you
ought to have a pilot's license.
which has a very different meaning (and one that would convince
me to travel by train).
MMS 125: in the definition of "invalidate an entity", the two
shoulds are defining a term, they are are not keywords specifying a
requirement, so they should be rephrased, e.g. from `should' to
`will'.
I believe that this language basically defines a "subroutine"
rather than simply a "term". It's giving a specific meaning to a
verb-phrase when that phrase is used in this specification.
Using a word like "will" sidesteps the issue of whether this
is a conditional or unconditional requirement. Which points
out that since I didn't look at the following text as carefully
as you have, where it says
Some HTTP methods MUST cause a cache to invalidate an entity.
it seems (by my argument re: MMS 117) that these SHOULDS really
need to be MUSTs (or that the latter MUST has to be a SHOULD).
Otherwise, we're in the position of saying that doing something
is an absolute requirement of the specification, but doing it
according to our definition is only a conditional requirement.
I.e., the implementor has to do something, but is allowed (for
good cause) to ignore our specification of what that something is.
So this is probably a bug in the language, and needs to be resolved.
-Jeff
Received on Thursday, 6 August 1998 10:44:06 UTC