- From: Wyss, Felix <FelixW@inin.com>
- Date: Sun, 30 Nov 2003 17:36:31 -0500
- To: <www-voice@w3.org>
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