RE: inline grammar example

Hi Olli,

Thanks for your feedback.  From what I read, namespaces can be included in
cases such as SVG: http://dev.w3.org/html5/spec/Overview.html#svg-0. 

A WG proposal covers this:
http://dev.w3.org/SVG/proposals/svg-html/svg-html-proposal.html. 

Here are non-official examples:
http://www.tutorialspoint.com/html5/html5_svg.htm

HTML5 is a moving target in some respects, so some of the above could be
outdated.  The first reference seems to be up to date (November 2011).

It seems appropriate for this group to advocate SRGS and SSML namespaces.

Best regards,
Charles

-----Original Message-----
From: Olli Pettay [mailto:Olli.Pettay@helsinki.fi] 
Sent: Thursday, November 03, 2011 11:00 AM
To: Charles Hemphill
Cc: public-xg-htmlspeech@w3.org
Subject: Re: inline grammar example

On 11/03/2011 07:44 PM, Charles Hemphill wrote:
> Here is an inline grammar example.
>
> There is a high-level description of the data URI scheme at 
> http://en.wikipedia.org/wiki/Data_URI_scheme.  The official definition 
> is at http://tools.ietf.org/html/rfc2397.
>
> While it is possible to include inline grammars with the data URI 
> scheme, I recommend support for the SRGS<grammar>  element as well.  
> It's much easier to develop and maintain and it's easier to build 
> grammars on the fly with server-side scripting.  Another option would 
> be to have the server side write JavaScript that creates the grammars, 
> but that's another level of indirection.  Sometimes that will be 
> handy, but often it's unnecessary overhead.
>
> For an inline<grammar>  element, there is the possibility of text 
> appearing in the page (like the<tts>hello world</tts>  issue), but in 
> these cases conditional coding can be used.  That's a typical approach 
> as standards come into play.
>
> ------------------------
>
> Consider an example where you would like to select players from your
roster.
> The names come from a database, so it makes sense to generate them on 
> the fly.  Note that this is a very simple example and could be done in 
> other ways. Please focus on the mechanisms rather than the particular
example.
>
> Example1 with standard URI:
> We could write the grammar to a file and then reference the grammar via
URI.
> Then we end up with file overhead and temporary files.
> <form>
>    <reco grammar="http://example.com/rosternames.xml">
>      <input type="text"/>
>    </reco>
> </form>
>
> Example2 with data URI scheme
> Note that whitespace is only allowed with base64, so we must have a 
> really long string.
> <form>
>    <reco grammar='data:text/html;charset=utf-8,<?xml version="1.0"
> encoding="UTF-8"?>\r\n<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 
> 1.0//EN"\r\n 
> "http://www.w3.org/TR/speech-grammar/grammar.dtd">\r\n<grammar
> xmlns="http://www.w3.org/2001/06/grammar"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.w3.org/2001/06/grammar
> http://www.w3.org/TR/speech-grammar/grammar.xsd" xml:lang="en-US"
> version="1.0" root="roster"><meta name="help-hint" content="room 
> description"/><rule id="roster"
> scope="public"><example>Axel</example><example>Axel Eric and 
> Ondrej</example><ruleref uri="#players"/><item repeat="0-1">  
> and<ruleref uri="#players"/></item></rule><rule id="players"
> scope="private"><one-of><item>David<tag>David
> </tag></item><item>Ondrej<tag>Ondrej</tag></item><item>Eric<tag>Eric
> </tag></item><item>Kasraa<tag>Kasraa</tag></item><item>Axel<tag>Axel
> </tag></item><item>Marcus<tag>Marcus</tag></item><!-- and so on up to 
> 18 names --></one-of></rule></grammar>'
>    >
>      <input type="text"/>
>    </reco>
> </form>
>
> Example 3 with real inline grammar:
> Much easier to read.  More easily supports server-side scripting to 
> plug in names (at least for humans while developing).
> Note that the<reco>  element is the parent of both the<input>  
> and<grammar> elements.
> <form>
>    <reco>
>      <input type="text"/>
> <grammar xmlns="http://www.w3.org/2001/06/grammar"
>           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>           xsi:schemaLocation="http://www.w3.org/2001/06/grammar
>
> http://www.w3.org/TR/speech-grammar/grammar.xsd"
>           xml:lang="en-US" version="1.0"
>           root="roster">


this doesn't work. HTML doesn't have namespaces.


>    <meta name="help-hint" content="room description"/>
>    <rule id="roster" scope="public">
>      <example>Axel</example>
>      <example>Axel Eric and Ondrej</example>
>      <ruleref uri="#players"/>
>      <item repeat="0-1">
>        and
>        <ruleref uri="#players"/>
HTML parser would not understand and would, IIRC, actually expect that there
was </ruleref> somewhere. (void elements, like <input> are special cases in
HTML parsing)



>      </item>
>    </rule>
>    <rule id="players" scope="private">
>      <one-of>
>        <item>David<tag>David</tag></item>
>        <item>Ondrej<tag>Ondrej</tag></item>
>        <item>Eric<tag>Eric</tag></item>
>        <item>Kasraa<tag>Kasraa</tag></item>
>        <item>Axel<tag>Axel</tag></item>
>        <item>Marcus<tag>Marcus</tag></item>
>        <!-- and so on up to 18 names -->
>      </one-of>
>    </rule>
> </grammar>
>    </reco>
> </form>
>
>
>

Received on Thursday, 3 November 2011 18:51:57 UTC