Subject: [Jsonpath] How to apply RFC 2119

From: Glyn Normington <[email-masked]>
Date: Fri, 23 Jul 2021 16:32:06 +0100

Carsten wrote (in issue 103, here
<https://github.com/ietf-wg-jsonpath/draft-ietf-jsonpath-base/issues/103#issuecomment-885687039>
):

> Except that I don't know what's "SHOULD" about that, I agree with these
> partial ordering guidelines.
>
> If we want to introduce different compliance levels, that is fine, but it
> SHOULD :-) not be coupled to using the term SHOULD vs. MUST.
> "Full compliance requires..."
> vs. "For conditional compliance, at least..."
>
As I said in the issue, I'm happy to go along with Carsten's language, but
I'd like to discuss briefly why my interpretation of a couple of sections
of RFC 2119 is wrong, so we can learn from my mistakes.

3. **SHOULD**   This word, or the adjective "RECOMMENDED", mean that there
>    may exist valid reasons in particular circumstances to ignore a
>    particular item, but the full implications must be understood and
>    carefully weighed before choosing a different course.
>

Ignoring the above ordering requirements is valid although interoperability
will be reduced.

6. Guidance in the use of these Imperatives
>    Imperatives of the type defined in this memo must be used with care
>    and sparingly.  In particular, they MUST only be used where it is
>    actually required for interoperation or to limit behavior which has
>    potential for causing harm (e.g., limiting retransmisssions)
>

The above ordering requirements increase interoperation and reduce the
harmful combinatorial explosions of certain tests.

Regards,
Glyn