Subject: [NNTP] Terminology valid/invalid in RFC 3977

From: Julien ÉLIE <[email-masked]>
Date: Tue, 15 Feb 2011 20:44:45 +0100

Following a discussion with Alfred Hönes, who reported:

> terminological overloading,
>     leading to ambiguity and under-specification
>
> Within the RFC text, the terms "valid", and in particular, "invalid",
> are used with three very distinct semantics.
> These terms could mean:
>
> a)
> conformance/non-conformance with the prescribed syntax (ABNF) for
> a message (command/reply), or one of its components, e.g., talking
> about a "valid response code" (Section 5.1.1 et al.)

I believe this one is pretty clear and without any ambiguity.

Let's deal with the other uses below.

> b)
> the special value "invalid" introduced in Section 6.1, on page 36,
> for the two NNTP session state variables specified:
>
>   The following commands are used to set the "currently selected
>   newsgroup" and the "current article number", which are used by
>   various commands.  At the start of an NNTP session, both of these
>   values are set to the special value "invalid".
>                                       ^^^^^^^^^

I think it is OK.

> c)
> the semantical validity of a newsgroup name or an article number
> (i.e., the 'existence' of a named group or article on the server);
> e.g. (second paragraph of Section 6.1.1.2, on page 36):
>
>   The required argument is the name of the newsgroup to be selected
>   (e.g., "news.software.nntp").  A list of valid newsgroups may be
>                                            ^^^^^
>   obtained by using the LIST ACTIVE command (see Section 7.6.3).
[...]
> The resulting ambiguity can perhaps most strikingly be seen from the
> second paragraph on page 38 (within the GROUP command Description,
> Section 6.1.1.2):
>
>           vvvvv
> |  When a valid group is selected by means of this command, the
>   currently selected newsgroup MUST be set to that group, and the
>   current article number MUST be set to the first article in the group
>   (this applies even if the group is already the currently selected
>   newsgroup).  If an empty newsgroup is selected, the current article
> |  number is made invalid.  If an invalid group is specified, the
>           !!!!!!!!!!!!!!!         ^^^^^^^
>   currently selected newsgroup and current article number MUST NOT be
>   changed.

Maybe it should be explained.  I do not know what is the best
thing to do here.  It is true that "valid" here means it is selectable
by a GROUP/LISTGROUP command and will lead to a valid currently
selected newsgroup.

(A suggestion was to use "undefined" instead of "invalid". Or to use
typographical enhancement to spell it:  `invalid' with surrounding
single back-quotes.)

> This also includes the situation where (at least) one of the above
> two state variables becomes 'lame' -- that is perhaps described best,
> for the latter variable, by the text on mid-page 47,
>               vvvvvvvvvvvvvvvv                           vvvvvvv
>  "Note that a previously valid article number MAY become invalid if the
>   article has been removed.  A previously invalid article number MAY
>   vvvvvvvvvvvv               ^^^^^^^^^^^^^^^^^^^^
>   become valid if the article has been reinstated, but this article
>   number MUST be no less than the reported low water mark for that
>   group."

You're right.  That is a very unfortunate use of "valid"/"invalid".
Taken into account in erratum 2037:

    http://www.rfc-editor.org/errata_search.php?eid=2037

New wording used:

   Note that a previously valid article number MAY cease to refer to any
   article if that article has been removed, in which case use of that
   article number (explicitly or implicitly) will cause a 423 response.  A
   previously removed article may be reinstated (but its number MUST be no
   less than the reported low water mark for that group), in which case
   that number will once again refer to that article.

To the working group:  do you think something should be changed
regarding the problem c) mentioned in this mail?

-- 
Julien ÉLIE

« La science consiste à passer d'un étonnement à l'autre. »
  (Aristote)