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