sanskrit-lexicon / MWinflect

Generate declensions and conjugations based upon words in MW1899 dictionary.
1 stars 0 forks source link

stem model n_a and declension #7

Open funderburkjim opened 6 years ago

funderburkjim commented 6 years ago

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.

funderburkjim commented 6 years ago

endings for n_a model

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.

the base for n_a model

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.

funderburkjim commented 6 years ago

n_a declension algorithm

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.

funderburkjim commented 6 years ago

checks

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.

funderburkjim commented 6 years ago

pada and nR sandhi.

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.

gasyoun commented 6 years ago

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

funderburkjim commented 6 years ago

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.

funderburkjim commented 6 years ago

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.

gasyoun commented 6 years ago

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?

drdhaval2785 commented 6 years ago

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.