Ukrainian

Ukrainian (language)

Second-Level Reference Label Generation Rules, 25 October 2024 Current

Summary

Version3 — Second Level Reference LGR
Date
Tag uk (Ukrainian)
Unicode11.0.0
Source filelgr-second-level-ukrainian-language-25oct24-en.xml (24.5kb)

This ruleset is integrated into the Common (integrated set) ruleset of this release.

Description

INSTRUCTIONS

  • These instructions cover how to adopt an LGR based on this reference LGR for a given zone and how to prepare the file for deposit in the IANA Repository of IDN Practices.
  • As described the IANA procedure (https://www.iana.org/help/idn-repository-procedure) an LGR MUST contain the following elements in its header:
    • Script or Language Designator (see below for guidance)
    • Version Number (this must increase with each amendment to the LGR, even if the updates are limited to the header itself)
    • Effective Date (the date at which the policy becomes applicable in operational use)
    • Registry Contact Details (contact name, email address, and/or phone number)
  • The following information is optional:
    • Document creation date
    • Applicable Domain(s)
    • Changes made to the Reference LGR before adopting

Please add or modify the following items in the XML source code for this file before depositing the document in the IANA Repository. (https://www.iana.org/domains/idn-tables)

Meta Data

Note: version numbers start at 1. RFC 7940 recommends using simple integers. The version comment is optional, please replace or delete the default comment. Version comments may be used by some tools as part of the page header.

<version comment="[Please replace (or delete) the optional comment]">[Please fill in version number, starting at 1]</version>

<date>[Please fill in with publication date, in YYYY-MM-DD format]</date>

<validity-start>[Please fill in effective date, in YYYY-MM-DD format]</validity-start>

Note: the scope element may be repeated, so that the same document can serve for multiple domains.

<scope type="domain">[Please provide, in ".domain" format]</scope>

Registry Contact Information:

Please fill in the Registry Contact Details.

Change History

If you made technical modifications to the LGR, please summarize them in the Change History (and also note the details in the appropriate section of the description).

PLEASE DELETE THESE INSTRUCTIONS BEFORE DEPOSITING THE DOCUMENT

Read the rest of the description Show less

Registry Contact Details

  • Contact Name: [Please fill in Contact Name]
  • Email address: [Please fill in Email address]
  • Phone Number: [Please fill in optional Phone Number]

Label Generation Rules for Ukrainian

Overview

This document specifies a set of Label Generation Rules (LGR) for the Ukrainian language using a language-specific repertoire for the second level domain or domains identified above. The format of this file follows [RFC 7940]. This LGR is adapted from the “Reference LGR for the Second Level for the Ukrainian Language” [Ref-LGR-uk-Cyrl], for details, see Change History below.

Standalone LGR: This LGR is designed to be used in a zone that does not cater to IDNs other than those valid under this LGR. This LGR lacks features that would allow its use in the context of another LGR in the same zone, and it may contain other features incompatible with such use.

Repertoire

Most references converge on 33 Cyrillic code points. There is some disagreement concerning U+044A CYRILLIC SMALL LETTER HARD SIGN and U+0451 CYRILLIC SMALL LETTER IO. While CLDR considers U+0451 CYRILLIC SMALL LETTER IO part of the main alphabet, these appear to be used in Russian words or names, not in Ukrainian words and names themselves. Both of these letters are part of the extended repertoire as defined here along with many letters used for Ukrainian. In Russian, the hard sign indicates the non-palatalization of a consonant preceding a morpheme beginning with a iotated vowel; in Ukrainian this function is met by the use of an apostrophe or of U+02BC MODIFIER LETTER APOSTROPHE.

Note that, while U+02BC MODIFIER LETTER APOSTROPHE is used in Ukrainian and is protocol valid (PVALID) in IDNA2008; other forms of apostrophes such as U+0027 APOSTROPHE or U+2019 RIGHT SINGLE QUOTATION MARK are DISALLOWED. As [RFC 6912] points out, in a public zone, many users may read U+02BC as indistinguishable from the regular apostrophe. Therefore, following the principle of conservatism, and in response to a comment made by the IAB during public comment proceedings, the code point U+02BC is not included here.

An IDN table published in the IANA Repository of IDN Practices for Ukrainian by .ua (Ukrainian cctld) in [700] contains many code points beyond what would be used in Ukrainian and even languages used in adjacent areas. Code points not corroborated by any other reference but used for Belarusian, Russian, and Moldovan have been added to the extended repertoire. South Slavic characters are excluded here.

For other IDNA TLD dedicated to Ukrainian: see .укр [YKP] and the IDNA table in [701]. That table shows a repertoire combining Russian and Ukrainian.

In Ukrainian, the acute accent may be used as a stress mark on the vowel of a syllable or to disambiguate between minimal pairs. However, as in Russian, it is restricted to dictionaries and educational materials. See Stress and Disambiguation in [ACUTE].

Excluded code points

Letters documented in some references but not included:

  • U+02BC MODIFIER LETTER APOSTROPHE

  • U+0450 CYRILLIC SMALL LETTER IE WITH GRAVE

  • U+0452 CYRILLIC SMALL LETTER DJE

  • U+0453 CYRILLIC SMALL LETTER GJE

  • U+0455 CYRILLIC SMALL LETTER DZE

  • U+0458 CYRILLIC SMALL LETTER JE

  • U+0459 CYRILLIC SMALL LETTER LJE

  • U+045A CYRILLIC SMALL LETTER NJE

  • U+045B CYRILLIC SMALL LETTER TSHE

  • U+045C CYRILLIC SMALL LETTER KJE

  • U+045D CYRILLIC SMALL LETTER I WITH GRAVE

  • U+045F CYRILLIC SMALL LETTER DZHE

  • U+0430 U+0301 CYRILLIC SMALL LETTER A WITH ACUTE ACCENT

  • U+0435 U+0301 CYRILLIC SMALL LETTER IE WITH ACUTE ACCENT

  • U+0438 U+0301 CYRILLIC SMALL LETTER I WITH ACUTE ACCENT

  • U+043E U+0301 CYRILLIC SMALL LETTER O WITH ACUTE ACCENT

  • U+0443 U+0301 CYRILLIC SMALL LETTER U WITH ACUTE ACCENT

  • U+044E U+0301 CYRILLIC SMALL LETTER YU WITH ACUTE ACCENT

  • U+044F U+0301 CYRILLIC SMALL LETTER YA WITH ACUTE ACCENT

  • U+0454 U+0301 CYRILLIC SMALL LETTER UKRAINIAN IE WITH ACUTE ACCENT

  • U+0456 U+0301 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I WITH ACUTE ACCENT

  • U+0457 U+0301 CYRILLIC SMALL LETTER YI WITH ACUTE ACCENT

Extended code points

A number of letters not considered essential to writing the core vocabulary of the language are nevertheless in common use. Where they have not been added to the core repertoire, they are flagged as “extended-cp” in the table of code points. A context rule is provided that by default will prohibit labels with such extended code points. To support extended single code points or code point sequences, delete the context “extended-cp” from their repertoire definition.

Any code points outside the Ukrainian Language repertoire that are targets for out-of-repertoire variants would be included here only if the variant is listed in this file. In this case they are identified as a reflexive (identity) variant of type “out-of-repertoire-var”. Whether or not they are listed, they do not form part of the repertoire.

Variants

There are no variants defined between Cyrillic letters.

No ASCII Variants: Note that this LGR does not contain definitions for “blocked” variants for letters that look indistinguishable from ASCII letters (homoglyphs). If concurrent use of LDH labels is desired, the resulting conflicts can be handled by using the “Common LGR” in processing. For details, see Section 3, “Use of Multiple Reference LGRs in the Same Zone” in [Level-2-Overview].

Note: a study of a possible variant relationship concerning U+0433 CYRILLIC SMALL LETTER GHE and U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN was undertaken in the context of Ukrainian by a Cyrillic case study team in [CYRILLIC-VIP] (page 6, section 3.2). The experts point to some instability concerning the encoding of the GHE WITH UPTURN and the possible confusion between the two code points by non-Ukrainian users. However, in the context of a Ukrainian LGR it does not seem necessary to establish such a variant relationship between these two code points.

Character Classes

This LGR does not define named character classes.

Rules

Common Rules

By default, the LGR includes the rules and actions to implement the following restrictions mandated by the IDNA protocol. They are marked with ⍟.

  • Hyphen Restrictions — restrictions on the allowable placement of hyphens (no leading/ending hyphen and no hyphen in positions 3 and 4). These restrictions are described in Section 4.2.3.1 of RFC 5891 [150]. They are implemented here as context rule on U+002D (-) HYPHEN-MINUS.
  • Leading Combining Marks — restrictions on the allowable placement of combining marks (no leading combining mark). This rule is described in Section 4.2.3.2 of RFC 5891 [150].

Actions

This LGR includes the default actions for LGRs as well as the action needed to invalidate labels with misplaced combining marks. They are marked with ⍟. For a description see [RFC 7940].

Methodology and Contributors

The LGR in this document has been adapted from the corresponding Reference LGR for the Second Level. The Second Level Reference LGR for the Ukrainian Language was developed by Michel Suignard and Asmus Freytag, including input by Michael Everson, Nicholas Ostler, and Wil Tan, and based on multiple open public consultations.

Changes from Version Dated 19 December 2016

Language tag has been updated.

Changes from Version Dated 18 May 2021

Unicode Version has been updated.

Changes from Version Dated 25 October 2024

Adopted from the Second Level Reference LGR for the Ukrainian Language [Ref-LGR-uk-Cyrl] without normative changes.

References

General reference for the language:

  • Shevelov, George Y. 1993. “Ukrainian”, in Bernard Comrie & Greville G. Corbett, eds. The Slavonic languages. London; New York: Routledge. ISBN 0-415-04755-2

Other references cited in this document:

[ACUTE]
Wikipedia, “Acute accent” https://en.wikipedia.org/wiki/Acute_accent
[CYRILLIC-VIP]
Sozonov, A. et al., “IDN Variant TLDs – Cyrillic Script Issues”. (Marina del Rey, California: ICANN, October 2011). https://archive.icann.org/en/topics/new-gtlds/cyrillic-vip-issues-report-06oct11-en.pdf
[HARD-SIGN]
Wikipedia, “Hard sign”, https://en.wikipedia.org/wiki/Hard_sign
[Level-2-Overview]
Internet Corporation for Assigned Names and Numbers, (ICANN),“Reference Label Generation Rules (LGR) for the Second Level: Overview and Summary” (PDF), (Los Angeles, California: ICANN, 25 October 2024), https://www.icann.org/en/system/files/files/level2-lgr-overview-summary-25oct24-en.pdf
[Ref-LGR-uk-Cyrl]
ICANN, Second Level Reference Label Generation Rules for the Ukrainian Language (uk-Cyrl), 25 October 2024 (XML) https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-ukrainian-language-25oct24-en.xml non-normative HTML presentation: https://www.icann.org/sites/default/files/packages/lgr/lgr-second-level-ukrainian-language-25oct24-en.html
[RFC 6912]
Sullivan, A., Thaler, D., Klensin, J., and O. Kolkman, “Principles for Unicode Code Point Inclusion in Labels in the DNS”, RFC 6912, April 2013, https://www.rfc-editor.org/info/rfc6912
[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
[Unicode 11.0.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/
[YKP]
U-Regristry.com website (in Ukrainian) https://namestore.u-registry.com/

In the listing of the repertoire by code point, references starting from [0] refer to the version of the Unicode Standard in which the corresponding code point was initially encoded. Other references (starting from [100]) document usage of code points. Entries in the table may have multiple source reference values. In the listing of whole label evaluation and context rules, reference [150] indicates the source for common rules. For more details, see the Table of References below.

Repertoire

Glyph Code point Tags and context Variants
- U+002D HYPHEN-MINUS 0 HYPHEN-MINUS Tagsc:Zyyy Contextnot hyphen-minus-disallowed
0 U+0030 DIGIT ZERO 0 DIGIT ZERO; TagCommon-digitTagsc:Zyyy
1 U+0031 DIGIT ONE 0 DIGIT ONE; TagCommon-digitTagsc:Zyyy
2 U+0032 DIGIT TWO 0 DIGIT TWO; TagCommon-digitTagsc:Zyyy
3 U+0033 DIGIT THREE 0 DIGIT THREE; TagCommon-digitTagsc:Zyyy
4 U+0034 DIGIT FOUR 0 DIGIT FOUR; TagCommon-digitTagsc:Zyyy
5 U+0035 DIGIT FIVE 0 DIGIT FIVE; TagCommon-digitTagsc:Zyyy
6 U+0036 DIGIT SIX 0 DIGIT SIX; TagCommon-digitTagsc:Zyyy
7 U+0037 DIGIT SEVEN 0 DIGIT SEVEN; TagCommon-digitTagsc:Zyyy
8 U+0038 DIGIT EIGHT 0 DIGIT EIGHT; TagCommon-digitTagsc:Zyyy
9 U+0039 DIGIT NINE 0 DIGIT NINE; TagCommon-digitTagsc:Zyyy
а U+0430 CYRILLIC SMALL LETTER A 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER A Tagsc:Cyrl
б U+0431 CYRILLIC SMALL LETTER BE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER BE Tagsc:Cyrl
в U+0432 CYRILLIC SMALL LETTER VE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER VE Tagsc:Cyrl
г U+0433 CYRILLIC SMALL LETTER GHE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER GHE Tagsc:Cyrl
д U+0434 CYRILLIC SMALL LETTER DE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER DE Tagsc:Cyrl
е U+0435 CYRILLIC SMALL LETTER IE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER IE Tagsc:Cyrl
ж U+0436 CYRILLIC SMALL LETTER ZHE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER ZHE Tagsc:Cyrl
з U+0437 CYRILLIC SMALL LETTER ZE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER ZE Tagsc:Cyrl
и U+0438 CYRILLIC SMALL LETTER I 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER I Tagsc:Cyrl
й U+0439 CYRILLIC SMALL LETTER SHORT I 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER SHORT I Tagsc:Cyrl
к U+043A CYRILLIC SMALL LETTER KA 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER KA Tagsc:Cyrl
л U+043B CYRILLIC SMALL LETTER EL 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER EL Tagsc:Cyrl
м U+043C CYRILLIC SMALL LETTER EM 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER EM Tagsc:Cyrl
н U+043D CYRILLIC SMALL LETTER EN 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER EN Tagsc:Cyrl
о U+043E CYRILLIC SMALL LETTER O 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER O Tagsc:Cyrl
п U+043F CYRILLIC SMALL LETTER PE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER PE Tagsc:Cyrl
р U+0440 CYRILLIC SMALL LETTER ER 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER ER Tagsc:Cyrl
с U+0441 CYRILLIC SMALL LETTER ES 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER ES Tagsc:Cyrl
т U+0442 CYRILLIC SMALL LETTER TE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER TE Tagsc:Cyrl
у U+0443 CYRILLIC SMALL LETTER U 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER U Tagsc:Cyrl
ф U+0444 CYRILLIC SMALL LETTER EF 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER EF Tagsc:Cyrl
х U+0445 CYRILLIC SMALL LETTER HA 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER HA Tagsc:Cyrl
ц U+0446 CYRILLIC SMALL LETTER TSE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER TSE Tagsc:Cyrl
ч U+0447 CYRILLIC SMALL LETTER CHE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER CHE Tagsc:Cyrl
ш U+0448 CYRILLIC SMALL LETTER SHA 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER SHA Tagsc:Cyrl
щ U+0449 CYRILLIC SMALL LETTER SHCHA 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER SHCHA Tagsc:Cyrl
ъ U+044A CYRILLIC SMALL LETTER HARD SIGN 0 130 301 402 700 701 CYRILLIC SMALL LETTER HARD SIGN Tagsc:Cyrl Contextextended-cp
ы U+044B CYRILLIC SMALL LETTER YERU 0 301 402 700 701 CYRILLIC SMALL LETTER YERU Tagsc:Cyrl Contextextended-cp
ь U+044C CYRILLIC SMALL LETTER SOFT SIGN 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER SOFT SIGN Tagsc:Cyrl
э U+044D CYRILLIC SMALL LETTER E 0 301 402 700 701 CYRILLIC SMALL LETTER E Tagsc:Cyrl Contextextended-cp
ю U+044E CYRILLIC SMALL LETTER YU 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER YU Tagsc:Cyrl
я U+044F CYRILLIC SMALL LETTER YA 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER YA Tagsc:Cyrl
ё U+0451 CYRILLIC SMALL LETTER IO 0 301 402 700 701 CYRILLIC SMALL LETTER IO Tagsc:Cyrl Contextextended-cp
є U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER UKRAINIAN IE Tagsc:Cyrl
і U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I Tagsc:Cyrl
ї U+0457 CYRILLIC SMALL LETTER YI 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER YI Tagsc:Cyrl
ў U+045E CYRILLIC SMALL LETTER SHORT U 0 700 CYRILLIC SMALL LETTER SHORT U Tagsc:Cyrl Contextextended-cp
ґ U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN 0 100 130 201 301 401 700 701 CYRILLIC SMALL LETTER GHE WITH UPTURN Tagsc:Cyrl
ӂ U+04C2 CYRILLIC SMALL LETTER ZHE WITH BREVE 0 700 CYRILLIC SMALL LETTER ZHE WITH BREVE Tagsc:Cyrl Contextextended-cp

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 150

RFC 5891 restrictions on placement of 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)

hyphen-minus-disallowed MSR default 150

RFC 5891 restrictions on placement of U+002D HYPHEN-MINUS

( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) )
Structure
  • ( ( (?<= ^ ) ◆ ) │ ( ◆ (?= $ ) ) │ ( (?<= ^ . . U+002D ) ◆ ) ) choice
    • (?<= ^ ) ◆ rule no leading hyphen
      • (?<= ^ ) look-behind
        • ^ start
      • ◆ anchor
    • ◆ (?= $ ) rule no trailing hyphen
      • ◆ anchor
      • (?= $ ) look-ahead
        • $ end
    • (?<= ^ . . U+002D ) ◆ rule no consecutive hyphens in third and fourth
      • (?<= ^ . . U+002D ) look-behind
        • ^ start
        • . any
        • . any
        • U+002D char hyphen-minus
      • ◆ anchor
Referenced by 1 definition
  • negative context of U+002D

extended-cp MSR default

context to gate off code points from the extended range, matches no label

^ $
Referenced by 6 definitions
  • context of U+044A
  • context of U+044B
  • context of U+044D
  • context of U+0451
  • context of U+045E
  • context of U+04C2

Actions

Actions are evaluated in the order shown. The first action whose conditions match determines the disposition of the label.

Actions in precedence order
# Disposition Conditions
1 invalid label matches leading-combining-mark by default, labels with leading combining marks are invalid
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 valid any label default catch all (default action)

References