W3C home > Mailing lists > Public > www-voice@w3.org > January to March 2005

RE: [pls] Invitation letter for WAI/I18N/MMI people interested on Pronunciation Lexicon spec

From: Pawson, David <David.Pawson@rnib.org.uk>
Date: Fri, 25 Feb 2005 11:08:02 -0000
Message-ID: <47DFC5E9D8B9E4429C2861946386EA9901E9B64E@pbrmsx01.ads.rnib.org.uk>
To: <www-voice@w3.org>
CC: <w3c-wai-pf@w3.org>

Comments on ->http://www.w3.org/TR/2005/WD-pronunciation-lexicon-20050214
Dave Pawson, 
AC RNIB.
Date: 2005-02-25T10:40:13Z


General.

Informative | Normative. Some sections are marked informative. Is it
to be assumed that those not so marked are normative?

General. Terminology. I accept that the target reader is an
implementor, but for other readers (authors) it would helpful if a
glossary of terms were available. The language is slightly esoteric.


Section. Comment.
Terminology.
R6.1 = requirements document, 6.1


2. IPA is a should. Unless it is a must, it appears to me that the WG are
attempting to standardise vendor syntax? How does this relate to IPR and
Patents? I believe this should be a 'must' statement to meet the requirements
of R6.1.

Last bullet of list.
Is the 'production of output' in scope for this WD?

I do not consider authoring in IPA to be author friendly. If the WG
are strongly in favour of this I would request that a link be provided
to a translator from some other format easier to use. I fear total
rejection if authors are requested to use numerical character
entities, as shown in some of the examples.

3. Question. Is the difference between R4.3 and R7.2 too great to be
   added to this section?

4. No container (element) for a lexeme group, as per the requirement.

4.1 Issue. A high percentage of exceptions needing a lexicon entry are
  because of a language change within a document in my experience. For
  example an English document containing Welsh, French or German
  words. If an SSML solution is available then OK, but its a pain. If
  my synth speech engine supports n languages, then why not let me say
  so in the lexicon? Ideally on individual words, less so on groups of
  words in that language.

Says 'lexicon element can designate'. Perhaps this should be 'must'
designate?

4.2. Meta and metadata.

Could clearer semantic element names be found which would enable clear
differentiation between these two? meta as child of metadata is a
possibility from the descriptions.

Using the html for of name|content is extensible, but somewhat
outdated?  Following the metadata content model, using rdf or dublin
core seems more reasonable. 

No example is given for http-equiv? No hint at syntax either. Is it
intended to follow the html model? If this is XML, why not deduce it
from the encoding and then RFC3023 for the mime type?

Is seeAlso the only *allowed* property name (attribute value)?
Note that 4.1 states zero or more meta children allowed.

4.3 From the description the meta element should be a child of this
  element.

Perhaps the examples should indicate lexical content as well as
metadata, to at least indicate validity?

Section 5.
  All examples omit a namespace declaration.

I think these examples clearly demonstrate the unfriendly nature of
IPA for an author.

In case its any help, I've attached a schema which I believe is valid.
XSD may not suffice, due to the restrictions on the phoneme/@prefer
usage. 

DaveP.


<?xml version="1.0" encoding="UTF-8"?>
<grammar 
ns="http://www.w3.org/2005/01/pronunciation-lexicon"
 xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" 
 xmlns:rng="http://relaxng.org/ns/structure/1.0" 
xmlns="http://relaxng.org/ns/structure/1.0" 
xmlns:html ="http://www.w3.org/1999/xhtml"
xmlns:s = "http://www.ascc.net/xml/schematron"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">


 
  <a:documentation>
    <html:h2>  Demo's the use of Relax ng.</html:h2>
    <html:p>Revision 1.1 </html:p>
    <html:p>  gyear is the 4 digit year format </html:p>
  </a:documentation>

 <!-- root element -->
  <start>
    <ref name="Lexicon"/>
  </start>


<define name="Lexicon">
  <a:documentation>
    <html:p>Element  lexicon. Document root</html:p>
  </a:documentation>
  <element name="lexicon">
    <interleave>
    <attribute name="alphabet">
      <text/>
    </attribute>
    <attribute name="version">
      <value type="token">1.0</value>
    </attribute>
    <attribute name="xml:lang">
        <data type="language">
        </data>
    </attribute>
    <attribute name="xml:base">
        <data type="anyURI">
        </data>
    </attribute>

    </interleave>
    <zeroOrMore>
      <ref name="Meta"/>
    </zeroOrMore>
    <zeroOrMore>	
      <ref name="Metadata"/>
    </zeroOrMore>
    <zeroOrMore>
	<ref name="Lexeme"/>
    </zeroOrMore>
  </element>
</define>



