| name | verb-conjugations |
| description | Full conjugation table specification for verb and i-adjective entries. Covers JSON structure, form categories, and generation rules for all verb classes and i-adjectives. |
Verb Conjugation Tables
Every verb entry includes a conjugation field containing the full set of conjugated forms, hard-coded directly in the JSON. This makes the data self-contained and usable without any generation logic.
JSON Structure
"conjugation": {
"type": "godan",
"forms": [
{"label": "Present", "affirmative": "{่ชญ|ใ}ใ", "negative": "{่ชญ|ใ}ใพใชใ"},
{"label": "Present polite", "affirmative": "{่ชญ|ใ}ใฟใพใ", "negative": "{่ชญ|ใ}ใฟใพใใ"},
{"label": "Past", "affirmative": "{่ชญ|ใ}ใใ ", "negative": "{่ชญ|ใ}ใพใชใใฃใ"},
...
]
}
type: One of godan, ichidan, suru, kuru, aru
forms: Array of objects, each with label, affirmative, and negative (null for forms without a negative, like volitional)
Form Categories (17 rows for most verbs)
The standard conjugation table includes these forms in order:
| # | Label | Example (godan ใ) |
|---|
| 1 | Present | {่ชญ |
| 2 | Present polite | {่ชญ |
| 3 | Past | {่ชญ |
| 4 | Past polite | {่ชญ |
| 5 | ใฆ form | {่ชญ |
| 6 | ใฆใใ present | {่ชญ |
| 7 | ใฆใใ polite | {่ชญ |
| 8 | ใฆใใ past | {่ชญ |
| 9 | ใฆใใ past polite | {่ชญ |
| 10 | Conditional ใฐ | {่ชญ |
| 11 | Conditional ใใ | {่ชญ |
| 12 | Volitional | {่ชญ |
| 13 | Volitional polite | {่ชญ |
| 14 | Potential | {่ชญ |
| 15 | Passive | {่ชญ |
| 16 | Causative | {่ชญ |
| 17 | Imperative | {่ชญ |
Exceptions:
ใใ has only 7 forms (Present through Conditional ใใ โ no potential, passive, causative, etc.)
- Verbs whose headword is already in passive form should omit the Passive row
Godan Verb Conjugation Bases
| Ending | a-dan | i-dan | e-dan | o-dan | ใฆ/ใ |
|---|
| ใ | ใ | ใ | ใ | ใ | ใฃใฆ/ใฃใ |
| ใ | ใ | ใ | ใ | ใ | ใใฆ/ใใ |
| ใ | ใ | ใ | ใ | ใ | ใใง/ใใ |
| ใ | ใ | ใ | ใ | ใ | ใใฆ/ใใ |
| ใค | ใ | ใก | ใฆ | ใจ | ใฃใฆ/ใฃใ |
| ใฌ | ใช | ใซ | ใญ | ใฎ | ใใง/ใใ |
| ใถ | ใฐ | ใณ | ใน | ใผ | ใใง/ใใ |
| ใ | ใพ | ใฟ | ใ | ใ | ใใง/ใใ |
| ใ | ใ | ใ | ใ | ใ | ใฃใฆ/ใฃใ |
Special case: ่กใ conjugates ใฆ form as ่กใฃใฆ (not ่กใใฆ).
Ichidan Verbs
Stem = headword minus final ใ. All suffixes attach directly to stem.
ใใ Compound Verbs
Prefix = everything before ใใ (e.g., {ๅๅผท|ในใใใใ} for {ๅๅผท|ในใใใใ}ใใ).
If headword doesn't include ใใ (e.g., ใใฃใใ), the entire headword is the prefix.
ๆฅใ Verbs
The kanji ๆฅ takes different readings in different forms:
- ใ: Present, Conditional ใฐ, Imperative negative
- ใ: Polite forms, Past, ใฆ form, ใฆใใ forms, Conditional ใใ, Volitional polite
- ใ: Negative forms, Volitional, Potential, Passive, Causative, Imperative affirmative
Adding Conjugation to New Entries
When creating a new verb entry, include the full conjugation field with all forms.
You can use build/add_conjugations.py to generate conjugation data automatically:
python3 build/add_conjugations.py --start <id_number> --end <id_number>
Or include the conjugation field directly when writing the entry JSON, following the patterns above.
Bulk Operations
To add conjugation to all verbs that don't have it yet:
python3 build/add_conjugations.py
python3 build/add_conjugations.py --dry-run
python3 build/add_conjugations.py --force
I-Adjective Conjugation
I-adjectives also use the same conjugation JSON structure with 6 forms (Present, Past, ใฆ form, Adverbial, Conditional ใฐ, Conditional ใใ). Type values are i-adjective (regular) or ii (ใใ and its compounds, which conjugate with ใ- stem).
python3 build/add_adjective_conjugations.py
python3 build/add_adjective_conjugations.py --dry-run
python3 build/add_adjective_conjugations.py --force