Thaana
Root Zone Label Generation Rules, 6th Edition Current
Summary
| Version | 6 — Root Zone LGR for the Thaana Script |
|---|---|
| Date | |
| Tag |
und-Thaa (Thaana)
|
| Unicode | 16.0.0 |
| Source file | rz-lgr-6-thaana-script-23sep25-en.xml (13.0kb) |
Description
Root Zone Label Generation Rules for the Thaana Script
Overview
This file contains a set of Label Generation Rules (LGR) for the Thaana script for the Root Zone. For more details on this LGR and additional background on the script, see “Proposal for a Thaana Script Root Zone LGR” [Proposal-Thaana]. This file is one of a set of LGR files that together form an integrated LGR for the DNS Root Zone [RZ-LGR-6]. The format of this file follows [RFC 7940].
Repertoire
The repertoire includes the 36 letters and diacritics of the Thaana script in everyday use as defined in Section 5.1 “Included Code Points” in [Proposal-Thaana].
U+07B1 THAANA LETTER NAA (baru noonu, heavy n) is a dialect specific consonant. Given the resurgence of the use of the consonant in online writing and social media, a decision was made to include it in the repertoire at this time, despite it not being officially recognized as part of the base consonants.
Read the rest of the description Show less
The Thaana script contains a series of consonants used for writing Arabic loan words. Their occurrence is relatively rare and omitting them here avoids some complications that might make their use problematic for the Root Zone. The primary issue is that they are used inconsistently and alternation with the equivalent ordinary consonants is common. Their inclusion would thus have necessitated the definition of in-script variants. See also Section 5.2 “Excluded Code Points” in [Proposal-Thaana]
As part of the Root Zone, this LGR includes neither decimal digits nor the HYPHEN-MINUS.
Repertoire Listing: Each code point or range is tagged with the script or scripts with which the code point is used and one or more other character categories. For each repertoire element, one or more references document sufficient justification for inclusion in the repertoire; see the “References” below.
Variants
This LGR defines one set of in-script variants as described in Section 6.1 “In-script Variants”of [Proposal-Thaana]. No cross-script variants have been identified based on any discernable similarity with another script or otherwise required for the security of the Thaana LGR. In particular, the structure of the Thaana script, requiring a vowel after each consonant, removes similarity between Arabic and Thaana labels.
Variant Disposition: All variants are of type “blocked”, making labels that differ only by these variants mutually exclusive: whichever label containing either of these variants is chosen earlier would be delegated, while any other equivalent labels should be blocked. There is no preference among these labels.
This LGR does not define allocatable variants.
The specification of variants in the Root Zone LGR follows the guidelines in [RFC 8228].
Character Classes
Thaana has 25 consonants and 11 vowels. The vowels are written above/below the letters.
- Consonants — in the Thaana script, consonants are base characters and must be followed by a vowel.
- Vowels — vowels are combining marks that always follow a consonant.
Whole Label Evaluation (WLE) and Context Rules
Default Whole Label Evaluation Rules and Actions
The LGR includes the set of required default WLE rules and actions applicable to the Root Zone and defined in [MSR-6]. They are marked with ⍟. The actions compute a label disposition based on WLE rules or variant mapping types.
Script-specific Rules
The LGR defines the following script-specific rules concerning the placement of consonants and vowels.
- follows-C — WLE 1: a vowel always follows a consonant including Noonu and Raa.
- followed-by-V — WLE 2: a consonant, including Noonu or Raa is always followed by a vowel.
Note that in writing Thaana, U+0782 THAANA LETTER NOONU and U+0783 THAANA LETTER RAA can either appear with or without a vowel, depending on the context. For the purpose of the Root Zone, these special contexts have been disallowed and they behave like all other consonants for the purpose of the RZ-LGR. Because the exceptions to their behavior as ordinary consonants are statistically rare, this more conservative approach was chosen even though it restricts a small number of labels that might be valid in other zones.
Methodology and Contributors
The Root Zone LGR for the Thaana Script was developed by the Thaana Generation Panel. For details on methodology and contributors, see Sections 4 and 8 in [Proposal-Thaana], as well as [RZ-LGR-6-Overview].
References
This document cites the following general references.
- [MSR-6]
- Integration Panel, “Maximal Starting Repertoire — MSR-6 Overview and Rationale”, 23 September 2025, https://www.icann.org/en/system/files/files/msr-6-overview-23sep25-en.pdf
- [Proposal-Thaana]
- “Thaana Script Label Generation Rules for the Root Zone” , 23 May 2025, https://www.icann.org/en/system/files/files/proposal-thaana-lgr-23may25-en.pdf
- [RFC 7940]
- Davies, K. and A. Freytag, “Representing Label Generation Rulesets Using XML”, RFC 7940, August 2016, https://www.rfc-editor.org/info/rfc7940
- [RFC 8228]
- A. Freytag, “Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels”, RFC 8228, August 2017, https://www.rfc-editor.org/info/rfc8228
- [RZ-LGR-6-Overview]
- Integration Panel, “Root Zone Label Generation Rules (RZ LGR-6): Overview and Summary”, 23 September 2025, https://www.icann.org/sites/default/files/lgr/rz-lgr-6-overview-23sep25-en.pdf
- [RZ-LGR-6]
- Integration Panel, “Root Zone Label Generation Rules (RZ-LGR-6)”, 23 September 2025 (XML), https://www.icann.org/sites/default/files/lgr/rz-lgr-6-common-23sep25-en.xml
non-normative HTML presentation: https://www.icann.org/sites/default/files/lgr/rz-lgr-6-common-23sep25-en.html - [Unicode 16.0.0]
- The Unicode Consortium. The Unicode Standard, Version 16.0.0, (South San Francisco: The Unicode Consortium, 2024. ISBN 978-1-936213-34-4) https://www.unicode.org/versions/Unicode16.0.0/
References [0] to [3] refer to the Unicode Standard versions in which the corresponding code points were initially encoded. References [401] and above correspond to sources given in [Proposal-Thaana] justifying the inclusion of the corresponding code points.
Repertoire
| Glyph | Code point | Tags and context | Variants |
|---|---|---|---|
| ހ | U+0780 THAANA LETTER HAA 3 401 402 |
|
|
| ށ | U+0781 THAANA LETTER SHAVIYANI 3 401 402 |
|
|
| ނ | U+0782 THAANA LETTER NOONU 3 401 402 Behaves like any other consonant for Root Zone labels |
|
ޱ
U+07B1
blocked
|
| ރ | U+0783 THAANA LETTER RAA 3 401 402 Behaves like any other consonant for Root Zone labels |
|
|
| ބ | U+0784 THAANA LETTER BAA 3 401 402 |
|
|
| ޅ | U+0785 THAANA LETTER LHAVIYANI 3 401 402 |
|
|
| ކ | U+0786 THAANA LETTER KAAFU 3 401 402 |
|
|
| އ | U+0787 THAANA LETTER ALIFU 3 401 402 |
|
|
| ވ | U+0788 THAANA LETTER VAAVU 3 401 402 |
|
|
| މ | U+0789 THAANA LETTER MEEMU 3 401 402 |
|
|
| ފ | U+078A THAANA LETTER FAAFU 3 401 402 |
|
|
| ދ | U+078B THAANA LETTER DHAALU 3 401 402 |
|
|
| ތ | U+078C THAANA LETTER THAA 3 401 402 |
|
|
| ލ | U+078D THAANA LETTER LAAMU 3 401 402 |
|
|
| ގ | U+078E THAANA LETTER GAAFU 3 401 402 |
|
|
| ޏ | U+078F THAANA LETTER GNAVIYANI 3 401 402 |
|
|
| ސ | U+0790 THAANA LETTER SEENU 3 401 402 |
|
|
| ޑ | U+0791 THAANA LETTER DAVIYANI 3 401 402 |
|
|
| ޒ | U+0792 THAANA LETTER ZAVIYANI 3 401 402 |
|
|
| ޓ | U+0793 THAANA LETTER TAVIYANI 3 401 402 |
|
|
| ޔ | U+0794 THAANA LETTER YAA 3 401 402 |
|
|
| ޕ | U+0795 THAANA LETTER PAVIYANI 3 401 402 |
|
|
| ޖ | U+0796 THAANA LETTER JAVIYANI 3 401 402 |
|
|
| ޗ | U+0797 THAANA LETTER CHAVIYANI 3 401 402 |
|
|
| ަ | U+07A6 THAANA ABAFILI 3 401 402 |
|
|
| ާ | U+07A7 THAANA AABAAFILI 3 401 402 |
|
|
| ި | U+07A8 THAANA IBIFILI 3 401 402 |
|
|
| ީ | U+07A9 THAANA EEBEEFILI 3 401 402 |
|
|
| ު | U+07AA THAANA UBUFILI 3 401 402 |
|
|
| ޫ | U+07AB THAANA OOBOOFILI 3 401 402 |
|
|
| ެ | U+07AC THAANA EBEFILI 3 401 402 |
|
|
| ޭ | U+07AD THAANA EYBEYFILI 3 401 402 |
|
|
| ޮ | U+07AE THAANA OBOFILI 3 401 402 |
|
|
| ޯ | U+07AF THAANA OABOAFILI 3 401 402 |
|
|
| ް | U+07B0 THAANA SUKUN 3 401 402 |
|
|
| ޱ | U+07B1 THAANA LETTER NAA 5 401 402 |
|
ނ
U+0782
blocked
|
Variants
Code points grouped into sets of mutual variants. Every member of a set produces the same set of variant labels, so a registration of one has implications for all the others. Sets of a single member are omitted, as are the identity mappings RFC 7940 requires each member to declare.
Character classes
Named sets of code points that the rules below refer to.
| Name | Definition |
|---|---|
C |
{tag consonant}
Any Thaana consonant including Noonu and Raa
|
V |
{tag vowel}
Any Thaana vowel
|
Rules
Conditions evaluated against a whole label, or against the context around a
single code point. The notation borrows from regular expressions:
^ and $ anchor to the start and end of a label,
. matches any code point, (?= ) and
(?<= ) look ahead and behind, and * and
+ repeat. Two symbols are specific to rulesets:
◆ is the code point being tested, and
⟨name⟩ refers to another rule.
leading-combining-mark MSR default
Default WLE rule matching labels with leading combining marks
^ {gc:Mn} {gc:Mc}
Referenced by 1 definition
- action 1 (invalid)
follows-C
WLE1: a vowel always follows a consonant.
(?<= {C} ) ◆
Structure
-
(?<= {C} )look-behind-
{C}class
-
-
◆anchor
Referenced by 11 definitions
- context of U+07A6
- context of U+07A7
- context of U+07A8
- context of U+07A9
- context of U+07AA
- context of U+07AB
- context of U+07AC
- context of U+07AD
- context of U+07AE
- context of U+07AF
- context of U+07B0
followed-by-V
WLE2: a consonant is always followed by a vowel.
◆ (?= {V} )
Structure
-
◆anchor -
(?= {V} )look-ahead-
{V}class
-
Referenced by 25 definitions
- context of U+0780
- context of U+0781
- context of U+0782
- context of U+0783
- context of U+0784
- context of U+0785
- context of U+0786
- context of U+0787
- context of U+0788
- context of U+0789
- context of U+078A
- context of U+078B
Actions
Actions are evaluated in the order shown. The first action whose conditions match determines the disposition of the label.
| # | Disposition | Conditions |
|---|---|---|
| 1 |
invalid
|
label matches leading-combining-mark labels with leading combining marks are invalid MSR default |
| 2 |
invalid
|
any variant is out-of-repertoire-var any variant label with a code point out of repertoire is invalid MSR default |
| 3 |
blocked
|
any variant is blocked any variant label containing blocked variants is blocked MSR default |
| 4 |
allocatable
|
all variants are allocatable variant labels with all variants allocatable are allocatable MSR default |
| 5 |
valid
|
any label default catch all (default action) MSR default |
References
| Ref | Source |
|---|---|
| 0 | The Unicode Standard, Version 1.1 |
| 3 | The Unicode Standard, Version 3.0 |
| 5 | The Unicode Standard, Version 3.2 |
| 401 | Dhivehi Writing Systems by Naseema Mohamed, page 7-8, NCLHR, 1999. |
| 402 | Maldivian (ދިވެހި), Omniglot, https://www.omniglot.com/writing/thaana.htm (Accessed on 5 February 2025) |