Re: LC-67 leftover -- MUST use MUST

On Tue, 1 Jul 2003, Jeremy Carroll wrote:

> I note that I find Connolly's
> http://www.w3.org/2001/01/mp23
> "must is for agents"
> compelling.

The above URL says:

	I try to use the word MUST to constrain agents in processes,
	not to just make declarative statements; i.e. I think it's a
	misuse of RFC2119 to say things like "2 + 2 MUST be 4" or
	"every attribute value in an XML document MUST be quoted."
	Better to just say "2 + 2 is 4"  and "every attribute value in
	an XML document is quoted." MUST should be reserved for cases
	like "you MUST be 4 feet tall to ride the rollercoaster." i.e.
	every MUST has an implicit "or else."

It would be nice if we could somehow distinguish statements that are
(or should be) "declarative" in nature from statements that (should)
constrain agents behavior. To me, the distinction is very unclear.
Moreover, the above examples seem to contradict the proposed "or else"
criteria; I can easily render them with an "or else" part:

	2 + 2 MUST be 4 or else the summator module violates
	rule X.Y of RFC 1234 and MUST NOT be auto-loaded.

	Every attribute value in an XML document MUST be quoted
	or else the document is invalid. See section X.Y for
	requirements on handling invalid XML documents.

And, vice versa, the rollercoaster example can be rephrased as

	Rollercoaster riders are 4 feet tall


Overall, it seems to me that the whole issue of "correct" RFC 2119
keyword usage is moot. There is no a single correct way and it is not
important to have one. Related important matters are:
	- spec MUST define what Compliance Requirement (CR) is
	  (i.e., how to isolate CRs from the rest of the spec)
	- spec MUST define Compliance in terms of CRs
	  (i.e., given a spec subject, how to determine compliance)
	- spec MUST define Scope
	  (i.e., what spec subjects are)

Personally, I use a mixture of definitions (X is Y) and behavioral
requirements (X MUST Y) in specs, but I am not sure I can define
exactly when I use one versus the other. I simply use whatever seems
natural to me in a given context. This subjectivity is not a problem,
IMO, as long as CRs, Compliance, and Scope are defined by the spec.

Alex.

-- 
                            | HTTP performance - Web Polygraph benchmark
www.measurement-factory.com | HTTP compliance+ - Co-Advisor test suite
                            | all of the above - PolyBox appliance

Received on Tuesday, 1 July 2003 11:09:51 UTC