Brad Templeton Internal Page

Article Names, Name header and NAME control message

Article Names, Name header and NAME control message

Article-Name =	(same syntax as newsgroup name) 

(This header is extensible using standard MIME header rules)

The "Name" header provides a Name for an article. The article can then be accessed or found by name or a pattern matching the name.

There are two forms of the named article. One is an ordinary article with a Name header, which also acts like a regular article in the serial stream, and is presented to users for reading in the same fashion as any other article. This is an "in-band" named article.

The other is the "Control Name" control message, which is not presented to users as part of the serial stream, but only stored by the name. Such articles will not have an article number and can only be fetched by name or message-id. This is an "out of band" named article.

In some cases the version fetched by name may need to differ from the in-band version in form or update frequency. In this case, the poster may simply post the in-band version as an ordinary article with no Name header, and an out-of-band version. For example, in-band readers may not wish multipart/alternative articles, but the out-of-band version may take this form to allow an HTML version to be available to users of web-enabled newsreaders.

A named article with the same name as an earlier named article replaces the earlier article.

If the name has just one component (ie. does not have a dot in it) the poster of a named article MUST be authorized to post the specific named article in the specific newsgroup. Ordinary posters would not normally have such authorization. If the contains a dot, it may be possible for any party to post the article, depending on the policies of the newsgroup.

In general, newsgroups will not share named articles, so they will usually not be crossposted. However some, such as policies may end up crossposted. Some files may also have private semantics about inheriting attributes from "parent" groups -- these semantics are up to the code that handles the file.

Named articles are stored with their headers, so they may have Content-Types, a Subject, and other such information. Depending on the purpose of the named article, some newsreaders will display the entire article with headers, and some will display only the body or components from it.

For files in natural language, if the group is multilingual, some named articles should be provided in the MIME "multipart/alternative" format with different versions in different natural languages, taged as per RFC 1766.

Named articles meant for text display also MAY come as MIME multipart/alternative, so that an article can contain, for example, and HTML and a plain-text version.

Systems SHOULD keep named articles as long as they reasonably can, up to their expiry date. In-band named articles MAY expire from the numbered serial stream but still be available by name. While named articles MAY be kept forever, it is recommended that they be considered invalid and removed after one year.

When a replacement for an existing named article arrives, the replacement SHOULD NOT be done unless the poster would normally be authorized to "Replace" the original article, using the standard authorization checks for cancel/supersedes/replaces, or of course if the poster has other authorization to post the given named article. If the previous article has been deleted or expired, it may of course not be possible to calculate this authorization.

Out-of-band named articles SHOULD be assigned the next available article number just like ordinary articles, and this number MUST appear in any overview entry for the article, but the article need not be fetchable by that number.

The Overview

News systems SHOULD place entries for both in-band and out-of-band articles in a news overview. However, out of band articles MUST NOT be presented to newsreaders that have not requested them, since they will not actually present by number. If they are requested, the article number field SHOULD be a virtual article number indicting the number they would have been assigned had they been in-band articles.

The name header SHOULD be present among the overview headers.

Systems MAY select to not place out of band articles in the overview at all, as they will tend to not be intended for browsing, or those that are intended for browsing may be browsed through menu named articles such as help.

The Control Message

An out of band named article comes as a control message, assuring the article will not be presented to readers with older software. There are two forms of the control message:

Control Name Set

Create or replace the named article with the control message. Note that replacement can also be done with a Replaces header. Deletion can be done with a cancel message.

Control Name Add

Append the body of the article to the named article in question. Do not append if the named article does not exist. Recommended only for non MIME-mulitipart articles. The user need only have a lesser "append" permission for the named article in question.

Useful Predefined Names and classes

The following names are predefined for certain purposes. Newsreaders MAY provide means for users to fetch and use such articles if they exist for a newsgroup. More names may be defined as needed, and registered with ??? These names exist both as reserved names (no dot) and as prefaces for classes of related named articles.

faq

A file with answers to frequently asked questions about the newsgroup.

intro

An official introduction to the group. Usually presented on request to new readers or posters.

charter

A definition of the group and its rules, in natural language.

help

A general help screen for the newsgroup, often providing links to various other articles, including those above.

Newsreader only predefined names

These articles are unlikely to appear in the in-band serial stream but are for presentation to users when they perform certain actions. Articles above may also be used in that context. They do not define classes.

