

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Definisi tata bahasa
<a name="grammar-srgs-spec"></a>

Topik ini menunjukkan bagian-bagian dari spesifikasi SRGS yang didukung Amazon Lex V2. Semua aturan didefinisikan dalam spesifikasi SRGS. Untuk informasi selengkapnya, lihat [Spesifikasi tata bahasa pengenalan ucapan versi 1.0](https://www.w3.org/TR/speech-grammar/) W3C rekomendasi.

**Topics**
+ [Deklarasi header](srgs-header.md)
+ [Elemen XHTML yang didukung](srgs-supported-xml.md)
+ [Token](srgs-tokens.md)
+ [Referensi aturan](srgs-rule-reference.md)
+ [Urutan dan enkapsulasi](srgs-sequence.md)
+ [Mengulangi](srgs-repeats.md)
+ [Bahasa](srgs-language.md)
+ [Tag](srgs-tags.md)
+ [Bobot](grammar-weights.md)

[Dokumen ini mencakup materi yang disalin dan berasal dari Spesifikasi Tata Bahasa Pengenalan Ucapan W3C Versi 1.0 (tersedia di https://www.w3. org/TR/speech-tata bahasa/](https://www.w3.org/TR/speech-grammar/)). Informasi kutipan berikut:

[Hak Cipta](http://www.w3.org/Consortium/Legal/ipr-notice#Copyright) © 2004 [W3C®](http://www.w3.org/) ([MIT](http://www.csail.mit.edu/), [ERCIM, [Keio](http://www.keio.ac.jp/), Semua](http://www.ercim.org/) Hak Dilindungi. [Kewajiban](http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer) W3C, [merek dagang](http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks), [penggunaan dokumen, dan aturan](http://www.w3.org/Consortium/Legal/copyright-documents) [lisensi perangkat lunak berlaku](http://www.w3.org/Consortium/Legal/copyright-software).

Dokumen spesifikasi SRGS, [Rekomendasi W3C](https://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C), tersedia dari W3C di bawah lisensi berikut.

## Teks lisensi
<a name="license-text"></a>

Lisensi

Dengan menggunakan and/or penyalinan dokumen ini, atau dokumen W3C dari mana pernyataan ini ditautkan, Anda (penerima lisensi) setuju bahwa Anda telah membaca, memahami, dan akan mematuhi syarat dan ketentuan berikut:

Izin untuk menyalin, dan mendistribusikan isi dokumen ini, atau dokumen W3C dari mana pernyataan ini ditautkan, dalam media apa pun untuk tujuan apa pun dan tanpa biaya atau royalti dengan ini diberikan, asalkan Anda menyertakan yang berikut pada SEMUA salinan dokumen, atau bagiannya, yang Anda gunakan:
+ Tautan atau URL ke dokumen W3C asli.
+ [http://www.keio.ac.jp/](http://www.keio.ac.jp/) [http://www.w3. org/Consortium/Legal/2015/doc-lisensi](http://www.w3.org/Consortium/Legal/2015/doc-license)”
+ *Jika ada*, STATUS dokumen W3C.

Jika ruang memungkinkan, penyertaan teks lengkap **PEMBERITAHUAN** ini harus disediakan. Kami meminta agar atribusi kepengarangan diberikan dalam perangkat lunak, dokumen, atau item atau produk lain yang Anda buat sesuai dengan implementasi isi dokumen ini, atau bagiannya.

Tidak ada hak untuk membuat modifikasi atau turunan dari dokumen W3C yang diberikan sesuai dengan lisensi ini, kecuali sebagai berikut: Untuk memfasilitasi implementasi spesifikasi teknis yang ditetapkan dalam dokumen ini, siapa pun dapat menyiapkan dan mendistribusikan karya turunan dan bagian dari dokumen ini dalam perangkat lunak, dalam materi pendukung yang menyertai perangkat lunak, dan dalam dokumentasi perangkat lunak, ASALKAN semua karya tersebut mencakup pemberitahuan di bawah ini. Namun, publikasi karya turunan dari dokumen ini untuk digunakan sebagai spesifikasi teknis secara tegas dilarang.

[Selain itu, “Komponen Kode” —Web IDL di bagian yang ditandai dengan jelas sebagai Web IDL; dan markup yang ditentukan W3C (HTML, CSS, dan sebagainya) dan kode bahasa pemrograman komputer ditandai dengan jelas sebagai contoh kode— dilisensikan di bawah Lisensi Perangkat Lunak W3C.](http://www.w3.org/Consortium/Legal/copyright-software)

Pemberitahuan adalah:

“Hak Cipta © 2015 W3C® (MIT, ERCIM, Keio, Beihang). Perangkat lunak atau dokumen ini mencakup materi yang disalin dari atau berasal dari [judul dan URI dokumen W3C].”

Penafian

DOKUMEN INI DISEDIAKAN “SEBAGAIMANA ADANYA,” DAN PEMEGANG HAK CIPTA TIDAK MEMBUAT PERNYATAAN ATAU JAMINAN, TERSURAT MAUPUN TERSIRAT, TERMASUK, TETAPI TIDAK TERBATAS PADA, JAMINAN KELAYAKAN UNTUK DIPERJUALBELIKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, NON-PELANGGARAN, ATAU JUDUL; BAHWA ISI DOKUMEN COCOK UNTUK TUJUAN APA PUN; ATAU BAHWA IMPLEMENTASI KONTEN TERSEBUT TIDAK AKAN MELANGGAR PATEN PIHAK KETIGA, HAK CIPTA, MEREK DAGANG ATAU HAK-HAK LAINNYA.

PEMEGANG HAK CIPTA TIDAK AKAN BERTANGGUNG JAWAB ATAS KERUSAKAN LANGSUNG, TIDAK LANGSUNG, KHUSUS ATAU KONSEKUENSIAL YANG TIMBUL DARI PENGGUNAAN DOKUMEN ATAU KINERJA ATAU IMPLEMENTASI ISINYA.

Nama dan merek dagang pemegang hak cipta TIDAK boleh digunakan dalam iklan atau publisitas yang berkaitan dengan dokumen ini atau isinya tanpa izin tertulis sebelumnya yang spesifik. Judul hak cipta dalam dokumen ini akan selalu ada pada pemegang hak cipta.

# Deklarasi header
<a name="srgs-header"></a>

Tabel berikut menunjukkan deklarasi header didukung oleh jenis slot tata bahasa. Untuk informasi selengkapnya, lihat [Deklarasi header tata bahasa](https://www.w3.org/TR/speech-grammar/#S4.1) dalam rekomendasi W3C *spesifikasi tata bahasa pengenalan ucapan versi 1*.


| Pernyataan | Persyaratan spesifikasi | Formulir XHTML | Dukungan Amazon Lex | Spesifikasi | 
| --- | --- | --- | --- | --- | 
| Versi tata bahasa | Diperlukan | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): version atribut pada elemen grammar | Diperlukan | SRGS | 
| Ruang nama XML | Diperlukan (hanya XHTML) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): xmlns atribut pada elemen grammar | Diperlukan | SRGS | 
| Jenis dokumen | Diperlukan (hanya XHTML) | [4.3](https://www.w3.org/TR/speech-grammar/#S4.3): XMLDOCTYPE | Disarankan | SRGS | 
| Pengkodean karakter | Disarankan | [4.4](https://www.w3.org/TR/speech-grammar/#S4.4): encoding atribut dalam deklarasi XML | Disarankan | SRGS | 
| Bahasa | Diperlukan dalam mode suara Diabaikan dalam mode DTMF | [4.5](https://www.w3.org/TR/speech-grammar/#S4.5): xml:lang atribut pada grammar elemen | Diperlukan dalam mode suara Diabaikan dalam mode DTMF | SRGS | 
| Modus | Opsional | [4.6](https://www.w3.org/TR/speech-grammar/#S4.6): mode atribut pada elemen grammar | Opsional | SRGS | 
| Aturan akar | Opsional | [4.7](https://www.w3.org/TR/speech-grammar/#S4.7): root atribut pada elemen grammar | Diperlukan | SRGS | 
| Format tag | Opsional | [4.8](https://www.w3.org/TR/speech-grammar/#S4.8): tag-format atribut pada elemen grammar | String literal ECMAScript dan didukung | SRGS, SISR | 
| URI Dasar | Opsional | [4.9](https://www.w3.org/TR/speech-grammar/#S4.9): xml:base atribut pada elemen grammar | Opsional | SRGS | 
| Leksikon pengucapan | Opsional, beberapa diizinkan | [4.10](https://www.w3.org/TR/speech-grammar/#S4.`0): elemen lexicon | Tidak didukung | SRGS, PLS | 
| Metadata | Opsional, beberapa diizinkan | [4.11.1: elemen](https://www.w3.org/TR/speech-grammar/#S4.11.1) meta | Diperlukan | SRGS | 
| Metadata XML | Opsional, hanya XHTML | [4.11.2: elemen](https://www.w3.org/TR/speech-grammar/#S4.11.2) metadata | Opsional | SRGS | 
| Tag | Opsional, beberapa diizinkan | [4.12](https://www.w3.org/TR/speech-grammar/#S4.12): elemen tag | Tag global tidak didukung | SRGS | 

**Contoh**

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"
                  "http://www.w3.org/TR/speech-grammar/grammar.dtd">

<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xml:base="http://www.example.com/base-file-path"
         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"
         mode="voice"
         root="city"
         tag-format="semantics/1.0">
```

# Elemen XHTML yang didukung
<a name="srgs-supported-xml"></a>

Amazon Lex V2 mendukung elemen XHTML berikut untuk tata bahasa kustom:
+ `<item>`
+ `<token>`
+ `<tag>`
+ `<one-of>`
+ `<rule-ref>`

# Token
<a name="srgs-tokens"></a>

Tabel berikut menunjukkan spesifikasi token yang didukung oleh jenis slot tata bahasa. Untuk informasi selengkapnya, lihat [Token](https://www.w3.org/TR/speech-grammar/#S2.1) dalam *spesifikasi tata bahasa pengenalan ucapan versi 1 rekomendasi* W3C.


| Jenis token | Contoh | Didukung? | 
| --- | --- | --- | 
| Token tunggal yang tidak dikutip | halo | Ya | 
| Token tunggal yang tidak dikutip: non-abjad | 2 | Ya | 
| Token yang dikutip tunggal, tidak ada spasi putih | "halo" | Ya, jatuhkan tanda kutip ganda jika hanya berisi satu token | 
| Dua token dibatasi oleh ruang putih | bon voyage | Ya | 
| Empat token dibatasi oleh ruang putih | ini adalah ujian | Ya | 
| Token yang dikutip tunggal, termasuk spasi putih | “San Francisco | Tidak | 
| <token>Token XHTML tunggal dalam tag | <token>San Fransisco</token> | Tidak (sama dengan token kutip tunggal dengan spasi putih) | 

**Catatan**
+ *Token kutip tunggal termasuk ruang putih* — Spesifikasi mengharuskan kata-kata yang dilampirkan dalam tanda kutip ganda diperlakukan sebagai token tunggal. Amazon Lex V2 memperlakukannya sebagai token yang dibatasi spasi putih.
+ *Token XHTML tunggal dalam* <token>— Spesifikasi membutuhkan kata-kata yang dibatasi oleh <token>untuk mewakili satu token. Amazon Lex V2 memperlakukannya sebagai token yang dibatasi spasi putih.
+ Amazon Lex V2 memunculkan kesalahan validasi ketika salah satu penggunaan ditemukan dalam tata bahasa Anda.

**Contoh**

```
<rule id="state" scope="public">
    <one-of>
        <item>FL</item>
        <item>MA</item>
        <item>NY</item>
    </one-of>
</rule>
```

# Referensi aturan
<a name="srgs-rule-reference"></a>

Tabel berikut merangkum berbagai bentuk referensi aturan yang dimungkinkan dalam dokumen tata bahasa. Untuk informasi lebih lanjut, lihat [Referensi aturan](https://www.w3.org/TR/speech-grammar/#S2.2) dalam *spesifikasi tata bahasa pengenalan ucapan versi 1 rekomendasi* W3C. 


| Jenis referensi | Formulir XHTML | Didukung | 
| --- | --- | --- | 
| [2.2.1 Referensi](https://www.w3.org/TR/speech-grammar/#S2.2.1) aturan lokal eksplisit | <ruleref uri="\$1rulename"/> | Ya | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) [Referensi eksplisit ke aturan bernama dari tata bahasa yang diidentifikasi oleh URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI\$1rulename"/> | Tidak | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) [Referensi implisit ke aturan akar tata bahasa yang diidentifikasi oleh URI](https://www.w3.org/TR/speech-grammar/#term-uri) | <ruleref uri="grammarURI"/> | Tidak | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) [Referensi eksplisit ke aturan bernama tata bahasa yang diidentifikasi oleh [URI dengan tipe](https://www.w3.org/TR/speech-grammar/#term-uri) media](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI\$1rulename" type="media-type"/> | Tidak | 
| [2.2.2](https://www.w3.org/TR/speech-grammar/#S2.2.2) [Referensi implisit ke aturan akar tata bahasa yang diidentifikasi oleh [URI dengan tipe](https://www.w3.org/TR/speech-grammar/#term-uri) media](https://www.w3.org/TR/speech-grammar/#term-media-type) | <ruleref uri="grammarURI" type="media-type"/> | Tidak | 
| [2.2.3 Definisi](https://www.w3.org/TR/speech-grammar/#S2.2.3) aturan khusus | `<ruleref special="NULL"/>` `<ruleref special="VOID"/>` `<ruleref special="GARBAGE"/>` | Tidak | 

**Catatan**

1. Grammar URI adalah URI eksternal. Misalnya, `http://grammar.example.com/world-cities.grxml`.

1. Jenis media dapat berupa:
   + `application/srgs+xml`
   + `text/plain`

**Contoh**

```
<rule id="city" scope="public">
    <one-of>
        <item>Boston</item>
        <item>Philadelphia</item>
        <item>Fargo</item>
    </one-of>
</rule>

<rule id="state" scope="public">
    <one-of>
        <item>FL</item>
        <item>MA</item>
        <item>NY</item>
    </one-of>
</rule>

<!-- "Boston MA" -> city = Boston, state = MA -->
<rule id="city_state" scope="public">
    <ruleref uri="#city"/> <ruleref uri="#state"/>
</rule>
```

# Urutan dan enkapsulasi
<a name="srgs-sequence"></a>

Contoh berikut menunjukkan urutan yang didukung. Untuk informasi lebih lanjut, lihat [Urutan dan enkapsulasi](https://www.w3.org/TR/speech-grammar/#S2.3) dalam *spesifikasi tata bahasa pengenalan ucapan versi 1 rekomendasi* W3C. 

**Contoh**

```
<!-- sequence of tokens -->
this is a test

<!--sequence of rule references-->
<ruleref uri="#action"/> <ruleref uri="#object"/>

<!--sequence of tokens and rule references-->
the <ruleref uri="#object"/> is <ruleref uri="#color"/>

<!-- sequence container -->
<item>fly to <ruleref uri="#city"/> </item>
```

# Mengulangi
<a name="srgs-repeats"></a>

Tabel berikut menunjukkan ekspansi berulang yang didukung untuk aturan. Untuk informasi selengkapnya, lihat [Pengulangan](https://www.w3.org/TR/speech-grammar/#S2.5) dalam *spesifikasi tata bahasa pengenalan ucapan versi 1* rekomendasi W3C. 


| Formulir XHTMLContoh | Perilaku | Didukung? | 
| --- | --- | --- | 
| *ulangi = “n”* ulangi = “6" | Ekspresi yang terkandung diulang tepat “n” kali. “n” harus “0" atau bilangan bulat positif. | Ya | 
| *ulangi = “m-n”* ulangi = “4-6" | Ekspansi yang terkandung diulang antara waktu “m” dan “n” (inklusif). “m” dan “n” keduanya harus “0" atau bilangan bulat positif, dan “m” harus kurang dari atau sama dengan “n”. | Ya | 
| *ulangi = “m-”* ulangi = “3-” | Ekspansi yang terkandung diulang “m” kali atau lebih (inklusif). “m” harus “0" atau bilangan bulat postif. Misalnya, “3-” menyatakan bahwa ekspansi yang terkandung dapat terjadi tiga, empat, lima, atau lebih kali. | Ya | 
| *ulangi = “0-1"*  | Ekspansi yang terkandung adalah opsional. | Ya | 
| <item repeat="2-4" repeat-prob="0.8"> |   | Tidak | 

# Bahasa
<a name="srgs-language"></a>

Diskusi berikut berlaku untuk pengidentifikasi bahasa yang diterapkan pada tata bahasa. Untuk informasi selengkapnya, lihat [Bahasa](https://www.w3.org/TR/speech-grammar/#S2.7) dalam *spesifikasi tata bahasa pengenalan ucapan versi 1 rekomendasi* W3C. 

Secara default tata bahasa adalah dokumen bahasa tunggal dengan [pengidentifikasi bahasa](https://www.w3.org/TR/speech-grammar/#term-language) yang disediakan dalam deklarasi bahasa di header [tata](https://www.w3.org/TR/speech-grammar/#S4.1) bahasa. Semua token dalam tata bahasa itu, kecuali dinyatakan lain, **akan ditangani sesuai dengan bahasa tata bahasa**. **Deklarasi bahasa tingkat tata bahasa tidak didukung.**

Dalam contoh berikut:

1. Deklarasi header tata bahasa untuk bahasa “en-US” **didukung** oleh Amazon Lex V2.

1. Lampiran bahasa tingkat item (disorot dalam*red*) **tidak didukung**. Amazon Lex V2 memunculkan kesalahan validasi jika lampiran bahasa berbeda dari deklarasi header.

```
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"
                  "http://www.w3.org/TR/speech-grammar/grammar.dtd">

<!-- the default grammar language is US English -->
<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">

  <!--
     single language attachment to tokens
     "yes" inherits US English language
     "oui" is Canadian French language
  -->
  <rule id="yes">
    <one-of>
      <item>yes</item>
      <item xml:lang="fr-CA">oui</item>
    </one-of>
  </rule>

  <!-- Single language attachment to an expansion -->
  <rule id="people1">
    <one-of xml:lang="fr-CA">
      <item>Michel Tremblay</item>
      <item>André Roy</item>
    </one-of>
  </rule>
</grammar>
```

# Tag
<a name="srgs-tags"></a>

Diskusi berikut berlaku untuk tag yang didefinisikan untuk tata bahasa. Untuk informasi selengkapnya, lihat [Tag](https://www.w3.org/TR/speech-grammar/#S2.6) dalam *spesifikasi tata bahasa pengenalan ucapan versi 1 rekomendasi* W3C. 

Berdasarkan spesifikasi SRGS, tag dapat didefinisikan dengan cara berikut:

1. Sebagai bagian dari deklarasi header seperti yang dijelaskan dalam[Deklarasi header](srgs-header.md).

1. Sebagai bagian dari** <rule>definisi.

Format tag berikut didukung:
+ `semantics/1.0`(SISR, ECMAScript)
+ `semantics/1.0-literals`(Literal string SISR)

Format tag berikut tidak didukung:
+ `swi-semantics/1.0`(Nuansa kepemilikan)

**Contoh**

```
<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xml:base="http://www.example.com/base-file-path"
         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"
         mode="voice"
         root="city"
         tag-format="semantics/1.0-literals">
    <rule id="no">
        <one-of>
            <item>no</item>
            <item>nope</item>
            <item>no way</item>
        </one-of>
        <tag>no</tag>
    </rule>
</grammar>
```

# Bobot
<a name="grammar-weights"></a>

Anda dapat menambahkan atribut *weight* ke elemen. Berat adalah nilai floating point positif yang mewakili sejauh mana frasa dalam item ditingkatkan selama pengenalan suara. Untuk informasi lebih lanjut, lihat [Bobot](https://www.w3.org/TR/speech-grammar/) dalam spesifikasi tata bahasa pengenalan ucapan versi 1 rekomendasi W3C.

Bobot harus lebih besar dari 0 dan kurang dari atau sama dengan 10, dan hanya dapat memiliki satu tempat desimal. Jika beratnya lebih besar dari 0 dan kurang dari 1, frasa tersebut ditingkatkan secara negatif. Jika beratnya lebih besar dari 1 dan kurang dari atau sama dengan 10, frasa tersebut ditingkatkan secara positif. Berat 1 sama dengan tidak memberi bobot sama sekali, dan tidak ada dorongan untuk frasa tersebut.

Menetapkan bobot yang sesuai untuk item untuk meningkatkan kinerja pengenalan suara adalah tugas yang sulit. Berikut adalah beberapa tips yang dapat Anda ikuti untuk menetapkan bobot:
+ Mulailah dengan tata bahasa tanpa bobot item yang ditetapkan.
+ Tentukan pola mana dalam pidato yang sering salah diidentifikasi.
+ Terapkan nilai yang berbeda untuk bobot sampai Anda melihat peningkatan dalam kinerja pengenalan suara, dan tidak ada regresi.

**Contoh 1**

Misalnya, jika Anda memiliki tata bahasa untuk bandara, dan Anda melihat bahwa *New York* sering salah diidentifikasi sebagai *Newark*, Anda dapat secara positif meningkatkan New York dengan menetapkan bobot 5.

```
<rule> id="airport">
    <one-of>
        <item>
            Boston
            <tag>out="Boston"</tag>
        </item>
        <item weight="5">
            New York
            <tag>out="New York"</tag>
        </item>
        <item>
            Newark
            <tag>out="Newark"</tag>
        </item>
    </one-of>
</rule>
```

**Contoh 2**

Misalnya, Anda memiliki tata bahasa untuk kode reservasi maskapai yang dimulai dengan alfabet bahasa Inggris diikuti oleh tiga digit. Kode reservasi kemungkinan besar dimulai dengan B atau D, tetapi Anda mengamati bahwa B sering salah diidentifikasi sebagai P, dan D sebagai T. Anda dapat secara positif meningkatkan B dan D.

```
<rule> id="alphabet">
    <one-of>
        <item>A<tag>out.letters+='A';</tag></item>
        <item weight="3.5">B<tag>out.letters+='B';</tag></item>
        <item>C<tag>out.letters+='C';</tag></item>
        <item weight="2.9">D<tag>out.letters+='D';</tag></item>
        <item>E<tag>out.letters+='E';</tag></item>
        <item>F<tag>out.letters+='F';</tag></item>
        <item>G<tag>out.letters+='G';</tag></item>
        <item>H<tag>out.letters+='H';</tag></item>
        <item>I<tag>out.letters+='I';</tag></item>
        <item>J<tag>out.letters+='J';</tag></item>
        <item>K<tag>out.letters+='K';</tag></item>
        <item>L<tag>out.letters+='L';</tag></item>
        <item>M<tag>out.letters+='M';</tag></item>
        <item>N<tag>out.letters+='N';</tag></item>
        <item>O<tag>out.letters+='O';</tag></item>
        <item>P<tag>out.letters+='P';</tag></item>
        <item>Q<tag>out.letters+='Q';</tag></item>
        <item>R<tag>out.letters+='R';</tag></item>
        <item>S<tag>out.letters+='S';</tag></item>
        <item>T<tag>out.letters+='T';</tag></item>
        <item>U<tag>out.letters+='U';</tag></item>
        <item>V<tag>out.letters+='V';</tag></item>
        <item>W<tag>out.letters+='W';</tag></item>
        <item>X<tag>out.letters+='X';</tag></item>
        <item>Y<tag>out.letters+='Y';</tag></item>
        <item>Z<tag>out.letters+='Z';</tag></item>
    </one-of>
</rule>
```