ietf-nntp new draft of the NNTP spec released
pmee at uk.tobit.com
pmee at uk.tobit.com
Thu Jul 15 07:19:37 PDT 1999
Hi all,
A couple of things concerning the wildmat format. Firstly, in the latest draft it is specified as:
wildmat = 1*("!" / "*" / "?" / wildmat-exact / wildmat-set /
"\" (%x22-7F / UTF-8-non-ascii))
wildmat-exact = %x22-29 / %x2B-3E / %x40-5A / %x5D-7F / UTF-8-
non-ascii ; exclude space ! * ? [ \
wildmat-non-hyphen = %x21-2C / %x2E-7F / UTF-8-non-ascii ;
exclude space -
wildmat-set = "[" ["^"] ["]" / "-"] *(wildmat-non-hyphen ["-"
Surely the wildmat-set should read:
wildmat-set = "[" ["^"] ["]" / "-"] *(wildmat-non-hyphen ["-" wildmat-non-hyphen]) ["-"]
In reference to Charles Lindsey re-posted e-mail (point 1 anyway)... the use of the ! and , characters in
wildmat (extract given below sig).
The draft is very ambiguous on how the ! character should be implemented. The obvious historical
implementation is to negate the entire line (!alt.*). The draft gives no guidelines on where or how fotern
the ! character can be implemented, so Charles' example of alt.!binaries.*!erot* is valid according to the
current notation.
The drafts have previously outlined the , character as a delimiter of groups and then wildmats so that a single
command can reference multiple sets. (Stating obvious:) Wildmat is a good and large leap from singular group*,
group* notation. The ! notation is a good way of limiting returned garbage and hence reducing excess traffic.
Is it not therefore good practice to extend the wildmat notation to include an extensive ! notation and
include the , character as a wildmat special command?
I would propose that the ! character be implemented so that the it has two purposes:
1) ! at the start of the wildmat negates the result of the wildmat. I.e., !alt.*binaries* indicates all groups
not beginning with alt.*binaries*
2) ! may be used within a wildmat as a command to add negation to the individual section of a wildmat (sections
delimited by the . character) or where no . character follows the ! character, to negate the rest of the
wildmat with the rest of the string match. Examples:
alt.* matches any group beginning with alt.
alt.binaries* matches all groups in alt.binaries
alt.*!binaries matches all groups not in alt.binaries
alt.*!binaries* matches all groups not in alt.binaries*
alt.*!*binaries* matches all groups in alt. that do not contain the word
binaries after the alt.
alt.*!*binaries*.* matches all groups in alt. whose second section does not
contain the word binaries. I.e., alt.example, alt.example.binaries but not
alt.wierdbinariesfortrouble.example
alt.*.*!*erot* matches any alt. group that does not contain the four chars
erot in the third part (note that this does not match alt. groups that
do not have a third part)
alt.*!*binaries*.*!*erot* matches any alt. group that has three parts
-and- does not contain the word binaries in the second part -and- does
not contain the four chars erot in the third part
When used in combination with the , character the wildmat would (I'd advise) indicate a list of separate
wildmats with the first having least precedence and the last having most precedence. Therefore
alt.*,alt.*!*binaries*,alt.weirdbinaries* would match alt.example and alt.weirdbinariestomatch but not
alt.otherbinariestomatch and not alt.useless.weirdbinariestomatch.
I realise my wording remains woefully short of defining what I have given as examples, but it remains an
improvement on the current draft! I would be grateful if this could be discussed openly on the list (that is
after all what it is for).
Best regards,
Peter Mee
--
Peter Mee
Technical Support
Tobit Software Ltd.
Redwither Tower
Redwither Business Park
Wrexham
LL13 9XT
Tel: 01978 666 920
Fax: 01978 666 921
E-mail: pmee at uk.tobit.com
Some comments on the three main changes:
1. '!' allowed in wildmats.
---------------------------
Yes, this is good (I have been asking for it long enough, for use in the
NEWNEWS command). However, the text describing it is hopelessly inadequate
and ambiguous. All it says is:
The fifth operation uses the
exclamation mark (!) preceding any valid expression built
using any of the operators discussed prior to this sentence.
Nothing even to say what the semantics are of '!'. Moreover, this wording
suggests, and the syntax in Section 13 confirms, that there may be
multiple occurrences of '!' in a wildmat.
So I can presumably say:
LIST NEWSGROUPS !alt.*
with the "obviously" intended effect, but what about
LIST NEWSGROUPS alt.!binaries.*
or worse
LIST NEWSGROUPS alt.!binaries.*!erotica*
That one can be parsed in two ways, so do or do I not get to see
alt.binaries.pictures.erotica.animals?
Now to the NEWNEWS command:
NEWNEWS !news.announce.conferences
presumably means every known newsgroup except the one mentioned, but
NEWNEWS news.announce.*,!news.announce.conferences
just gives me news.announce.important, news.announce.newgroups, and
news.announce.newusers (I know that, because I use it in my own feed). So
what about
NEWNEWS !news.announce.conferences,news.announce.*
Who can tell? Certainly not the draft as currently written.
I suspect that what we actually need is for '!' to be restricted to the
start of a wildmat, and for it to only remove matches already made in an
earlier entry in the case of NEWNEWS.
Or alternatively to have a ',' operator, allowing me to say
LIST NEWSGROUPS alt.*,!alt.binaries.*
But in the end I suspect that compatibility with existing INN practice is
what we really want, so it would be useful to document what that is. Is
Rich Salz listening?
Also, some more adventurous examples in section 5.1 might help.
[SNIP]
More information about the ietf-nntp
mailing list