firstpost

A message to be shown to users the first time they attempt to post to the newsgroup

everypost

A message to be shown to users every time they attempt to post to the group (except the first if "firstpost" is present.)

nextpost

A message to be shown to a user the next time they post to the group. Ie. if the nextpost article has been updated since the last time the user posted to the group, the text of this article SHOULD be displayed.

Machine-only predefined names

The following named articles are meant to be fetched by programs and not read by readers, though tools MAY provide access to them. Normally they will only appear out of band. They do not define classes.

topics

The topic list and rules for the newsgroup (See Topics header)

desc

The Subject: line of this article is the group's one-line description. The body is a more detailed description for use in group selection tools. The Keywords header is a list of keywords to be used in group search or group selection tools.

policy-rules

A formal expression of newsgroup posting policies, to be used by post-authoring tools to help them not generate postings that may be rejected. To be expressed in a policy language to be defined elsewhere. Note that enforcement is likely to be by other tools, this file simply helps the user not generate bad articles for the particular group. Policies may include things such as whether crossposts are allowed, and to what groups, whether binaries are permitted and up to what size. Whether HTML or other mime types are permitted (or required) and so on.

Policy-rules follow a parent-inheritance principle. If the policy-rules file is not present for a group, an attempt SHOULD be made to fetch it for "parent" groups in the hierarchy, until a top-level hierarchy is found.

Classes

In some newsgroups, it may be that several different parties, in opposition to one another, may wish to maintain their own versions of some of these files, while none wins the trust of the newsgroup. In such cases, two options are available:

  1. The newsreader MAY scan the overview of named articles in the newsgroup for names matching a particular pattern. In particular, the above reserved names designated classes MAY be used as prefixes to define classes of names. The newsreader MAY then offer the user a menu of choices from the articles mattching a particular pattern (class).
  2. a party who does have the trust of the newsgroup should post a simple named article containing a menu of the competing versions and any other introductory text. It is likely this process would be automated by some widely trusted parties for groups that have no party trusted to issue the primary named articles. How this is done is beyond the scope of this message.

Named Articles not for people

Some named articles will be for use by programs, such as newsreaders and news transports, and not be for people to read. Such articles SHOULD have a Mime Content-type that indicates this, such as a major type that is not "text" but is instead "application" or similar.

Links

Natural language named articles, meant for presentation to the user, may contain "links" even if they are presented in the ordinary plain text MIME type. (Naturally they can contain links if in HTML.)

When in text types that do not have their own link support, links may be presented in the following simple form:

	'<' URL  text '>' 

Where the URL is in the normal WWW syntax of RFC???, but with no quotation or spaces allowed, and the text MUST not contain the greater-then character.

While all tools are encouraged to implement the full URL space for links, a newsreader only MUST implement URLs in the "news:" space which refer to other news articles on the same server, and in particular to other named articles.

NNTP Issues

It is expected the NNTP "Article" command would be extended to take names as well as numbers and message-ids.

In addition, the interface to the overview should provide some means to efficiently fetch the overview entries only of named articles, or only of named articles matching a particular class pattern. In addition the interface needs to allow the newsreader to specify whether invisible articles should appear in returned overviews.

Option: Use HTML syntax for links, but that's the only thing from HTML used. Advantage -- well understood, libraries available. Disadvantage: complex.

Viewing Out of Band articles

A newsreader can easily present out of band articles to a user who desires to see them when they arrive, in a variety of ways. The simplest is to fetch the overview for a range including named articles, and present any that are unread (based on their virtual article number) using a message-id fetch.

Issues

This is an entirely new feature for USENET. However, old software which fails to implement it will still function fine. The utility of the feature is quite high.

This facility requires new functionality in any protocol for the fetching of news articles (such as NNTP) to allow the fetching of named articles.

A syntax for "policy" files used by news posting programs to assist them in checking conformance of authored articles is required.

Simpler Design

This feature can be implemented without the Name header, and simply adding the article name to the control message itself, and having that control header stored in the overview of the named articles.

In this case, to have an in-band named article, one would post it twice, once in the ordinary article form and once as a control message.

This is obviously less efficient, but it avoids adding a new header. However, the number of named articles is very small compared to the total volume of articles, and in addition, it is expected that even for the articles it is desired to place in-band