[ISSUE-51] Formulae wrappers (1/2: abstract and concrete)

All,

If I understand he situation correctly, one single all-purpose construct 
to wrap groups of FORMULAe is all we need; call it: Group. Semantically, 
it behaves the same whether it wraps a single FORMULA or a set of 
FORMULAe, whether the wrapped FORMULAe are RULEs or whatever else, etc; 
and, thus, any other wrappers would just be redundant.

On the other hand, some people want to be able to distinguish, 
syntactically, some special kinds of groups of FORMULAe. Specifically, 
some people (4 people and 3 half, according to the straw poll taken last 
Tuesday) would like to have a specific syntactic marker, in BLD, for the 
case where the Group contains only one single FORMULA and that FORMULA 
is a RULE. That is, renaming the Group: a Rule, in that specific case.

So, one question seems to be: can we enable dialects to distinguish 
specific kinds of groups of formulae without having to bloat FLD with 
all the possibilities?

Couldn't that specific point be resolved with FLD having only an 
abstract construct for wrapping FORMULAe:

   Document       ::= 'Document' '(' WRAPPER? ')' /* leaving meta etc out
   WRAPPER        ::= WRAPPERNAME '(' (FORMULA | WRAPPER)* ')

Where 'abstract' means that it does not have an XML tag/syntax associated.

Would that be enough for FLD to specify the semantics etc?

Then FLD-compliant dialect would instantiate the abstract WRAPPER into 
the concrete wrappers they need (that is, with a concrete associated XML 
syntax):

* E.g. the current draft of BLD instantiate  WRAPPER ::= Group

   Document	::= 'Document' '(' Group? ')'
   Group     	::= 'Group' '(' (RULE | Group)* ')'
	
* but it could be modified to instantiate WRAPPER ::= Group | Rule

   Document       ::= 'Document' '(' Group? ')' /* leaving meta etc out
   WRAPPER        ::= Group | Rule
   Group		 ::= 'Group' '(' (RULE | WRAPPER)* ')'
   Rule		 ::= 'Rule' '(' RULE ')'

etc.

The benefit would be to keep FLD simple and allow more syntactic elbow 
room in dialects (such as allowing singleton Groups containing a RULE to 
be called Rule instead; singleton Group containing a ground ATOMIC to be 
called a Fact; Groups that are sets of Rules to be called a RuleSet; 
Whatever).

Opinions? Comments?

Received on Tuesday, 29 April 2008 10:45:05 UTC