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 <[email protected]> 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
>
>
>
_______________________________________________
Sip mailing list  https://www.ietf.org/mailman/listinfo/sip
This list is for NEW development of the core SIP Protocol
Use [email protected] for questions on current sip
Use [email protected] for new developments on the application of sip

Reply via email to