W3C

PLS 1.0 Implementation Report Plan

Version: July 10, 2008

Editor:
Patrizio Bergallo, Loquendo
Authors:
Daniel Burnett, Voxeo
Paolo Baggia, Loquendo
Paul Bagshaw, France Telecom

Table of Contents

1. Introduction

The PLS 1.0 Specification entered the Candidate Recommendation period on December 12, 2007.

The planned date for entering Proposed Recommendation is July 15, 2008. Preparation of an Implementation Report is a key criteria for moving beyond the Candidate Recommendation. This document describes the requirements for the Implementation Report and the process that the Voice Browser Working Group will follow in preparing the report.

Note: This Implementation Report Plan was modified as follows:

18 December 2007
10 July 2008

1.1 Implementation Report Objectives

  1. Must verify that the specification is implementable.
  2. Must demonstrate interoperability of implementations of the specification.

1.2 Implementation Report Non-objectives

  1. The IR does not attempt conformance testing of implementations.

2. Work During the Candidate Recommendation Period

During the CR period, the Working Group will carry out the following activities:

  1. Clarification and improvement of the exposition of the specification.
  2. Disposing of Comments that were communicated to the WG during the CR period.
  3. Preparation of an Implementation Report meeting the criteria outlined in this document.

3. Participating in Implementation Report

You are invited to contribute to the assessment of the W3C Pronunciation Lexicon Specification 1.0 Specification by participating in the Implementation Report process.

4. Entrance Criteria to PR

The VBWG established the following entrance criteria to Proposed Recommendation in the Request for CR:

  1. Sufficient reports of implementation experience have been gathered to demonstrate that PLS processors based on the specification are implementable and have compatible behavior.
  2. Specific Implementation Report requirements (outlined below) have been met.
  3. Formal responses to all comments received by the Working Group.

5. Implementation Report Requirements

5.1 Detailed requirements for Implementation Report

  1. Testimonials from implementers will be included in the IR when provided to document the utility and implementability of the specification.
  2. IR must cover all specified features in the specification. For each feature the IR should indicate:
  3. Feature status is a factor in test coverage in the report:

5.2 Notes on Testing

  1. A test report must indicate the outcome of each test. Possible outcomes are pass, fail or not-impl.
  2. A test report may contain an additional comment for each test. If a test fails a comment should be added (see also Detailed requirements for Implementation Report).
  3. A tester is free to adapt the value of the xml:lang attribute, "ipa" pronunciations and <grapheme> orthographies to a language claimed to be supported by the processor. Such adaptation must be limited so that it does not change the logic or character of the assertion test.
  4. Some tests contain notes that should be read before executing them. These notes are contained in the instructions inside the tests. See Appendix A for a detailed description of the coding rules.
  5. Tests containing non-conformant PLS documents are not intended to test the conformance claim of a PLS processor. They are there for testing things like schema and may be used by implementers who may wish to test (optional) rejection of non-conformant PLS 1.0 documents by their processor.

5.3 Out of Scope

  1. IR will not cover SSML processor conformance.
  2. IR will not cover SRGS/SISR processor conformance.

6. Systems

Note: The testimonials with yellow background from "Acme Labs" and "Beta Inc." are just examples and will be replaced with the actually submitted testimonials.

Acme Labs

Executive Summary

The W3C PLS 1.0 Specification is well-written, easily implementable and extremely useful. Acme Labs used it to describe the recipe for Bagna Cáuda.

Beta Inc.

Executive Summary

The W3C PLS 1.0 Specification is the best thing since sliced bread, extremely useful, easily implementable and well-written. Beta Inc. used it to build a new generation of interactive services, establish world peace, build a new chianti-spaghetti hybrid vehicle, and mix a perfect martini.

7. Test Results

The following table lists the assertions that were gleaned from the Pronunciation Lexicon 1.0 Specification.

