DisableRule deactivates the whole grammar rather than just the rule

Last reviewed: 2/17/2011

PRB Article ID: P021101

The information in this article applies to:

  • SpeechKit 6

Symptoms

Deactivating a rule with DisableRule on a VoCon V3 grammar causes the whole grammar to be deactivated rather than the specific rule.

For example, there are three activatable rules with the following grammar:


#BNF+EM V1.1;
!grammar mycommands;
!start <main>;
!activatable <ruleone><ruletwo>;
<main>: <ruleone> | <ruletwo>;
<ruleone>: command one;
<ruletwo>: command two;

You can activate and deactivate <main> by default because it is the start rule. <ruleone> and <ruletwo> can be activated and deactivated because they appear in the !activatable statement.

You should be able to use DisableRule to deactivate either <main>, <ruleone>, or <ruletwo>.

Cause

DisableRule referenced the wrong rule constant type when requesting the state change.

Status

Fixed in SpeechKit build 6.0.11.0.

Component Formats Impacted

All component formats.