[NNTP] Re: News and nntp URI schemes

Charles Lindsey chl at clerew.man.ac.uk
Tue Apr 12 10:22:56 PDT 2005


On Thu, 10 Mar 2005 10:55:52 -0000, Charles Lindsey <chl at clerew.man.ac.uk>  
wrote:

> On Thu, 17 Feb 2005 16:59:48 -0000, Charles Lindsey  
> <chl at clerew.man.ac.uk> wrote:

>> [2nd alternative]
>>
>>         newsURI     = "news:" ( article / group )
>>         article     = [ news-server "/" ] message-id
>>         group       = [ news-server "/" ] wildmat
>>

> There has been much discussion on the NNTP WG list about this in recent  
> days, mainly between myself and Russ Allbery. He has suggested various  
> small textual changes, which I have adopted, but more importantly he  
> likes going for the 2nd alternative (i.e. wildmats). It seems that Lynx,  
> at least, already supports something pretty close to that, and it should  
> also make Al Gilman happy. It would be useful, however, to hear of other  
> systems that will currently handle all, or most, of the examples listed  
> for the 2nd alternative.
>
> In the meantime, I intend to rewrite the text incorporating those  
> wildmats, and I shall post it here for your consideration.
>
So I have now done this, and the text is attached.

This is being sent to both the uri at w3.org and the  
ietf-nntp at lists.eyrie.org lists.
Ideally, it should be discussed on both lists (though it is uri at w3.org  
that is ultimately responsible). However, keeping discussion alive on two  
lists is known to be a hazardous enterprise, so I shall report interesting  
comments on each list to the other.

-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131 Fax: +44 161 436 6133   Web: http://www.cs.man.ac.uk/~chl
Email: chl at clerew.man.ac.uk      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5
-------------- next part --------------
2.  The News URI Scheme

   The news URI scheme is used to refer to either news groups
   or individual Netnews articles, as defined in [RFC 1036].

   The news URI takes the form:

      newsURI     = "news:" ( article / collection )
      article     = [ news-server "/" ] message-id
      collection  = [ news-server "/" ] wildmat /
                    [ news-server [ "/" ] ]
      news-server = "//" authority
      message-id  = printable-ascii "@" printable-ascii
      newsgroup-name  = %x21-29 / %x2B / %x2D-3E / %x40-5A / %x5E-7E
                          ; excludes "*" "," "?" "[" "\" "]"
      printable-ascii = 1*( %d33-61 / %d63-126 ) ; excludes ">"

   <authority> is defined in [RFC 3986], and provides for a <host>, a
   <port> (defaulting to 119 in this scheme) and possibly a <userinfo>.
   <wildmat> is defined in [NNTP], and provides for a single
   <newsgroup-name>, or for a collection of <newsgroup-name>s separated
   by ','s and using '*' and '?' for wild cards and `!` for negation.

   Within a <printable-ascii> or a <wildmat>, the characters '%', '@',
   '/', '?' and '#' are reserved and MUST be %-encoded if they occur. All
   other characters MAY be used freely to represent themselves. It is not
   precluded that future extensions for internationalized <newsgroup-name>s
   may permit octets outside of the given ranges, in which case they too MUST
   be %-encoded (except perhaps when used in an IRI [RFC 3987]).

[Issue: since '?' is used in a <wildmat>, maybe it shouldn't be
reserved. I only put it there to allow for possible future extensions.]

   If no <news-server> is specified, the resources are to be retrieved
   from whatever server has been configured for local use.

2.1  The newsURI contains an <article>

   A <message-id> corresponds to the <msg-id> of [RFC 2822] and to the
   Message-ID of section 2.1.5 of [RFC 1036], but without the enclosing
   "<" and ">". It is intended to be the message identifier of an actual
   Netnews article and hence will in practice conform to the syntax
   defined in [RFC 1036] or in any subsequent standard for Netnews
   articles.

   Observe the delimiter "@" which enables an <article> to be
   distinguished from a <newsgroup-name>.

   The resource retrieved by this URI is the Netnews article with the
   given <message-id>.  Message identifiers are required to be globally
   unique, so the same article should be obtained whatever server is
   accessed for that purpose (provided the server in question has that
   article available).

2.2  The newsURI contains a <collection>

   Any <newsgroup-name> contained in or implied by any <wildmat> is
   intended to be that of an existing newsgroup, such as
   "comp.lang.perl.modules", and hence will in practice conform to the
   syntax defined in [RFC 1036] or in any subsequent standard for
   Netnews articles.

   If the <wildmat> in the <collection> consists of just a single
   <newsgroup-name>, the resource retrieved by this URI is some means to
   gain access to the articles in the given <newsgroup-name> that are
   available from the given <authority> (usually by invoking a suitable
   news reading agent initialized to access that group).

   If the <wildmat> in the <collection> identifies a collection of
   newsgroups, the resource retrieved by this URI is some means to gain
   access to all of those newsgroups which are available from the given
   <authority> (usually by invoking a suitable news reading agent).

   If the <collection> contains no <wildmat> at all, the effect is the
   same as that of the <wildmat> "*", meaning "all available
   newsgroups".

[So we can now have the following forms:
      news:*.test
      news:*
      news://news.example.com/*.test
      news://news.example.com/*
      news://news.example.com/
      news://news.example.com
where the 2nd and the last 3 all refer to "all available news groups".] 

3.  The nntp URI scheme

   The nntp URI scheme is used to retrieve individual articles
   via the NNTP protocol [draft-ietf-nntpext-base-*.txt]. It is usually
   (but not necessarily) used in connection with Netnews articles as
   defined in [RFC 1036].

   The nntp URI takes the form:

      nntpURI     = "nntp"  ":" news-server "/" newsgroup-name "/" range
      news-server =  "//" authority
      range       = article-number ["-" [article-number]]
      article-number = 1*DIGIT

   Observe, in contradistinction to the news scheme, that the
   <news-server> is not optional here, because the mapping from
   <article-numbers> to actual articles is established independently by
   each server.

3.1  The range is a single <article-number>

   The resource retrieved by this URI is the Netnews article numbered
   by the given <article-number> in the given <newsgroup-name> from the
   given <authority>.

3.2  The range encompasses more than a single <article-number>

   The resource retrieved by this URI is some means to gain access to
   the articles numbered within the given <range> of <article-
   number>s in the given <newsgroup-name> from the given <authority>
   (usually by invoking a suitable news reading agent initialized to
   access that range). A <range> of the form "nnnn-" provides access to
   all articles numbered "nnnn" and above.



More information about the ietf-nntp mailing list