generated from templates/typst-grammar
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
325 lines
15 KiB
325 lines
15 KiB
#import "annwan-grammar.typ": *
|
|
#import "@preview/leipzig-glossing:0.3.0": *
|
|
#let gl = gloss.with(numbering: true, label-supplement: [Example])
|
|
#let sc = smallcaps
|
|
#let nh = it => text(font: "Nahan", size: 1.5em, it)
|
|
#show: it => conf(
|
|
title: "The Mosici Language: A Comprehensive Grammar",
|
|
clong-title: "Mosécéc an-ila: Opinaloila Sineap",
|
|
main-font: (font: "Minion3"),
|
|
clong-font: nh,
|
|
it
|
|
)
|
|
#set table(stroke: none)
|
|
|
|
= Sounds and Letters
|
|
== Phonology and Phonotactics
|
|
|
|
Mosici has the following vowels (all of which may be nasalised, for a total of 36) and consonants:
|
|
#align(center, grid(columns: 2, gutter: 1em,
|
|
table(
|
|
columns: 3,
|
|
align: horizon + center,
|
|
table.vline(x: 1),
|
|
[], [*Front*], [*Back*],
|
|
table.hline(),
|
|
[*Close*], [i y], [u],
|
|
[*Close-Mid*], [e ø], [o],
|
|
[*Open-Mid*], [ɛ], [ɔ],
|
|
[*Open*], [a], [],
|
|
), table(align: horizon+center, columns: 5, table.vline(x: 1),
|
|
[], [*Labial*], [*Coronal*], [*Palatal*], [*Dorsal*], table.hline(),
|
|
[*Nasal*], [m], [n], [], [],
|
|
[*Plosive*], [p], [t], [], [k],
|
|
[*Fricative*], [ɸ β], [s z], [ɕ ʑ], [ʀ],
|
|
[*Liquid*], [w], [l], [j], [(w)])
|
|
))
|
|
|
|
The minimal syllable structure is *V* maximal syllable structure is *CCCVCCC*.
|
|
Vowel hiatus is not permitted.
|
|
|
|
== The Nahan Script
|
|
|
|
Mosici is written in the Nahan script (also know as the Póliahr script). The script is an alphabet composed of the following letters:
|
|
#align(center, table(align:horizon+center, columns: 10, table.vline(x: 1),
|
|
[*Letter*], nh[p], nh[o], nh[l], nh[i], nh[a], nh[h], nh[r], nh[u], nh[c],
|
|
[*Translit.*], [p], [o], [l], [i], [a], [h], [r], [u], [c],
|
|
[*Name*], nh[paí], nh[ós], nh[lán], nh[írni], nh[ánta], nh[hapfe], nh[ris], nh[uoc], nh[cal],
|
|
[*Name (Translit.)*],[paí], [ós], [lán], [írni], [ánta], [hapfe], [ris], [uoc], [cal],
|
|
[*IPA*],[/p/],[/o/],[/l/],[/e/, /j/],[/a/],[∅#footnote[lengthens a preceding vowel]],[/ʀ/],[/w/],[/k/],
|
|
table.hline(),
|
|
[*Letter*], nh[n], nh[e], nh[s], nh[z], nh[f], nh[v], nh[m], nh[t], [],
|
|
[*Translit.*], [n], [e], [s], [z], [f], [v], [m], [t], [],
|
|
[*Name*], nh[naol], nh[éstal], nh[sipal], nh[zorel], nh[fasoh], nh[viren], nh[milo], nh[tecio], [],
|
|
[*Name (Translit.)*], [naol], [éstal], [sipal], [zorel], [fasoh], [viren], [milo], [tecio], [],
|
|
[*IPA*], [/n/#footnote[nasalises a preceeding vowel, isn’t pronounced when followed by a consonant]], [/ɛ/], [/s/], [/z/], [/ɸ/], [/β/], [/m/], [/t/], [],
|
|
))
|
|
|
|
There is also the following modified letters and common digraphs. The diacritic on the vowels is called the #nh[sitrapaóha] ‹sitrapaóha›.
|
|
|
|
#align(center, table(align: center+horizon, columns: 3,
|
|
[*Letter(s)*], [*Translit.*], [*IPA*], table.hline(),
|
|
nh[ó], [ó], [/u/],
|
|
nh[í], [í], [/i/],
|
|
nh[á], [á], [/ɔ/],
|
|
nh[é], [é], [/i/],
|
|
nh[si], [si], [/ɕ/],
|
|
nh[zi], [zi], [/ʑ/],
|
|
))
|
|
#pagebreak(weak:true)
|
|
== Vowel Coalescence
|
|
Would-be vowel hiatuses are resolved by vowel coalescence. Coalescence happens from both ends of the vowel clusters at the same time (the starting side taking priority) with the following rules:
|
|
- If any of the two coalescing vowel is long, the resulting vowel is long
|
|
- If the first vowel is nasal, no coalescence happens, instead a /n/ is inserted
|
|
- If the second vowel is nasal, the resulting vowel is nasal.
|
|
- Repeat until all hiatuses have been resolved
|
|
|
|
#align(center, table(align: center+horizon, columns: 10, table.vline(x: 1),
|
|
table.vline(x: 4), table.vline(x: 7),
|
|
[*Second → \ ↓ First*], [*i*], [*y*], [*u*], [*e*], [*ø*], [*o*], [*ɛ*], [*ɔ*], [*a*],
|
|
table.hline(),
|
|
[*i*], [ji], [jy], [ju], [je], [jø], [jo], [jɛ], [jɔ], [ja],
|
|
[*y*], [i], [y], [y], [ø], [y], [ø], [ø], [ø], [ø],
|
|
[*u*], [wi], [y], [u], [we], [wø], [wo], [wɛ], [wɔ], [wa],
|
|
table.hline(),
|
|
[*e*], [i], [ø], [ø], [i], [e], [ø], [e], [ø], [ɛ],
|
|
[*ø*], [y], [y], [y], [e], [y], [ø], [e], [ø], [ø],
|
|
[*o*], [ø], [ø], [u], [ø], [ø], [u], [ø], [o], [ɔ],
|
|
table.hline(),
|
|
[*ɛ*], [i], [ø], [ø], [i], [e], [ø], [e], [ø], [ɛ],
|
|
[*ɔ*], [ø], [ø], [o], [ø], [ø], [o], [ø], [ɔ], [ɔ],
|
|
[*a*], [e], [ø], [o], [ɛ], [ɛ], [ɔ], [a], [ɔ], [ɔ],
|
|
))
|
|
|
|
*Examples*:
|
|
#let x = it => text(fill: color.rgb("#800") ,it)
|
|
- #nh[sinea] ‹sinea› \*/ɕn#x[ɛa]/ → /ɕn#[*ɛ*]/
|
|
- #nh[tráiheíns] ‹tráiheíns› \*/tʀ#x[ɔeː]ɛĩs/ → \*/tʀ#[*øː*]#x[ɛĩ]s/ → \*/tʀ#x[øː#[*ĩ*]]s/ → /tʀ#[*ỹː*]s/
|
|
= Morphology
|
|
== Nouns
|
|
Noun patterns are referenced by 2 parameters: the vowel categories, which
|
|
affects plural formation, and the consonant category which affects case marking.
|
|
|
|
=== Vowel patterns and plurals
|
|
|
|
There 2 are categories of vowel patterns: plain patterns and accented patterns.
|
|
|
|
Plain patterns occur when the last vowel of the root of the noun is unmarked (it
|
|
doesn’t have a sitrapaóha). The plural in plain patterns is marked by placing a sitrapaóha on the
|
|
last vowel of the root of the noun.
|
|
|
|
Accented patterns occur when the last vowel of the root of the noun already has
|
|
a sitrapaóha. The result of pluralisation is dependent of the vowel
|
|
|
|
Nasalisation is preserved by pluralisation
|
|
|
|
#align(center, table(columns: 2, [*Root vowel*], [*Plural form*], table.hline(),
|
|
nh[ó], nh[uo],
|
|
nh[í], nh[íi],
|
|
nh[á], nh[o],
|
|
nh[é], nh[ie],
|
|
))
|
|
|
|
=== Consonant patterns and cases
|
|
There are 3 consonantal patterns: Concatenative, Substitutive I, and Substitutive II.
|
|
|
|
The concatenative pattern is used when the root of a noun ends in a vowel, or any of the following consonants: /p f v r w l j/, in this case the case marking affix is placed after the root:
|
|
#align(center, table(columns: 2, [*Case*], [*Affix*], table.hline(),
|
|
[*Nominative*], [∅],
|
|
[*Accusative*], nh[-t],
|
|
[*Genitive*], nh[-c],
|
|
[*Allative*], nh[-si],
|
|
[*Illative*], nh[-via],
|
|
))
|
|
|
|
The Substitutive I pattern is used when a noun root ends in /s/, in this case, the case marking replaces the final consonant:
|
|
#align(center, table(columns: 2, [*Case*], [*Affix*], table.hline(),
|
|
[*Nominative*], nh[-s],
|
|
[*Accusative*], nh[-t],
|
|
[*Genitive*], nh[-c],
|
|
[*Allative*], nh[-si],
|
|
[*Illative*], nh[-via],
|
|
))
|
|
#pagebreak(weak: true)
|
|
The Substitutive II pattern is used when a noun root ends in /z/, this pattern is similar to the Substitutive I pattern except the nominative and allative are voiced:
|
|
#align(center, table(columns: 2, [*Case*], [*Affix*], table.hline(),
|
|
[*Nominative*], nh[-z],
|
|
[*Accusative*], nh[-t],
|
|
[*Genitive*], nh[-c],
|
|
[*Allative*], nh[-zi],
|
|
[*Ablative*], nh[-via],
|
|
))
|
|
|
|
In the substitutive patterns if the root ends in a /k/ the genitive is null, and if the root ends in a /t/, the accusative is null.
|
|
|
|
Here are some examples
|
|
#align(center,table(columns: 3, table.vline(x: 1),
|
|
[], sc[*sg*], sc[*pl*],
|
|
table.hline(),
|
|
sc[*nom*], nh[iplesa], nh[iplesá],
|
|
sc[*acc*], nh[iplesat], nh[iplesát],
|
|
sc[*gen*], nh[iplesac], nh[iplesác],
|
|
sc[*all*], nh[iplesasi], nh[iplesási],
|
|
sc[*abl*], nh[iplesavia], nh[iplesávia],
|
|
) + [#nh[iplesa] “person” (P/C)])
|
|
|
|
#align(center,table(columns: 3, table.vline(x: 1),
|
|
[], sc[*sg*], sc[*pl*],
|
|
table.hline(),
|
|
sc[*nom*], nh[tráiheíns], nh[tráiheíins],
|
|
sc[*acc*], nh[tráiheínt], nh[tráiheíint],
|
|
sc[*gen*], nh[tráiheínc], nh[tráiheíinc],
|
|
sc[*all*], nh[tráiheínsi], nh[tráiheíinsi],
|
|
sc[*abl*], nh[tráiheínvia], nh[tráiheíinvia],
|
|
) + [#nh[tráiheíns] “fox” (I-A/S-I)])
|
|
#align(center,table(columns: 3, table.vline(x: 1),
|
|
[], sc[*sg*], sc[*pl*],
|
|
table.hline(),
|
|
sc[*nom*], nh[naleóz], nh[naleuoz],
|
|
sc[*acc*], nh[naleót], nh[naleuot],
|
|
sc[*gen*], nh[naleóc], nh[naleuoc],
|
|
sc[*all*], nh[naleózi], nh[naleuozi],
|
|
sc[*abl*], nh[naleóvia], nh[naleuovia],
|
|
) + [#nh[naleóz] “livestock” (O-A/S-II)])
|
|
|
|
=== Definite Particle #nh[an-]
|
|
The definite is marked by the prefix particle #nh[an-] ‹an-› on the head noun.
|
|
This particle has a special pronounciation rule where before a vowel it is not pronounced \*/ãn-/ but /ãt-/. This is a hold-over from Middle Mosici where it was /ant/ (from Nyelavi anətə) in all environments.
|
|
|
|
*Examples*:
|
|
- #nh[farein] /ɸaʀĩ/ “mountain”, #nh[an-farein] /ãfaʀĩ/ “the mountain”
|
|
- #nh[iplesa] /eplɛsa/ “person”, #nh[an-iplesa] /ãteplɛsa/ “the person”
|
|
|
|
=== Locatives
|
|
|
|
The spatial locative is formed by expressing the noun in the genitive and following it by the particle #nh[la] ‹la›
|
|
|
|
The temporal locative is formed by expressing the noun in the accusative and following it by the particle #nh[anop].
|
|
|
|
*Examples*:
|
|
- #nh[sialc la] “in a city”
|
|
- #nh[an-vint anop] “on the day”
|
|
|
|
== Verbs
|
|
|
|
Mosici verbs are inflected for tense and person by a suffix. The gnomic apersonal is used as the lemma form of verbs
|
|
|
|
#align(center,
|
|
table(columns: 12, table.vline(x: 1), table.vline(x: 5), table.vline(x: 10),
|
|
[], sc[*1s*], sc[*2s*], sc[*3sa*], sc[*3si*], sc[*1pe*], sc[*1pi*], sc[*2p*] , sc[*3pa*], sc[*3pi*], sc[*inf*], sc[*pcp*],
|
|
table.hline(),
|
|
sc[*pst*], nh[-if], nh[-in], nh[-ih], nh[-is], nh[-ív], nh[-ím], nh[-ín], nh[-ír], nh[-íz], nh[-i], nh[-ip],
|
|
sc[*prs*], nh[-ef], nh[-en], nh[-eh], nh[-es], nh[-év], nh[-ém], nh[-én], nh[-ér], nh[-éz], nh[-e], nh[-ep],
|
|
sc[*fut*], nh[-of], nh[-on], nh[-oh], nh[-os], nh[-óv], nh[-óm], nh[-ón], nh[-ór], nh[-óz], nh[-o], nh[-op],
|
|
sc[*gno*], nh[-af], nh[-an], nh[-ah], nh[-as], nh[-áv], nh[-ám], nh[-án], nh[-ár], nh[-áz], nh[-a], nh[-ap]
|
|
)
|
|
)
|
|
Note that the #sc[pst.pl] and the #sc[prs.pl] are pronounced identically in all environments.
|
|
|
|
|
|
#align(center,
|
|
table(columns: 12, align: horizon, table.vline(x: 1), table.vline(x: 5), table.vline(x: 10),
|
|
[], sc[*1s*], sc[*2s*], sc[*3sa*], sc[*3si*], sc[*1pe*], sc[*1pi*], sc[*2p*] , sc[*3pa*], sc[*3pi*], sc[*inf*], sc[*pcp*],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*pst*]), nh[oítif], nh[oítin], nh[oítih], nh[oítis], nh[oítív], nh[oítím], nh[oítín], nh[oítír], nh[oítíz], nh[oíti], nh[oítip],
|
|
[ytef], [ytẽ], [yteː], [ytes], [ytiβ], [ytim], [ytĩ], [ytiʀ], [ytiz], [yte], [ytep],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*prs*]), nh[oítef], nh[oíten], nh[oíteh], nh[oítes], nh[oítév], nh[oítém], nh[oítén], nh[oítér], nh[oítéz], nh[oíte], nh[oítep],
|
|
[ytɛf], [ytɛ̃], [ytɛː], [ytɛs], [ytiβ], [ytim], [ytĩ], [ytiʀ], [ytiz], [ytɛ], [ytɛp],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*fut*]), nh[oítof], nh[oíton], nh[oítoh], nh[oítos], nh[oítóv], nh[oítóm], nh[oítón], nh[oítór], nh[oítóz], nh[oíto], nh[oítop],
|
|
[ytof], [ytõ], [ytoː], [ytos], [ytuβ], [ytum], [ytũ], [ytuʀ], [ytuz], [yto], [ytop],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*gno*]), nh[oítaf], nh[oítan], nh[oítah], nh[oítas], nh[oítáv], nh[oítám], nh[oítán], nh[oítár], nh[oítáz], nh[oíta], nh[oítap],
|
|
[ytaf], [ytã], [ytaː], [ytas], [ytɔβ], [ytɔm], [ytɔ̃], [ytɔʀ], [ytɔz], [yta], [ytap],
|
|
) + [
|
|
Conjugation table for #nh[oíta] “_to be high_”
|
|
] +
|
|
{
|
|
let nh = it => text(font: "Nahan", size: 1.25em, it)
|
|
table(columns: 12, align: horizon, table.vline(x: 1), table.vline(x: 5), table.vline(x: 10),
|
|
[], sc[*1s*], sc[*2s*], sc[*3sa*], sc[*3si*], sc[*1pe*], sc[*1pi*], sc[*2p*] , sc[*3pa*], sc[*3pi*], sc[*inf*], sc[*pcp*],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*pst*]), nh[sineif], nh[sinein], nh[sineih], nh[sineis], nh[sineív], nh[sineím], nh[sineín], nh[sineír], nh[sineíz], nh[sinei], nh[sineip],
|
|
[ɕnif], [ɕnĩ], [ɕniː], [ɕnis], [ɕniβ], [ɕnim], [ɕnĩ], [ɕniʀ], [ɕniz], [ɕni], [ɕnip],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*prs*]), nh[sineef], nh[sineen], nh[sineeh], nh[sinees], nh[sineév], nh[sineém], nh[sineén], nh[sineér], nh[sineéz], nh[sinee], nh[sineep],
|
|
[ɕnef], [ɕnẽ], [ɕneː], [ɕnes], [ɕniβ], [ɕnim], [ɕnĩ], [ɕniʀ], [ɕniz], [ɕne], [ɕnep],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*fut*]), nh[sineof], nh[sineon], nh[sineoh], nh[sineos], nh[sineóv], nh[sineóm], nh[sineón], nh[sineór], nh[sineóz], nh[sineo], nh[sineop],
|
|
[ɕnøf], [ɕnø̃], [ɕnøː], [ɕnøs], [ɕnøβ], [ɕnøm], [ɕnɛø̃], [ɕnøʀ], [ɕnøz], [ɕnø], [ɕnøp],
|
|
table.hline(),
|
|
table.cell(rowspan: 2, sc[*gno*]), nh[sineaf], nh[sinean], nh[sineah], nh[sineas], nh[sineáv], nh[sineám], nh[sineán], nh[sineár], nh[sineáz], nh[sinea], nh[sineap],
|
|
[ɕnɛf], [ɕnɛ̃], [ɕnɛː], [ɕnɛs], [ɕnøβ], [ɕnøm], [ɕnø̃], [ɕnøʀ], [ɕnøz], [ɕnɛ], [ɕnɛp],
|
|
)} + [
|
|
Conjugation table for #nh[sinea] “_to be complete_”
|
|
]
|
|
|
|
)
|
|
|
|
|
|
|
|
=== Tense and Person
|
|
|
|
=== Mood and Aspect
|
|
|
|
=== Stative verbs and verbal nouns
|
|
|
|
= Numbers
|
|
|
|
Mosici uses base six numerals. Ordinals are formed by using the number in the genitive. Numbers are notatied using bijecteve positional notation with the letters #nh[m l t f n] and #nh[s] as digits, least significant digit to the left, sometimes written inbetween #nh[()] to limit ambiguity. The ordinal shorthand is a subscript #nh[c] (for example #nh[(mlss#sub[c])] “1525#super[th]”).
|
|
#align(center, table(columns: 4,
|
|
[*Decimal*], [*Senary*], [*Shorthand*], [*Number*],
|
|
table.hline(),
|
|
[1], [1], nh[m], nh[mon],
|
|
[2], [2], nh[l], nh[lí],
|
|
[3], [3], nh[t], nh[tep],
|
|
[4], [4], nh[f], nh[vol],
|
|
[5], [5], nh[n], nh[nar],
|
|
[6], [10], nh[s], nh[sel],
|
|
table.hline(),
|
|
[7], [11], nh[mm], nh[mon-sel],
|
|
[8], [12], nh[lm], nh[lí-sel],
|
|
[12], [20], nh[sm], nh[sellí],
|
|
[13], [21], nh[ml], nh[mon-sellí],
|
|
[18], [30], nh[sl], nh[seltep],
|
|
[24], [40], nh[st], nh[selvol],
|
|
[30], [50], nh[sf], nh[selnar],
|
|
[36], [100], nh[sn], nh[siant],
|
|
table.hline(),
|
|
[37], [101], nh[ms], nh[mon-siant],
|
|
[42], [110], nh[ss], nh[sel-siant],
|
|
[43], [111], nh[mmm], nh[mon-sel-siant],
|
|
[72], [200], nh[snm], nh[siantlí],
|
|
[108], [300], nh[snl], nh[sianttep],
|
|
[144], [400], nh[snt], nh[siantvol],
|
|
[180], [500], nh[snf], nh[siantnar],
|
|
[216], [1000], nh[snn], nh[starel],
|
|
table.hline(),
|
|
[432], [2000], nh[snnm], nh[starelí],
|
|
[648], [3000], nh[snnl], nh[stareltep],
|
|
[864], [4000], nh[snnt], nh[starelvol],
|
|
[1080], [5000], nh[snnf], nh[starelnar],
|
|
[1296], [10000], nh[snnn], nh[pamonstrel]
|
|
))
|
|
|
|
For larger numbers, series of powers of 1296#sub[DEC] are used. They are of the form #nh[pa]...#nh[strel]. For example:
|
|
- #nh[pamonstrel] = 1296#super[1] = 1296
|
|
- #nh[palístrel] = 1296#super[2] = 1679616
|
|
- #nh[pasiantstrel] = 1296#super[36]
|
|
Shorthand is typically divided in groups of four, separated by spaces. For example #nh[(msln ffls nt)] = 40 0244 5301#sub[SEN] = 40 441 573#sub[DEC].
|
|
|
|
= Syntax
|
|
|
|
= Sample texts
|
|
|
|
#dict(data: yaml("dictionnary.yml"), wformat: nh, key: it => {
|
|
let alphabet = (p: "a", o: "b", ó: "b", l: "c", i: "d", í: "d", a: "e", á: "e", h: "f", r: "g", u: "h", c: "i", n: "j", e:"k",é:"k",s:"m",z:"n",f:"o",v:"p",m: "q", t:"r","-":" "," ":" ")
|
|
let a = ()
|
|
for letter in it.w {
|
|
a.push(alphabet.at(letter))
|
|
}
|
|
return a.join()
|
|
},
|
|
debug: true
|
|
)
|