﻿<?xml version="1.0" encoding="utf-8"?>
<lgr xmlns="urn:ietf:params:xml:ns:lgr-1.0">
  <meta>
    <version comment="Root Zone LGR for Oriya">3</version>
    <date>2019-07-10</date>
    <language>und-Orya</language>
    <scope type="domain">.</scope>
    <unicode-version>6.3.0</unicode-version>
    <description type="text/html"><![CDATA[
    <h1>Root Zone Label Generation Rules for the Oriya Script</h1>
    
    <h2>Overview</h2>
    <p>This file contains Label Generation Rules (LGR) for the Oriya (Odia) script for the Root zone. 
     For more details on this LGR and its development, see "Proposal for an Oriya Script Root Zone 
     Label Generation Ruleset (LGR)" [Proposal]. This file is one of a set of LGR files that together form an integrated LGR for the DNS Root Zone [RZ-LGR-3]. The format of this file follows [RFC 7940].</p>
    
   <p>While Oriya is the name under which the script is encoded in Unicode, and is therefore used here
   to formally identify the script, the name Odia has become the preferred name in English for both script 
   and language as it is closer to the pronunciation of their native names.</p>

<h2>Repertoire</h2>
    <p>According to Section 5, "Repertoire" in [Proposal], the Oriya LGR contains 62 unique code points." 
      This repertoire covers the Oriya (Odia) language as well as all other languages written with the Oriya script and
      ranging from 1 to 4 on the [EGIDS] scale.</p>
        
    <p>The repertoire is based on [MSR-4], which is a subset of [Unicode 6.3].</p>
    
        <p>Code points outside the Oriya script that are listed in this file are targets
        for out-of-script variants and are identified by a reflexive (identity)
        variant of type "out-of-repertoire-var". They do not form part of the
        repertoire.</p>

    <p>Each code point is tagged with the script or scripts that
      the code point is used with, a category value, and one or more references documenting 
      sufficient justification for inclusion in the repertoire, see "References" below.
      Comments provide alternate names of some code points.</p>

    <h2>Variants</h2>
    <p>According to Section 6, "Variants", in [Proposal], this LGR defines two sets of cross-script variants with the Myanmar script and no in-script variants.
    </p>
    
    <p>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 label should be blocked. There is no preference among these variants.</p>
     <p>This LGR does not define allocatable variants.</p>
   <p>The specification of variants in the Root Zone LGR follows the guidelines in [RFC 8228].</p>

    <h2>Character Classes</h2>
    <p>The basic characters in Oriya are classified into eight main categories. 
    They are Consonants, Vowels, Matra, Halant, Nukta, Visarga, Candrabindu and Anusvara. </p>

    <p>Consonants: The Oriya script is a syllabic alphabet in which all consonants 
    have an inherent vowel. Diacritics, which can appear above, below, before, or after the consonant 
    they belong to, are used to change the inherent vowel. More details in Section 3.5, "Structured consonants" and Section 3.6, "Unstructured consonants"  in [Proposal].</p>

    <p>Vowels and Matras: A dependent vowel sign or "matra" is used to represent a vowel sound that is not inherent 
    to the consonant. It is always depicted in combination with a single consonant, or with a consonant cluster. When vowels
     occur independently the are written with standalone vowel letters.
    More details in Section 3.12, "Matra sign (Dependent Vowel)" in [Proposal]. </p>
    
    <p>Halant: A Halant, also known as Virama, is used after a consonant to "strip" 
    it of its inherent vowel. The Halant form of a consonant is the form produced by adding the Halant, 
    encoded as U+0B4D ( ୍ ) ORIYA SIGN VIRAMA
    to the nominal shape. A Halant follows all but the last consonant in every Oriya 
    syllable. More details in Section 3.7, "The Implicit Vowel Killer Halant" in [Proposal].</p>

    <p>Nukta: The nukta sign ( ଼ ) is used in the Oriya language just like in many other scripts used in South Asia. 
     It can be commonly used with U+0B21 ( ଡ ), U+0B22 ( ଢ ). More details in Section 3.8, "Nukta" in [Proposal].</p>

    <p>Visarga: U+0B03 ORIYA SIGN VISARGA is frequently used in Sanskrit and represents a sound 
    very close to /h/. More details in Section 3.9, "Visarga &amp; Avagraha" in [Proposal].</p>

    <h3>Nasalization:</h3>
    <p>Candrabindu:  The Candrabindu denotes nasalization of the preceding vowel and consonants  
    as in ଅଁଳା /ãala/name of seasonal fruit (U+0B05 U+0B01 U+0B33 U+0B3E). Oriya users commonly use it for writing the words 
    and sounds of Sanskrit. More details in Section 3.10, "Nasalization: Candrabindu" in [Proposal].</p>

   <p>Anusvara: Anusvara replaces a conjunct group of a Nasal Consonant+Halant+Consonant belonging to 
  a particular varga (plosive). The Anusvara represents a homorganic nasal. Before a non-varga consonant (non-plosive) the 
  Anusvara represents a nasal sound. More details in Section 3.11, "Anusvara" in [Proposal].</p>

    <h2>Whole Label Evaluation (WLE) and Context Rules</h2>
    <h3>Default Whole Label Evaluation Rules and Actions</h3>
    <p>The LGR includes the set of required default WLE rules and actions applicable to 
        the Root Zone and defined in [MSR-4]. They are marked with &#x235F;. The 
          default prohibition on leading combining marks is equivalent to ensuring that 
          a label only starts with a consonant or vowel.</p> 
        
    <h3>Oriya-specific Rules</h3>
    <p>These rules have been formulated so that they can be adopted for  LGR specification.</p>
    <p>The following symbols are used in the WLE rules: 
    <br/>C → Consonant
    <br/>M → Matra
    <br/>V → Vowel
    <br/>B → Anusvara
    <br/>H → Halant
    <br/>N → Nukta
    <br/>C1 → Consonants used with Nukta
    <br/>X → Visarga
    <br/>D → Candrabindu
    </p>
    
    <p>The rules are: </p>
     <ul>
     <li>1. N: must be preceded by C1</li>
     <li>1. B: must be preceded by V, C, N or M</li>
     <li>3. X: must be preceded by V, C, N or M</li>
     <li>4. D: must be preceded by V, C, N or M</li>
     <li>5. H: must be preceded by C or N</li>
     <li>6. M: must be preceded by C or N</li>
     </ul>
    
     <p>More details in Section 7, Whole Label Evaluation Rules (WLE)" in [Proposal].</p>
    
    <h2>Methodology and Contributors</h2>
    <p>The LGR for the Oriya script was developed by the Neo-Brahmi Generation Panel (NBGP) the members 
     of which have experience in linguistics and computational linguistics in a wide variety of languages
     written with Neo-Brahmi scripts. Under the Neo-Brahmi Generation Panel, there are 
    nine scripts belonging to separate Unicode blocks. Each of these scripts has been assigned a 
    separate LGR, with the Neo-Brahmi GP ensuring that the fundamental philosophy behind building 
    each LGR is in sync with all other Brahmi derived scripts.  For further details on methodology and 
    contributors, see Sections 4 and 8 in [Proposal], as well as [RZ-LGR-3-Overview].</p>
    
    <h2>References</h2> 
    <p>References [0] to [6] refer to the Unicode Standard versions in which corresponding code 
    points were initially encoded. Reference [101] and up correspond to sources given 
    in [Proposal] for justifying the inclusion of for the corresponding code points. 
    Single code point or ranges may have multiple source reference values.</p>
    
    <p>In addition, the following general references are cited in this document:</p>
    <dl class="references">

     <dt>[EGIDS]</dt>
     <dd>Expanded Graded Intergenerational Disruption Scale, https://www.ethnologue.com/about/language-status (Accessed on 13  Nov. 2017)</dd>

    <dt>[MSR-4]</dt>
    <dd>Integration Panel, "Maximal Starting Repertoire — MSR-4 Overview and Rationale", 
    7 February 2019, https://www.icann.org/en/system/files/files/msr-4-overview-25jan19-en.pdf 
    </dd>

    <dt>[Proposal]</dt> 
     <dd>Neo-Brahmi Generation Panel, "Proposal for an Oriya Script Root Zone Label Generation Rule-set ", 6 March 2019, https://www.icann.org/en/system/files/files/proposal-oriya-lgr-06mar19-en.pdf</dd>

    <dt>[RFC 7940]</dt>
     <dd>Davies, K. and A. Freytag, "Representing Label Generation Rulesets Using XML", RFC 7940, August 2016, http://www.rfc-editor.org/info/rfc7940</dd> 
     
    <dt>[RFC 8228]</dt>
    <dd>A. Freytag, "Guidance on Designing Label Generation Rulesets (LGRs) Supporting Variant Labels", RFC 8228, August 2017,
    https://www.rfc-editor.org/info/rfc8228</dd>
      <dt>[RZ-LGR-3-Overview]</dt>
       <dd>Integration Panel, "Root Zone Label Generation Rules - LGR-3: Overview and Summary", 10 July 2019 (PDF), https://www.icann.org/sites/default/files/lgr/lgr-3-overview-10jul19-en.pdf</dd>

     <dt>[RZ-LGR-3]</dt>
     <dd>Integration Panel, "Label Generation Rules for the Root Zone &#x2014; LGR-3", 10 July 2019 (XML), https://www.icann.org/sites/default/files/lgr/lgr-3-common-10jul19-en.xml <br/>
     <i>non-normative HTML presentation: https://www.icann.org/sites/default/files/lgr/lgr-3-common-10jul19-en.html</i></dd>
     <dt>[Unicode 6.3]</dt>
     <dd>The Unicode Consortium. The Unicode Standard, Version 6.3.0, (Mountain View, CA: The Unicode Consortium, 2013. ISBN 978-1-936213-08-5) 
     http://www.unicode.org/versions/Unicode6.3.0/</dd>
     </dl>
    <p>For more details for references [101] and up and [0] and up refer to the Table of References below.</p>

]]></description>
    <references>
      <reference id="0" comment="Any code point originally encoded in Unicode 1.1">The Unicode Standard 1.1</reference>
      <reference id="6" comment="Any code point originally encoded in Unicode 4.0">The Unicode Standard 4.0</reference>
      <reference id="101">Omniglot, &amp;quot;Oriya&amp;quot; https://www.omniglot.com/writing/oriya.htm</reference>
      <reference id="102">Wikipedia, &amp;quot;Odia (Oriya) alphabet&amp;quot; https://en.wikipedia.org/wiki/Odia_alphabet</reference>
      <reference id="103">Wikipedia. &amp;quot;Odia language&amp;quot; https://en.wikipedia.org/wiki/Odia_language</reference>
      <reference id="104">Wikipedia, &amp;quot;Oriya (Unicode block)&amp;quot; https://en.wikipedia.org/wiki/Oriya_(Unicode_block)</reference>
      <reference id="105">Odisha State Govt. Primary School Grade 1 e-book “HasaKhela”: by Odisha Primary Education Programme Authority http://opepa.odisha.gov.in/website/Download/e-Text-Book/CLass%20I/Hasa%20Khela%20Part%20II/Haso%20Khelo-II-Page-112.pdf</reference>
    </references>
  </meta>
  <data>
    <char cp="0B01" when="follows-V-C-N-or-M" tag="Candrabindu sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B02" when="follows-V-C-N-or-M" tag="Anusvara sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B03" when="follows-V-C-N-or-M" tag="sc:Orya Visarga" ref="0 101 102 103 104 105" />
    <char cp="0B05" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B06" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B07" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B08" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B09" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B0A" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B0B" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B0F" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B10" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B13" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B14" tag="sc:Orya Vowel" ref="0 101 102 103 104 105" />
    <char cp="0B15" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B16" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B17" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B18" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B19" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B1A" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B1B" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B1C" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B1D" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B1E" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B1F" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B20" tag="Consonant sc:Orya" ref="0 101 102 103 104 105">
      <var cp="0D20" type="blocked" comment="Cross-script homoglyph" />
      <var cp="101D" type="blocked" comment="Cross-script homoglyph" />
    </char>
    <char cp="0B21" tag="C1 Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B22" tag="C1 Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B23" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B24" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B25" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B26" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B27" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B28" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B2A" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B2B" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B2C" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B2D" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B2E" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B2F" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B30" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B32" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B33" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B36" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B37" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B38" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B39" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B3C" when="follows-C1" tag="Nukta sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B3E" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B3F" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B40" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B41" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B42" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B43" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B47" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105">
      <var cp="1031" type="blocked" comment="Cross-script homoglyph" />
    </char>
    <char cp="0B48" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B4B" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B4C" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B4D" when="follows-C-or-N" tag="Halant sc:Orya" ref="0 101 102 103 104 105" comment="= pulli" />
    <char cp="0B56" when="follows-C-or-N" tag="Matra sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B5F" tag="Consonant sc:Orya" ref="0 101 102 103 104 105" />
    <char cp="0B71" tag="Consonant sc:Orya" ref="6 101 102 103 104 105" />
    <char cp="0D20" tag="sc:Mlym" comment="Not part of repertoire">
      <var cp="0B20" type="blocked" comment="Cross-script homoglyph" />
      <var cp="0D20" type="out-of-repertoire-var" comment="Out-of-repertoire" />
      <var cp="101D" type="blocked" comment="Cross-script homoglyph" />
    </char>
    <char cp="101D" tag="sc:Mymr" comment="Not part of repertoire">
      <var cp="0B20" type="blocked" comment="Cross-script homoglyph" />
      <var cp="0D20" type="blocked" comment="Cross-script homoglyph" />
      <var cp="101D" type="out-of-repertoire-var" comment="Out-of-repertoire" />
    </char>
    <char cp="1031" tag="sc:Mymr" comment="Not part of repertoire">
      <var cp="0B47" type="blocked" comment="Cross-script homoglyph" />
      <var cp="1031" type="out-of-repertoire-var" comment="Out-of-repertoire" />
    </char>
  </data>
  <!--Rules section goes here-->
  <rules>
    <!--Character class definitions go here-->
    <class name="C" from-tag="Consonant" comment="Any Oriya consonant" />
    <class name="M" from-tag="Matra" comment="Any Oriya vowel sign" />
    <class name="V" from-tag="Vowel" comment="Any Oriya vowel letter" />
    <class name="N" from-tag="Nukta" comment="The Oriya Nukta" />
    <class name="C1" from-tag="C1" comment="Specific consonants preceding Oriya Nukta" />
    <!--Whole label evaluation and context rules go here-->
    <rule name="leading-combining-mark" comment="Default WLE rule matching labels with leading combining marks &#x235F;">
      <start />
      <union>
        <class property="gc:Mn" />
        <class property="gc:Mc" />
      </union>
    </rule>
    <rule name="follows-C1" comment="Section 7, WLE 1: N must be preceded by C1 ">
      <look-behind>
        <class by-ref="C1" />
      </look-behind>
      <anchor />
    </rule>
    <rule name="follows-V-C-N-or-M" comment="Section 7, WLE 2: B must be preceded by V, C, N or M; WLE 3: X must be preceded by V, C, N or M; WLE 4: D must be preceded by V, C, N or M">
      <look-behind>
        <choice>
          <class by-ref="V" />
          <class by-ref="C" />
          <class by-ref="N" />
          <class by-ref="M" />
        </choice>
      </look-behind>
      <anchor />
    </rule>
    <rule name="follows-C-or-N" comment="Section 7, WLE 5: H must be preceded by C or N; WLE 6: M must be preceded by C or N">
      <look-behind>
        <choice>
          <class by-ref="C" />
          <class by-ref="N" />
        </choice>
      </look-behind>
      <anchor />
    </rule>
    <!--Action elements go here - order defines precedence-->
    <action disp="invalid" match="leading-combining-mark" comment="labels with leading combining marks are invalid &#x235F;" />
    <action disp="invalid" any-variant="out-of-repertoire-var" comment="any variant label with a code point out of repertoire is invalid &#x235F;" />
    <action disp="blocked" any-variant="blocked" comment="any variant label containing blocked variants is blocked &#x235F;" />
    <action disp="allocatable" all-variants="allocatable" comment="variant labels with all variants allocatable are allocatable &#x235F;" />
    <action disp="valid" comment="catch all (default action) &#x235F;" />
  </rules>
</lgr>