IDSpecConformaceTest TypeCategoryCustomizeAbstractResults
PassFailN/I
20
[txml,pls]
[2]RequiredAutoGeneralNo Values for the alphabet attribute other than "ipa" or strings of the form "x-organization" or "x-organization-alphabet" are invalid. 000
22
[txml,pls]
[2]RequiredAutoGeneralNo For an alphabet value of "ipa", the PLS processor MUST support the Unicode representations of the phonetic characters developed by the International Phonetic Association [IPA]. Legal phonetic/phonemic values are strings of the values specified in Appendix 2 of [IPAHNDBK]. The processor MUST syntactically accept all legal values. 000
23
[txml,pls]
[2]OptionalAutoBoth TTS and ASRYes For an alphabet value of "ipa", the processor SHOULD handle all Unicode IPA codes that can reasonably be considered to belong to the current language. 000
79
[txml,pls]
[3]RequiredAutoGeneralNo A legal Pronunciation Lexicon Specification document MUST have a legal XML Prolog from Section 2.8 of either XML 1.0 or XML 1.1. 000
81
[txml,pls]
[3]RequiredAutoGeneralNo The <lexicon> element MUST designate the PLS namespace by declaring an xmlns attribute or an attribute with an "xmlns" prefix. See Section 2 of Namespaces in XML (Namespaces in XML 1.0 [XML-NS10] or Namespaces in XML 1.1 [XML-NS11]) for details. 000
83
[txml,pls]
[3]OptionalAutoGeneralNo It is RECOMMENDED that the <lexicon> element also indicate the location of the PLS schema (see Appendix A) via the xsi:schemaLocation attribute from Section 2.6.3 of XML Schema Part 1: Structures Second Edition [XML-SCHEMA-1]. 000
84
[txml,pls]
[3]RequiredAutoGeneralNo The PLS namespace MAY be used with other XML namespaces as per the Namespaces in XML Recommendations (Namespaces in XML 1.0 [XML-NS10] or Namespaces in XML 1.1 [XML-NS11]). 000
89
[txml,pls]
[3]OptionalManualGeneralYes A Conforming Pronunciation Lexicon Specification Processor SHOULD inform the hosting environment when it parses a Conforming Pronunciation Lexicon Specification Document whose xml:lang attribute (on the <lexicon> element) has a value representing a natural (human) language that the Processor does not support. 000
90
[txml,pls]
[3]RequiredManualGeneralNo When a Conforming Pronunciation Lexicon Specification Processor encounters elements or attributes that are not declared in this specification and such elements or attributes occur where it is not forbidden in this specification, the processor MAY choose to: * ignore the non-standard elements and/or attributes * or, process the non-standard elements and/or attributes * or, reject the document containing those elements and/or attributes 000
91
[txml,pls]
[3]RequiredAutoGeneralNo A Conforming Pronunciation Lexicon Specification Processor MUST be able to parse and process Conforming Pronunciation Lexicon Specification documents. 000
3
[txml,pls]
[4.1]RequiredAutoGeneralNo All PLS markup MUST be associated with the PLS namespace. 000
4
[txml,pls]
[4.1]RequiredAutoGeneralNo <lexicon> element: The REQUIRED 'version' attribute. 000
5
[txml,pls]
[4.1]RequiredAutoGeneralNo The <lexicon> element MUST specify an 'alphabet' attribute. 000
6
[txml,pls]
[4.1]RequiredAutoGeneralNo <lexicon> element: The REQUIRED 'xml:lang' attribute. 000
7
[txml,pls]
[4.1]RequiredAutoGeneralNo <lexicon> element: The required 'version' attribute MUST have the value "1.0". 000
8
[txml,pls]
[4.1]RequiredAutoGeneralNo <lexicon> element: The values of the 'alphabet' attribute are described in Section 2. (Section 2) A valid value for the 'alphabet' attribute is "ipa". 000
9
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <meta>, if present, must be a sub-element of <lexicon> 000
49
[txml,pls]
[4.1]RequiredAutoGeneralNo IETF Best Current Practice 47 [BCP47] is the normative reference on the values of the xml:lang attribute. 000
50
[txml,pls]
[4.1]RequiredAutoGeneralYes PLS documents MAY include the "xml:base" attribute as defined in [XML-BASE]. 000
53
[txml,pls]
[4.1]RequiredAutoGeneralNo The root element of the Pronunciation Lexicon markup language is the <lexicon> element. 000
54
[txml,pls]
[4.1]RequiredAutoBoth TTS and ASRYes The default pronunciation alphabet MAY be overridden for a given lexeme using the <phoneme> element. 000
61
[txml,pls]
[4.1]RequiredAutoGeneralYes <lexicon> element: The values of the 'alphabet' attribute are described in Section 2. (Section 2) A valid value for the 'alphabet' attribute are vendor-defined strings of the form "x-organization" or "x-organization-alphabet". 000
70
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <meta>, if present, must be before <metadata> 000
71
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <meta>, if present, must be before <lexeme> 000
72
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <metadata>, if present, must be a sub-element of <lexicon> 000
73
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <metadata>, if present, must be before <lexeme> 000
74
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <metadata> may occur only once 000
75
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <lexeme>, if present, must be a sub-element of <lexicon> 000
77
[txml,pls]
[4.1]RequiredAutoGeneralNo A <lexicon> element MUST contain zero or more <meta> elements, followed by an OPTIONAL <metadata> element, followed by zero or more <lexeme> elements. Thus: * <lexicon> may contain zero <lexeme> elements. 000
10
[txml,pls]
[4.2]RequiredAutoGeneralNo <meta> element: Either a 'name' or 'http-equiv' attribute is REQUIRED. It is an error to provide both 'name' and 'http-equiv' attributes. 000
11
[txml,pls]
[4.2]RequiredAutoGeneralNo <meta> element: A 'content' attribute is also REQUIRED. 000
24
[txml,pls]
[4.2]RequiredAutoGeneralNo http-equiv attribute: Although the preferred method of providing HTTP header information is that of using HTTP header fields, the http-equiv content MAY be used in situations where the PLS document author is unable to configure HTTP header fields associated with their document on the origin server, for example, cache control information. 000
27
[txml,pls]
[4.2]RequiredAutoGeneralNo The only <meta> property defined by this specification is "seeAlso". It is used to specify a resource that might provide additional metadata information about the content. This property is modeled on the "seeAlso" property of "RDF Vocabulary Description Language 1.0: RDF Schema" [RDF-SCHEMA], section 5.4.1. 000
32
[txml,pls]
[4.3]RequiredAutoGeneralNo The <metadata> element is a container in which information about the document can be placed using metadata markup. The behavior of software processing the content of a <metadata> element is not described in this specification. Therefore, software implementing this specification is free to ignore that content. Although any metadata markup can be used within <metadata>, it is RECOMMENDED that the RDF/XML Syntax [RDF-XMLSYNTAX] be used, in conjunction with the general metadata properties defined by the Dublin Core Metadata Initiative [DC] (e.g., Title, Creator, Subject, Description, Rights, etc.) 000
12
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element has an OPTIONAL 'xml:id' attribute. Thus: * the value of 'xml:id' attribute, if present, must be unique to the document 000
13
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element has an OPTIONAL 'role' attribute which takes as its value one or more white-space separated QNAMEs Thus: * a namespace, if present, in a QNAME of the 'role' attribute value must be a declared namespace. 000
14
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element contains one or more pronunciations (either by <phoneme> or <alias> elements or a combination of both). Thus: * <lexeme> must contain at least one <phoneme> or <alias> 000
66
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element contains one or more <grapheme> elements. Thus: * <grapheme> must be a sub-element of <lexeme> 000
67
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element contains one or more pronunciations (either by <phoneme> or <alias> elements or a combination of both). Thus: * <phoneme>, if present, must be a sub-element of <lexeme> 000
68
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element contains one or more pronunciations (either by <phoneme> or <alias> elements or a combination of both). Thus: * <alias>, if present, must be a sub-element of <lexeme> 000
69
[txml,pls]
[4.4]RequiredAutoGeneralNo The <lexeme> element contains zero or more <example> elements. Thus: * <example>, if present, must be a sub-element of <lexeme> 000
78
[txml,pls]
[4.4]RequiredAutoGeneralNo The children of the <lexeme> element may appear in any order. 000
28
[txml,pls]
[4.5]RequiredAutoGeneralNo A <lexeme> contains at least one <grapheme> element. 000
30
[txml,pls]
[4.5]RequiredAutoGeneralNo The <grapheme> element MUST contain 'character' child information items. 000
31
[txml,pls]
[4.5]RequiredAutoBoth TTS and ASRNo The <lexeme> element MAY contain more than one <grapheme> element to define the base orthography and any variants. Note that all the pronunciations given within the <lexeme> apply to each and every <grapheme> within the <lexeme>. 000
47
[txml,pls]
[4.5]RequiredAutoGeneralNo The <grapheme> element MUST NOT contain 'element' child information items from any namespace, i.e. PLS or foreign namespace. 000
15
[txml,pls]
[4.6]RequiredAutoGeneralNo <phoneme> element: The legal values for the 'alphabet' attribute are described in Section 2. (Section 2) A valid values for the 'alphabet' attribute is "ipa". 000
16
[txml,pls]
[4.6]RequiredAutoGeneralNo <phoneme> element, optional 'prefer' attribute: The possible values are: "true" or "false". 000
33
[txml,pls]
[4.6]RequiredAutoGeneralNo A <lexeme> MAY contain one or more <phoneme> elements. 000
34
[txml,pls]
[4.6]RequiredAutoGeneralNo The <phoneme> element MUST contain 'character' child information items. 000
35
[txml,pls]
[4.6]RequiredAutoGeneralNo The <phoneme> element MUST NOT contain 'element' child information items from any namespace, i.e. PLS or foreign namespace. 000
36
[txml,pls]
[4.6]RequiredAutoGeneralNo A <phoneme> element MAY have an alphabet attribute. 000
37
[txml,pls]
[4.6]RequiredAutoBoth TTS and ASRYes The pronunciation alphabet specified in the alphabet attribute in a <phoneme> element, it is used for this <phoneme> element only. 000
38
[txml,pls]
[4.6]RequiredAutoTTSNo <phoneme> element, optional 'prefer' attribute: The default value is "false". 000
39
[txml,pls]
[4.6]RequiredAutoTTSNo The prefer mechanism spans both the <phoneme> and <alias> elements; 000
57
[txml,pls]
[4.6]RequiredAutoTTSNo <phoneme> element, optional 'prefer' attribute: It indicates the pronunciation that MUST be used by a speech synthesis engine when it is set to "true". 000
76
[txml,pls]
[4.6]RequiredAutoGeneralYes <phoneme> element: The values of the 'alphabet' attribute are described in Section 2. (Section 2) A valid value for the 'alphabet' attribute are vendor-defined strings of the form "x-organization" or "x-organization-alphabet". 000
17
[txml,pls]
[4.7]RequiredAutoGeneralNo The <alias> element has an OPTIONAL prefer attribute analogous to the prefer attribute for the <phoneme> element; see section 4.6. (Section 4.6) The possible values are: "true" or "false". 000
40
[txml,pls]
[4.7]RequiredAutoGeneralNo A <lexeme> element MAY contain one or more <alias> elements. 000
41
[txml,pls]
[4.7]RequiredAutoGeneralNo The <alias> element MUST contain 'character' child information items. 000
42
[txml,pls]
[4.7]RequiredAutoGeneralNo The <alias> element MUST NOT contain 'element' child information items from any namespace, i.e. PLS or foreign namespace. 000
43
[txml,pls]
[4.7]RequiredAutoGeneralNo In a <lexeme> element, both <alias> elements and <phoneme> elements MAY be present. 000
45
[txml,pls]
[4.7]RequiredAutoTTSNo <alias> element, optional prefer attribute: The default value is "false". 000
46
[txml,pls]
[4.7]RequiredAutoBoth TTS and ASRNo Pronunciations of <alias> element contents MUST be generated by the processor using pronunciations described by the <phoneme> element of any constituent graphemes in the PLS document and without invoking recursive access to the PLS document on the <alias> elements of any constituent graphemes. 000
56
[txml,pls]
[4.7]RequiredManualBoth TTS and ASRNo The processor SHOULD determine the pronunciations of the remaining <alias> element contents by the same process that it determines the pronunciation of out-of-lexicon graphemes. 000
59
[txml,pls]
[4.7]RequiredAutoTTSNo <alias> element, optional 'prefer' attribute: It indicates the pronunciation that MUST be used by a speech synthesis engine when it is set to "true". 000
51
[txml,pls]
[4.8]RequiredAutoGeneralNo The <example> element MUST contain 'character' child information items. 000
52
[txml,pls]
[4.8]RequiredAutoGeneralNo The <example> element MUST NOT contain 'element' child information items from any namespace, i.e. PLS or foreign namespace. 000
55
[txml,pls]
[4.8]RequiredAutoGeneralNo Zero, one or many <example> elements MAY be provided for a single <lexeme> element. 000
25
[txml,pls]
[4.9.1]RequiredAutoASRNo If more than one pronunciation for a given <lexeme> is specified (either by <phoneme> elements or <alias> elements or a combination of both), an ASR processor MUST consider each of them as valid pronunciations for the <grapheme>. 000
26
[txml,pls]
[4.9.1]RequiredAutoASRNo If more than one <lexeme> contains the same <grapheme>, all relevant pronunciations will be collected in document order and an ASR processor MUST consider all of them as valid pronunciations for the <grapheme>. Case without role attribute. 000
92
[txml,pls]
[4.9.1]RequiredAutoASRNo If more than one <lexeme> contains the same <grapheme>, all relevant pronunciations will be collected in document order and an ASR processor MUST consider all of them as valid pronunciations for the <grapheme>. Case with role attribute. 000
62
[txml,pls]
[4.9.2]RequiredAutoTTSNo If more than one pronunciation for a given <lexeme> is specified (either by <phoneme> elements or <alias> elements or a combination of both), a TTS processor MUST use the first one in document order that has the prefer attribute set to "true". 000
63
[txml,pls]
[4.9.2]RequiredAutoTTSYes If more than one pronunciation for a given <lexeme> is specified (either by <phoneme> elements or <alias> elements or a combination of both) and none of the pronunciations has prefer set to "true", the TTS processor MUST use the first one in document order unless the TTS processor is documented as having a method of selecting pronunciations, in which case the processor MUST use any one of the pronunciations. 000
64
[txml,pls]
[4.9.2]RequiredAutoTTSNo If more than one <lexeme> contains the same <grapheme>, all relevant pronunciations (see discussion in Section 4.4 regarding the selection of relevant pronunciations using the role attribute) will be collected in document order; if at least one of the relevant pronunciations has the prefer attribute set to "true", a TTS processor MUST use the first one in document order that has the prefer attribute set to "true". Case without role attribute. 000
65
[txml,pls]
[4.9.2]RequiredAutoTTSYes If more than one <lexeme> contains the same <grapheme>, all relevant pronunciations (see discussion in Section 4.4 regarding the selection of relevant pronunciations using the role attribute) will be collected in document order; if none of the relevant pronunciations has prefer set to "true", the TTS processor MUST use the first one in document order unless the TTS processor is documented as having a method of selecting pronunciations, in which case the processor MUST use any one of the relevant pronunciations. Case without role attribute. 000
93
[txml,pls]
[4.9.2]RequiredAutoTTSNo If more than one <lexeme> contains the same <grapheme>, all relevant pronunciations (see discussion in Section 4.4 regarding the selection of relevant pronunciations using the role attribute) will be collected in document order; if at least one of the relevant pronunciations has the prefer attribute set to "true", a TTS processor MUST use the first one in document order that has the prefer attribute set to "true". Case with role attribute. 000
94
[txml,pls]
[4.9.2]RequiredAutoTTSYes If more than one <lexeme> contains the same <grapheme>, all relevant pronunciations (see discussion in Section 4.4 regarding the selection of relevant pronunciations using the role attribute) will be collected in document order; if none of the relevant pronunciations has prefer set to "true", the TTS processor MUST use the first one in document order unless the TTS processor is documented as having a method of selecting pronunciations, in which case the processor MUST use any one of the relevant pronunciations. Case with role attribute. 000

