RE: inline grammar example

Hi Ollie,

Thanks for asking Hsivonen.  It will be interesting to get some feedback on
this.

It does add to HTML, but both SRGS and SSML are already W3C standards.  I
think this should mostly depend on how important speech is to the Web.  It's
been getting a lot of traction, but is it important enough yet?  SVG went
through a painful phase with plugins.  Hopefully SRGS and SSML can avoid
this.

Best regards,
Charles

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

On 11/03/2011 08:51 PM, Charles Hemphill wrote:
> 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,
Yes, HTML(5) is changing all the time, which is why the WhatWG spec is
"Living Standard".

> 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.
>

HTML does have special cases for MathML and SVG, the first one perhaps
mainly because certain browser engine has supported it for a long time, and
the latter because it is actually being used in the web.
Namespace attributes aren't handled, but when the parser gets <svg>, it
knows that the element is in svg namespace.

I would be a bit surprised to see WhatWG/HTML WG to accept SRGS and SSML
elements inline in the HTML.
But I'll ask hsivonen (the HTML parsing guy).

In general I think HTML Speech API has better chances to get accepted
outside this group if it complicates rest of the web platform as little as
possible.
Adding a JS API is totally ok, and probably also <reco>, but bringing in two
new XML languages to HTML sounds quite a bit more complicated.





-Olli



> 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 20:23:45 UTC