- From: Andrew Hunt <andrew.hunt@speechworks.com>
- Date: Mon, 8 Jul 2002 11:50:44 -0400
- To: "W3C Voice List" <www-voice@w3.org>
- Cc: <jf_jackson@hotmail.com>
[Email forwarded at Jim Jackson's request -- original email did not reach the list] ==================================================================== Subject: scope of root and meaning of public Date: Thu, 04 Jul 2002 08:51:16 -0400 Fom: "jim jackson" <jf_jackson@hotmail.com> To: www-voice@w3.org Hi, The candidate recommendation states in Section 4.7: "The rule declared as the root rule may be scoped as either public or private." This is actually a misleading statement because even if the root is declared private, it always behaves like a public rule (which is good!): 1. the following sentence of Section 4.7 states that the root is always activable: "A rule reference to the root rule of a grammar is legal." It seems clear this holds even if the rule is private; this impression is confirmed by Section 5.4: "A conforming Grammar Processor (...) must be able to activate the root, any single public rule, or any set of public rules or roots". 2. the next parag of Section 4.7 states that the root is always activable: "The root rule may be activated for recognition." Now the purpose of the scope of a rule is to set two properties: activation and exportation, which is confirmed by Appendix I: "- Possible distinction of "activable" and "exported" rules (currently merged as "public")". In fact, I think that setting the scope of the root should not be allowed because it can only be public. About the point of Appendix I, I regreat that the addressed distinction is not effective right now but I can live with it; after all, being public can be seen from two perspectives: the grammars and the engine. However I am much more surprised by another confusion: being activable is considered as being both on/off switchable at engine run-time, and also being the "start symbol" (as defined in [HU79]: http://www.w3.org/TR/speech-grammar/#ref-hu79). Section 3.2 actually reads: "Rules with public scope may be activated for recognition. That is they may define the top-level syntax of spoken input." ("top-level syntax" meaning "start symbol" I guess) Now if you consider the grammar: $root = I want to be connected to $people [please]; $people = $people_1st_floor | $people_2nd_floor ; When you want to deactivate $people_2nd_floor, you have to declare it public, but then, it also becomes a start symbol, which allows for undesired spoken utterances. I find this confusion much more a problem than exportation/activation. This issue is even not addressed in Appendix I. In the same vein, I think that the status of the start symbol naturally belongs to the root and only to it. Regards, Jim _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com
Received on Monday, 8 July 2002 11:51:11 UTC