SISR: Comments on SISR April 2003 working draft

  1) SI Literals and SRGS ABNF grammar syntax

Clarification is needed on the SRGS ABNF syntax related to SI literals
and their order with respect to language attachments and repeat
operators.  According to the syntactic grammar of ABNF, language
attachments have to come before the repeat operator: 

sequenceElement ::= subexpansion | subexpansion repeatOperator
subexpansion ::=
  Token LanguageAttachment?
  | ruleRef LanguageAttachment?
  | Tag
  | '(' ')'
  | '(' ruleExpansion ')' LanguageAttachment?
  | '[' ruleExpansion ']' LanguageAttachment?

For simplicity and clarity, I suggest extending the subexpansion
production as follows:

subexpansion ::=
  Token LanguageAttachment? SILiteral?
  | ruleRef LanguageAttachment? SILiteral?
  | Tag
  | '(' ')'
  | '(' ruleExpansion ')' LanguageAttachment? SILiteral?
  | '[' ruleExpansion ']' LanguageAttachment? SILiteral?

Thus, the SI literal has to come after the language attachment (but
before the repeat operator). 


  2) SI literals and repeat operator

The semantics of a sequence element with an SI literal and repeat
operator should be clarified too.  The repeat operator should apply to
the implicit sequence of rule expansion and literal. Thus,
"foo":"bar"<1-> means ("foo" {$="bar"})<1->.  

For optional groupings, the transformation would accordingly be as
follows: ["foo"]:"bar" ==>  ("foo"<0-1> {$="bar"}).  Note the difference
to ["foo":"bar"], which would be equivalent to ("foo" {$="bar"})<0-1>.  


  3) Clarification of GRR of external rule references

Section 3.3.2 does not specify how the GRN of external rule references
can be accessed in the referencing rule.  I suggest that the GRN of
external rule references is only available as $$ and its text variable
as $$$.text in the referencing rule.  Thus, there is no equivalence to
"$rulename" for external rule references.  If the value of the GRR is
required past the next rule reference, it has to be assigned to a
temporary variable.  
An alternate solution would be to extend the syntax of external rule
references to allow specifying an alias for the GRR.  For example: 

  $rule =
    $<http://example.com/foo.gram>^<$foo> 
    $<http://example.com/bar.gram>^<$bar> 
    {$.result = $foo + $bar};


  4) Clarification of GRR of special rules

Section 3.3.2 says that special rule references are not evaluated with
respect to SISR.  The semantics of $$ and $$$ after a special rule
reference should be clarified.  For example, what does $$ reference in
the tag expression of the following rule?

  $root = $foo $GARBAGE {$=$$};

I suggest specifying that the value of $$ and $$$ is undefined after an
intervening special rule.  This would allow implementations to introduce
non-standard extensions, for example where $$$.text contains the skipped
utterances after a $GARBAGE rule.  


--Felix I. Wyss
Interactive Intelligence, Inc.

Received on Sunday, 30 November 2003 17:36:38 UTC