Appendices

Appendix A - PLS 1.0 Conformance Language Definition

This appendix describes a framework for authoring PLS tests.

The framework allows specifying the expected behavior of a test in a formal manner, enabling automation of testing. It provides the way to represent test input and excepted output as well as the possibility to specify instructions to execute the test. This knowledge is contained in a separated file that refers to the actual PLS test files.

In the following a description of the language elements, the related XML schema and an example of use are given.

A.1 <test> Element

The root element of the PLS conformance language is the <test> element. A <test> element contains an ordered sequence of elements consisting of an OPTIONAL <instructions> element, followed by zero or more OPTIONAL ordered sequences of input/output data, followed by a REQUIRED <lexicon> element.

The namespace URI for PLS conformance is "http://www.w3.org/2007/01/pls-conformance". All PLS conformance markup MUST be associated with the PLS conformance namespace.

A.2 <instructions> Element

The <instructions> element SHOULD be specified for tests that may be customized. The <instructions> element contains text that informs testers what may be modified in the test.

A.3 Input/Output Data

Input/Output data SHOULD be specified in the test of an assertion that is categorized as applying to either tts, asr or both. Input/Output data is specified by an ordered sequence of elements consisting of a REQUIRED <input> element, followed by one or two REQUIRED <output> elements. Note that a test contains zero or more such sequences.

