- From: Robert Keiller <robert.keiller@voxsurf.com>
- Date: Fri, 22 Sep 2006 13:17:36 +0100
- To: <harbhanu@huawei.com>, <www-voice@w3.org>, "'Dan Evans'" <devans@invores.com>
- Message-ID: <DEEGIBIDCHOCDKMBLBMJOEHBCOAA.robert.keiller@voxsurf.com>
Harbanu I don't see how to interpret 4.1.7 of the spec any other way: The timeout attribute specifies the interval of silence allowed while waiting for user input after the end of the last prompt. If this interval is exceeded, the platform will throw a noinput event. This attribute defaults to the value specified by the timeout property (see Section 6.3.4) at the time the prompt is queued. In other words, each prompt has its own timeout value. This even stresses that the default is specified by the timeout property at the time the prompt is queued. It is hard to see how the property at the time the prompt is queued could be important enough to stress with any other interpretation. I suppose you could say that there should be a 3s timeout in the following example because there is no timeout property in the field, but it would be very odd that the field's behaviour would be changed by setting the timeout property in the field to the value it already defaults to. <property name="timeout" value="1s"/> <form> <property name="timeout" value="3s"/> <block> <prompt>some prompt</prompt> <goto next="#form2"/> <block> </form> <form id="form2"> <field name="forcePlay" type="boolean"> <!-- commented out <property name="timeout" value="1s"/> --> <catch event="noinput nomatch"> <assign name="forcePlay" expr="true"/> </catch> </field> </form> Also section 6.3 says: In some cases, <property> elements specify default values for element attributes, such as timeout or bargein. Obviously the spec is clear that the timeout property sets the default timeout attribute and as far as I can see there is nothing in the spec itself to suggest that the timeout property has any other semantics. On the other hand, if the timeout is ultimately specified by the prompt attribute, then it does raise the question of what timeout to apply if there are no prompts, which seems to be the case with the implementation report test case. Given that there are conflicting implementations, I don't know how they all passed that test case. If I had to, I would guess that they add an additional semantic that inserts an empty prompt from the <field> context if the prompt queue is empty, thus inadvertently passing the test case. NB if it were up to me I would change this. When designing and implementing UIs I associate timeouts with the user not the individual prompts, so this is a possible source of bugs. Hence I have a rule that always inserts an empty prompt in a field if it has no other prompts. Robert -----Original Message----- From: www-voice-request@w3.org [mailto:www-voice-request@w3.org]On Behalf Of harbhanu Sent: 22 September 2006 11:57 To: robert.keiller@voxsurf.com; www-voice@w3.org; 'Dan Evans' Subject: RE: Timeout property or timeout attribute? Hi Robert, I have certain doubt on the clarifications given . >>"The timeout property simply defines the default value of the prompt timeout attribute. " The prompt just offers another alternative to update the timeout for wait during current input collection, which can supersede the value defined by timeout property in the scope. The timeout property will always apply to the recognition process even in case there are no prompts, or prompts without timeout attribute. >> It is an error (albeit a common one) to believe that the timeout property defined in a field applies to the behaviour of the field itself rather than to any prompts, if defined, within that field. It applies to both ..;) Section: 6.3.4 (Prompt and Collect Properties) - (VoiceXML2.0 spec) Timeout : The time after which a noinput event is thrown by the platform. The value is a Time Designation (see Section 6.5). The default value is platform-dependent. See Appendix D. Also, refer to the implementation report test case No: 603 http://www.w3.org/Voice/2004/vxml-ir/603/603.txml How will those implementation which always depends on the prompt's timeout attribute will pass this testcase?? Regards, Harbhanu **************************************************************************** **************************************************************************** **************************************************************************** ********** This e-mail and attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient's) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! ---------------------------------------------------------------------------- -- From: www-voice-request@w3.org [mailto:www-voice-request@w3.org] On Behalf Of Robert Keiller Sent: Friday, September 22, 2006 2:16 PM To: harbhanu@huawei.com; www-voice@w3.org; 'Dan Evans' Subject: RE: Timeout property or timeout attribute? Hi, There certainly are or were differences in implementation for this between different VoiceXML implementations. I have worked with two or three that would give a 1s timeout and I know another implementation that would give a 7s timeout. Although I was initially very surprised by the 7s interpretation, being already familiar with the 1s interpretation, I believe now that it is correct. The timeout property simply defines the default value of the prompt timeout attribute. Since there is no prompt in the field itself the timeout property of 1s is irrelevant. The only prompt is in the block where the default value of the timeout attribute is set by the root document property to 7s. It is an error (albeit a common one) to believe that the timeout property defined in a field applies to the behaviour of the field itself rather than to any prompts, if defined, within that field. You can obviously fix this by putting a timeout attribute on the <block>'s prompt. If there are implementational reasons why this is not possible (eg the application element that creates the prompt does not have access to the timeout) an ugly fix is to put an empty prompt in the field. Robert -----Original Message----- From: www-voice-request@w3.org [mailto:www-voice-request@w3.org]On Behalf Of harbhanu Sent: 22 September 2006 06:50 To: www-voice@w3.org; 'Dan Evans' Subject: RE: Timeout property or timeout attribute? Hi, I think as per the VoiceXML 2.0 specification also, the value for timeout must be 1s. Excerpts from the spec. Section 4.1.7 (Prompt element) The timeout attribute specifies the interval of silence allowed while waiting for user input after the end of the last prompt. If this interval is exceeded, the platform will throw a noinput event. >>"This attribute defaults to the value specified by the timeout property"<< Section 6.3 (Property element) Properties may be defined for the whole application, for the whole document at the <vxml> level, for a particular dialog at the <form> or <menu> level, or for a particular form item. >>>"Properties apply to their parent element and all the descendants of the parent."<<< A property at a lower level overrides a property at a higher level. When different values for a property are specified at the same level, the last one in document order applies. Properties specified in the application root document provide default values for properties in every document in the application; properties specified in an individual document override property values specified in the application root document. From the above two highlighted text, it is expected that the field 'forcePlay' will wait for 1sec before throwing the noinput event. Please let me know about your inputs on this. Regards, Harbhanu Ps;>Please ignore the text that follows. **************************************************************************** *********** This e-mail and attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient's) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it! -----Original Message----- From: www-voice-request@w3.org [mailto:www-voice-request@w3.org] On Behalf Of Dan Evans Sent: Thursday, September 21, 2006 8:36 PM To: www-voice@w3.org Subject: Timeout property or timeout attribute? The following document (extracted from a larger one) produced a surprising result which seems to highlight an omission in the spec. <vxml application="root.vxml"> <property name="inputmodes" value="dtmf"/> <form> <block> <prompt>some prompt</prompt> <block> <field name="forcePlay" type="boolean"> <property name="timeout" value="1s"/> <catch event="noinput nomatch"> <assign name="forcePlay" expr="true"/> </catch> </field> </form> </vxml> root.vxml <vxml application="root.vxml"> <property name="timeout" value="7s"/> </vxml> The question is: how long does the field forcePlay wait before throwing noinput? The answer: 7 seconds. But if the field timeout property is moved to the dialog scope, the answer is: 1 second. The justification supplied by the vendor of the VoiceXML interpreter I was using was that the prompt: since it did not specify a timeout attribute, defaults to the timeout property in scope (spec 4.1.7) when the prompt is queued (the root timeout). The same section also says that the prompt timeout attribute is for supporting tapered prompts. The spec appears to be silent on the relative precedence of a prompt timeout versus an explicit property timeout for a field. I think the local scope property timeout should have precedence when there is a conflict. This would make timeout specification explicit instead of an inadvertent, and potentially unexpected, side effect. As an alternative, the prompt timeout attribute could define an empty value to allow the developer to indicate that the prompt should not carry an inherited timeout: <prompt timeout=""> or <prompt timeout="none">. Dan Evans
Received on Friday, 22 September 2006 12:20:39 UTC