Derbasî naverokê bibe

23. The written standard and common errors

🔴 Pêşketî · Dersa 23 ji 23

Ev rûpel niha bi îngilîzî ye.

You can now read and write Sorani grammatically. This lesson covers what separates a correct text from a merely understandable one: the spelling standard, and the mistakes that native writers and machines make most. Sections 1 to 6 are implemented in zimankit (skills_ckb/orthography.py); section 7 and the fuller written standard are only partly implemented, so this lesson is also the specification of a future grammar checker.

1. Use Kurdish letters, not Arabic or Persian ones

Keyboards often produce look-alike characters from other languages. They look the same but break searching, sorting and spell-checking:

wrong (Arabic/Persian code point)right (Kurdish)
كک
ي ىی
ةە
ه used as a vowelە
ھه

2. Don’t drop the marks

ڕ ڵ ێ ۆ are distinct letters. Writing ر ل ی و instead changes the word: گول is not گوڵ flower, بەلام is not بەڵام but.

3. Initial vowels need ئ

A word never starts with a bare vowel: ئاو, ئێمە, ئەو, never او or ێمە.

4. Old encodings

Older websites and documents typed ە as ه + ZWNJ and used Arabic digits and punctuation. The normaliser converts all of this:

typed textafter normalisingproblems the validator still findsnote
به‌ڕێوه‌به‌ربەڕێوەبەر·legacy ه + ZWNJ for ە
كتێبەكەکتێبەکە·Arabic kāf
ئەو رۆژەئەو ڕۆژە·initial ر should be ڕ
ساڵی 2015ساڵی ٢٠١٥·Latin digits
گولگول·missing ڵ: a possible word shape, so not flagged here (see section 6)

5. Words the validator rejects

validate_word() reports spellings that cannot be standard Sorani:

typed textafter normalisingproblems the validator still findsnote
ثەورەثەورەثەورە: arabic-only letter; non-Kurdish character(s): U+062BArabic-only letter ث
اسپئاسپ·initial vowel without ئ
ذکرذکرذکر: arabic-only letter; non-Kurdish character(s): U+0630Arabic-only letter ذ

6. Real words in the wrong spelling

Some errors produce a string that could be a word. گول is a possible letter sequence, so a validator cannot reject it; only a lexicon can tell you that گوڵ flower is the word meant. zimankit generates the confusable variants of a word (spelling_variants: ر/ڕ ل/ڵ ی/ێ و/ۆ و/وو ه/ە, ZWNJ), and the wordlist pipeline maps a rare spelling to a variant that is at least five times more frequent in the corpus. 24 924 such pairs were learned from real text. The most frequent:

non-standardstandardseenstandard seen
وێستگهوێستگە station6 74855 860
سێشەممهسێشەممە Tuesday1 4097 681
ڕای‌گەیاندڕای گەیاند or ڕایگەیاند he announced29579 327 (solid)
دینارهدینارە it is a dinar23413 721
نێردراوهنێردراوە has been sent2093 322

Most are the legacy ه-for-ە problem of section 4 on words the normaliser could not safely fix on its own. ڕای‌گەیاند shows a ZWNJ inserted after the preverb clitic (lesson 20). No authority uses that ZWNJ. The spelling standard prefers a space (ڕای گەیاند) and allows the solid form, which is far more common in the corpus. zimankit’s lexicon stores the solid form, and its analyzer does not read the split one correctly yet.

7. The spelling standard

The rules below come from the written-standard sources in chapter 23, which also says where those sources disagree. The last column says what validate_word() checks, and most spacing needs grammar, so it is not checked:

writenotwhychecked
وشە, ورچووشە, وورچوو is never initialyes
چوو, مێژوو, وەکووچو, مێژو, وەکوfinal û after a consonantyes
کەرکووککەرکوکmedial ûlisted words
تیر, کوردیتییرone ی for î after a consonant
کۆتایی, سنەیییی after a vowel
نییە, چییە, کوردییەنیە, کوردی‌یەی + یە, solidlisted words, ZWNJ
بەرانبەربەرامبەرyes
ڕۆژاوا, ماڵاواییڕۆژئاوا, ماڵئاواییئ drops inside a compoundyes
من و تۆمنو تۆ, من‌و تۆand is a separate wordZWNJ
ڕۆژی جیهانیی ژنانڕۆژی جیهانی ژنانezafe after ی
ئەو نووسیی, پرسییانئەو نووسی, پرسیانkeep the stem’s ی before a clitic
ئەمڕۆ, ئەمساڵ; ئەم جارەa time word is solid until it takes an ending
نانکردن; نان دەکەم; نانم کردcompound verbs: infinitive solid, conjugated apart
هەڵدەگرم; هەڵم گرتڕای‌گەیاندpreverbs split around a clitic; the solid هەڵمگرت is allowed
لە ماڵدا; من لە ماڵداملە ماڵ دا, من لە ماڵ دامpostpositions attach, and so does a copula after them
لەگەڵ, لەسەرلە گەڵ, لە سەرfixed prepositions
بەخێرایی; بە ئۆتۆمبیلبە خێراییmanner adverb against preposition
جوانتر; ڕۆژێکی ترجوان ترcomparative against another
پێم وایە; دەستم لێ داپێموایەپێ, لێ, تێ stand apart, but join a clitic
بیست و یەک, دوو سەد; دووشەممەcompound numbers apart; number + noun as a new word solid

8. Grammar errors to watch

These need context, not just spelling. zimankit’s sentence parser warns about the first two in its notes, and the rest are not checked:

errorexamplecorrectlesson
agent clitic missing in the past* من نان خواردمن نانم خوارد14
agent clitic on an intransitive verb* هاتمانهاتین13
wrong allomorph after a vowel* دەرگاەکەدەرگاکە7
plural noun after a number (common usage; no explicit rule in the grammars checked)* سێ پیاوانسێ پیاو7
ezafe missing between noun and adjective* پیاو باشپیاوی باش9
definite + adjective order* پیاوەکە باش (as a phrase)پیاوە باشەکە9

Summary

  • Use Kurdish code points; keep the marks on ڕ ڵ ێ ۆ; start vowels with ئ.
  • zimankit normalises legacy text and flags impossible spellings.
  • Lexicon-based variant mapping catches real-word misspellings.
  • The spelling standard includes spacing: compound verbs apart (نان دەکەم, هەڵم گرت), postpositions attached (لە ماڵدا).
  • Agreement errors need context: the sentence parser warns about some of them.

Congratulations, you have finished the Sorani course. The reference pages have every verb and noun of the course in full.

Zimanyar checks this