SI literals (SRGS/SISR)

"SI literals" were introduced in the Semantic Interpretation
for Speech Recognition Draft dated December 2nd, 2002.
Like the "simple assignment" of older SISR drafts,
the intent of this second form of semantic tag is to
make grammar writing more convenient.  I question the
usefulness of this second type of tag.

An SI literal (and the earlier "simple assignment") is the same
as a regular semantic tag except that there is an implied "$="
at the tag's start, and the format is different.

For example, the following two ABNF examples taken from the SISR
draft are equivalent:

example with SI literal:  $no = (no | nope | no way):"no";
example with regular tag: $no = (no | nope | no way) {$="no"};

Here are the reasons that make SI literals unnecessary:

- The second type of tag makes reading ABNF grammars more difficult
  for humans and more time consuming for a grammar agent, especially
  when combined with language attachments.  For example:

    example with SI literal:  $yes = yes | "oui"!fr-CA:"yes";
    example with regular tag: $yes = yes | "oui"!fr-CA {$="yes"};

- I think it's also more confusing to have two types of semantic
  tags for someone new to SRGS.

- SI literals don't add any new functionality.

- What if both types of tags are applied simultaneously?
  For example:

    $main = word!"tag1" {$="tag2"};

  This is presumably equivalent to the following:

     $main = word {$="tag1"}{$="tag2"};

  Rather than:

     $main = word {$="tag1 tag2"};

  It's not difficult to come up with more complex examples that
  further illustrate the inherent confusion in having two ways of
  doing the same thing.

Carl Mitchell
Lucent Technologies

Received on Tuesday, 14 January 2003 16:20:09 UTC