A.3.1 <input> Element

The <input> element contains the orthography of the input to the PLS processor.

The <input> element MAY have a role attribute (see Section 4.4 of the Pronunciation Lexicon Specification) that is to be used by a PLS processor when selecting the most relevant pronunciations. The role attribute takes as its value one or more white-space separated QNames.

A.3.2 <output> Element

The <output> element MUST have a category attribute. Possible values are "tts" for output expected in a TTS context and "asr" for output expected in an ASR context. If an input/output data sequence contains two <output> elements then the value of the category attribute MUST be unique to each of the elements. An assertion that is categorized as applying to "both" contexts SHOULD have two <output> elements in the input/output data.

The <output> element MUST contain one or more <item> elements. When the value of the category attribute is tts, any one <item> element describes a valid output of a compliant PLS processor in a TTS context. When the value of the category attribute is asr, the output of a compliant PLS processor in an ASR context is expected to exactly match that described by the complete set of <item> elements. Note that the order of the <item> elements has no significance.

A.3.2.1 <item> Element

The <item> element contains a choice of one or more <outalias> and <outphoneme> elements. The order of these elements is significant as it is the order of the reading of the input orthography or of the content of an <alias> element.

A.4 <lexicon> Element

The <lexicon> element MUST have a uri attribute specifying the URI that identifies the location of a PLS document with media type application/pls+xml .

