Open funderburkjim opened 6 years ago
The endings used for the n_a declension algorithm are:
Case | S | D | P |
---|---|---|---|
Nominative | am | e | Ani |
Accusative | am | e | Ani |
Instrumental | ena | AByAm | EH |
Dative | Aya | AByAm | eByaH |
Ablative | At | AByAm | eByaH |
Genitive | asya | ayoH | AnAm |
Locative | e | ayoH | ezu |
Vocative | a | e | Ani |
Comparison with the the endings for m_a (#5) shows that n_a endings are same as m_a endings except for Nominative, Accusative and Vocative cases.
As with m_a model, our declensions start with the headword spellings provided by Monier Williams. From such a citation spelling, the base is formed by removing the final 'a'. For example, the base for 'vana' is van.
The declension algorithm for neuter nouns ending in 'a' is procedurally the same as that for masculine nouns ending in 'a', with the exception of using the n_a endings.
Here is a summary of the procedure.
The declension of 'vana' is compared to that in Deshpande. The declension of 'Bara' (where nR sandhi has an impact) is compared to Huet
Both agree.
The same questions (regarding the demarcation of padas for the purpose of nR sandhi) (see #6) can be
asked here.
If we get further insights into this topic for m_a model nouns, I'll apply those insights to n_a model nouns.
Huet's comment:
Nominal declension is nouns.ml in ML directory of the Sanskrit Heritage gitlab site. But it does not compare directly to simple paradigm-based generators. For instance, here is the generator for masculine nominal stems in -a :
value build_mas_a stem entry =
let decline case suff = (case,fix stem suff) in
enter entry (
[ Declined Noun Mas
[ (Singular,if entry = "ubha" (* dual only *)
|| entry = "g.rha" (* plural only *)
|| entry = "daara" then [] else
[ decline Voc "a"
; decline Nom "as"
; decline Acc "am"
; decline Ins "ena"
; decline Dat "aaya"
; decline Abl "aat"
; decline Gen "asya"
; decline Loc "e"
])
; (Dual, if entry = "g.rha"
|| entry = "daara" then [] else
[ decline Voc "au"
; decline Nom "au"
; decline Acc "au"
; decline Ins "aabhyaam"
; decline Dat "aabhyaam"
; decline Abl "aabhyaam"
; decline Gen "ayos"
; decline Loc "ayos"
])
; (Plural, if entry = "ubha" then [] else
let l =
[ decline Voc "aas"
; decline Nom "aas"
; decline Acc "aan"
; decline Ins "ais"
; decline Dat "ebhyas"
; decline Abl "ebhyas"
; decline Gen "aanaam"
; decline Loc "esu"
] in
if pronominal_usage entry then [ decline Nom "e" :: l ] else l)
]
; Bare Noun (wrap stem 1)
; Avyayaf (fix stem "am"); Avyayaf (fix stem "aat") (* avyayiibhaava *)
; Indecl Tas (fix stem "atas") (* tasil productive *)
; Cvi (wrap stem 4) (* cvi productive *)
])
;
Thus I generate devena as well as raame.na with the same schematic paradigm. It looks like a table, but it’s an executable process. Retroflexion occurs because of internal sandhi performed by function fix above. So I do not have to do retroflexion guessing at stem dispatching. My implementation is in the spirit of Paa.nini, with code economy
Is there a link to the Huet comment?
Incidentally, I suspect his code is written in the functional language Ocaml, which I think he helped invent.
Found this link to the referenced Sanskrit Heritage gitlab site
and to the referenced nouns.ml program module.
Good to know this exists publicly. Due to being in Ocaml language, it is hard to follow since my experience is almost entirely (except for Elisp) with procedural languages.
Is there a link to the Huet comment?
No, from email.
Incidentally, I suspect his code is written in the functional language Ocaml, which I think he helped invent.
You are right.
Good to know this exists publicly.
It was not before. It took me 10 years to convince him.
in Ocaml language, it is hard to follow since my experience is almost entirely (except for Elisp) with procedural languages.
Please explain the difference in more detail. The languages are as different as Chinese is from Sanskrit?
https://sanskritdocuments.org/learning_tools/ashtadhyayi/vyakhya/8/8.4.11.htm has a bearing. But, as this is an optional item, it would not be much material as of now. Noting it here if we go to do super fine tuning of forms.
neuter nouns ending in 'a'
This list is derived from lexnorm-all2 by the simple filter: a) key1 ends in short vowel 'a' b) lexnorm is precisely 'n'
As in #4, this excludes many adjectives and other nominals ending in 'a', namely those with more complex normalized lexnorm values, such as 'm:f:n'.
There are 31093 cases, listed in file nominals/inputs/n_a.txt.