<define name="Lexeme">
  <a:documentation>
    <html:p>Element lexeme. Single PLS entry </html:p>
  </a:documentation>
  <element name="lexeme">
    <oneOrMore>
      <ref name="Grapheme"/>
    </oneOrMore>
    <choice>
      <optional>
	<oneOrMore>
	  <ref name="Phoneme"/>
	</oneOrMore>
      </optional>
      <group>
	<ref name="Alias"/>

      </group>
    </choice>
    <zeroOrMore>
      <ref name="Example"/>
    </zeroOrMore>
  </element>
</define>

<define name="Meta">
  <a:documentation>
    <html:p>Element meta. Metadata container </html:p>
  </a:documentation>
  <element name="meta">
    <s:rule
	context="meta">
      <s:assert
	  test="count(../meta[@http-equiv]) = 1">
	Only one http-equiv attribute is allowed
      </s:assert>
    </s:rule>

    <choice>
      <attribute name="name"><text/></attribute>
      <attribute name="http-equiv"><text/></attribute>
    </choice>
    <attribute name="content"><text/></attribute>
    <empty/>
  </element>
</define>

<define name="Metadata">
  <a:documentation>
    <html:p>Element metameta. Metadata entry </html:p>
  </a:documentation>
  <element name="metadata">
   <ref name="foreign-elements"/>
  </element>
</define>

<define name="Phoneme">
  <a:documentation>
    <html:p>Element  phoneme</html:p>
  </a:documentation>
  <element name="phoneme">
    <s:rule 
	context = "phoneme">
      <s:assert 
	  test = "(count(../phoneme)>1 and count(../phoneme/@prefer)= 0)">
	Must have at least one @prefer element
      </s:assert>
    </s:rule>
    <optional>
      <attribute name="alphabet">
	<choice>
	  <value type="token">ipa</value>
	  <data type="token">
	    <param name="pattern">x-[\p{L}]+</param>
	  </data>
	</choice>
      </attribute>
    </optional>
    <optional>
      <attribute name="prefer">
	<choice>
	  <value type="token">true</value>
	  <value type="token">false</value>
	</choice>
      </attribute>
    </optional>
    <text/>
  </element>
</define>

<define name="Grapheme">
  <a:documentation>
    <html:p>Element grapheme </html:p>
  </a:documentation>
  <element name="grapheme">
    <optional>
      <attribute name="orthography">
  <a:documentation>
    <html:p>Attribute orthography. Identifies the script code used for
    writing the orthography. The script code must be compliant with
    ISO 15924 [ISO15924].</html:p>
  </a:documentation>
	<text/>
      </attribute>
    </optional>
    <text/>
  </element>
</define>


<define name="Alias">
  <a:documentation>
    <html:p>Element alias  </html:p>
  </a:documentation>
  <element name="alias">
    <text/>
  </element>
</define>

<define name="Example">
  <a:documentation>
    <html:p>Element  example</html:p>
  </a:documentation>
  <element name="example">
    <text/>
  </element>
</define>


  <define name="foreign-elements">
    <a:documentation>
      <html:p id="foreign-elements">Element xxx, anything which isn't in the same namespace as the
      source document and its one other used ns.</html:p>
    </a:documentation>
    <element>
      <anyName>
	<except>
	  <nsName ns="http://www.ascc.net/xml/schematron"/>
	  <nsName ns="http://www.w3.org/2005/01/pronunciation-lexicon"/>
	  <nsName/>
	</except>
      </anyName>
      <ref name="anything"/>
    </element>
  </define>

  <define name="anything">
    <a:documentation>
      <html:p>Element YYY. Used by <html:a
      href="#foreign-elements">foreign-elements</html:a></html:p>
    </a:documentation>
    <zeroOrMore>
      <choice>
        <element>
          <anyName/>
          <ref name="anything"/>
        </element>
        <attribute>
          <anyName/>
        </attribute>
        <text/>
      </choice>
    </zeroOrMore>
  </define>

<!-- 
<define name="">
  <a:documentation>
    <html:p>Element  </html:p>
  </a:documentation>
  <element name="">

  </element>
</define>

 -->

</grammar>

-- 
DISCLAIMER:

NOTICE: The information contained in this email and any attachments is 
confidential and may be privileged.  If you are not the intended 
recipient you should not use, disclose, distribute or copy any of the 
content of it or of any attachment; you are requested to notify the 
sender immediately of your receipt of the email and then to delete it 
and any attachments from your system.

RNIB endeavours to ensure that emails and any attachments generated by
its staff are free from viruses or other contaminants.  However, it 
cannot accept any responsibility for any  such which are transmitted.
We therefore recommend you scan all attachments.

Please note that the statements and views expressed in this email and 
any attachments are those of the author and do not necessarily represent
those of RNIB.

RNIB Registered Charity Number: 226227

Website: http://www.rnib.org.uk
Received on Friday, 25 February 2005 11:08:23 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 30 October 2006 12:49:00 GMT