The REQUIRED conformant attribute indicates whether or not the referenced PLS document is a conformant PLS document. Possible values are true for a conformant document or false for a non-conformant document. Note that it is inappropriate to specify input/output data in a test that references a non-conformant PLS document.

A.5 Schema for PLS Conformance Language

The following XML Schema defines the PLS conformance language.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:pc="http://www.w3.org/2007/01/pls-conformance"
    xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon"
    targetNamespace="http://www.w3.org/2007/01/pls-conformance"
    elementFormDefault="qualified"
	  version="1.0">
  <xs:import namespace="http://www.w3.org/2005/01/pronunciation-lexicon" 
    schemaLocation="http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"/>
  <xs:attribute name="category">
    <xs:simpleType>
      <xs:restriction base="xs:token">
        <xs:enumeration value="tts"/>
        <xs:enumeration value="asr"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:attribute>
  <xs:element name="instructions" type="xs:string">
    <xs:annotation>
      <xs:documentation>
        Instruction for a test that may be customized
      </xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name="input">
    <xs:annotation>
      <xs:documentation>Input grapheme</xs:documentation>
    </xs:annotation>
    <xs:complexType mixed="true">
      <xs:attribute name="role" type="pls:role.datatype" use="optional"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="output">
    <xs:annotation>
      <xs:documentation>Output required from PLS processor</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence maxOccurs="unbounded">
        <xs:element name="item">
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="outphoneme">
                <xs:annotation>
                  <xs:documentation>pronunciation</xs:documentation>
                </xs:annotation>
                <xs:complexType mixed="true">
                  <xs:attribute name="alphabet" type="pls:alphabet.datatype" 
                    use="required"/>
                </xs:complexType>
              </xs:element>
              <xs:element name="outalias" type="xs:string">
                <xs:annotation>
                  <xs:documentation>text</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute ref="pc:category" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="test">
    <xs:annotation>
      <xs:documentation>PLS conformance test</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="pc:instructions" minOccurs="0"/>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="pc:input"/>
          <xs:element ref="pc:output" maxOccurs="2"/>
        </xs:sequence>
        <xs:element name="lexicon">
          <xs:annotation>
            <xs:documentation>PLS lexicon resource</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:attribute name="uri" type="xs:anyURI" use="required"/>
            <xs:attribute name="conformant" type="xs:boolean" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

