[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Advance RFC 2234? (was Re: DISCUSS on UTF-8 to Standard)



> >Sounds nice, but the UTF-8 wants to go to full-STD, so
> >the 2234 would still be at a lower level

> Yes, but we've gotta start somewhere!  Not suggesting that this'll fix
> the UTF-8 doc problem, just that maybe this will help for the future.

I certainly would like to see the document advance. As to whether or not
a new version is needed, I'm somewhat ambivalnet -- there are a few
typos that need correction (see the RFC Editor errata page for specifics),
but nothing major.

The implementation report is another matter, however. If we're going to push
back about these reports demonstrating actual interop rather than reporting
implementations, then a list of parser implementations is insufficient.
Nor, IMO, is it necessary -- this is a specification language, and it is
entirely reasonable for it to advance without there being any
mechanical syntax checkers for it.
 
I believe a proper implementation report for ABNF needs to list the various
language features and then list multiple publications that have employed each
of these features.

I have now gone through this exercise, and the resulting report
appears below. You will note that I was able to find multiple uses
of every general feature of the language. The only specific feature I had
problems with was binary representation of terminal values. The only
RFC I could find that used this representation was RFC 3018, and its
usage was a bit peculiar. So I suppose if we wanted to remove something
binary representation would be it. But I really don't think this is necessary
or particularly useful.

Anyway, comments welcome. Additionally, I would like information about
the various validators people have written so I can add it to the report.

				Ned

ABNF implementation and interop report

Since it was published RFC 2234 has been referenced by at least 116
different RFCs:

  3502 3501 3470 3460 3459 3458 3455 3441 3435 3431
  3421 3420 3403 3391 3383 3368 3348 3340 3339 3325 
  3300 3297 3282 3266 3261 3259 3192 3191 3179 3164
  3112 3108 3092 3091 3085 3084 3082 3801 3066 3028
  3018 3015 3000 2985 2967 2958 2957 2938 2926 2919
  2915 2913 2912 2910 2900 2885 2852 2849 2848 2846
  2832 2829 2822 2821 2813 2812 2808 2806 2800 2738
  2705 2700 2673 2653 2648 2646 2645 2640 2626 2614
  2609 2608 2600 2585 2583 2569 2565 2557 2554 2550
  2533 2530 2525 2506 2500 2486 2476 2449 2445 2426
  2425 2400 2389 2384 2384 2373 2345 2342 2327 2326
  2304 2303 2300 2299 2245 2244 
  
Or to put it another way, around 9% of the RFCs published since
RFC 2234 have seen fit to reference it!

A list of the basic features provided by ABNF appears below. Associated
with each feature is a list of RFCs that use the feature. This list is not
meant to be exhaustive; it merely seeks to demonstrate that each
grammatical feature of ABNF has been used in multiple specifications.

Terminal values (%dD, %bB, %xH)

  2254 (%x) 2426 (%x) 2595 (%x) 2646 (%x) 2822 (%d)
  2957 (%d)  3018 (%b) 3179 (%x)

Alternatives (/)

  2426 2254 2595 2646 2821 2822 2957 3066 3179

Incremental alternatives (=/)

  2426 2846 2595 3179

Value range alternatives (%dD-D, %bB-B, %xH-H)

  2254 (%x) 2426 (%x) 2595 (%x) 2646 (%x) 2821 (%d)
  2822 (%d) 2957 (%d) 2846 (%x) 3179 (%x)

Sequence group (())

  2254 2426 2821 2822 2846 2957 3066 3179

Repetition (*element)

  2426 2646 2821 2822 2957 3066

Variable repetition (<a>*<b>element)

  2426 2595 2646 2821 2822 2846 2957 3066  3179

Specific repetition (<n>element)

  2254 2821 2822 

Optional ([element])

  2254 2426 2595 2646 2821 2822 2846