Registry fixed (was: Re: Records Missing Required Field: jkp, nph, tvt)

Gordon P. Hemsley gphemsley at
Tue Aug 28 19:17:33 CEST 2012

On Tue, Aug 28, 2012 at 12:47 AM, Doug Ewell <doug at> wrote:
> Gordon P. Hemsley wrote:
>> Since these particular errors were simply missing fields that were
>> deemed required, rather than other, more serious syntactic issues
>> (like errant or misused symbols, or encoding issues), the version of
>> the Registry should hold.
>> In this instance, the errors were localized to individual records,
>> which I don't think should invalid the entire Registry version. I
>> think, in the future, only issues that affect the parsing of the
>> entire registry should invalidate a Registry version.
> I don't agree. Section 3.1.1 says:
> registry   = record *("%%" CRLF record)
> which means the three-percent-sign separator was invalid, and Section 3.1.2
> says:
> Each record MUST contain at least one of each of the following
> fields:
> ...
> o  'Added'
> which means the three language subtag records without Added fields were
> invalid.
> For my money, any error in the Registry that violates a syntactic (ABNF)
> rule or a constraint like those in 3.1.2 renders the whole file invalid. I
> would make an exception for "Each field is terminated by the newline
> sequence CRLF" since I don't think there's any realistic way to enforce CRLF
> vs. LF over HTTP.
> But having said all this, I appreciate the interest you're taking in the
> details.

I agree that violation of the ABNF would constitute a version of the
Registry eligible for invalidation, and the use of 3 percent signs, I
suppose, would be a violation of that. (The reason my parser didn't
notice is because it splits on two percent signs at the end of a line
[with the additional LF vs. CRLF violation you mention], so it didn't
care that there was another one before it. In fact, my parser would
probably accept, and ignore, any characters at the beginning of the
line, as long as the line ends in two percent signs.)

However, as far as I can tell, a violation of the field requirements
is not a violation of the ABNF. It is merely a violation of the prose
of the spec. So it would be acceptable to invalidate the individual
record on such a violation, but not the entire Registry.

Using this interpretation, the 2012-08-26 Registry was invalid and
could have been corrected without changing the date. Since the syntax
correction was instead given a new date version (2012-08-27), the
second update to fix the record violations was itself also a violation
of the spec.

If we feel this is important enough (and perhaps we should, to avoid
setting a precedent), we could fix all this simply by changing the
Registry version to 2012-08-28 without making any other changes. Then,
both versions of the 2012-08-27 Registry would be out of date, and we
can retroactively consider the percent-sign update as version
2012-08-27 and the Added update as 2012-08-28.


Gordon P. Hemsley
me at

More information about the Ietf-languages mailing list