A.6 Examples

The following examples illustrate the use of the PLS 1.0 conformance language. Each example is made up of the conformant language document (.txml) and the related PLS test document (.pls).

Example 1

The following example describes the expected pronunciation of the word theater both in tts and asr contexts. Given that pronunciation is expressed by the phoneme element in the PLS document (see next), the outphoneme element is used. The category attribute is used to represent each context.

<?xml version="1.0" encoding="utf-8"?>
<conf:test xmlns:conf="http://www.w3.org/2007/01/pls-conformance"
  xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2007/01/pls-conformance
    http://www.w3.org/Voice/2007/pls-irp/pls-conformance.xsd">
  <conf:input>theater</conf:input>
  <conf:output conf:category="tts">
    <conf:item>
      <conf:outphoneme alphabet="ipa">ˈθɪətər</conf:outphoneme>
    </conf:item>
  </conf:output>
  <conf:output conf:category="asr">
    <conf:item>
      <conf:outphoneme alphabet="ipa">ˈθɪətər</conf:outphoneme>
    </conf:item>
    <conf:item>
      <conf:outphoneme alphabet="ipa">ˈθiːjətər</conf:outphoneme>
    </conf:item>
  </conf:output>
  <conf:lexicon uri="example1.pls" conformant="true"/>
</conf:test>

