Subject: [Speechsc] Semantic Scripts - Arrays

From: "Arthur Vernon" <[email-masked]>
Date: Mon, 24 Aug 2009 06:18:09 -0400

In "Speech Processing for IP Networks" there is a reference to how
arrays of values are to be handled.

The gist of it is: 

"It is possible for the rule variable of the root rule to be of type
Array (e.g. x[0], x[1], etc) or indeed
for one of its properties to be of type Array."

I cannot see a concrete example in the specification of how this
information is supposed to be communicated from the server to the
client.

The MRCP 2 server reports this...
<stock confidence="0.687036">
   BHP
   RIO
</stock>

As you can see, there is notional identification of the two items I
spoke by way of a CR/LF.

The MRCP 2 client reports receiving this:

<stock confidence="0.687036">
   BHP
   RIO
</stock>

On the document server, this is getting passed back to me as stock:
"BRI"

Further reading of the logs on the MRCP client (produced using)

<log>The type of stock is <value
expr="typeof(Buy$.interpretation.stock)"/></log>
<log>The value of stock is <value
expr="Buy$.interpretation.stock"/></log>

reveals:

The type of stock is string
The value of stock is BRI

I would have expected that the type of stock to be array. (containing
BHP and RIO)

My problem is (from a user perspective) who do I complain to to seek a
resolution to the problem?

Can the specification clarify this matter please (or maybe I have just
missed this bit).

Here is the (edited and relevant bits of the) grammar used to generate
this:

<rule id="generic"> Buy <tag>out._service = "StockBuy"; out.stock=new
Array(); var index=0;</tag>
                            <item repeat="0-2">
                                <ruleref uri="#company"/>
                                <tag>out.stock[index++] =
""+rules.company;</tag>
                            </item>
                        </rule>
                        <rule id="company">
                            <item>
                                <one-of>
 
<item>BHP<tag>out="BHP";</tag></item>
                                    <item>Rio tinto
<tag>out="RIO";</tag></item>
                                </one-of>
                            </item>
                        </rule>

It is a bit hacked because in the process I have tried numerious ways to
realise a working array.

Kind Regards,
Arthur Vernon - Lead Software Architect, IST Networks

AUSTRALIA
(m) +61 411 336 176
(w) +61 (8) 6380 2058
Unit 5B, 1 Station St, Subiaco WA 6008