- From: Charles Lindsey <chl@clerew.man.ac.uk>
- Date: Tue, 05 Dec 2006 16:23:10 -0000
- To: uri@w3.org
Discussion on this series of drafts so far has concentrated mainly on
matters related to snews, registration of schemes, and so on. There has
not been much said on the actual facilities to be accessed by the two
schemes, or with the way they are described (and that has been largely
because I have just not found the time to do it). Time to rectify that now.
So firstly, to deal with the facilities.
The chief change since your draft-00 is that you now admit wildmats in the
news scheme (which is good, though not quite good enough) and the chief
change you have *not* made is the introduction of ranges in the nntp
scheme; what you say is
[RFC1738] has no <range> for the "nntp" 'nntp' URI scheme, and this memo
isn't the place to invent new tricks for a rarely used scheme.
Let me make a general overall statement first:
Both these schemes are intended to provide access to resources available
from NNTP servers, usually using port 119. ISTM that when inventing a URI
to interface to some particular protocol, you should aim to provide the
maximum access to that protocol that can reasonably be defined. So if
there is some feature of the protocol that cannot be accessed by that URI,
then it is reasonable to ask "Why Not?"
So first consider using the news URI to gain access to particular
newsgroups.
news:/comp.lang.c
should tell you what articles are available in that group, and hopefully
provide an opportunity to select the ones you want to read
news:/comp.lang.*
should tell you what groups are available within the comp.lang
sub-hierarchy, and what articles are availbe in each
news:/*
(which was the only 'wildcard' facility in RFC 1738) will tell you all
the groups known to the server, but that list will be so huge as to be
almost useless (when 1738 was written, it might have been manageable)
Current implementations support a variety of wildcard notations that have
grown up, some more comprehensive than others, so we need to bring some
order to this chaos. Hence the suggestion to use 'wildmats' as currently
provided in NNTP implementations, but as recently reinvented with a more
general syntax in RFC 3977. I think we may assume that NNTP
implementations will come into line with RFC 3977 over the coming years,
so we should base our scheme on that.
Now it is clear that in order to implement this particular format of the
news scheme, all you have to do is to issue an NNTP LIST ACTIVE command
(or possibly LIST NEWSGROUPS) giving it exactly what appears after the '/'
in the news URI; and back will come a list of groups and the ranges of
article numbers available within each of them, and from that (and possibly
some use of the OVER command on each group to give you more detail) your
browser/newsreader should be able to provide a comprehensive view of what
is available to be read.
Now the syntax of the LIST ACTIVE command is
LIST ACTIVE [wildmat]
so that seems the obvious thing to put into the URI. That would enable
things like
news:/comp.*.java*
which would give you all the java-related groups, not just in
comp.lang.*, but also comp.compilers.tools.javacc which you might not
have thought of looking for.
news:/*.religion.bahai,!talk.*
will find all the bahai groups, except talk.religion.bahai (supposing you
find the talk.* hierarchy too noisy for your taste).
news:/comp.lang.*,sci.lang.*
look for lang groups in those two hierarchies
So my question to you is Why have you disallowed the last two cases by
permitting only <wildmat-pattern>s instead of full <wildmat>s? What have
you gained by this, given that LIST ACTIVE understands both (or will as
soon as NNTP implementations catch up with RFC 3977)?
Now for the nntp scheme and <range>s. Note that the nntp scheme is
primarily for accessing articles by their article numbers.
Again, you have a format for a whole group:
nntp://server.example/comp/lang.c
which was not actually allowed in RFC 1738, but might be useful even
though it means the same as
news://server.example/comp/lang.c
No wildmats here (and I have no quarrel with that). What NNTP command does
this correspond to? You could again use LIST ACTIVE, but a sensible
alternative here is LISTGROUP, which just returns a list of article
numbers that are available. The syntax is
LISTGROUP [group [range]]
so why not make full use of it? That would allow
nntp://server.example/comp/lang.c for the whole group
nntp://server.example/comp/lang.c/125-237 for than range of article numbers
nntp://server.example/comp/lang.c/125- for all articles 125 and above
nntp://server.example/comp/lang.c/-237 for all articles below 238
Easily implemented, so why not? Well, you may ask what use is it?
certainly 125-237 is not particularly relevant, but the 3rd one could be
quite useful.
Supposing you know that you have already read all the articles in the
group up to 124. Now you want to see what has come in since then, so you
ask for "125-". It gives you the list, and then you can ask for each one
in turn using the format
nntp://server.example/comp/lang.c/126
A crude form of newsreader, maybe, but that is the sort of thing that the
nntp scheme seems to be aimed at. So why not allow it, since its
implementation is trivially easy (the NNTP server does all the work for
you)?
Note that the <range> parameter here is a new feature of RFC 3977. Before
that you could only ask for the whole group with that command. But we must
assume that implementations will soon be supporting it, so why not make it
available?
As an alternative to the LISTGROUP command, if you want to get more
information about the articles that are there, the OVER command can also
be used with a <range> parameter (so you get a list of articles numbers,
together with enough information to display all the Subjects, sizes and
threading of them). And also the HDR command, if you just want to see all
the Subjects, or whatever. Essentially, which command you use depends on
what sort of newsreader you are intending to use to display the resoures
returned.
All right, that is enough for today. I have dealt with the technical
features you have not provided, so I will leave it till another day to
look at how you have defined them.
--
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131
Web: http://www.cs.man.ac.uk/~chl
Email: chl@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
Received on Tuesday, 5 December 2006 16:23:42 UTC