Sinhala
Root Zone Label Generation Rules, 5th Edition
Summary
| Version | 5 — Root Zone LGR for the Sinhala Script |
|---|---|
| Date | |
| Tag |
und-Sinh (Sinhala)
|
| Unicode | 11.0.0 |
| Scope | DNS root zone |
| Source file | rz-lgr-5-sinhala-script-26may22-en.xml (20.0kb) |
Description
Root Zone Label Generation Rules for the Sinhala Script
Overview
This file contains Label Generation Rules (LGR) for the Sinhala script for the Root Zone. For more details on this LGR and additional background on the script, see “Proposal for a Sinhala Script Root Zone Label Generation Rules-Set (LGR)” [Proposal-Sinhala]. This file is one of a set of LGR files that together form an integrated LGR for the DNS Root Zone [RZ-LGR-5]. The format of this file follows [RFC 7940].
Repertoire
According to Section 5, “Repertoire” in [Proposal-Sinhala], the Sinhala LGR contains 72 single code points. The addition of 4 sequences used in the definition of variants brings the total repertoire entries to 76. The repertoire covers the Sinhala language as written with the Sinhala script.
The repertoire is based on [MSR-5], which is a subset of [Unicode 11.0].
Read the rest of the description Show less
As part of the Root Zone, this LGR includes neither decimal digits nor the HYPHEN-MINUS or ZWJ.
Each code point is tagged with the script or scripts with which the code point is used, one or more other character categories, and one or more references documenting sufficient justification for inclusion in the repertoire; see “References” below.
Variants
According to Section 6, “Variants”, in [Proposal-Sinhala], this LGR defines variants within Sinhala which can cause confusion for even a careful observer. There are no cross-script variants, though some confusing cases are identified in [Proposal-Sinhala].
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 any other equivalent label should be blocked. There is no preference among these variants.
This LGR does not define allocatable variants.
Context Rules for Variants: for some of the variants defined in this LGR the sequences or code points making up source and target are constrained by explicit context rules on the code points (or by implicit context rules defined for the adjacent code points). In such a case, any variants may require context rules that match the intersection between the effective contexts for both source and target; otherwise, a sequence might be considered valid in some variant label when it would not be valid in an equivalent context in an original label. Symmetry requires the same context rule for both forward and reverse mappings.
The specification of variants in the Root Zone LGR follows the guidelines in [RFC 8228].
Character Classes
As most Brahmi-derived scripts, Sinhala is an alphasyllabary writing system and written from left to right. All the categories of Consonants, Vowels, Matras, Halant, Anusvara, Visarga and Sannjakas are discussed below.
Consonants: There are 40 consonants in Sinhala alphabet and 38 of them are selected for inclusion. Its consonants imply inherent vowel a(අ) when they are used without dependent vowels. Absence of the inherent vowel is marked by adding hal kirima (remover of the inherent vowel) to the consonant; thus ක /ka/ but ක් /k/, and ව /va/ but ව් /v/. More details in Section 3.3.1, “The Consonants” in [Proposal-Sinhala].
Vowels and Matras: There are separate symbols (dependent vowels) for all the vowels except the inherent vowel අ in Sinhala. Independent vowels are used at the beginning of a word and dependent vowels (matras) are used after consonants. More details in Section 3.3.2, “The Vowels” in [Proposal-Sinhala].
Halanta: The Halanta, which is also called halkirima or hallakuna, is encoded as U+0DCA ( ් ) SINHALA SIGN AL-LAKUNA. This sign is used to remove the inherent vowel of the consonants in Sinhala, and to join consonants and form conjunct characters. More details in Section 3.3.3, “Halanta: The Inherent Vowel Remover” in [Proposal-Sinhala].
Anusvara: U+0D82 ( ං ) SINHALA SIGN ANUSVARAYA, pronounced /ŋ/, represents all the nasals. It can be preceded by any sign except halanta (U+0DCA). More details in Section 3.3.4, “The Anusvara” in [Proposal-Sinhala].
Visarga: U+0D83 ( ඃ ) SINHALA SIGN VISARGAYA is a rarely used sign and pronounced as /h/. It can be preceded by any sign except halanta (U+0DCA). More details in Section 3.3.5, “The Visarga” in [Proposal-Sinhala].
Sannjakas: There are five separate letters for prenasalized voiced stops called sannjakas in Sinhala. From among these, ඦ is not frequently used. Sannjakas cannot be followed by halanta. More details in Section 3.3.6, “Sannjakas” in [Proposal-Sinhala].
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-5]. They are marked with ⍟. The default prohibition on leading combining marks is equivalent to ensuring that a label only starts with a consonant or vowel.
Sinhala-specific Rules
These rules have been formulated so that they can be adopted for LGR specification.
The following symbols are used in the WLE rules:
C → Consonant
M → Matra / Vowel Signs
V → Vowel
B → Anusvara (Bindu)
X → Visarga
H → Halanta / Virama
J → Sannjaka
The rules are:
- 1. H: must be preceded by C
- 2. M: must be preceded by C or J
- 3. X: must be preceded by either V, C, or M
- 4. B: must be preceded by either V, C, J or M
The following context rules apply to code points in variant sets to ensure the variant transitivity.
- 5. variants are undefined preceding a Halant or Matra
- 6. variants are undefined preceding an Anusvara, Visarga, Halant or Matra
More details in Section 7, “Whole Label Evaluation Rules (WLE)” in [Proposal-Sinhala]
Methodology and Contributors
The Root Zone LGR for the Sinhala script was developed by the Sinhala Generation Panel in consultation with the Neo-Brahmi Generation Panel. For methodology and contributors, see Sections 4 and 8 in [Proposal-Sinhala], as well as [RZ-LGR-5-Overview].
References
The following general references are cited in this document:
- [MSR-5]
- Integration Panel, “Maximal Starting Repertoire — MSR-5 Overview and Rationale”, 24 June 2021, https://www.icann.org/en/system/files/files/msr-5-overview-24jun21-en.pdf
- [Proposal-Sinhala]
- Sinhala Generation Panel, “Proposal for a Sinhala Script Root Zone Label Generation Ruleset (LGR)”, 22 April 2019, https://www.icann.org/en/system/files/files/proposal-sinhala-lgr-22apr19-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-5-Overview]
- Integration Panel, “Root Zone Label Generation Rules (RZ LGR-5): Overview and Summary”, 26 May 2022, https://www.icann.org/sites/default/files/lgr/rz-lgr-5-overview-26may22-en.pdf
- [RZ-LGR-5]
- Integration Panel, “Root Zone Label Generation Rules (RZ-LGR-5)”, 26 May 2022 (XML), https://www.icann.org/sites/default/files/lgr/rz-lgr-5-common-26may22-en.xml
non-normative HTML presentation: https://www.icann.org/sites/default/files/lgr/rz-lgr-5-common-26may22-en.html - [Unicode 11.0]
- The Unicode Consortium. The Unicode Standard, Version 11.0.0, (Mountain View, CA: The Unicode Consortium, 2018. ISBN 978-1-936213-19-1) https://www.unicode.org/versions/Unicode11.0.0/
For references consulted particularly in designing the repertoire for the Sinhala script for the Root Zone please see details in the Table of References below. Reference [3] refers to the Unicode Standard version in which the corresponding code points were initially encoded. References [102] and above correspond to sources given in [Proposal-Sinhala] justifying the inclusion of the corresponding code points. Entries in the table may have multiple source reference values.
Repertoire
| Glyph | Code point | Tags and context | Variants |
|---|---|---|---|
| ං | U+0D82 SINHALA SIGN ANUSVARAYA 3 102 201 |
|
|
| ඃ | U+0D83 SINHALA SIGN VISARGAYA 3 102 201 |
|
|
| අ | U+0D85 SINHALA LETTER AYANNA 3 102 201 |
|
|
| ආ | U+0D86 SINHALA LETTER AAYANNA 3 102 201 |
|
|
| ඇ | U+0D87 SINHALA LETTER AEYANNA 3 102 201 |
|
|
| ඈ | U+0D88 SINHALA LETTER AEEYANNA 3 102 201 |
|
|
| ඉ | U+0D89 SINHALA LETTER IYANNA 3 102 201 |
|
|
| ඊ | U+0D8A SINHALA LETTER IIYANNA 3 102 201 |
|
|
| උ | U+0D8B SINHALA LETTER UYANNA 3 102 201 |
|
|
| ඌ | U+0D8C SINHALA LETTER UUYANNA 3 102 201 |
|
|
| ඍ | U+0D8D SINHALA LETTER IRUYANNA 3 102 201 |
|
ඝෘ
U+0D9D + U+0DD8
blocked
සෘ
U+0DC3 + U+0DD8
blocked
|
| එ | U+0D91 SINHALA LETTER EYANNA 3 102 201 |
|
ඵ
U+0DB5
blocked
|
| ඒ | U+0D92 SINHALA LETTER EEYANNA 3 102 201 |
|
ඵ්
U+0DB5 + U+0DCA
blocked
|
| ඓ | U+0D93 SINHALA LETTER AIYANNA 3 102 201 |
|
ඵෙ
U+0DB5 + U+0DD9
blocked
|
| ඔ | U+0D94 SINHALA LETTER OYANNA 3 102 201 |
|
ඹ
U+0DB9
blocked
|
| ඕ | U+0D95 SINHALA LETTER OOYANNA 3 102 201 |
|
|
| ඖ | U+0D96 SINHALA LETTER AUYANNA 3 102 201 |
|
|
| ක | U+0D9A SINHALA LETTER ALPAPRAANA KAYANNA 3 102 201 |
|
|
| ඛ | U+0D9B SINHALA LETTER MAHAAPRAANA KAYANNA 3 102 201 |
|
බ
U+0DB6
blocked
|
| ග | U+0D9C SINHALA LETTER ALPAPRAANA GAYANNA 3 102 201 |
|
|
| ඝ | U+0D9D SINHALA LETTER MAHAAPRAANA GAYANNA 3 102 201 |
|
ස
U+0DC3
blocked
|
| ඝෘ | U+0D9DU+0DD8 sequence of 2 SINHALA LETTER MAHAAPRAANA GAYANNA + SINHALA VOWEL SIGN GAETTA-PILLA 3 102 201 variant of IRUYANNA |
ඍ
U+0D8D
blocked
සෘ
U+0DC3 + U+0DD8
blocked
|
|
| ඟ | U+0D9F SINHALA LETTER SANYAKA GAYANNA 3 102 201 |
|
|
| ච | U+0DA0 SINHALA LETTER ALPAPRAANA CAYANNA 3 102 201 |
|
ව
U+0DC0
blocked
|
| ඡ | U+0DA1 SINHALA LETTER MAHAAPRAANA CAYANNA 3 102 201 |
|
|
| ජ | U+0DA2 SINHALA LETTER ALPAPRAANA JAYANNA 3 102 201 |
|
|
| ඣ | U+0DA3 SINHALA LETTER MAHAAPRAANA JAYANNA 3 102 201 |
|
|
| ඤ | U+0DA4 SINHALA LETTER TAALUJA NAASIKYAYA 3 102 201 |
|
|
| ඥ | U+0DA5 SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 3 102 201 |
|
|
| ට | U+0DA7 SINHALA LETTER ALPAPRAANA TTAYANNA 3 102 201 |
|
|
| ඨ | U+0DA8 SINHALA LETTER MAHAAPRAANA TTAYANNA 3 102 201 |
|
|
| ඩ | U+0DA9 SINHALA LETTER ALPAPRAANA DDAYANNA 3 102 201 |
|
|
| ඪ | U+0DAA SINHALA LETTER MAHAAPRAANA DDAYANNA 3 102 201 |
|
|
| ණ | U+0DAB SINHALA LETTER MUURDHAJA NAYANNA 3 102 201 |
|
|
| ඬ | U+0DAC SINHALA LETTER SANYAKA DDAYANNA 3 102 201 |
|
|
| ත | U+0DAD SINHALA LETTER ALPAPRAANA TAYANNA 3 102 201 |
|
|
| ථ | U+0DAE SINHALA LETTER MAHAAPRAANA TAYANNA 3 102 201 |
|
|
| ද | U+0DAF SINHALA LETTER ALPAPRAANA DAYANNA 3 102 201 |
|
|
| ධ | U+0DB0 SINHALA LETTER MAHAAPRAANA DAYANNA 3 102 201 |
|
|
| න | U+0DB1 SINHALA LETTER DANTAJA NAYANNA 3 102 201 |
|
|
| ඳ | U+0DB3 SINHALA LETTER SANYAKA DAYANNA 3 102 201 |
|
|
| ප | U+0DB4 SINHALA LETTER ALPAPRAANA PAYANNA 3 102 201 |
|
|
| ඵ | U+0DB5 SINHALA LETTER MAHAAPRAANA PAYANNA 3 102 201 |
|
එ
U+0D91
blocked
|
| ඵ් | U+0DB5U+0DCA sequence of 2 SINHALA LETTER MAHAAPRAANA PAYANNA + SINHALA SIGN AL-LAKUNA 3 102 201 variant of EEYANNA |
ඒ
U+0D92
blocked
|
|
| ඵෙ | U+0DB5U+0DD9 sequence of 2 SINHALA LETTER MAHAAPRAANA PAYANNA + SINHALA VOWEL SIGN KOMBUVA 3 102 201 variant of AIYANNA |
ඓ
U+0D93
blocked
|
|
| බ | U+0DB6 SINHALA LETTER ALPAPRAANA BAYANNA 3 102 201 |
|
ඛ
U+0D9B
blocked
|
| භ | U+0DB7 SINHALA LETTER MAHAAPRAANA BAYANNA 3 102 201 |
|
හ
U+0DC4
blocked
|
| ම | U+0DB8 SINHALA LETTER MAYANNA 3 102 201 |
|
|
| ඹ | U+0DB9 SINHALA LETTER AMBA BAYANNA 3 102 201 |
|
ඔ
U+0D94
blocked
|
| ය | U+0DBA SINHALA LETTER YAYANNA 3 102 201 |
|
|
| ර | U+0DBB SINHALA LETTER RAYANNA 3 102 201 |
|
|
| ල | U+0DBD SINHALA LETTER DANTAJA LAYANNA 3 102 201 |
|
|
| ව | U+0DC0 SINHALA LETTER VAYANNA 3 102 201 |
|
ච
U+0DA0
blocked
|
| ශ | U+0DC1 SINHALA LETTER TAALUJA SAYANNA 3 102 201 |
|
|
| ෂ | U+0DC2 SINHALA LETTER MUURDHAJA SAYANNA 3 102 201 |
|
|
| ස | U+0DC3 SINHALA LETTER DANTAJA SAYANNA 3 102 201 |
|
ඝ
U+0D9D
blocked
|
| සෘ | U+0DC3U+0DD8 sequence of 2 SINHALA LETTER DANTAJA SAYANNA + SINHALA VOWEL SIGN GAETTA-PILLA 3 102 201 variant of IRUYANNA |
ඍ
U+0D8D
blocked
ඝෘ
U+0D9D + U+0DD8
blocked
|
|
| හ | U+0DC4 SINHALA LETTER HAYANNA 3 102 201 |
|
භ
U+0DB7
blocked
|
| ළ | U+0DC5 SINHALA LETTER MUURDHAJA LAYANNA 3 102 201 |
|
|
| ෆ | U+0DC6 SINHALA LETTER FAYANNA 3 102 201 |
|
|
| ් | U+0DCA SINHALA SIGN AL-LAKUNA 3 102 201 |
|
|
| ා | U+0DCF SINHALA VOWEL SIGN AELA-PILLA 3 102 201 |
|
|
| ැ | U+0DD0 SINHALA VOWEL SIGN KETTI AEDA-PILLA 3 102 201 |
|
|
| ෑ | U+0DD1 SINHALA VOWEL SIGN DIGA AEDA-PILLA 3 102 201 |
|
|
| ි | U+0DD2 SINHALA VOWEL SIGN KETTI IS-PILLA 3 102 201 |
|
|
| ී | U+0DD3 SINHALA VOWEL SIGN DIGA IS-PILLA 3 102 201 |
|
|
| ු | U+0DD4 SINHALA VOWEL SIGN KETTI PAA-PILLA 3 102 201 |
|
|
| ූ | U+0DD6 SINHALA VOWEL SIGN DIGA PAA-PILLA 3 102 201 |
|
|
| ෘ | U+0DD8 SINHALA VOWEL SIGN GAETTA-PILLA 3 102 201 |
|
|
| ෙ | U+0DD9 SINHALA VOWEL SIGN KOMBUVA 3 102 201 |
|
|
| ේ | U+0DDA SINHALA VOWEL SIGN DIGA KOMBUVA 3 102 201 |
|
|
| ෛ | U+0DDB SINHALA VOWEL SIGN KOMBU DEKA 3 102 201 |
|
|
| ො | U+0DDC SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA 3 102 201 |
|
|
| ෝ | U+0DDD SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA 3 102 201 |
|
|
| ෞ | U+0DDE SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA 3 102 201 |
|
|
| ෲ | U+0DF2 SINHALA VOWEL SIGN DIGA GAETTA-PILLA 3 102 201 |
|
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.
-
ඍඝෘසෘ
Source Direction Target Disposition Ref Comment ඍ U+0D8D ↔ ඝෘ U+0D9D + U+0DD8 blocked conditional ඍ U+0D8D ↔ සෘ U+0DC3 + U+0DD8 blocked conditional ඝෘ U+0D9D + U+0DD8 ↔ සෘ U+0DC3 + U+0DD8 blocked conditional ↔ declared both ways ⇆ both ways, different disposition each way → one direction only
-
ඒඵ්
Source Direction Target Disposition Ref Comment ඒ U+0D92 ↔ ඵ් U+0DB5 + U+0DCA blocked conditional ↔ declared both ways ⇆ both ways, different disposition each way → one direction only
-
ඓඵෙ
Source Direction Target Disposition Ref Comment ඓ U+0D93 ↔ ඵෙ U+0DB5 + U+0DD9 blocked conditional ↔ declared both ways ⇆ both ways, different disposition each way → one direction only
Character classes
Named sets of code points that the rules below refer to.
| Name | Definition |
|---|---|
C |
{tag Consonant}
Any Sinhala consonant
|
V |
{tag Vowel}
Any Sinhala independent vowel
|
M |
{tag Matra}
Any Sinhala vowel sign (matra)
|
J |
{tag Sannjaka}
Any Sinhala Sannjaka
|
H |
{tag Halant}
The Sinhala Al-Lakuna (Halant)
|
B |
{tag Anusvara}
The Sinhala Anusvara
|
X |
{tag Visarga}
The Sinhala Visarga
|
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})
Structure
-
^start -
({gc:Mn} ∪ {gc:Mc})union-
{gc:Mn}class -
{gc:Mc}class
-
Referenced by 1 definition
- action 1 (invalid)
follows-C
Section 7, WLE 1: Halanta/Virama must be preceded by C
(?<= {C} ) ◆
Structure
-
(?<= {C} )look-behind-
{C}class
-
-
◆anchor
Referenced by 1 definition
- context of U+0DCA
follows-C-or-J
Section 7, WLE 2: Matra must be preceded by C or J
(?<= ( {C} │ {J} ) ) ◆
Structure
-
(?<= ( {C} │ {J} ) )look-behind-
( {C} │ {J} )choice-
{C}class -
{J}class
-
-
-
◆anchor
Referenced by 15 definitions
- context of U+0DCF
- context of U+0DD0
- context of U+0DD1
- context of U+0DD2
- context of U+0DD3
- context of U+0DD4
- context of U+0DD6
- context of U+0DD8
- context of U+0DD9
- context of U+0DDA
- context of U+0DDB
- context of U+0DDC
follows-V-C-or-M
Section 7, WLE 3: Visarga must be preceded by V, C or M
(?<= ( {V} │ {C} │ {M} ) ) ◆
Structure
-
(?<= ( {V} │ {C} │ {M} ) )look-behind-
( {V} │ {C} │ {M} )choice-
{V}class -
{C}class -
{M}class
-
-
-
◆anchor
Referenced by 1 definition
- context of U+0D83
follows-V-C-J-or-M
Section 7, WLE 4: Anusvara (Bindu) must be preceded by V, C, J or M
(?<= ( {V} │ {C} │ {J} │ {M} ) ) ◆
Structure
-
(?<= ( {V} │ {C} │ {J} │ {M} ) )look-behind-
( {V} │ {C} │ {J} │ {M} )choice-
{V}class -
{C}class -
{J}class -
{M}class
-
-
-
◆anchor
Referenced by 1 definition
- context of U+0D82
followed-by-H-or-M
variants are undefined preceding a Halant or Matra
◆ (?= ( {H} │ {M} ) )
Structure
-
◆anchor -
(?= ( {H} │ {M} ) )look-ahead-
( {H} │ {M} )choice-
{H}class -
{M}class
-
-
Referenced by 10 definitions
- negative variant condition on U+0D8D
- negative variant condition on U+0D8D
- negative variant condition on U+0D91
- negative variant condition on U+0D93
- negative variant condition on U+0D9D U+0DD8
- negative variant condition on U+0D9D U+0DD8
- negative variant condition on U+0DB5
- negative variant condition on U+0DB5 U+0DD9
- negative variant condition on U+0DC3 U+0DD8
- negative variant condition on U+0DC3 U+0DD8
followed-by-B-X-H-or-M
variants are undefined preceding an Anusvara, Visarga, Halant or Matra
◆ (?= ( {B} │ {X} │ {H} │ {M} ) )
Structure
-
◆anchor -
(?= ( {B} │ {X} │ {H} │ {M} ) )look-ahead-
( {B} │ {X} │ {H} │ {M} )choice-
{B}class -
{X}class -
{H}class -
{M}class
-
-
Referenced by 2 definitions
- negative variant condition on U+0D92
- negative variant condition on U+0DB5 U+0DCA
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 |
|---|---|
| 3 | The Unicode Standard 3.0 |
| 102 | Disanayaka, JB. 2006. Sinhala Akshara Vicharaya (Sinhala Graphology), Sumitha Publishers, Kalubovila. ISBN: 955-1146-44-1 |
| 201 | Omniglot: The on-line encyclopedia of writing system and Languages, “Sinhala” https://www.omniglot.com/writing/sinhala.htm |