http://martinfowler.com/bliki/StandardsSpeak.html

多くの標準文書を読むと、大量のコーヒーが必要というのもあるが、いくつかの言葉の意味に気を付ける必要がある。

標準では、’'’shall’’‘(すべきである)を絶対的に守らなければならない事柄を示すときに使う(また、’'’shall not’’‘(すべきでない)を絶対的に禁止する事項を示すときに使う)。 shallに違反すると、標準に従っていないことになる。 ‘'’required’'’や’'’must’'’は同義語である。

’'’should’’‘(するとよい)は少し弱い言葉である。 shouldは提言を示している。標準に従ってもらいたいが、違反しても標準に従っていないということにはならない。 ‘'’recommended’'’は同義語である。

’'’may’’‘(してもよい)は任意の機能である。その機能が存在していようがしてなかろうが、実装を使うことはできるはずだ。

上記の言葉については、オフィシャルなバージョンがRFC 2119に載っている。

’'’normative’’‘(規範)は標準の一部になっている。 non-normativeなセクションは背景情報や説明などである。提案実装技術は、標準のコンセプトを明確にするため、non-normativeセクションで提案されている。しかし、書き手はそれによって実装を強制しようとは思っていない。