Re: [apps-discuss] Review of: draft-yevstifeyev-abnf-separated-lists-02

Julian Reschke <julian.reschke@gmx.de> Mon, 13 December 2010 09:54 UTC

Return-Path: <julian.reschke@gmx.de>
X-Original-To: apps-discuss@core3.amsl.com
Delivered-To: apps-discuss@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id A3CE33A6D7A for <apps-discuss@core3.amsl.com>; Mon, 13 Dec 2010 01:54:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.551
X-Spam-Level:
X-Spam-Status: No, score=-104.551 tagged_above=-999 required=5 tests=[AWL=-1.952, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id skpByBEp3+f9 for <apps-discuss@core3.amsl.com>; Mon, 13 Dec 2010 01:54:34 -0800 (PST)
Received: from mail.gmx.net (mailout-de.gmx.net [213.165.64.22]) by core3.amsl.com (Postfix) with SMTP id 32A933A6CD8 for <apps-discuss@ietf.org>; Mon, 13 Dec 2010 01:54:33 -0800 (PST)
Received: (qmail invoked by alias); 13 Dec 2010 09:56:09 -0000
Received: from p508F9B21.dip.t-dialin.net (EHLO [192.168.178.33]) [80.143.155.33] by mail.gmx.net (mp022) with SMTP; 13 Dec 2010 10:56:09 +0100
X-Authenticated: #1915285
X-Provags-ID: V01U2FsdGVkX18edqUArBceCu6thYf/nrGI+DqXYgcBywY5HUiiim kFzAq5J1V+kDj7
Message-ID: <4D05EDB8.6090901@gmx.de>
Date: Mon, 13 Dec 2010 10:56:08 +0100
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101207 Lightning/1.0b2 Thunderbird/3.1.7
MIME-Version: 1.0
To: dcrocker@bbiw.net
References: <4D028FE0.20906@bbiw.net> <4D03A25E.9060709@dcrocker.net>
In-Reply-To: <4D03A25E.9060709@dcrocker.net>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Y-GMX-Trusted: 0
Cc: Mykyta Yevstifeyev <evnikita2@gmail.com>, "apps-discuss@ietf.org" <apps-discuss@ietf.org>
Subject: Re: [apps-discuss] Review of: draft-yevstifeyev-abnf-separated-lists-02
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 13 Dec 2010 09:54:35 -0000

On 11.12.2010 17:10, Dave CROCKER wrote:
> ...
> At this point I am wondering whether it would not be cleaner to have the
> notation be:
>
> <n>*<m>[^(<a>)]element
>
> In other words, augment the existing repetition construct with a clean
> separator construct. The up-arrow only specifies a separator, it does
> not also specify repetition.
>
> Hence:
>
> 1*10^":"tag-val
>
> would be 1 to 10 tag-vals separated by colons, and
>
> *^" "words
>
> would be zero or more words separated by a space.
> ...

Looks better to me.

I believe it would be useful to have a look at existing specs that use 
list productions, and see how they could use this format.

That might discover missing pieces, or just things that are done 
differently across specs, which may make it harder to find a common syntax.

For instance, in HTTP we have:

"Wherever this construct is used, null elements are allowed, but do not 
contribute to the count of elements present. That is, "(element), , 
(element) " is permitted, but counts as only two elements. Therefore, 
where at least one element is required, at least one non-null element 
MUST be present. Default values are 0 and infinity so that "#element" 
allows any number, including zero; "1#element" requires at least one; 
and "1#2element" allows one or two." -- 
<http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.2.1>

I don't think the proposal addresses this use case, so it appears it 
would be unusable for expressing the HTTP ABNF.

Best regards, Julian