Typst Rewrite part the third

This commit is contained in:
2026-01-21 09:10:57 +01:00
parent 59d80ac5b5
commit ee47244bc2
3 changed files with 308 additions and 176 deletions

View File

@ -3,12 +3,12 @@
#import "/templates/utils/lang-mos.typ": * #import "/templates/utils/lang-mos.typ": *
#let high = html.span.with(class: "high") #let high = html.span.with(class: "high")
#show: conf.with(page-title: "Mosici") #show: conf.with(page-title: "Mosici")
%lang %mos %lang %mos %langauge-documentation
#set heading(numbering: "1.") #set heading(numbering: "IA1a")
#let low = html.span.with(class: "low") #let low = html.span.with(class: "low")
#let gloss-opts = ( #let gloss-opts = (
txt-style: sn, txt-style: sn,
translation-style: low translation-style: low,
) )
#let g = gloss.with(..gloss-opts) #let g = gloss.with(..gloss-opts)
#let ex = example.with(..gloss-opts) #let ex = example.with(..gloss-opts)
@ -19,20 +19,20 @@
== Phonolgy <sec-phonology> == Phonolgy <sec-phonology>
Mosici has the following phonemes Mosici has the following phonemes
#table( #table(
columns: 5, columns: 5,
[], [*Labial*], [*Coronal*], [*Palatal*], [*Dorsal*], [], [*Labial*], [*Coronal*], [*Palatal*], [*Dorsal*],
[*Nasal*], [m], [n], [], [], [*Nasal*], [m], [n], [], [],
[*Stop*], [p], [t], [], [k], [*Stop*], [p], [t], [], [k],
[*Fricative*], [f v], [s z], [ɕ ʑ], [ʀ], [*Fricative*], [f v], [s z], [ɕ ʑ], [ʀ],
[*Approximants*], [w], [], [j], [ʟ], [*Approximants*], [w], [], [j], [ʟ],
) )
#table( #table(
columns: 3, columns: 3,
[], [*Front*], [*Back*], [], [*Front*], [*Back*],
[*Close*], [i y], [u], [*Close*], [i y], [u],
[*Close-Mid*], [e ø], [o], [*Close-Mid*], [e ø], [o],
[*Open-Mid*], [ɛ], [ɔ], [*Open-Mid*], [ɛ], [ɔ],
[*Open*], table.cell(colspan: 2)[a], [*Open*], table.cell(colspan: 2)[a],
) )
All vowels can also all be long, All vowels can also all be long,
@ -46,10 +46,10 @@ There is also the following allophony rules:
- /n/ itself is not pronounced in coda positions.#footnote[still applies nasalisation] <fn-nasal-even-coda> - /n/ itself is not pronounced in coda positions.#footnote[still applies nasalisation] <fn-nasal-even-coda>
- Nasalised close vowels are realised as mid-centralised: ĩː ỹː ũ ũː/ [ɪ̃ ɪ̃ː ʏ̃ ʏ̃ː ʊ̃ ʊ̃ː] - Nasalised close vowels are realised as mid-centralised: ĩː ỹː ũ ũː/ [ɪ̃ ɪ̃ː ʏ̃ ʏ̃ː ʊ̃ ʊ̃ː]
- The dorsal plosive approximant are realised as palatal before /i y e j/ #footnote[or their or their long and/or - The dorsal plosive approximant are realised as palatal before /i y e j/ #footnote[or their or their long and/or
nasalised variants] <fn-dorsal-assimilation>, nasalised variants] <fn-dorsal-assimilation>,
- The dorsal plosive approximant are realised as uvular before ther /u o w/@fn-dorsal-assimilation - The dorsal plosive approximant are realised as uvular before ther /u o w/@fn-dorsal-assimilation
- The dorsal plosive approximant are realised as palatal after /e i j/@fn-dorsal-assimilation or in the coda of a - The dorsal plosive approximant are realised as palatal after /e i j/@fn-dorsal-assimilation or in the coda of a
syllable with /e i/@fn-dorsal-assimilation as the nucleus. syllable with /e i/@fn-dorsal-assimilation as the nucleus.
- The dorsal plosive approximant are realised as velar otherwise - The dorsal plosive approximant are realised as velar otherwise
- Plosives are realised as voiced next to other phonemically voiced consonants. - Plosives are realised as voiced next to other phonemically voiced consonants.
- Plosives are realised as non-sibilant fricatives of the same place of articulation word finally. - Plosives are realised as non-sibilant fricatives of the same place of articulation word finally.
@ -64,22 +64,22 @@ The process goes thusly (before applying the allophony):
1. Group <enumitem-coalesce-start> all consecutive vowels by pairs, starting at near the start of the word 1. Group <enumitem-coalesce-start> all consecutive vowels by pairs, starting at near the start of the word
2. Combine all pairs of vowels according to the table below (the first vowel indexes the row, and the second vowel 2. Combine all pairs of vowels according to the table below (the first vowel indexes the row, and the second vowel
indexes the column) indexes the column)
3. If any vowel is long, the resulting vowel is long; 3. If any vowel is long, the resulting vowel is long;
4. Repeat from #context link(query(<enumitem-coalesce-start>).first().location())[step 1] until all hiatus has been 4. Repeat from #context link(query(<enumitem-coalesce-start>).first().location())[step 1] until all hiatus has been
resolved. resolved.
#table( #table(
columns: 10, columns: 10,
[ ], [*a*], [*ɛ*], [*ɔ*], [*e*], [*ø*], [*o*], [*i*], [*y*], [*u*], [ ], [*a*], [*ɛ*], [*ɔ*], [*e*], [*ø*], [*o*], [*i*], [*y*], [*u*],
[*a*], [ɔ], [a], [ɔ], [ɛ], [ɛ], [ɔ], [e], [ø], [o], [*a*], [ɔ], [a], [ɔ], [ɛ], [ɛ], [ɔ], [e], [ø], [o],
[*ɛ*], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø], [*ɛ*], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø],
[*ɔ*], [ɔ], [ø], [ɔ], [ø], [ø], [o], [ø], [ø], [o], [*ɔ*], [ɔ], [ø], [ɔ], [ø], [ø], [o], [ø], [ø], [o],
[*e*], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø], [*e*], [ɛ], [i], [ø], [i], [e], [ø], [i], [ø], [ø],
[*ø*], [ø], [e], [ø], [e], [y], [ø], [y], [y], [y], [*ø*], [ø], [e], [ø], [e], [y], [ø], [y], [y], [y],
[*o*], [ɔ], [ø], [o], [ø], [ø], [u], [ø], [ø], [u], [*o*], [ɔ], [ø], [o], [ø], [ø], [u], [ø], [ø], [u],
[*i*], [ja], [], [], [je], [], [jo], [i], [jy], [ju], [*i*], [ja], [], [], [je], [], [jo], [i], [jy], [ju],
[*y*], [ø], [ø], [ø], [ø], [y], [ø], [i], [i], [y], [*y*], [ø], [ø], [ø], [ø], [y], [ø], [i], [i], [y],
[*u*], [wa], [], [], [we], [], [wo], [wi], [y], [u], [*u*], [wa], [], [], [we], [], [wo], [wi], [y], [u],
) )
== The Nahan Script <sec-nahan-script> == The Nahan Script <sec-nahan-script>
@ -88,29 +88,29 @@ which in Mosici is considered to have the following letters, digraphs and diacri
called the #sn[] 〈sitrapaóha〉. called the #sn[] 〈sitrapaóha〉.
#table( #table(
columns: 5, columns: 5,
[Letter], [Transliteration], [Value (IPA)], [Name], [Name (IPA)], [Letter], [Transliteration], [Value (IPA)], [Name], [Name (IPA)],
sn[], [p], [/p/], sn[], [[pe]], sn[], [p], [/p/], sn[], [[pe]],
sn[], [o], [/o/], sn[], [[us]], sn[], [o], [/o/], sn[], [[us]],
sn[], [l], [/ʟ/], sn[], [[ʟɔ̃]], sn[], [l], [/ʟ/], sn[], [[ʟɔ̃]],
sn[], [i], [/e/], sn[], [[iɐ̯nɛ]], sn[], [i], [/e/], sn[], [[iɐ̯nɛ]],
sn[], [a], [/a/], sn[], [[ɔ̃ɸ]], sn[], [a], [/a/], sn[], [[ɔ̃ɸ]],
sn[], [h], [/∅/#footnote[Lengthens a preceeding vowel] <fn-script-h>], sn[], [[apfɛ]], sn[], [h], [/∅/#footnote[Lengthens a preceeding vowel] <fn-script-h>], sn[], [[apfɛ]],
sn[], sn[],
[r], [r],
[/ʀ/], [/ʀ/],
sn[ #footnote[Literally "sounded 〈base letter〉"] <fn-script-sounded>], sn[ #footnote[Literally "sounded 〈base letter〉"] <fn-script-sounded>],
[[fasteɕɛx apfɛ]], [[fasteɕɛx apfɛ]],
sn[], [c], [/k/], sn[], [[kaẅ]], sn[], [c], [/k/], sn[], [[kaẅ]],
sn[], [n], [/n/], sn[], [[nɔẅ]], sn[], [n], [/n/], sn[], [[nɔẅ]],
sn[], [e], [/e/], sn[], [[istaẅ]], sn[], [e], [/e/], sn[], [[istaẅ]],
sn[], [s], [/s/], sn[], [[ɕpaẅ]], sn[], [s], [/s/], sn[], [[ɕpaẅ]],
sn[], [z], [/z/], sn[  @fn-script-sounded], [[fasteɕɛx ɕpaẅ]], sn[], [z], [/z/], sn[  @fn-script-sounded], [[fasteɕɛx ɕpaẅ]],
sn[], [f], [/f/], sn[], [[fasoː]], sn[], [f], [/f/], sn[], [[fasoː]],
sn[], [v], [/v/], sn[  @fn-script-sounded], [[fasteɕex fasoː]], sn[], [v], [/v/], sn[  @fn-script-sounded], [[fasteɕex fasoː]],
sn[], [m], [/m/], sn[], [[miʎɔ]], sn[], [m], [/m/], sn[], [[miʎɔ]],
sn[], [t], [/t/], sn[], [[tɛɟjo]], sn[], [t], [/t/], sn[], [[tɛɟjo]],
) )
== Examples <ex-orthopho> == Examples <ex-orthopho>
@ -134,9 +134,12 @@ called the #sn[] 〈sitrapaóha〉.
== Nouns <morpho-nouns> == Nouns <morpho-nouns>
=== Number <morpho-nouns-number> === Number <morpho-nouns-number>
Number is marked by reduplicating the last orthographic vowel of the root without the sitrapaóha #low[(see following table)]. In most cases the pronunciation of the plural isn't directly derivable from the pronunciation of the singular. Number is marked by reduplicating the last orthographic vowel of the root without the sitrapaóha #low[(see following
table)]. In most cases the pronunciation of the plural isn't directly derivable from the pronunciation of the
singular.
#table(columns: 2, #table(
columns: 2,
[*Singular*], [*Plural*], [*Singular*], [*Plural*],
sn[], sn[], sn[], sn[],
sn[], sn[], sn[], sn[],
@ -150,29 +153,29 @@ Number is marked by reduplicating the last orthographic vowel of the root withou
=== Cases <morpho-nouns-cases> === Cases <morpho-nouns-cases>
Nouns are also marked for case. There are 5 simple cases --- agent, patient, Nouns are also marked for case. There are 5 simple cases --- agent, patient, genitive, dative and ablative --- and 2
genitive, dative and ablative --- and 2 compound cases --- spatial and temporal compound cases --- spatial and temporal locative.
locative.
They are 7 patterns for the simple cases based on the the coda consonant(s) of They are 7 patterns for the simple cases based on the the coda consonant(s) of the agent form: the concatenative
the agent form: the concatenative pattern, and the 6 substitutive patterns pattern, and the 6 substitutive patterns (#sn[], #sn[], #sn[], #sn[], #sn[], #sn[])
(#sn[], #sn[], #sn[], #sn[], #sn[], #sn[])
#table( #table(
columns: 8, align: center, columns: 8,
align: center,
[], [*C*], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [], [*C*], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]], [*Sub* #sn[]],
[*Agent*], [], sn[], sn[], sn[], sn[], sn[], sn[], [*Agent*], [], sn[], sn[], sn[], sn[], sn[], sn[],
[*Patient*], table.cell(colspan: 7, sn[]), [*Patient*], table.cell(colspan: 7, sn[]),
[*Genitive*], table.cell(colspan: 7, sn[]), [*Genitive*], table.cell(colspan: 7, sn[]),
[*Dative*], table.cell(colspan: 2, sn[]), sn[], sn[], sn[], [*Dative*], table.cell(colspan: 2, sn[]), sn[], sn[], sn[],
sn[], sn[], sn[], sn[],
[*Ablative*], table.cell(colspan: 3, sn[]),table.cell(colspan: 2, sn[]), [*Ablative*], table.cell(colspan: 3, sn[]), table.cell(colspan: 2, sn[]),
table.cell(colspan: 2, sn[]) table.cell(colspan: 2, sn[]),
) )
==== Agent <case-agent> ==== Agent <case-agent>
The Agent case #low(sc[age]) indicates the agent of a transitive clause, or the subject of an active intransitive clause. The Agent case #low(sc[age]) indicates the agent of a transitive clause, or the subject of an active intransitive
clause.
#ex( #ex(
caption: [Agent case in an transitive clause], caption: [Agent case in an transitive clause],
@ -181,30 +184,32 @@ The Agent case #low(sc[age]) indicates the agent of a transitive clause, or the
phono: (bl + high[ʟɔɐ̯nɛ], [ɛ̃ð], [eʎɔʎeː] + br), phono: (bl + high[ʟɔɐ̯nɛ], [ɛ̃ð], [eʎɔʎeː] + br),
morphemes: (high[Loarne.#sc[age]], sc[dem.pat], [say.#sc[pst.3sa]]), morphemes: (high[Loarne.#sc[age]], sc[dem.pat], [say.#sc[pst.3sa]]),
translation: [#high[Loarne] said that], translation: [#high[Loarne] said that],
lbl: "ex-case-age-trans" lbl: "ex-case-age-trans",
) )
#ex( #ex(
caption: [Agent case in an active intransitve clause], caption: [Agent case in an active intransitve clause],
txt: [#high[] #high[] ], txt: [#high[] #high[] ],
translit: ([#high[loarne]], [i], high[mazealn],[vionreor.]), translit: ([#high[loarne]], [i], high[mazealn], [vionreor.]),
phono: (bl + high[ʟɔɐ̯nɛ], [e], high[mazɛ̃ẅ], [vjõʀøɐ̯] + br), phono: (bl + high[ʟɔɐ̯nɛ], [e], high[mazɛ̃ẅ], [vjõʀøɐ̯] + br),
morphemes: (high[Loarne.#sc[age]], [and], high[Mazealn.#sc[age]], [eat.#sc[fut.3pa]]), morphemes: (high[Loarne.#sc[age]], [and], high[Mazealn.#sc[age]], [eat.#sc[fut.3pa]]),
translation: [#high[Loarne] and #high[Mazealn] will eat], translation: [#high[Loarne] and #high[Mazealn] will eat],
lbl: "ex-case-age-intrans" lbl: "ex-case-age-intrans",
) )
==== Patient <case-patient> ==== Patient <case-patient>
The Patient case #low(sc[pat]) indicates the patient of a transitive clause, or the subject of a stative intransitive clause. The Patient case #low(sc[pat]) indicates the patient of a transitive clause, or the subject of a stative intransitive
clause.
#ex( #ex(
caption: [Patient case in a transitive clause#footnote[Note that while the pronoun is dropped thanks to the verb conjugation, but the clause is still transitive]<fn-pat-trans>], caption: [Patient case in a transitive clause#footnote[Note that while the pronoun is dropped thanks to the verb
conjugation, but the clause is still transitive]<fn-pat-trans>],
txt: [#high[] ], txt: [#high[] ],
translit: (high[nriiht],[vionreef.]), translit: (high[nriiht], [vionreef.]),
phono: (bl + high[nʁiːθ], [vjõʀiɸ] + br), phono: (bl + high[nʁiːθ], [vjõʀiɸ] + br),
morphemes: (high[grain#sc[.pl.pat]], [eat#sc[.prs.1s]]), morphemes: (high[grain#sc[.pl.pat]], [eat#sc[.prs.1s]]),
translation: [I eat #high[grains]], translation: [I eat #high[grains]],
lbl: "ex-case-pat-trans" lbl: "ex-case-pat-trans",
) )
#ex( #ex(
@ -214,12 +219,13 @@ The Patient case #low(sc[pat]) indicates the patient of a transitive clause, or
phono: (bl + high[ʀɛ̃ð], [ytas] + br), phono: (bl + high[ʀɛ̃ð], [ytas] + br),
morphemes: (high[house#sc[.pat]], [be\_tall#sc[gno.3si]]), morphemes: (high[house#sc[.pat]], [be\_tall#sc[gno.3si]]),
translation: [#high[The house] is tall], translation: [#high[The house] is tall],
lbl: "ex-case-pat-intrans" lbl: "ex-case-pat-intrans",
) )
==== Genitive <case-genitive> ==== Genitive <case-genitive>
The genitive case #low(sc[gen]) indicates poessesion or qualification. Note that in the case of qualification, the formation of a compound is also possible. Note: Compounding is not subject to coalescence. The genitive case #low(sc[gen]) indicates poessesion or qualification. Note that in the case of qualification, the
formation of a compound is also possible. Note: Compounding is not subject to coalescence.
#ex( #ex(
caption: [Possessive genitive case], caption: [Possessive genitive case],
@ -228,7 +234,7 @@ The genitive case #low(sc[gen]) indicates poessesion or qualification. Note that
phono: (bl + high[eẅɣ], [ʀɛ̃] + br), phono: (bl + high[eẅɣ], [ʀɛ̃] + br),
morphemes: (high(sc[1s.gen]), [house#sc[.age]]), morphemes: (high(sc[1s.gen]), [house#sc[.age]]),
translation: [#high[my] house], translation: [#high[my] house],
lbl: "ex-case-gen-poss" lbl: "ex-case-gen-poss",
) )
#ex( #ex(
caption: [Qualificative genitive case], caption: [Qualificative genitive case],
@ -237,7 +243,7 @@ The genitive case #low(sc[gen]) indicates poessesion or qualification. Note that
phono: (bl + high[øːx], [esovɛ] + br), phono: (bl + high[øːx], [esovɛ] + br),
morphemes: (high[fiction.#sc[gen]], [job#sc[.age]]), morphemes: (high[fiction.#sc[gen]], [job#sc[.age]]),
translation: [a #high[fictional] job], translation: [a #high[fictional] job],
lbl: "ex-case-gen-qual" lbl: "ex-case-gen-qual",
) )
#ex( #ex(
@ -247,12 +253,14 @@ The genitive case #low(sc[gen]) indicates poessesion or qualification. Note that
phono: (bl + [øː-], [esovɛ] + br), phono: (bl + [øː-], [esovɛ] + br),
morphemes: ([fiction-], [job#sc[.age]]), morphemes: ([fiction-], [job#sc[.age]]),
translation: [a fictional job], translation: [a fictional job],
lbl: "ex-case-gen-compound" lbl: "ex-case-gen-compound",
) )
==== Dative <case-dative> ==== Dative <case-dative>
The dative case #low(sc[dat]) indicates the beneficiary of a ditransitive verbs, as well as indicating a direction faced. Note hover that it isn't used with verbs of movement towards something, for those use the patient case (see @case-patient) instead, the dative instead indicates the means of displacement. The dative case #low(sc[dat]) indicates the beneficiary of a ditransitive verbs, as well as indicating a direction
faced. Note hover that it isn't used with verbs of movement towards something, for those use the patient case (see
@case-patient) instead, the dative instead indicates the means of displacement.
#ex( #ex(
caption: [Dative in ditransitive clauses], caption: [Dative in ditransitive clauses],
txt: [#high[]  ], txt: [#high[]  ],
@ -260,7 +268,7 @@ The dative case #low(sc[dat]) indicates the beneficiary of a ditransitive verbs,
phono: (bl + high[ɛẅɕ], [ʀɛ̃ð], [ɕjɛːf] + br), phono: (bl + high[ɛẅɕ], [ʀɛ̃ð], [ɕjɛːf] + br),
morphemes: (high(sc[2s.dat]), [house#sc[.pat]], [give.#sc[pres.1s]]), morphemes: (high(sc[2s.dat]), [house#sc[.pat]], [give.#sc[pres.1s]]),
translation: [I give #high[you] a house], translation: [I give #high[you] a house],
lbl: "ex-case-dat-ditrans" lbl: "ex-case-dat-ditrans",
) )
#ex( #ex(
caption: [Dative as means of displacement for verbs of movement towards], caption: [Dative as means of displacement for verbs of movement towards],
@ -269,98 +277,164 @@ The dative case #low(sc[dat]) indicates the beneficiary of a ditransitive verbs,
phono: (bl + [ãɕaẅmosicɛθ], high[fydztsɛʟaɕ], [øsɛʎẽ] + br), phono: (bl + [ãɕaẅmosicɛθ], high[fydztsɛʟaɕ], [øsɛʎẽ] + br),
morphemes: ([#sc[ppn-]Chalmosique#sc[.dat]], high[train.#sc[dat]], [go#sc[.pst.2s]]), morphemes: ([#sc[ppn-]Chalmosique#sc[.dat]], high[train.#sc[dat]], [go#sc[.pst.2s]]),
translation: [You#ann[sg] went to Chalmosique #high[by train]], translation: [You#ann[sg] went to Chalmosique #high[by train]],
lbl: "ex-case-dat-mot" lbl: "ex-case-dat-mot",
) )
#ex( #ex(
caption: [Dative as an allative substitute for other verbs], caption: [Dative as an allative substitute for other verbs],
txt: [#high[]   ], txt: [#high[]   ],
translit: (high[an·cairniasialsi], [an·sialmosécet], [foítztselavia], [vilinef.]), translit: (high[an·cairniasialsi], [an·sialmosécet], [foítztselavia], [vilinef.]),
phono: (bl + high[ãkɛɐ̯nɛɕaẅɕ], [ãɕaẅmosicɛθ], [fydztsɛʟavja], [veʎẽnɛf] + br), phono: (bl + high[ãkɛɐ̯nɛɕaẅɕ], [ãɕaẅmosicɛθ], [fydztsɛʟavja], [veʎẽnɛf] + br),
morphemes: (high[#sc[ppn-]Quernechal#sc[.dat]], [#sc[ppn-]Chalmosique#sc[.pat]], [train.#sc[abl]], [leave.#sc[prs.1s]]), morphemes: (
high[#sc[ppn-]Quernechal#sc[.dat]],
[#sc[ppn-]Chalmosique#sc[.pat]],
[train.#sc[abl]],
[leave.#sc[prs.1s]],
),
translation: [I leave Chalmosique by train #high[to Quernechal].], translation: [I leave Chalmosique by train #high[to Quernechal].],
lbl: "ex-case-dat-all" lbl: "ex-case-dat-all",
) )
==== Ablative <case-abl> ==== Ablative <case-abl>
The ablative case #low(sc[abl]) indicates the provenance of the action. It is also used as an instrumental, indicating the means by which the action is done. The ablative case #low(sc[abl]) indicates the provenance of the action. It is also used as an instrumental, indicating
For verbs of movement away from something, it only has it's instrumental meaning, the source is indicated by the patient case (see @case-patient). For verbs of movement towards something, the ablative doesn't have the instrumental meaning, for that role use the dative instead. the means by which the action is done. For verbs of movement away from something, it only has it's instrumental meaning,
the source is indicated by the patient case (see @case-patient). For verbs of movement towards something, the ablative
doesn't have the instrumental meaning, for that role use the dative instead.
#ex(caption: [Ablative case in an ablative meaning], #ex(
caption: [Ablative case in an ablative meaning],
txt: [#high[]  ], txt: [#high[]  ],
translit: (high[an·sialmosécevia], [nriiht], [vionreef.]), translit: (high[an·sialmosécevia], [nriiht], [vionreef.]),
phono: (bl + [ãɕaẅmosicɛvja], [nʁiːθ], [vjõʀiɸ] + br), phono: (bl + [ãɕaẅmosicɛvja], [nʁiːθ], [vjõʀiɸ] + br),
morphemes: (high[#sc[ppn]-Chalmosique.#sc[abl]], [grain#sc[.pl.pat]], [eat#sc[.prs.1s]]), morphemes: (high[#sc[ppn]-Chalmosique.#sc[abl]], [grain#sc[.pl.pat]], [eat#sc[.prs.1s]]),
translation: [I eat grains #high[from Chalmosique]], translation: [I eat grains #high[from Chalmosique]],
lbl: "ex-case-abl-abl" lbl: "ex-case-abl-abl",
) )
#ex(caption: [Ablative case as instrumental], #ex(
caption: [Ablative case as instrumental],
txt: [#high[] ], txt: [#high[] ],
translit: (high[hoévenvia], [cirtív.]), translit: (high[hoévenvia], [cirtív.]),
phono: (bl + high[yvɛ̃vja], [ceɐ̯div] + br), phono: (bl + high[yvɛ̃vja], [ceɐ̯div] + br),
morphemes: (high[pen#sc[.abl]], [write#sc[.past.1pe]]), morphemes: (high[pen#sc[.abl]], [write#sc[.past.1pe]]),
translation: [We#ann[excl] wrote #high[with a pen].], translation: [We#ann[excl] wrote #high[with a pen].],
lbl: "ex-case-abl-inst" lbl: "ex-case-abl-inst",
) )
==== Spatial Locative <case-spaloc> ==== Spatial Locative <case-spaloc>
The spatial locative cases #low(sc[sploc]) is used to indicate a spacial location. it is marked by expressing the noun in the genitive case, followed by the #sn[] ⟨la⟩ particle. The spatial locative cases #low(sc[sploc]) is used to indicate a spacial location. it is marked by expressing the noun
in the genitive case, followed by the #sn[] ⟨la⟩ particle.
#ex(caption: [Spatial Locative], #ex(
caption: [Spatial Locative],
txt: [ #high[ ]], txt: [ #high[ ]],
translit: ([il], high[an·vansterilc‿la] + [.]), translit: ([il], high[an·vansterilc‿la] + [.]),
phono: (bl + [eẅ], [ãvãstɛʀeẅʝ ʟa] + br), phono: (bl + [eẅ], [ãvãstɛʀeẅʝ ʟa] + br),
morphemes: (sc[1s.age], [#sc[ppn-]Vansterel#sc[.gen‿sploc]]), morphemes: (sc[1s.age], [#sc[ppn-]Vansterel#sc[.gen‿sploc]]),
translation: [We#ann[excl] wrote #high[with a pen].], translation: [We#ann[excl] wrote #high[with a pen].],
lbl: "ex-case-sploc" lbl: "ex-case-sploc",
) )
==== Temporal Locative <case-temploc> ==== Temporal Locative <case-temploc>
There are four temporal locatives: past, present, future and gnomic #low(sc[tmploc.pst, tmploc.prs, tmploc.fut] + [ and ] + sc[tmploc.gno]). The past case (resp. present and future) is used, as its name indicates, to locate events that happened in the past (resp. present and future). The gnomic case locates events that are either generally happeneing, happening at an unknown point in time, or happening repeatedly. There are four temporal locatives: past, present, future and gnomic #low(
The past case (resp. present, future, gnomic) are indicated by expressing the noun in the oblique followed by the particle #sn[] ⟨anip⟩ (resp #sn[] ⟨anep⟩, #sn[] ⟨anop⟩ and #sn[] ⟨anap⟩) sc[tmploc.pst, tmploc.prs, tmploc.fut] + [ and ] + sc[tmploc.gno],
However the present case is rarely used outside of set phrases like #sn[ ] “today” or #sn[ ] “now” ). The past case (resp. present and future) is used, as its name indicates, to locate events that happened in the past
(resp. present and future). The gnomic case locates events that are either generally happeneing, happening at an unknown
point in time, or happening repeatedly. The past case (resp. present, future, gnomic) are indicated by expressing the
noun in the oblique followed by the particle #sn[] ⟨anip⟩ (resp #sn[] ⟨anep⟩, #sn[] ⟨anop⟩ and
#sn[] ⟨anap⟩) However the present case is rarely used outside of set phrases like #sn[ ] “today” or
#sn[ ] “now”
#ex(caption: [Present temporal locative], #ex(
caption: [Present temporal locative],
txt: [#high[ ] ], txt: [#high[ ] ],
translit: (high[vint‿anep], [mareves.]), translit: (high[vint‿anep], [mareves.]),
phono: (bl + high[vẽð ãneɸ], [maʀɛvɛs] + br), phono: (bl + high[vẽð ãneɸ], [maʀɛvɛs] + br),
morphemes: (high[day.#sc[pat‿tmploc.prs]], [be_cold.#sc[prs.3si]]), morphemes: (high[day.#sc[pat‿tmploc.prs]], [be_cold.#sc[prs.3si]]),
translation: [Its cold #high[today]], translation: [Its cold #high[today]],
lbl: "ex-case-tmploc-prs" lbl: "ex-case-tmploc-prs",
) )
#ex( #ex(
caption: [Past temporal locative], caption: [Past temporal locative],
txt: [ #high[ ] ], txt: [ #high[ ] ],
translit: ([il], high[vionreipt‿anip], [,], [cirtin.]), translit: ([il], high[vionreipt‿anip], [,], [cirtin.]),
phono: (bl + [eẅ], high[vjõʀipθ ãneɸ], [|], [ceɐ̯dẽ]+ br), phono: (bl + [eẅ], high[vjõʀipθ ãneɸ], [|], [ceɐ̯dẽ] + br),
morphemes: (sc[1s.act], high[eat#sc[.pst.pcp.pat‿tmploc.pst]], [|], [write] + sc[.pst.2s]), morphemes: (sc[1s.act], high[eat#sc[.pst.pcp.pat‿tmploc.pst]], [|], [write] + sc[.pst.2s]),
translation: [#high[When] I #high[ate], you#ann[sg] wrote], translation: [#high[When] I #high[ate], you#ann[sg] wrote],
lbl: "ex-case-tmploc-pst" lbl: "ex-case-tmploc-pst",
) )
#ex( #ex(
caption: [Future temporal locative], caption: [Future temporal locative],
txt: [ #high[ ] ], txt: [ #high[ ] ],
translit: ([il], high[vionreapt‿anop], [,], [cirton.]), translit: ([il], high[vionreapt‿anop], [,], [cirton.]),
phono: (bl + [eẅ], high[vjõʀøpθ ãnoɸ], [|], [ceɐ̯dõ]+ br), phono: (bl + [eẅ], high[vjõʀøpθ ãnoɸ], [|], [ceɐ̯dõ] + br),
morphemes: (sc[1s.act], high[eat#sc[.fut.pcp.pat‿tmploc.fut]], [|], [write] + sc[.fut.2s]), morphemes: (sc[1s.act], high[eat#sc[.fut.pcp.pat‿tmploc.fut]], [|], [write] + sc[.fut.2s]),
translation: [#high[When] I#high[ll eat], you#ann[sg]ll write], translation: [#high[When] I#high[ll eat], you#ann[sg]ll write],
lbl: "ex-case-tmploc-fut" lbl: "ex-case-tmploc-fut",
) )
#ex( #ex(
caption: [Gnomic temporal locative], caption: [Gnomic temporal locative],
txt: [ #high[ ] ], txt: [ #high[ ] ],
translit: ([il], high[vionreapt‿anap], [,], [cirtan.]), translit: ([il], high[vionreapt‿anap], [,], [cirtan.]),
phono: (bl + [eẅ], high[vjõʀɛpθ ãnaɸ], [|], [ceɐ̯dã]+ br), phono: (bl + [eẅ], high[vjõʀɛpθ ãnaɸ], [|], [ceɐ̯dã] + br),
morphemes: (sc[1s.act], high[eat#sc[.gno.pcp.pat‿tmploc.gno]], [|], [write] + sc[.gno.2s]), morphemes: (sc[1s.act], high[eat#sc[.gno.pcp.pat‿tmploc.gno]], [|], [write] + sc[.gno.2s]),
translation: [#high[Whenever] I #high[eat], you#ann[sg] write], translation: [#high[Whenever] I #high[eat], you#ann[sg] write],
lbl: "ex-case-tmploc-gno" lbl: "ex-case-tmploc-gno",
) )
=== Proper noun clitic <morpho-ppn> === Proper noun clitic #sn[] <morpho-ppn>
Proper nouns that aren't personal names always take the proper noun clitic #low(sc[ppn]) #sn[] ⟨an·⟩
The affix #sn[] ⟨ni-⟩ --- which on proper nouns forms demonyms --- attaches to the front of the proper noun clitic:
#sn[] gives #sn[] and not \*#sn[] or \*#sn[]. Demonyms formed this way also
mark plural on the proper noun clitic: #sn[] pluralises to #sn[] and not \*#sn[].
== Pronouns <morpho-pronouns> == Pronouns <morpho-pronouns>
Mosici has a full set of personal, demonstrative and interrogative pronouns (see table at the end of this section). However, the use of personal pronouns is limited to situations where they are necessary.
The Agent and patient forms especially are often dropped in non-participal clauses. Indeed, a speaker would more often use the passive marking and avoid a pronoun altogether than use an patient form: Use #sn[ ] #low[(Loarne.#sc[age] #sc[pass.]eat#sc[.prs.3si])] rather than ?#sn[  ] #low[?(Loarne#sc[.age] #sc[3si.pat] eat#sc[.prs.3sa])] for "Loarne eats it."
#mos-pron(none)
== Verbs <morpho-verbs> == Verbs <morpho-verbs>
Verbs are mainly conjugated according to their tense and the grammatical person of the agent, unless marked with the
passive voice prefix #sn[] ⟨na-⟩, in which case, it agrees with the patient instead.
Orthographically the pattern is completely regular, however the vowel coalescence (see @sec-coalescence) causes the
pronunciation to be quite chaotic. The plural forms of past and present tense are always identical when spoken but
distinguished in writing.
Verbs are typically listed in their gnomic infinitive form. to derive the stem, remove the final #sn[]. Here is a
conjugation table for an hypothetical null-stemmed verb as a way to list the affixes#footnote[You may find those forms
verbatim in some older texts as a now defunct copula.] <fn-old-copula>
#mos-v("")
=== Aspect, mood ⁊ related nonsense <morpho-verbs-extra-tam>
If you need other moods or aspects than an unaspected indicative, there is a pletora of affixes you can stack on verbs
to specify them further, they all are interpreted as nested, coming away from the verb, and can be combined and stacked
for more specific meanings
Here is a (eventually but not yet) exhaustive list of such affixes: #low[(all of them are prefixes)]
==== Conditionals, irrealis <morpho-verbs-cond>
==== Imperfective, durative, iterative <morpho-verb-npfv>
==== Perfective, terminative <morpho-verb-pfv>
==== Desirative, Optative, Hortative <morpho-verb-opt>
==== Imperative <morpho-verb-imp>
==== Causatives <morpho-verb-cau>
==== Passive <morpho-verb-pas>
==== Negation <morpho-verb-neg>
The negation prefix is #sn[] ⟨ta-⟩. It negates whatever component of the verb is immediately following it.
==== Also on other parts of speach <morpho-verb-other>
While frowned upon in more formal texts, all of the above mood and aspect affixes can be added to nouns to great effect
in less formal or more poetic registers. Execption is of the negation affix which is considered perfectly acceptable in
all registers.

View File

@ -25,7 +25,7 @@
it.body it.body
}) })
} }
show regex("%[a-z0-9/]+"): it => tag(it.text.slice(1)) show regex("%[a-z0-9/-]+"): it => tag(it.text.slice(1))
show link-re: it => wl(..it.text.match(link-re).captures) show link-re: it => wl(..it.text.match(link-re).captures)
set table(stroke: none) set table(stroke: none)
html.head({ html.head({

View File

@ -1,14 +1,15 @@
#import "/templates/base.typ" #import "/templates/base.typ"
#let mos-sec = [ #let mos-sec = [
= Mosici <mos> = Mosici <mos>
#base.tag("word") #base.tag("mos") #base.tag("word") #base.tag("mos")
] ]
#let sn = base.s.with("nahan") #let sn = base.s.with("nahan")
#let mos-pro(ipa) = [ #let mos-pro(ipa) = [
- #base.wl("/worlds/Asteron/Mosici", [Standard], none) [#ipa] - #base.wl("/worlds/Asteron/Mosici", [Standard], none) [#ipa]
] ]
#let mos-translit(s) = { #let mos-translit(s) = {
s .replace("", "a") s
.replace("", "a")
.replace("", "á") .replace("", "á")
.replace("", "c") .replace("", "c")
.replace("", "e") .replace("", "e")
@ -35,13 +36,13 @@
} }
#let mos-cit(t) = [#sn(t) #html.span(class: "low", mos-translit(t))] #let mos-cit(t) = [#sn(t) #html.span(class: "low", mos-translit(t))]
#let mos-nstem(w) = { #let mos-nstem(w) = {
if w.ends-with("") {(w.clusters().slice(0, -2).join(), "")} if w.ends-with("") { (w.clusters().slice(0, -2).join(), "") } else if w.ends-with("") {
else if w.ends-with("") {(w.clusters().slice(0, -2).join(), "")} (w.clusters().slice(0, -2).join(), "")
else if w.ends-with("") {(w.clusters().slice(0, -2).join(), "")} } else if w.ends-with("") { (w.clusters().slice(0, -2).join(), "") } else if w.ends-with("") {
else if w.ends-with("") {(w.clusters().slice(0, -2).join(), "")} (w.clusters().slice(0, -2).join(), "")
else if w.ends-with("") {(w.clusters().slice(0, -1).join(), "")} } else if w.ends-with("") { (w.clusters().slice(0, -1).join(), "") } else if w.ends-with("") {
else if w.ends-with("") {(w.clusters().slice(0, -1).join(), "")} (w.clusters().slice(0, -1).join(), "")
else {(w, "")} } else { (w, "") }
} }
#let mos-vstem(w) = w.clusters().slice(0, -1).join() #let mos-vstem(w) = w.clusters().slice(0, -1).join()
@ -50,31 +51,34 @@
let revw = w.rev() let revw = w.rev()
let pos = revw.position(regex("[]")) let pos = revw.position(regex("[]"))
let v = revw.at(pos) let v = revw.at(pos)
if v == "" {v = ""} if v == "" { v = "" }
if v == "" {v = ""} if v == "" { v = "" }
if v == "" {v = ""} if v == "" { v = "" }
if v == "" {v = ""} if v == "" { v = "" }
revw = revw.slice(0, pos) + v + revw.slice(pos) revw = revw.slice(0, pos) + v + revw.slice(pos)
revw.rev() revw.rev()
} }
#let mos-n(sg, pl: none) = { #let mos-n(sg, pl: none) = {
let pr = if pl == false {""} else if pl != none {pl} else {mos-pluralise(sg)} let pr = if pl == false { "" } else if pl != none { pl } else { mos-pluralise(sg) }
let (ps, pv) = mos-nstem(pr) let (ps, pv) = mos-nstem(pr)
let (ss, sv) = mos-nstem(sg) let (ss, sv) = mos-nstem(sg)
let c(it) = [#base.s("nahan", it) \ #html.span(class: "low", mos-translit(it))] let c(it) = [#base.s("nahan", it) \ #html.span(class: "low", mos-translit(it))]
html.details({ html.details({
html.summary[ *Declension for* _#mos-cit(sg)_ #if pl != none and pl != false [*Irr. pl. stem* _#mos-cit(pl)_] else if pl == false [*(Uncountable)*]] html.summary[
table(columns: if pl != false {3} else {2}, *Declension for* _#mos-cit(sg)_ #if pl != none and pl != false [*Irr. pl. stem* _#mos-cit(pl)_] else if (
..if pl != false { ([], pl == false
base.sc[*sg*], base.sc[*pl*],)} else {()}, ) [*(Uncountable)*]]
base.sc[*age*], c(sg), ..if pl != false {(c(pr),)} else {()}, table(
base.sc[*pat*], c(ss + ""), ..if pl != false {(c(ps + ""),)} else {()}, columns: if pl != false { 3 } else { 2 },
base.sc[*gen*], c(ss + ""), ..if pl != false {(c(ps + ""),)} else {()}, ..if pl != false { ([], base.sc[*sg*], base.sc[*pl*]) } else { () },
base.sc[*dat*], c(ss + sv + ""), ..if pl != false {(c(ps + pv + ""),)} else {()}, base.sc[*age*], c(sg), ..if pl != false { (c(pr),) } else { () },
base.sc[*abl*], c(ss + ""), ..if pl != false {(c(ps + ""),)} else {()}, base.sc[*pat*], c(ss + ""), ..if pl != false { (c(ps + ""),) } else { () },
base.sc[*gen*], c(ss + ""), ..if pl != false { (c(ps + ""),) } else { () },
base.sc[*dat*], c(ss + sv + ""), ..if pl != false { (c(ps + pv + ""),) } else { () },
base.sc[*abl*], c(ss + ""), ..if pl != false { (c(ps + ""),) } else { () },
) )
}) })
} }
@ -83,47 +87,101 @@
let c(it) = [#base.s("nahan", it) \ #html.span(class: "low", mos-translit(it))] let c(it) = [#base.s("nahan", it) \ #html.span(class: "low", mos-translit(it))]
html.details({ html.details({
html.summary[*Conjugation for* _#mos-cit(w)_] html.summary[*Conjugation for* _#mos-cit(w)_]
table(columns: 5, table(
columns: 5,
[], base.sc[*prs*], base.sc[*pst*], base.sc[*fut*], base.sc[*gno*], [], base.sc[*prs*], base.sc[*pst*], base.sc[*fut*], base.sc[*gno*],
base.sc[*1s*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*1s*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*2s*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*2s*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*3sa*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*3sa*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*3si*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*3si*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*1pi*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*1pi*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*1pe*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*1pe*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*2p*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*2p*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*3pa*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*3pa*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*3pi*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*3pi*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*inf*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*inf*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*pcp.sg*], c(s+""), c(s+""), c(s+""), c(s+""), base.sc[*pcp.sg*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
base.sc[*pcp.pl*], c(s+""), c(s+""), c(s+""), c(s+"") base.sc[*pcp.pl*], c(s + ""), c(s + ""), c(s + ""), c(s + ""),
) )
}) })
} }
#let mos-pron(this) = { #let mos-pron(this) = {
let c(k, h: false) = if h and k != this [ let c(k, h: false) = if h and k != this [
#base.wl("dict/"+mos-translit(k), base.s("nahan", k), "mos") \ #html.span(class: "low", mos-translit(k)) #base.wl("/dict/" + mos-translit(k), base.s("nahan", k), "mos") \ #html.span(class: "low", mos-translit(k))
] else [ ] else [
#base.s("nahan", k) \ #html.span(class: "low", mos-translit(k)) #base.s("nahan", k) \ #html.span(class: "low", mos-translit(k))
] ]
html.details({ html.details({
html.summary[Mosici Pronouns] html.summary[Mosici Pronouns]
table(columns: 6, table(
[], base.sc[*agt*], base.sc[*pat*], base.sc[*gen*], base.sc[*dat*], base.sc[*abl*], columns: 6,
base.sc[*1s*], c(h: true, ""), c(""), c(""), c(""), c(""), [], base.sc[*age*], base.sc[*pat*], base.sc[*gen*], base.sc[*dat*], base.sc[*abl*],
base.sc[*1p*], c( ""), c(""), c(""), c(""), c(""), base.sc[*1s*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*2s*], c(h: true, ""), c(""), c(""), c(""), c(""), base.sc[*1p*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*2p*], c( ""), c(""), c(""), c(""), c(""), base.sc[*2s*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*3sa*], c(h: true, ""), c(""), c(""), c(""), c(""), base.sc[*2p*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*3pa*], c( ""), c(""), c(""), c(""), c(""), base.sc[*3sa*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*3si*], c(h: true, ""), c(""), c(""), c(""), c(""), base.sc[*3pa*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*3pi*], c( ""), c(""), c(""), c(""), c(""), base.sc[*3si*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*3pi*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*dem.sg*], c(h: true, ""), c(""), c(""), c(""), c(""), base.sc[*dem.sg*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*dem.pl*], c( ""), c(""), c(""), c(""), c(""), base.sc[*dem.pl*], c(h: true, ""), c(""), c(""), c(""), c(""),
base.sc[*q*], c(h: true, ""), c(""), c(""), c(""), c(""), base.sc[*q*], c(h: true, ""), c(""), c(""), c(""), c(""),
) )
}) })
}
#let nahan-numeral(n) = {
let res = ()
while n > 6 {
res = (..res, calc.rem-euclid(n, 6))
n = calc.div-euclid(n, 6)
}
if n != 0 { res = (..res, n) }
for _ in range(res.len()) {
for i in range(res.len() - 1, -1, step: -1) {
if (res.at(i) == 0 and i != res.len() - 1 and res.at(i + 1) != 0) {
res = (..res.slice(0, i), 6, res.at(i + 1) - 1, ..res.slice(i + 2))
}
}
}
sn(res.map(it => ("", "", "", "", "", "", "").at(it)).join(""))
}
#let num-nahan-sh(..nums) = nums.pos().map(nahan-numeral).join(sn[])
#let num-nahan-let(..nums) = {
let base13 = (
"0": 0,
"1": 1,
"2": 2,
"3": 3,
"4": 4,
"5": 5,
"6": 6,
"7": 7,
"8": 8,
"9": 9,
"a": 10,
"b": 11,
"c": 12,
)
let res = nums
.pos()
.map(it => str(it, base: 13))
.map(str.clusters)
.map(it => it.map(this => base13.at(this)))
.map(it => {
for _ in range(it.len()) {
for i in range(1, it.len()) {
if (it.at(i) == 0 and it.at(i - 1) != 0) {
it = (..it.slice(0, i - 1), it.at(i - 1) - 1, 13, ..it.slice(i + 1))
}
}
}
let letters = ("", "", "", "", "", "", "", "", "", "", "", "", "", "")
sn(it.map(this => letters.at(this)).join())
})
res.join(sn[])
} }