Re: ISSUE-51: Another possible compromise for metadata syntax

Christian de Sainte Marie wrote:
> 
> One way to avoid both would be to allow Groups to contain ITEMs, not 
> RULEs or other FORMULAs directly (diagram 4):
> 
>   Document ::= 'Document' '(' IRIMETA? DIRECTIVE* ITEM* ')'
>   ITEM     ::= [ Rule | Fact | Group ]
>   Group    ::= 'Group' IRIMETA? ITEM*
>   Rule     ::= 'Rule' IRIMETA? '(' RULE ')'
>   RULE     ::= [ 'Forall' Var+ '(' Implies ')' | Implies ]
>   Fact     ::= ATOMIC

Ooops. I meant, of course:

   Fact     ::= 'Fact' IRIMETA? '(' ATOMIC ')'

Btw, raised back to FLD, that would probably give something like that:

   Document ::= 'Document' '(' IRIMETA? DIRECTIVE* ITEM* ')'
   ITEM     ::= [ Rule | Fact | Group ]
   Group    ::= 'Group' IRIMETA? [ FORMULA | ITEM ]*
   Rule     ::= 'Rule' IRIMETA? '(' FORMULA ')'
   Fact     ::= 'Fact' IRIMETA? '(' FORMULA ')'

That is, if I understand correctly that a dialect can chose not to use a 
constrauct like Rule or Fact, but that it cannot chose to add them. Or 
would keeping ITEM abstract be possible, like (looks strange :-):

   Document ::= 'Document' '(' IRIMETA? DIRECTIVE* ITEM* ')'
   ITEM     ::= [ FORMULA | ITEM ]*

Christian

Received on Monday, 28 April 2008 13:37:01 UTC