RE: Processing of multiple grammars [clarification]

Hi !
 
Our approach is somewhat what I try to explain in here.
 
The specification says that :"the termtimeout applies only when no
additional input is allowed by the grammar; otherwise, the interdigittimeout
applies."
 
In nutshell the interdigit timeout (if any) should be used if any of loaded
and active grammars are in MAY_TERMINATE or INCOMPLETE stages. If we have
after successful collect many matches the precedence defines the grammar we
choose. This kind of behavior is needed to maintain some analogue in user
input. 
 
If I have  understood it correctly,  the parameters, defined when entering
collect stage of FIA, affect all grammars, so you cannot have different
interdigit and other timeouts for multiple grammars for single collect. 
 
In Case you have grammars "*" and "* | **" 
 
- in The beginning the both grammars are incomplete  
- After pressing first *. We end into situation where 
        Grammar 1 is in state MUST_TERMINATE and 
        Grammar 2 is in MAY_TERMINATE stage. 
        Now we have to choose, and because we still have grammars that are
not in  MUST_TERMINATE or INVALID and there are grammars that (may) accept
(MAY_TERMINATE | INCOMPLETE) more characters the we end into situation where
we should honor interdigit timeout. This is very critical for user .. 
 
    - If the user does not press anything the collect matched grammar
2(precedence affects) after interdigit timeout.
 
    - If User pressed another * the case goes easy cause the another Grammar
in now in INVALID state and another is in MUST_TERMINATE state. 
 
 
In any case I would call this bad VXML too.. single '*' has now two meanings
so you are not able to enter to what ever lays behind grammar 1.
 
I Hope that this gets clarified in later Specifications along many other
things..
 
-Teemu
 
________________________________

From: Douglas Currie [mailto:DugzDC@blueyonder.co.uk] 
Sent: 17. tammikuuta 2005 11:42
To: www-voice@w3.org
Subject: Re: Processing of multiple grammars [clarification]



I should point out that the timeout, etc. properties listed are identical
for each grammar - I just listed the ones I thought were relevant.

I guess the question can be boiled down to this: 

Given these grammars: 
1 * - low precedence 
2 * | ** - high precedence 
with interdigit timeout > termtimeout and termchar set up, what should
happen if the user presses a single *? 

Shoud it be: 
A) VXML is invalid 
B) return a match with 2 after interdigit timeout 
C) return a match with 2 after termtimeout 
D) return a match with 1 after termtimeout 

The spec doesn't explicitly say whether grammar 2 should override grammar
one for the single * case ***while matching***.  It says that grammar
scoping applies *after* a match has been found, but makes no reference to
consulting other grammars when checking an individual grammar.

Thanks, 
Doug 

Received on Friday, 21 January 2005 12:15:09 UTC