Here is the PLS document that defines the pronunciation for the word theater.

<?xml version="1.0" encoding="utf-8"?>
<lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
    http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
  alphabet="ipa" xml:lang="en">
  <lexeme>
    <grapheme>theater</grapheme>
    <phoneme prefer="true">ˈθɪətər</phoneme>
    <phoneme>ˈθiːjətər</phoneme>
  </lexeme>
</lexicon>

Example 2

The following example describes the expected pronunciation of the word GNU both in tts and asr contexts. Given that pronunciation is expressed in terms of alias and phoneme elements in the PLS document (see next), the outalias and outphone elements are used. The category attribute is used to represent each context.

<?xml version="1.0" encoding="utf-8"?>
<conf:test xmlns:conf="http://www.w3.org/2007/01/pls-conformance"
  xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2007/01/pls-conformance
    http://www.w3.org/Voice/2007/pls-irp/pls-conformance.xsd">
  <conf:input>GNU</conf:input>
  <conf:output conf:category="tts">
    <conf:item>
      <conf:outalias>GNU is Not </conf:outalias>
      <conf:outphoneme alphabet="ipa">ˈjuːnɪks</conf:outphoneme>
    </conf:item>
  </conf:output>
  <conf:output conf:category="asr">
    <conf:item>
      <conf:outalias>GNU is Not </conf:outalias>
      <conf:outphoneme alphabet="ipa">ˈjuːnɪks</conf:outphoneme>
    </conf:item>
  </conf:output>
  <conf:lexicon uri="example2.pls" conformant="true"/>
</conf:test>

Here is the PLS document that defines the pronunciation for the word GNU.

<?xml version="1.0" encoding="utf-8"?>
<lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
    http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
  alphabet="ipa" xml:lang="en">
  <lexeme>
    <grapheme>GNU</grapheme>
    <alias>GNU is Not Unix</alias>
  </lexeme>
  <lexeme>
    <grapheme>Unix</grapheme>
    <alias>a multiplexed information and computing service</alias>
    <phoneme>ˈjuːnɪks</phoneme>
  </lexeme>
</lexicon>

Example 3

The following example sets the conformant attribute to false to refer to a non-conformant test.

<?xml version="1.0" encoding="utf-8"?>
<conf:test xmlns:conf="http://www.w3.org/2007/01/pls-conformance"
  xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"  
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2007/01/pls-conformance
    http://www.w3.org/Voice/2007/pls-irp/pls-conformance.xsd">
  <conf:lexicon uri="example3.pls" conformant="false"/>
</conf:test>

