<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments for Nu Echo Blog</title>
	<atom:link href="http://blog.nuecho.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.nuecho.com</link>
	<description>Because performance matters.</description>
	<lastBuildDate>Thu, 29 Sep 2011 13:04:06 -0400</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Comment on Grammar problem #2 &#8211; ambiguous grammars by Dominique Boucher</title>
		<link>http://blog.nuecho.com/2011/06/24/grammar-problem-2-ambiguous-grammars/#comment-29978</link>
		<dc:creator>Dominique Boucher</dc:creator>
		<pubDate>Thu, 29 Sep 2011 13:04:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1054#comment-29978</guid>
		<description>Hi Peter,

You are correct. Ambiguity detection is undecidable for context-free grammars in general. And most speech recognition engines only support regular grammars (no general recursion, although some kinds of loops), for which the ambiguity problem is decidable. 

But decidable does not always mean easy to do. It may be easy to answer the question of ambiguity with a yes or no, but explaining why is not. As you pointed out, exhaustive &quot;generate and test&quot; is sometimes a good idea, but that&#039;s not practical for non-trivial grammars. NuGram IDE provides a sophisticated sentence generation tool that we hope will eventually be used as the basis for an ambiguity detection tool.</description>
		<content:encoded><![CDATA[<p>Hi Peter,</p>
<p>You are correct. Ambiguity detection is undecidable for context-free grammars in general. And most speech recognition engines only support regular grammars (no general recursion, although some kinds of loops), for which the ambiguity problem is decidable. </p>
<p>But decidable does not always mean easy to do. It may be easy to answer the question of ambiguity with a yes or no, but explaining why is not. As you pointed out, exhaustive &#8220;generate and test&#8221; is sometimes a good idea, but that&#8217;s not practical for non-trivial grammars. NuGram IDE provides a sophisticated sentence generation tool that we hope will eventually be used as the basis for an ambiguity detection tool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Grammar problem #2 &#8211; ambiguous grammars by Peter Nann</title>
		<link>http://blog.nuecho.com/2011/06/24/grammar-problem-2-ambiguous-grammars/#comment-29972</link>
		<dc:creator>Peter Nann</dc:creator>
		<pubDate>Thu, 29 Sep 2011 10:09:27 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1054#comment-29972</guid>
		<description>Or then again, I may not sufficiently understand what an undecidable problem is...
Who knows.   ;-)</description>
		<content:encoded><![CDATA[<p>Or then again, I may not sufficiently understand what an undecidable problem is&#8230;<br />
Who knows.   <img src='http://blog.nuecho.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Grammar problem #2 &#8211; ambiguous grammars by Peter Nann</title>
		<link>http://blog.nuecho.com/2011/06/24/grammar-problem-2-ambiguous-grammars/#comment-29971</link>
		<dc:creator>Peter Nann</dc:creator>
		<pubDate>Thu, 29 Sep 2011 10:06:03 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1054#comment-29971</guid>
		<description>P.S. Are you sure it&#039;s an undecidable problem in this context? Not convinced.
Only if it has infinite loops/generation (Which is another very BAAAAAD idea in grammars)
If it&#039;s not infinite, then you can always just do an exhaustive generate, and check every phrase for multiple parses.
That may not be practical for many non-trivial grammars (Billions of paths?), but I believe that puts most (all?) well structured (non-SLM) speech recognition grammar ambiguities in the decidable realm.
A more intelligent network traversal could probably find duplicates quite easily...

A classic, real-human linguistic grammar is probably where a real undecidable problem exists.</description>
		<content:encoded><![CDATA[<p>P.S. Are you sure it&#8217;s an undecidable problem in this context? Not convinced.<br />
Only if it has infinite loops/generation (Which is another very BAAAAAD idea in grammars)<br />
If it&#8217;s not infinite, then you can always just do an exhaustive generate, and check every phrase for multiple parses.<br />
That may not be practical for many non-trivial grammars (Billions of paths?), but I believe that puts most (all?) well structured (non-SLM) speech recognition grammar ambiguities in the decidable realm.<br />
A more intelligent network traversal could probably find duplicates quite easily&#8230;</p>
<p>A classic, real-human linguistic grammar is probably where a real undecidable problem exists.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Grammar problem #2 &#8211; ambiguous grammars by Peter Nann</title>
		<link>http://blog.nuecho.com/2011/06/24/grammar-problem-2-ambiguous-grammars/#comment-29970</link>
		<dc:creator>Peter Nann</dc:creator>
		<pubDate>Thu, 29 Sep 2011 10:05:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1054#comment-29970</guid>
		<description>I think you&#039;ll find a considerably simpler way to restructure the grammar is as follows (and for the reasons you outline this is how it should have been written in the first place):

Digit Digit Digit Digit ?(Digit ?(Digit ?(Digit ?(Digit))))

AKA:

$digit $digit $digit $digit [$digit [$digit [$digit [$digit]]]]

This puts the search network &#039;exactly how it should be&#039; I reckon.
i.e. Digit 5 is optional,
then you can only have an (optional) Digit 6 following Digit 5,
And you can only have an (optional) Digit 7 following Digit 6,
...
...

(This completely ignores the Australian problem of &quot;double two triple three&quot; being a common phraseology - That creates a whole new problem and mandates a structure similar to the one you indicated in fact)

Cheers, and Hello from Australia.</description>
		<content:encoded><![CDATA[<p>I think you&#8217;ll find a considerably simpler way to restructure the grammar is as follows (and for the reasons you outline this is how it should have been written in the first place):</p>
<p>Digit Digit Digit Digit ?(Digit ?(Digit ?(Digit ?(Digit))))</p>
<p>AKA:</p>
<p>$digit $digit $digit $digit [$digit [$digit [$digit [$digit]]]]</p>
<p>This puts the search network &#8216;exactly how it should be&#8217; I reckon.<br />
i.e. Digit 5 is optional,<br />
then you can only have an (optional) Digit 6 following Digit 5,<br />
And you can only have an (optional) Digit 7 following Digit 6,<br />
&#8230;<br />
&#8230;</p>
<p>(This completely ignores the Australian problem of &#8220;double two triple three&#8221; being a common phraseology &#8211; That creates a whole new problem and mandates a structure similar to the one you indicated in fact)</p>
<p>Cheers, and Hello from Australia.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on More robust automated test scripts: wraparound mode by More robust automated test scripts: wraparound mode &#124; VXML Solutions</title>
		<link>http://blog.nuecho.com/2011/04/08/more-robust-automated-test-scripts-wraparound-mode/#comment-26801</link>
		<dc:creator>More robust automated test scripts: wraparound mode &#124; VXML Solutions</dc:creator>
		<pubDate>Wed, 20 Jul 2011 14:42:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1726#comment-26801</guid>
		<description>[...] More robust automated test scripts: wraparound mode  Jul.20, 2011 in    Lately, I have been involved in the development of a new reusable VoiceXML dialog module. The module is invoked via a &lt;subdialog&gt; call with a number of parameters, one of which having an impact on the order of the questions asked by the module. Writing automated test scripts for such parameterized applications or modules is  read more &#187; [...]</description>
		<content:encoded><![CDATA[<p>[...] More robust automated test scripts: wraparound mode  Jul.20, 2011 in    Lately, I have been involved in the development of a new reusable VoiceXML dialog module. The module is invoked via a &lt;subdialog&gt; call with a number of parameters, one of which having an impact on the order of the questions asked by the module. Writing automated test scripts for such parameterized applications or modules is  read more &#187; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on CouchDB for call analysis data &#8211; a case study by CouchDB for call analysis data – a case study &#124; VXML Solutions</title>
		<link>http://blog.nuecho.com/2011/05/18/couchdb-for-call-analysis-data-a-case-study/#comment-26800</link>
		<dc:creator>CouchDB for call analysis data – a case study &#124; VXML Solutions</dc:creator>
		<pubDate>Wed, 20 Jul 2011 14:39:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1745#comment-26800</guid>
		<description>[...] CouchDB for call analysis data – a case study  Jul.20, 2011 in    At Nu Echo, we&#8217;ve been developing and refining our own VoiceXML application framework for years now. As part of our nth rewrite (and I&#8217;ll talk more about that rewrite and why we did it in another post), we decided to experiment with CouchDB. (For those new to CouchDB, it&#8217;s a schema-less document-oriented database. A so-called NoSQL  read more &#187; [...]</description>
		<content:encoded><![CDATA[<p>[...] CouchDB for call analysis data – a case study  Jul.20, 2011 in    At Nu Echo, we&#8217;ve been developing and refining our own VoiceXML application framework for years now. As part of our nth rewrite (and I&#8217;ll talk more about that rewrite and why we did it in another post), we decided to experiment with CouchDB. (For those new to CouchDB, it&#8217;s a schema-less document-oriented database. A so-called NoSQL  read more &#187; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on CouchDB for call analysis data &#8211; a case study by Dominique Boucher</title>
		<link>http://blog.nuecho.com/2011/05/18/couchdb-for-call-analysis-data-a-case-study/#comment-23672</link>
		<dc:creator>Dominique Boucher</dc:creator>
		<pubDate>Tue, 24 May 2011 00:56:26 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1745#comment-23672</guid>
		<description>@Mahesh Thanks for this really informative comment!

The first issue you mention (index sizes) is not something we&#039;ve experienced (yet!). We are at the very beginning of our experimentations. But regarding issue #2, you are perfectly right. We are also using a combination of Couch views and client-side filtering, but still looking for the right balance.</description>
		<content:encoded><![CDATA[<p>@Mahesh Thanks for this really informative comment!</p>
<p>The first issue you mention (index sizes) is not something we&#8217;ve experienced (yet!). We are at the very beginning of our experimentations. But regarding issue #2, you are perfectly right. We are also using a combination of Couch views and client-side filtering, but still looking for the right balance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on CouchDB for call analysis data &#8211; a case study by Mahesh Paolini-Subramanya</title>
		<link>http://blog.nuecho.com/2011/05/18/couchdb-for-call-analysis-data-a-case-study/#comment-23670</link>
		<dc:creator>Mahesh Paolini-Subramanya</dc:creator>
		<pubDate>Tue, 24 May 2011 00:39:21 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1745#comment-23670</guid>
		<description>Fascinating - we&#039;ve been using CouchDB for virtually the same reasons for the last few years (Of course, the fact that our entire PBX/infrastructure is Erlang based made this a bit of a no-brainer too).  A few issues that we ran into were
   - Index sizes, especially given the amount of JSON in a typical CDR.  We resolved this by hacking up an mnesia based sequence for _id values (couch btrees grow *much* more slowly if you use a sequence)
   - Query bloat, given that once people figure out that they have access to not just Big Data, but Rich Data, they want to query stuff all over the place.  You quickly learn that you really need to *think* about the Views well before you write them  (we frequently end up filtering in code)
   - Performance.  Simple reporting needs are easy, but if you need to do real-time access to stuff in the CDRs (&quot;give me the last 20 calls that showed up from this DID&quot;), and all 1000 incoming calls are trying to do the same thing at the same time, well, it doesnt work (and no, BigCouch doesnt quite get there either).  We&#039;ve built out our own caching layer on top of this, and it helps.  Maybe &quot;couchbase&quot; will help...</description>
		<content:encoded><![CDATA[<p>Fascinating &#8211; we&#8217;ve been using CouchDB for virtually the same reasons for the last few years (Of course, the fact that our entire PBX/infrastructure is Erlang based made this a bit of a no-brainer too).  A few issues that we ran into were<br />
   &#8211; Index sizes, especially given the amount of JSON in a typical CDR.  We resolved this by hacking up an mnesia based sequence for _id values (couch btrees grow *much* more slowly if you use a sequence)<br />
   &#8211; Query bloat, given that once people figure out that they have access to not just Big Data, but Rich Data, they want to query stuff all over the place.  You quickly learn that you really need to *think* about the Views well before you write them  (we frequently end up filtering in code)<br />
   &#8211; Performance.  Simple reporting needs are easy, but if you need to do real-time access to stuff in the CDRs (&#8220;give me the last 20 calls that showed up from this DID&#8221;), and all 1000 incoming calls are trying to do the same thing at the same time, well, it doesnt work (and no, BigCouch doesnt quite get there either).  We&#8217;ve built out our own caching layer on top of this, and it helps.  Maybe &#8220;couchbase&#8221; will help&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on CouchDB for call analysis data &#8211; a case study by CouchDB for call analysis data – a case study &#124; VXML Solutions</title>
		<link>http://blog.nuecho.com/2011/05/18/couchdb-for-call-analysis-data-a-case-study/#comment-23397</link>
		<dc:creator>CouchDB for call analysis data – a case study &#124; VXML Solutions</dc:creator>
		<pubDate>Wed, 18 May 2011 13:36:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1745#comment-23397</guid>
		<description>[...] CouchDB for call analysis data – a case study  May.18, 2011 in    At Nu Echo, we&#8217;ve been developing and refining our own VoiceXML application framework for years now. As part of our nth rewrite (and I&#8217;ll talk more about that rewrite and why we did it in another post), we decided to experiment with CouchDB. (For those new to CouchDB, it&#8217;s a schema-less document-oriented database. A so-called NoSQL  read more &#187; [...]</description>
		<content:encoded><![CDATA[<p>[...] CouchDB for call analysis data – a case study  May.18, 2011 in    At Nu Echo, we&#8217;ve been developing and refining our own VoiceXML application framework for years now. As part of our nth rewrite (and I&#8217;ll talk more about that rewrite and why we did it in another post), we decided to experiment with CouchDB. (For those new to CouchDB, it&#8217;s a schema-less document-oriented database. A so-called NoSQL  read more &#187; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on CouchDB for call analysis data &#8211; a case study by Mark Headd</title>
		<link>http://blog.nuecho.com/2011/05/18/couchdb-for-call-analysis-data-a-case-study/#comment-23395</link>
		<dc:creator>Mark Headd</dc:creator>
		<pubDate>Wed, 18 May 2011 12:46:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.nuecho.com/?p=1745#comment-23395</guid>
		<description>Great post!

I&#039;ve encountered the same issue with the occasional need to write custom views against CouchDB databases with a large number of documents.  The time needed to build the index for the view can be annoying and, sometimes, a deal breaker.

Not sure of there is a good answer for that.  Yet... ;-)</description>
		<content:encoded><![CDATA[<p>Great post!</p>
<p>I&#8217;ve encountered the same issue with the occasional need to write custom views against CouchDB databases with a large number of documents.  The time needed to build the index for the view can be annoying and, sometimes, a deal breaker.</p>
<p>Not sure of there is a good answer for that.  Yet&#8230; <img src='http://blog.nuecho.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>

