Re: [Sip] Proposal of Non-Sequential Group Notion in ABNF w/ a SIP case

Munjo Yu <munjo.yu@gmail.com> Tue, 14 April 2009 23:47 UTC

Return-Path: <munjo.yu@gmail.com>
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 93E7E3A6E62; Tue, 14 Apr 2009 16:47:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.135
X-Spam-Level:
X-Spam-Status: No, score=-2.135 tagged_above=-999 required=5 tests=[AWL=0.464, BAYES_00=-2.599]
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 6DAL9V9hfBWJ; Tue, 14 Apr 2009 16:47:45 -0700 (PDT)
Received: from mail-qy0-f134.google.com (mail-qy0-f134.google.com [209.85.221.134]) by core3.amsl.com (Postfix) with ESMTP id 74CB83A68E1; Tue, 14 Apr 2009 16:47:45 -0700 (PDT)
Received: by qyk40 with SMTP id 40so1609474qyk.29 for <multiple recipients>; Tue, 14 Apr 2009 16:48:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Et0TtATIlmxh9s2/bNPfx857RmKcAulsxqVO1DJkRx0=; b=OT9DkdbhsPdk3G0DSVzrxSbVl6oJgEZR6P7NObV3sdK6UeC7HQAoZZYf6NW6mhFw8G cXRLOgJK1Ss5fgw5waDSfsLbkuWgnG6EGh/xtP6EBn4+G/WeJOSztpDXXkmu6PfNIOqd fk255er8fMdCcoNhXmzAyWa1W/j3L6EMb0/X4=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=tCx0THwIFh0YR/255D1JTVflwNPbQ/+Wpuy95dA2NkaX0/JDvcAssrQzPFNzxMdnyE OrhKLCeTVbjJQnE2HKk2Hi04QhxMCAGRfYA8HfnYEOSi9hEIENEiwUze0BqIJBE9WbVB +3bQrdqWAIuMycfUhVSONuxVFHDrHaeXb7CnA=
MIME-Version: 1.0
Received: by 10.229.109.194 with SMTP id k2mr2325779qcp.6.1239752934137; Tue, 14 Apr 2009 16:48:54 -0700 (PDT)
In-Reply-To: <1239400601.3742.71.camel@victoria-pingtel-com.us.nortel.com>
References: <e4b033900904011817s1bcf676xc3f0efe175932029@mail.gmail.com> <1239400601.3742.71.camel@victoria-pingtel-com.us.nortel.com>
Date: Tue, 14 Apr 2009 19:48:54 -0400
Message-ID: <e4b033900904141648p4e185940ie6a674d1a27ca60d@mail.gmail.com>
Subject: Re: [Sip] Proposal of Non-Sequential Group Notion in ABNF w/ a SIP case
From: Munjo Yu <munjo.yu@gmail.com>
To: Dale Worley <dworley@nortel.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: sip@ietf.org, apps-discuss@ietf.org
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: Tue, 14 Apr 2009 23:47:46 -0000

Hi all, again.

We find two keywords from the responses.

- trade-off between features and simplicity
- ambiguities in Set

These two may well have been the main reasons why Set was dropped from
the draft 3
(http://tools.ietf.org/html/draft-ietf-drums-abnf-03) about 12 years ago.
Since then, Internet flourished and so did protocols.
Along the line, the pivot for trading off might have shifted towards
"features" from "simplicity" a little bit, we wonder.
And we still hope that overall gain from adding "Set" might be positive.

The biggest advantage of introducing Set again is:

- self-contained definitions in describing a message whose components
can come unordered.
- more readability
- far better for parser generation

And of course, we sacrifice its simplicity, a little bit.

The following is a writing of Set specifications.
We are looking forward to hearing overall integrity concerns, among
other things.


3.6.  Variable Repetition:  *Rule
.
.

3.6.1. Element's Repetition in Sequence, Concatenation, etc, other than Set
   An element with a repetition is expanded sequentially.

   Example: Element's Repetition in non-Set types which results in forming
                a Sequence group
       3A = (A A A)

   So, ...
   Example: Sequence Group in a Set
      set  =  {(3A) X}  = {(A A A) X} =  ((A A A) X)/ (X (A A A)) =
(A A A X) / (X A A A)

   Example: Sequence Group in Set
       set = {(A B C) X} = (A B C X) / (X A B C)


3.6.2. Element's Repetition in Set
   An element with a repetition in a Set is expanded non-sequentially.

   Example: Element's Repetition in Set
       set   =  {3A X}  = {A A A X} = (A A A X)  / (A A X A)  / (A X
A A) / (X A A A)


3.6.3. Set's Repetition
  A Set with a repetition is expanded only atomically.
  Example:
      SETa   =  {A B}
      2SETa = 2{A B} = 2((A B)/(B A)) = ((A B) (A B)) / ((B A) (B A))
= (A B A B) / (B A B A)


********************

4.  ABNF Definition of ABNF
.
.

        element        =  rulename / group / set / option /
                          char-val / num-val / prose-val

        set            =  "{" repetition *(1*c-wsp repetition ) "}"
                           ; repetitions in any order


Note that the rule "element" above now includes "set" and the rule set
is of course
the new addition for Set.

In addition to probing into this new specifications, please raise a
red flag for any possible disruptions of existing RFCs by this new
Set, even though we are pretty sure that no existing specifications
would be affected by this change.

Thanks,
-Munjo Yu, VineGen Inc.


On Fri, Apr 10, 2009 at 5:56 PM, Dale Worley <dworley@nortel.com> wrote:
> On Wed, 2009-04-01 at 20:17 -0500, Munjo Yu wrote:
>> SET is described simply as follows, using a pair of braces:
>>
>> SET                             {Rule1 Rule2}
>
> As a start, I would like to see a fully accurate description of how the
> SET construction is written, and what its significance is.  Given that
> SET is a *tool for writing specifications*, we must be careful to define
> it exactly.  Currently, all we have is one example of its use.
>
> Dale
>
>
>