Here is an example of non-conformant PLS document: it doesn't contain any pronunciation.

<?xml version="1.0" encoding="utf-8"??>
<lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon
    http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
  alphabet="ipa" xml:lang="en">
<lexeme>
  <grapheme>theater</grapheme>
</lexeme>
</lexicon>

Appendix B - Downloading Tests

The pls-ir-20080710.zip archive contains a number of resources. The PLS tests are ordered by test assertion id and are organized into folders where the folder name corresponds to the assertion id. In addition the archive includes the following:

B.1 The Manifest

manifest.xml is a file containing the complete information about test assertions written in the PLS Implementation Report project. The structure of the Manifest presents a root element called <tests> ; this is the container of all the Test Assertions. Every Test Assertion is represented by an <assertion> element containing CDATA that represents the description of the test assertion. At the end of the file is the <contribs> element; this lists all the people who have contributed to the Implementation Report preparation. The <assertion> element must contain a <start> element that references the main test file and may optionally contain several <dep> element that identify the other tests useful to complete the test case. Here's the DTD for the Manifest:

<!ELEMENT assertion (#PCDATA)>
<!ATTLIST assertion
    id CDATA #REQUIRED
    spec CDATA #REQUIRED
    conformance (Required | Optional) #REQUIRED
    test-type (Manual | Auto) #REQUIRED
    category (General | Both | TTS | ASR) #REQUIRED
    customize (Yes | No) #REQUIRED
>
<!ELEMENT contrib EMPTY>
<!ATTLIST contrib
    usr_fname CDATA #REQUIRED
    usr_lname CDATA #REQUIRED
    usr_comp_name CDATA #REQUIRED
    editor CDATA #IMPLIED
>
<!ELEMENT contribs (contrib+)>
<!ELEMENT dep EMPTY>
<!ATTLIST dep
    uri CDATA #REQUIRED
    type CDATA #REQUIRED
>
<!ELEMENT start EMPTY>
<!ATTLIST start
    uri CDATA #REQUIRED
    type CDATA #REQUIRED
>
<!ELEMENT test (assertion, start, dep*)>
<!ELEMENT tests (test+, contribs)>

Test assertion typology is defined by several attributes on the <assertion> element. These attributes allow for a more complete identification of the nature of the current assertion and an idea of related tests structure.

<start> and <dep> elements are characterized by the following attributes:

For instance here’s a fragment of the manifest.xml document:

<tests>
[…]
 <test>
  <assertion id="8"   
        spec="S4.1" 
        conformance="Required" 
        test-type="Auto"
        category="General"
        customize="No">
    <![CDATA[ <lexicon> element: The values of the 'alphabet' 
    attribute are described in Section 2. (Section 2) A valid value 
    for the 'alphabet' attribute is "ipa". ]]>     
  </assertion>
  <start uri="8/8.txml" type="text/xml"/>
  <dep uri="8/8.pls" type="application/pls+xml"/>
 <test>
[…]
</tests>

The <tests> element contains the <contribs> element too: here you can find the generalities of all the contributors that have participated in the Implementation Report activity.

B.2 The Report Submission Template

The template has to be filled by the company following the rules described in Section 3. An excerpt of the Template is shown below.

<system-report name="YOUR-SYSTEM-NAME-HERE">
<testimonial> YOUR-WELL-FORMED-TESTIMOMIAL-CONTENT-HERE</testimonial>
<assert id="Id1" res="pass|fail|not-impl">OPTIONAL-NOTES-HERE</assert>
        [...]
<assert id="Idn" res="pass|fail|not-impl">OPTIONAL-NOTES-HERE</assert>
</system-report>

B.3 The Schema for PLS Conformance Language

pls-conformance.xsd is a file containing the schema for PLS Conformace Language, as described in the related section.

B.4 The DTD for the manifest

manifest.dtd is a file containing the DTD for the manifest, as described in the related section.

B.5 The PLS 1.0 Implementation Report document

The archive also contains the present document.

Appendix C - Contributors

The PLS 1.0 Implementation Report includes 78 assertions and corresponding tests. The Voice Browser Working Group would like to further acknowledge the contributions of several individuals for authoring and reviewing assertions and for reviewing tests: