Elamur: **Mova** · [Parse](https://mova.elamur.ai/free/en/parse/) · [Dictionary](https://md.dictionary.elamur.ai/free/en/) · [Translate](https://md.translate.elamur.ai/free/en/) · [Research](https://md.research.elamur.ai/free/en/) · [Groupants](https://md.groupants.elamur.ai/free/en/)

[Mova](https://md.mova.elamur.ai/free/en/) · [this page in HTML](https://mova.elamur.ai/free/en/docs/languages/uk/07-punctuation-typography/)

[home](https://md.mova.elamur.ai/free/en/) / [docs](https://md.mova.elamur.ai/free/en/docs/) / [languages](https://mova.elamur.ai/free/en/docs/languages/) / [uk](https://md.mova.elamur.ai/free/en/docs/languages/uk/) / 7. Punctuation, capitals, abbreviations and numbers

# 7. Punctuation, capitals, abbreviations and numbers

**On this page**

1. [1. The marks and how often they occur](#1-the-marks-and-how-often-they-occur)
2. [2. Full stop, question and exclamation marks, ellipsis](#2-full-stop-question-and-exclamation-marks-ellipsis)
3. [3. The comma](#3-the-comma)
4. [4. Semicolon, colon, dash, brackets, slash](#4-semicolon-colon-dash-brackets-slash)
5. [5. Quotation marks and direct speech](#5-quotation-marks-and-direct-speech)
6. [6. Apostrophe, hyphen and dashes as characters](#6-apostrophe-hyphen-and-dashes-as-characters)
7. [7. Capital letters](#7-capital-letters)
8. [8. Abbreviations](#8-abbreviations)
9. [9. Numbers, dates, units](#9-numbers-dates-units)
10. [10. Other conventions of the page](#10-other-conventions-of-the-page)
11. [11. How Mova handles punctuation and typography](#11-how-mova-handles-punctuation-and-typography)
12. [Sources for this chapter](#sources-for-this-chapter)

Ukrainian punctuation is codified in the fourth part of *Український правопис* 2019 (§§155–168), which treats each mark by its positions, then the combinations of marks, direct speech and quotation, and the layout of lists. It is a **grammatical** punctuation, as in other Slavic languages: commas mark clause boundaries and detached phrases by rule, whatever the intonation, so a Ukrainian text has more commas than an English one of the same length and the commas carry syntactic information. This chapter describes the marks and how often they occur (§1), the end-of-sentence marks (§2), the comma (§3), the other marks inside the sentence (§4), quotation marks and direct speech (§5), the apostrophe, hyphen and dashes as characters (§6), capital letters (§7), abbreviations (§8), numbers, dates and units (§9), and other conventions of the page (§10). §11 says how Mova's tokenizers treat them.

Paragraph numbers refer to the 2019 *Pravopys* (`uk-gram-pravopys-2019`). Most of the *Pravopys*'s own examples are quotations from literature; the examples here are mostly constructed. Counts were made on **2026-11-06** over UD Ukrainian IU 2.18 (CC BY-NC-SA, counts only), UD Ukrainian ParlaMint 2.18 (CC BY-SA; short quotations with their sentence ids) and the Leipzig samples *ukr_news_2024*, *ukr_newscrawl_2018* and *ukr_wikipedia_2021* (one million sentences each; Goldhahn, Eckart & Quasthoff 2012; CC BY).

## 1. The marks and how often they occur

| mark | name | § | tokens in UD IU | tokens in UD ParlaMint |
| --- | --- | --- | --- | --- |
| , | кома 'comma' | 158 | 9 837 | 10 022 |
| . | крапка 'full stop' | 155 | 6 512 | 6 283 |
| — | тире 'dash' (em dash) | 161 | 925 | 48 |
| – | (en dash used as тире) | 161 | 259 | 196 |
| - | hyphen used as тире | 161 | 862 | 426 |
| « » | лапки-ялинки 'guillemets' | 164 | 701 / 697 | 0 / 0 |
| " | straight quotation mark | 164 | 505 | 1 101 |
| “ ” | лапки-лапки 'curly quotes' | 164 | — / 112 | 10 / 8 |
| ( ) | дужки 'parentheses' | 163 | 593 / 605 | 59 / 66 |
| : | двокрапка 'colon' | 160 | 478 | 223 |
| ! | знак оклику 'exclamation mark' | 157 | 331 | 356 |
| ? | знак питання 'question mark' | 156 | 248 | 363 |
| ... / … | три крапки 'ellipsis' | 162 | 130 / — | 53 / 18 |
| ; | крапка з комою 'semicolon' | 159 | 113 | 63 |
| / | скісна риска 'slash' | 165 | — | — |

(UD `PUNCT` tokens by form over train, dev and test; a dash "—" shows where the column has none in the top sixteen forms.) IU has 23 255 punctuation tokens in 122 750 (18.9%), ParlaMint 19 308 in 109 166 (17.7%). Both have about **1.4 commas per sentence** (IU 9 837 in 7 092 sentences, ParlaMint 10 022 in 7 142).

The two treebanks differ in typography more than in punctuation. IU, a collection of fiction, news, legal and other written texts, keeps the typographic characters of its sources: guillemets, the em dash, the typographic apostrophe. ParlaMint, transcripts of parliamentary speech, uses straight quotation marks, the ASCII apostrophe and the hyphen or en dash for the dash, the conventions of the transcribers' keyboards. A tokenizer and a tagger have to take both.

## 2. Full stop, question and exclamation marks, ellipsis

The **full stop** (§155) ends a declarative or an unemphatic imperative sentence, and also nominal sentences (*Зима. Холоднеча. Засніжений ліс.* 'Winter. Cold. A snowed-in forest.'), and may cut off, for emphasis, a fragment that could have been joined by a comma (*Випав сніг. І в селі, і в полі.* 'Snow fell. In the village and in the field.'). It is not written at the end of headings, signs, title pages and stamps. After a quotation followed by its source in parentheses, the full stop goes after the parenthesis. It is written in graphic abbreviations (*проф.*, *ст.*, *рр.*) but not in initial abbreviations (*НАН*), units of measurement (*м*, *кг*, *год*, *хв*) or the abbreviations made by contraction (*грн*, *млн*, *млрд*, *тис.* is the exception that keeps it) (§155 note; §62).

The **question mark** (§156) ends a direct question; it is not written after an indirect question unless the main clause itself asks (*Чи знаєте, як високо сокіл літає?*). Two or three marks (*??*, *???*) may show stronger intonation; in brackets inside a quotation (?) or (!) shows the writer's doubt or irony. The **exclamation mark** (§157) ends exclamatory sentences, including those beginning with *як*, *який*, *що за*, *до чого ж*, *скільки* and wishes with *хай живе*, *слава*, *геть*; it follows an exclamatory vocative (*Україно!*) and an interjection or *так*, *ні* said with force at the start of a sentence (*Ой! Що це?*); after it, the next word has a capital (§46).

**Ellipsis** (§162) shows an interrupted or unfinished utterance, hesitation, an unexpected continuation (often in headlines: *Вибори… без вибору* 'Elections… without a choice'), and an omission in a quotation, with or without brackets (*<…>*, *(…)*). After ? and ! only two dots follow: *?..*, *!..*. The *Pravopys* prints the single character … (U+2026) and three full stops interchangeably. In the corpora the choice depends on the source: UD IU has 130 tokens *...* (three full stops), ParlaMint 53 *...* and 18 *…*; the Leipzig samples contain no three-dot sequences at all and 4 806 … in the 2024 news, which suggests the collection normalises the ellipsis.

## 3. The comma

The comma (§158) has the longest section of the code. Its rules divide into the simple sentence (§158 I, eighteen positions) and the complex sentence (§158 II). The main ones:

### 3.1 In the simple sentence

1. **Between coordinated members without a conjunction**: *Купили хліб, молоко, сир.* 'They bought bread, milk, cheese.'
2. **Before the second and later members joined by repeated conjunctions** *і… і*, *ні… ні*, *ані… ані*, *або… або*, *чи… чи*, *то… то*, *не то… не то*: *І в селі, і в полі.* With a single *і*, *та* (= 'and'), *або*, *чи* there is no comma: *хліб і молоко*, *сьогодні або завтра*. Pairs joined by *і* are separated from each other: *старі й малі, бідні й багаті*. Fixed pairs take no comma: *і так і сяк*, *ні те ні се*, *ні риба ні м'ясо*.
3. **Before adversative conjunctions** *а*, *але*, *та* (= 'but'), *однак*, *проте*, *зате*: *Не словом, а ділом.* 'Not by word but by deed.'
4. **Before the second part of paired conjunctions** *не тільки… а й*, *як… так і*, *хоч… але*: *не тільки діти, а й дорослі* 'not only children but adults too'.
5. **Around vocatives**, always, whatever their place: *Мамо, ходи сюди.* 'Mum, come here.'; *Скажи, друже, правду.* (§158 I.8). Since the vocative case is alive ([11](https://md.mova.elamur.ai/free/en/docs/languages/uk/11-nouns/)), a comma before or after a form in -е, -о, -у, -ю is a strong cue for a parser.
6. **Around parenthetical words and phrases** (*вставні слова*): *мабуть* 'probably', *напевно* 'surely', *звичайно* 'of course', *на жаль* 'unfortunately', *на щастя*, *по-перше* 'firstly', *отже* 'so', *до речі* 'by the way', *кажуть* 'they say', *як відомо* 'as is known'. They are not set off when they belong inside a detached phrase, and a conjunction *а* before them goes with them (*а втім*).
7. **Around comparison phrases** with *як, мов, мовби, наче, немов, неначе, ніби, буцімто, ніж*: *Небо, як море, синіло.* No comma in fixed comparisons (*голодний як вовк* 'hungry as a wolf', *білий як сніг*), when the comparison is the predicate (*Життя як казка*), and when *як* means 'in the role of' (*Він виступав як свідок* 'He appeared as a witness').
8. **Around detached attributes, appositions and adverbials**: participial phrases after the noun (*Лист, написаний учора, лежав на столі.* 'The letter, written yesterday, lay on the table.'), adverbial-participle phrases always (*Вийшовши з дому, вона згадала…* 'Having left the house, she remembered…'), single adverbial participles mostly (*Він сидів, задумавшись.*), but not those that have become adverbs (*сидіти мовчки*, *стояти навколішки*); phrases with *крім*, *окрім*, *замість*, *за винятком*; clarifying phrases with *тобто*, *а саме*, *зокрема*, *особливо*, *навіть*.
9. **After affirmative and negative words** at the start: *Так, я знаю.* *Ні, не піду.* *Гаразд, домовились.*
10. **Around interjections** said without strong exclamation: *Ох, і втомився ж я!*

### 3.2 In the complex sentence

1. **Between the clauses of a compound sentence**: *Сонце зайшло, і стало холодно.* 'The sun set, and it got cold.' No comma before a single *і*, *та*, *або*, *чи* when the two clauses share a secondary member, a parenthetical word or a subordinate clause, or are both questions, exclamations or nominal sentences: *Увечері сонце зайшло і стало холодно* 'In the evening the sun set and it got cold' (the shared *увечері*) (§158 II.2, note 2).
2. **Before every subordinate clause**, whatever the conjunction: *що*, *щоб*, *як*, *коли*, *якщо*, *бо*, *хоч*, *поки*, *де*, *куди*, *який*, *чий*, *котрий*: *Я знаю, що ти прийдеш.* 'I know that you will come.' *Книжка, яку ти дав, цікава.* 'The book that you gave is interesting.' This is the most frequent comma of the language and the clearest syntactic signal: a comma before *що*, *який* almost always opens a clause.
3. **Composite conjunctions** *тому що*, *через те що*, *для того щоб*, *незважаючи на те що*, *після того як*, *так що* take one comma, before the whole or, for emphasis, before the second part (*Він не прийшов через те, що захворів*).
4. **No comma** before a subordinator preceded by *не* or by a coordinating conjunction (*Мене цікавить не як, а чому*), before a single relative word at the end of a sentence (*Не пам'ятаю що*), in fixed phrases that look like clauses (*хто зна що*, *будь-що*, *невідомо де*, *що завгодно*), and between two subordinate clauses joined by a single *і*.
5. **Between clauses without a conjunction** listing events (*Грім гримів, блискавка палала.*); other asyndetic relations take the colon or the dash (§4).

## 4. Semicolon, colon, dash, brackets, slash

The **semicolon** (§159) separates long or internally punctuated parts of a compound sentence and the items of lists set out in lines. The **colon** (§160) announces: before a list after a generalising word (*Купили все: хліб, молоко, сир.*), before direct speech and quotation, and between clauses of which the second explains or gives the reason for the first (*Я не пішов: була злива.* 'I didn't go: it was pouring.').

The **dash** (*тире*, §161) has more uses than in English. In the simple sentence:

1. **Between subject and nominal predicate** when the copula is zero and both are nouns or numerals in the nominative: *Кит — ссавець.* 'The whale is a mammal.' *Київ — столиця України.* *П'ять і п'ять — десять.* No dash when the subject is a personal pronoun (*Я студент*), when it is *це* (*Це наша хата*), when the predicate has *не* (*Серце не камінь*), when it is a comparison (*Життя як казка*), or when the predicate is emphasised in speech without a pause (*Мій батько інженер*); in all these the dash may still be written for special emphasis (*Мій батько — не інженер, а майстер*). This dash marks the zero copula of the present tense ([21. Clause structure](https://md.mova.elamur.ai/free/en/docs/languages/uk/21-clause-structure/)), and a parser can use it as such.
2. **Between subject and predicate when one or both are infinitives**: *Життя прожити — не поле перейти.* 'To live a life is not to cross a field.' (proverb).
3. **Before *це*, *оце*, *то*, *ось*, *значить*** introducing the predicate: *Поезія — це завжди неповторність.*
4. **After a list before the generalising word**: *Хліб, молоко, сир — усе було свіже.*
5. **In place of an omitted word**, often a verb, in elliptical sentences: *Я — додому, а ти — до школи.* 'I [am going] home, and you [are going] to school.'
6. **To set off appositions, explanations and inserted phrases**, and for an unexpected turn (*Відчинив двері — а там нікого.*).
7. **Between names forming a law or theory** and between terms of a relation: *закон Бойля — Маріотта*, *гіпотеза Сепіра — Ворфа*, *матч Україна — Англія*, *поїзд Київ — Львів*.
8. **Between numbers for a range**, **without spaces**: *у 2010—2018 роках*, *XVI—XVIII ст.*, *с. 1—10*; but with spaces between phrases: *наприкінці XX — на початку XXI ст.*; also for an approximate quantity between words: *триста — триста п'ятдесят гривень* (§161 I.14–15). The hyphenated type *день-два*, *триста-чотириста* is written with a hyphen (§35).

In the complex sentence the dash separates clauses of which the second is a consequence, a contrast or a sudden addition (*Прийшла весна — розтанув сніг.*), and a subordinate clause placed first when it has a strong pause.

The **brackets** (§163) are round ( ), square [ ] for the writer's insertions into a quotation and for transcriptions, and angle < > for omissions in quotations (*<…>*). The **slash** (§165) is written in official and scientific styles between coordinated items in the sense 'and/or' (*складна інтонація оклику / питання*), for ratios (*курс гривня / долар*) and in abbreviations without spaces (*п/в* 'post office', *р/р* 'current account', *км/год* 'km/h'). The code prints it with spaces between words; in the treebanks *та/або* 'and/or' is written without spaces (ParlaMint `ParlaMint-UA_2022-01-25-m0.u139.p5.lang1.s1`).

## 5. Quotation marks and direct speech

### 5.1 The marks

Ukrainian uses the **guillemets** « » (*лапки-ялинки* 'fir-tree quotes') as its main quotation marks, and inside them the **curly quotes** “ ” or the German-style „ “ (*лапки-лапки*): *«Це мій “Кобзар”», — сказав він.* (§164.3). The *Pravopys* lists four forms, « », “ ”, „ “ and, more rarely, „ ”. Quotation marks enclose direct speech and quotations, words used ironically or as somebody else's, unusual or new words, the titles of works, newspapers, companies, ships and products (*роман «Хіба ревуть воли, як ясла повні?»*, *газета «День»*, *завод «Арсенал»*), and words given as the meaning of others (*слово «мова» означає…*).

The full stop, comma, semicolon, colon and dash **never** stand before the closing quotation mark; the question mark, exclamation mark and ellipsis stand before it if they belong to the quoted words, after it if they belong to the whole sentence, and are not repeated (*Невже ти не чув, як гукали: «До зброї!»?*) (§164, notes).

In the 2024 news sample the straight " (362 540) far outnumbers « (30 345), “ (9 134) and „ (641); in the 2018 news the guillemets had a larger share (92 119 « against 230 937 "), and in the Wikipedia sample they dominate (169 338 « against 19 180 "). (Counts of the character; each pair contributes one opening and one closing mark, except « and », which are counted separately.) The straight quotation mark is a typing convention, not a rule; it does not tell opening from closing, which the guillemets do.

### 5.2 Direct speech and dialogue

Direct speech in a paragraph of its own begins with a **dash**; within running text it is enclosed in **quotation marks** (§167):

```
— Хто там? — спитала вона.
— Я, — відповів голос із-за дверей.

«Як живете?» — запитала вона в листі.
Вона запитала: «Як живете?»
«Ходімо, — сказав він, — уже пізно».
```

The author's words after direct speech are introduced by a comma and a dash (*— Я, — відповів він*) or, after ? ! …, by the dash alone; before direct speech by a colon; when the author's words break the speech, commas and dashes surround them and the speech continues in lower case, unless the break falls at the end of a sentence (then a full stop and a dash, and a capital). A retold dialogue may run in one paragraph, with the first remark after a dash and the rest in quotation marks. Speech whose author is not named (*Кажуть: скупий двічі платить*) is not marked.

For a parser the dialogue dash at the start of a line is a structural signal: it opens a turn, and a following *— сказав він* is the reporting clause, not a parenthesis. Dialogue and reported speech are in [38. Dialogue and discourse markers](https://md.mova.elamur.ai/free/en/docs/languages/uk/38-dialogue-and-discourse-markers/).

## 6. Apostrophe, hyphen and dashes as characters

The **apostrophe** inside a word is a spelling mark, not punctuation ([05](https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/) §4). It is written as ’ (U+2019) in the *Pravopys*, as ' (U+0027) in most typed text, and increasingly as ʼ (U+02BC): in the 2024 news sample, between two letters, ' 64 907, ’ 29 188, ʼ 4 447. The same characters also serve as single quotation marks in some texts; a tokenizer tells the two uses apart by position (inside a word, between letters, against at a word edge).

The **hyphen** (*дефіс*, -) joins parts of compound words and attaches particles (*бізнес-план*, *по-українськи*, *будь-хто*, *все-таки*, *хоч-не-хоч*, *де-не-де*, *2-й*); a "hanging" hyphen marks a shared second part (*нафто- і газовидобування* 'oil and gas extraction', *водо-* and *аеро-* in ParlaMint, five such tokens). Hyphenated words are frequent: ParlaMint has 538 tokens with an internal hyphen, led by *житлово-комунальн-* 'housing and communal' (52), *все-таки* 'all the same' (16), *по-перше, по-друге, по-третє* (36), *будь-як-* (20), *Прем'єр-міністр*; IU has 291.

The **dash** (*тире*) is a long dash with a space on each side (except between numbers, §4). Typed text replaces it with the en dash – or the hyphen -. In the 2024 news sample, counted as a mark between spaces, the em dash — occurs 27 017 times, the en dash – 62 500 and the hyphen - 90 495; in the 2018 news 37 387, 74 824 and 76 420; in the Wikipedia sample 146 707, 10 545 and 9 789. A space–hyphen–space sequence is therefore more often a dash than not, and a tokenizer must treat " - " as a dash and "-" between letters as a hyphen.

## 7. Capital letters

Capital letters (§§45–61) mark the start of a sentence and proper names. The main points where Ukrainian differs from English:

- **Not capitalised**: names of days and months (*понеділок*, *січень*), nationalities and inhabitants (*українець*, *киянка*), languages (*українська мова*), adjectives from names of places and nations (*київський*, *англійський*), names of posts, ranks, degrees and titles used generically (*президент*, *прем'єр-міністр*, *мер*, *міністр*, *декан*, *академік*, *король*, *князь*), and the words *святий*, *апостол*, *преподобний* before names (*святий Миколай*) (§§49–56).
- **Capitalised**: the first word of the official names of the highest state posts and heads of international organisations (*Президент України*, *Голова Верховної Ради України*, *Генеральний секретар ООН*, *Прем'єр-міністр Канади*), and, in official documents or for solemnity, of ministers and ambassadors (*Міністр освіти і науки України*) (§56); possessive adjectives in *-ів, -їв, -ин, -їн* from personal names (*Шевченкові вірші*, *Франкова поезія*), unlike relational adjectives in *-ськ-* (*шевченківський стиль*) (§49); the first word only of the names of institutions, organisations, documents, historical events and periods (*Верховна Рада України*, *Кабінет Міністрів України*, *Національна академія наук України*, *Велика французька революція*, *Конституція України*), with all words of the main state holidays (*День Незалежності України*, *День Соборності України*, *День Конституції України*) (§§52–55); religious names and holidays (*Бог*, *Святий Дух*, *Богородиця*, *Різдво*, *Великдень*), with *бог* lower case for gods of polytheistic religions (*бог Посейдон*) (§53).
- **The pronoun of respect** *Ви*, *Ваш* is capitalised when addressing one person in a letter or official document (*Повідомляємо Вам…*) (§60.2); in ordinary text it is lower case. A few words take a capital for a special sense: *Батьківщина*, *Вітчизна*, *Людина*, *Мати* (§60.3).
- **After a colon**, direct speech and a quotation start with a capital; a list does not.
- **After an exclamation mark** following a vocative or interjection, the next word has a capital (*Друзі! Ми почнемо.*); when the interjection is inside the sentence, lower case (§46).
- **Abbreviations of institutions** made from parts of words are capitalised when they are proper names (*Укрзалізниця*, *Київенерго*) and lower case when they are common nouns (*завгосп*, *профспілка*) (§61).

## 8. Abbreviations

The *Pravopys* distinguishes **abbreviations proper** (*абревіатури*), which are read as words or letters and inflect or not, from **graphic abbreviations** (*графічні скорочення*), which are written short and read in full (§§61–62).

**Initial abbreviations** are written in capitals without full stops: *НАН* 'National Academy of Sciences', *ЗСУ* 'Armed Forces of Ukraine', *ЗМІ* 'mass media', *АЕС* 'nuclear power plant', *ЄС* 'EU', *ООН* 'UN', *ТОВ* 'limited liability company', *УПА*, *ОУН*, *УНР*. Some sound abbreviations are written in lower case as common nouns (*вуз* 'higher education institution', *неп*). A conjunction *і* inside a sound abbreviation is lower case (*КіЖ* for *Культура і життя*). An initial abbreviation with an ordinary word takes a hyphen (*ВІЛ-інфекція*, *ДНК-аналіз*) (§36). In UD IU the most frequent tokens with `Abbr=Yes` are *р* (48), *грн* (39), *ст* (36), *т* (29), *млрд* (26), *УПА* (21), *тис* (21), *млн* (20), *м* (20), *ТЕС* (16) (all files; 848 tokens in total; ParlaMint 226).

**Graphic abbreviations** end in a full stop and are cut after a consonant, never after a vowel that is not initial and never after ь (*сел.* or *селян.* for *селянський*; *власноруч.*, but only *власт.* for *властивий*) (§62.1). The commonest: *р.* 'year; river', *рр.* 'years', *ст.* 'century; article; station', *с.* 'village; page', *м.* 'city', *обл.* 'region', *вул.* 'street', *буд.* 'building', *кв.* 'flat', *проф.* 'professor', *акад.* 'academician', *див.* 'see', *напр.* 'for example', *пор.* 'compare', *т. зв.* 'so-called', *і т. д.* 'and so on', *і т. ін.*, *та ін.* 'and others', *і под.*, *до н. е.* 'BC', *н. е.* 'AD', *тис.* 'thousand', *у т. ч.* 'including'. **Units** and some contractions take **no full stop**: *м*, *см*, *км*, *кг*, *г*, *т*, *л*, *га*, *Вт*, *кВт*, *год* 'hour', *хв* 'minute', *с* 'second', *грн* 'hryvnia', *млн*, *млрд*, *трлн*. Abbreviations with the middle part cut out take a hyphen and no full stop: *вид-во* 'publishing house', *ун-т* 'university', *ін-т* 'institute', *р-н* 'district', *гр-н* 'citizen', *т-во* 'society'; compound adjectives join their cut parts by a hyphen with full stops: *півн.-сх.* 'north-eastern', *с.-г.* 'agricultural' (§62.2–4).

Usage follows the unit rule only in part: in the 2024 news sample *грн* without a full stop occurs 9 553 times and *грн.* 2 996 times, *млн* 5 133 and *млн.* 296. In the treebanks the two disagree on what a token is: UD IU separates the full stop of a graphic abbreviation as its own token (*р* + *.*; one token in IU ends in a full stop after a letter), while ParlaMint keeps it in the token (*млн.* 7, *тис.* 6, *прим.* 1; 16 tokens in all).

## 9. Numbers, dates, units

### 9.1 Decimal mark and grouping

The **decimal mark is the comma** (*3,5 відсотка*, *0,7 л*) and digits are grouped by threes with a space (*1 500 000*); neither rule is stated in the *Pravopys*, which leaves numbers to the national standards for documents, but both are uniform in practice. In the 2024 news sample, numbers with a decimal comma occur 18 389 times against at most 1 074 with a point (the latter include times and section numbers); 4 348 numbers are grouped with a plain space and none with a no-break space, which the collection may have replaced.

### 9.2 Ordinals in figures

An ordinal written in figures takes its ending with a hyphen: *5-й поверх* 'fifth floor', *на 36-му кілометрі*, *після 7-ї години*, *1990-ті роки*, *у 90-х роках* (§106). The ending is the last letters of the word: *-й*, *-го*, *-му*, *-ї*, *-ій*, *-та*, *-х*. It is **not** written with dates, pages and Roman numerals: *1 січня 2000 р.*, *с. 25*, *XXI ст.* In the 2024 news sample the endings counted are *-го* 3 891, *-ї* 1 863, *-й* 1 773, *-х* 1 189, *-му* 1 117, against *-ти* 238 and *-та* 214; the last two are mostly the case endings of cardinals (*5-ти* 'of five'), which the norm does not use (one writes *п'яти* or *5*). The endings are never separated from the figure at a line break (§64).

### 9.3 Dates and times

Dates are written **day, month in the genitive, year**: *6 листопада 2026 року* or *6 листопада 2026 р.*, and in numerical form *06.11.2026*. The month is not capitalised. The year takes *року* or *р.*; in the 2024 news sample *року* after a four-digit year occurs 24 039 times and *р.* 235 times, and *N січня…грудня* 39 482 times against 175 dates in the form *dd.mm.yyyy*. Centuries are in Roman numerals with *ст.* (*XX ст.*), decades as *1990-ті*, ranges with the dash without spaces (*2010—2018*). Time is written *о 9:30* or *о 9.30*, *о 9-й годині*.

### 9.4 Currency, units and symbols

Currency follows the number: *100 грн*, *50 доларів*, *$150* in some news; the hryvnia sign ₴ is used on price tags. The percent sign is written close to the number in the 2024 news (*15%* 13 833 against *15 %* 134). The numero sign *№* is used for numbers of documents, houses and items (1 598 in the 2024 news): *наказ № 333*, *будинок № 28-Г*. Units follow the number with a space: *20 км*, *5 кг*, *150 га*.

## 10. Other conventions of the page

- **Lists**: §168 gives the rules of rubrication. Multi-level lists use numbered headings from wider to narrower; simple lists use Arabic numerals with a full stop or, more often, with a parenthesis, or lower-case letters with a parenthesis, the items then running on in lower case and separated by semicolons or commas.
- **Line breaks** follow the syllable rules of [05](https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/) §8; graphic abbreviations, numbers with units and figures with their endings are not broken (§64).
- **The stress mark** is a spelling device for homographs and rare words, used in dictionaries and textbooks ([05](https://md.mova.elamur.ai/free/en/docs/languages/uk/05-writing-system/) §7.1).
- **Spaces**: no space before , . : ; ! ? and the closing bracket or quotation mark; a space after them; spaces around the dash except between numbers; no space around the hyphen.

## 11. How Mova handles punctuation and typography

Mova has two tokenizers that touch Ukrainian; neither has rules written for it.

**The English tokenizer** (`en/src/tok.rs`), run through `en tok-eval`, learns from the training treebank which hyphenated forms and abbreviations to keep whole and whether the apostrophe joins letters, and is evaluated on the dev file (binary of 2026-10-22; two runs of 2026-11-06 with identical output):

| treebank, train → dev | sentences | exact token sequence | token P | token R | token F1 | learned from train |
| --- | --- | --- | --- | --- | --- | --- |
| UD Ukrainian IU | 673 | 92.6% | 99.24 | 98.86 | 99.05 | 0 abbreviations; 150 hyphenated kept, 370 split (default split); apostrophe joins; 6 numeric suffixes |
| UD Ukrainian ParlaMint | 739 | 99.6% | 99.96 | 99.94 | 99.95 | 2 abbreviations; 210 hyphenated kept, 0 split (default keep); 0 apostrophe cases |

The errors are in the places this chapter describes:

- **Hyphens.** On IU the tokenizer learned the default "split hyphenated words", so unseen compounds such as *хенд-мейд* 'hand-made' and *хоч-не-хоч* 'willy-nilly' are cut at the hyphens, where IU keeps them whole. On ParlaMint the default is "keep", and the one hyphen error goes the other way: ParlaMint splits the particle in *Давайте-таки проголосуємо зміни до бюджету* 'Let's after all vote the budget changes' as *Давайте-* + *таки* (`ParlaMint-UA_2022-01-25-m0.u147.p5.lang1.s4`), against its own practice for *все-таки*, which it keeps as one token 16 times; the tokenizer keeps *Давайте-таки* whole, as the *Pravopys* (§44) writes it. That miss is in the treebank, not in the tokenizer.
- **Abbreviations.** IU separates the full stop of graphic abbreviations and of initials (*А.* *О.* as four tokens); the tokenizer, having learned no abbreviations, joined an unseen *А.О* and split the last full stop. In ParlaMint, which keeps the full stop in the token, the tokenizer split *прим.* 'note' into *прим* + *.* (`ParlaMint-UA_2022-01-25-m0.u131.p2.lang1.s3_2022-01-25-m0.u131.p2.lang1.s4`).
- **Slash and numbers.** The tokenizer keeps *та/або* whole, where ParlaMint splits it into *та* + */* + *або* (`ParlaMint-UA_2022-01-25-m0.u139.p5.lang1.s1`); it keeps a section number *1-1* whole, where IU splits it into *1* + *-* + *1*.
- **What works**: the apostrophe in any of its forms stays inside the word (*в’їзд*, *Суб'єкти*), the guillemets, dashes and the ellipsis are separate tokens, and numbers with a decimal comma stay whole.

**The `kg` tokenizer** (`kg/src/uk.rs`, `tokenize`) is a character scanner: letters and digits form words, a hyphen or an apostrophe (' ’ ʼ) between a letter or digit and a following letter joins (so *пів-Європи*, *2-й*, *п'ять*, *все-таки* are one token), and every other non-space character is a token of its own, including each full stop of *т. ін.* and each character of *?!..*. Since `kg` parses only simple sentences, it **rejects** any sentence with a comma, a question, a conjunction, a digit or a dash next to a verb before parsing ([kg — the Mova knowledge graph](https://md.mova.elamur.ai/free/en/docs/kg/), "Rejections"), so most of this chapter's punctuation never reaches its parser; the rejection is the designed behaviour, not an error.

**Not handled**: neither tokenizer has a list of Ukrainian graphic abbreviations (§8), so *т. зв.*, *і т. д.*, *ст.*, *р.* are split or kept only as the training data happened to show them; nothing distinguishes the dialogue dash, the zero-copula dash and the range dash (§§4, 5.2), which a parser could use; the straight quotation mark is not resolved into opening and closing; and capitalisation is not used as evidence (a capital after a mid-sentence ! or after a colon is not distinguished from a proper name). A Ukrainian tokenizer would start from the abbreviation list of §62 and the hyphen rules of §§35–44 of the *Pravopys*, both of which are short, closed and public.

## Sources for this chapter

- *Український правопис* (2019). Approved by Cabinet of Ministers resolution No. 437 of 22 May 2019. Official document, not protected by copyright. §§35–36, 44–64, 106, 155–168. Library `books/u/uk/ukrainskyi-pravopys-2019` (`uk-gram-pravopys-2019`); [archive.org/details/6032727-Ukr-Pravopys-2019](https://archive.org/details/6032727-Ukr-Pravopys-2019)
- Goldhahn, Dirk, Thomas Eckart & Uwe Quasthoff. 2012. Building Large Monolingual Dictionaries at the Leipzig Corpora Collection. LREC 2012. Samples *ukr_news_2024*, *ukr_newscrawl_2018*, *ukr_wikipedia_2021* (CC BY); counts of 2026-11-06.
- Shvedova, Maria, Arsenii Lukashevskyi & Andriy Rysin. 2025. Developing a Universal Dependencies Treebank for Ukrainian Parliamentary Speech. CC BY 4.0 (ACL Anthology) (`shvedova-2025-developing-universal-dependencies-treebank-ukrainian`). The description of UD Ukrainian ParlaMint.
- UD Ukrainian IU 2.18 (CC BY-NC-SA 4.0, counts only) and UD Ukrainian ParlaMint 2.18 (CC BY-SA 4.0; quoted sentences carry their `sent_id`), ud-treebanks-v2.18; counts of 2026-11-06.
- Mova: `en/src/tok.rs`, `en/src/main.rs` (`tok_eval`, `xpos_fill`), `kg/src/uk.rs` (`tokenize`), [kg — the Mova knowledge graph](https://md.mova.elamur.ai/free/en/docs/kg/).
- [← previous 6. Spelling rules and the 2019 orthography](https://md.mova.elamur.ai/free/en/docs/languages/uk/06-spelling-rules/)
- [next → 8. Regional varieties, diaspora and surzhyk](https://md.mova.elamur.ai/free/en/docs/languages/uk/08-national-varieties/)
- [↑ back to Ukrainian: a reference manual for Mova](https://md.mova.elamur.ai/free/en/docs/languages/uk/)
