- From: <Luc.Van.Tichelen@lhs.be>
- Date: Fri, 15 Mar 2002 18:53:11 +0100
- To: Martin Duerst <duerst@w3.org>
- Cc: www-voice@w3.org
Dear Martin,
On your comments about scoping of grammar rules:
16) 3.2 Scoping: The scoping rules are explained by reference to Java.
However, while there are very good reasons for data hiding and
therefore to have a default of 'private' in programming languages
such as Java, I can see absolutely no need for data hiding in
the case of speech grammar rules. There should be a better
explanation for why the default is 'private', or the default
should be changed to 'public' to make it easier to reuse rules.
Also, the rule that a private root can not be referenced by
name seems unmotivated.
This concept of "scoping" grammar rules to declare what rules are visible
outside the grammar and what rules are not, is perhaps less inspired by the
Java programming language than by long standing practice in various speech
grammar formalisms used by various speech recognition technology vendors.
But the reasons for data hiding in speech grammars are not unlike the
reasons for private/public distinctions in other programming languages:
1) When creating larger applications with several grammars referencing
other grammars, the scoping rules help ensuring that only the intended
rules are referenced from outside the grammar, and not internal helper
rules. This in fact helps reusability by making explicit which rules are
meant for reuse.
2) If the grammar source is under control by a developer, it is always
possible to turn a rule into a public one by modifying the grammar. This
constitutes an explicit act, so the developer is invited to double check
that the rule is not inadvertently introducing unwanted grammar fragments
that could compromise the grammar in which the rule is referenced. Rules
should therefore be private by default, and public only by explicit intent
by the developer.
3) Grammar compilation resembles programming language compilation. Making
rules private allows advanced grammar compilers to perform certain
optimizations that can not be applied when a rule is declared public and
must therefore be available for activation and external referencing. This
is another reason to make rules private by default.
Kind Regards,
Luc Van Tichelen
Director Dialogue Technology
=====================================================================
ScanSoft bvba Luc.Van.Tichelen@lhs.be
Speech and Language Technologies tel +32-57-22.88.88
Flanders Language Valley 50 fax +32-57-20.84.89
8900 Ieper, Belgium http://www.scansoft.com
=====================================================================
Received on Friday, 15 March 2002 12:58:49 UTC