SALT Forum feedback on EMMA WD

Here are some comments from the SALT Forum on the EMMA Working Draft at
http://www.w3.org/TR/2003/WD-emma-20030811/.

In SALT, speech recognition results are represented in an XML result
format. We hope that, once EMMA becomes a Recommendation, the SALT Forum
will be able to consider EMMA with a view to recommending it as the
standard result format for SALT environments.

1) First of all we would like to congratulate the EMMA team for
producing a well thought-out specification. EMMA includes standard
annotations for the main features of a speech recognition result that we
believe will be most useful in applications, notably: 

- emma:tokens (for the spoken words of an utterance)
- emma:confidence (for the recognizer's confidence in an utterance)
- emma:one-of (for N-Best alternates).

2) We believe the syntax which places annotations inline in the
interpretation (Syntax 1 in the Introduction) is clean and compact and
we strongly support this format of annotation. 

3) We have serious concerns about using the RDF syntax, notably: 

i) increased verbosity
ii) difficulty/non-determinism of structural queries such as XPath
iii) extra query mechanism for application authors to learn.

These points are explained and illustrated below. 

3.1) increased verbosity of EMMA documents
All the samples in the spec show that the inline syntax is more compact.
For  applications where EMMA is expected to contain many annotations,
the divergence will be significant and likely to impact performance. 

3.2) difficulty of querying RDF annotations in non-RDF environments
In SALT, as in many other XML environments, access to XML data such as
recognition results is through XPath queries on the XML structure of the
document. But if EMMA were to adopt the RDF syntax, such structural
queries would not only be more difficult to author, they would be
non-deterministic. 

In illustration of this point, we have converted an example from the
SALT spec into the different EMMA syntaxes. These are reproduced at the
foot of this message. The original NLSML from the SALT spec is at [1].
The inline EMMA variant is at [2] and the RDF EMMA variant is at [3].

The binding query in the inline case is simple and transparent:

<salt:bind targetelement="txtBoxDest"
        value="//dest_city" 
        test="//dest_city[@confidence &gt; 0.4]" />

The bind query in the RDF case is more complex. To query a confidence
score, the test has to look for the "rdf:Description" node which is both
(a) about the semantic value in question, and (b) holds the correct
annotation on which the test is based: 

<salt:bind targetelement="txtBoxDest" 
        value="//dest_city" 
 
test="//rdf:Description[@rdf:about='#emma(id(\'int1\')/dest_city)' &&
@emma:confidence &gt; 0.4]" />

This complexity applies beyond just conditional test attributes: it
applies to any binding statement which requires access to the
annotation. So when copying the confidence score into an HTML field, the
bind query is something like: 

<salt:bind targetelement="txtConfidence" 
         value="//rdf:Description[@rdf:about=
'#emma(id(\'int1\')/dest_city)']/@emma:confidence" /> 

Similar concerns apply when the EMMA result is handled in script -- the
XML DOM navigation necessary to find the correct annotation would be
similarly complicated, unless the EMMA environment were to implement
both (a) an RDF processor, and (b) the emma() mechanism to support the
XPointer-derived query module (Section 2.1.2.1). This appears to be a
considerable implentational burden. 

Secondly, the annotations of a single EMMA document can be represented
in a number of different ways in the RDFsyntax. For example, the
annotation: 

<rdf:Description rdf:about="#emma(id('int1')/dest_city)" 
         emma:confidence="0.35" /> 

could equally be expressed: 

<rdf:Description rdf:about="#emma(//emma:interpretation/dest_city)" 
         emma: confidence="0.35" /> 

This renders XPath queries non-deterministic, since a different binding
query to [2] would be required: 

<salt:bind targetelement="txtBoxDest" 
	value="//dest_city" 
	
test="//rdf:Description[@rdf:about='#emma(//emma:interpretation/dest_cit
y )' && @emma:confidence &gt; 0.4]" /> 

Given that the application author may not know the preferences of the
grammar  writer/recognition engine in constructing the annotational
tree, XPath queries on annotations in an EMMA RDF document are
effectively hit-and-miss.

3.3) Since, in either syntax, access to the instance data within the
interpretation is expected to be via a structural query such as XPath,
the introduction of a different mechanism for annotation data means that
the application author has to learn the new access mechanism.

In summary, EMMA in RDF would not be usable in SALT or other XPath
environments. We do not believe that the value added by RDF outweighs
the cost of implementing RDF. The costs we have noted are in the
implementation of the EMMA environment, the performance of EMMA systems,
and the burden on the application author. 


Glen Shires, Chair, SALT Forum Technical Working Group
on behalf of the SALT Forum
(http://www.saltforum.org/members/members.asp)


=================
[1] Example
(from section 2.2.1.2 of the SALT spec.)

The original NLSML example and corresponding SALT bind: 

<result grammar="http://flight"
xmlns:xf="http://www.w3.org/2000/xforms">
  <interpretation confidence="0.4">
    <input mode="speech">
      I'd like to travel from Seattle to Boston
    </input>
    <xf:instance>
      <airline>
        <origin_city confidence="0.45">Seattle</origin_city>
        <dest_city   confidence="0.35">Boston</dest_city>
      </airline>
    </xf:instance>
  </interpretation>
</result>

<salt:bind targetelement="txtBoxDest"
        value="//dest_city" 
        test="//dest_city[@confidence &gt; 0.4]" />

[2] Corresponding EMMA (inline) document and <bind>

<emma:emma emma:version="1.0"
 xmlns:emma="http://www.w3.org/2003/04/emma#"> 
  <emma:interpretation emma:process="http://flight" 
   emma:confidence="0.4" 
   emma:tokens="I'd like to travel from Seattle to Boston"> 
    <airline>
      <origin_city emma:confidence="0.45">Seattle</origin_city>
      <dest_city   emma:confidence="0.35">Boston</dest_city>
    </airline>
  </emma:interpretation>
</emma:emma>

<salt:bind targetelement="txtBoxDest"
        value="//dest_city" 
        test="//dest_city[@emma:confidence &gt; 0.4]" />

[3] Corresponding EMMA (RDF) document and <bind>

<emma:emma emma:version="1.0"
 xmlns:emma="http://www.w3.org/2003/04/emma#"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> 
  <emma:interpretation emma:id="int1"> 
    <airline>
      <origin_city>Seattle</origin_city>
      <dest_city>Boston</dest_city>
    </airline>
  </emma:interpretation>
  <rdf:Description rdf:about="#int1" emma:process="http://flight"
   emma:tokens="I'd like to travel from Seattle to Boston"  
   emma:confidence="0.4"  />
  <rdf:Description rdf:about="#emma(id('int1')/origin_city)"
emma:confidence="0. 45" /> 
  <rdf:Description rdf:about="#emma(id('int1')/dest_city)"
emma:confidence="0.35"  /> 
</emma:emma>

<salt:bind targetelement="txtBoxDest" 
        value="//dest_city" 
 
test="//rdf:Description[@rdf:about='#emma(id(\'int1\')/dest_city)' &&
@emma:confidence &gt; 0.4]" />

Received on Thursday, 2 October 2003 11:57:05 UTC