Monday, December 14, 2009

The intellectual devotee

No matter how much ever one tries to embrace and love it, grammar of any language always remains a dry subject. At some point of time, the mind wants to stop analyzing and start to take things as-is. Panini's grammar rules, no doubt is a great tribute to human intelligence. At the same time, another extra-ordinary intellect, Adi Shankaracharya asks "What is the point of studying grammar, when the real liberation is achieved only by chanting the name of Govinda".
Chanting the names of Vishnu is a sure way to moksha especially in Kali yuga - Vyasa emphasises this in several of his works. The more you call his name the more the chances of liberation. So, of what use is memorizing and repeating the undecipherable technical terms of Panini - most of which does not even sound like a proper word, when the mind can be repeating the thousand names of Paramatma? Do the words like ShtunoShtu:, k~giti ca, ikoyanachi get a person any closer to moksha?
Thus the bhakta is at cross-roads with jnana. Should one study the intricacies of grammar or just chant the names of mAdhava? And why can't he do both?
A variety of literature has followed AshtadhyayI. While the SutrapATha (AshtadhyAyI) remains the ultimate focus of these literature, the literature itself spans several dimensions - vritti (gloss), vArtika (notes), bhAshya (exposition), siddhAnta (theory). Sutra was extremely concise, so vritti was written to supply missing elements. vArtika expanded the sutra, while mahAbhAshya was an extensive treatment, leaving no gaps. Kasika vritti, siddhantakaumudi, laghu siddhanta kaumudi have treated AshtadhyAyI extensively. In between there are novel attempts like BhattikAvya which attempts to teach Paninian grammar via Ramayana.
In the juggernaut of the Bhakti movement started around early 8th century (?) with Azhwars/Nayanmars and gained prominence throughout India by 15th century, someone snaps, why do I have to read all these grammar rules while I can be chanting the name of Hari? Of what use is this grammar when nitya sukham is in repeating the names of Krishna! And thus Jiva Gosvamin creates a brilliant work - 'Harinamamruta vyAkaraNam' - literally "The Grammar of Nectar of Names of Hari". It is based on Panini's grammatical rules, but every technical term is replaced by a meaningful facet of Vishnu.
Let us look at some of the parallels of Panini's technical terms and Harinamamruta vyakarana
vowels/varna/svara (ac) - sarveSvara:
first 10 vowels (ak) - daSAvatAra
each pair of vowel (hRsva and dIrgha) - ekAtmaka
hrsva - vAmana
dIrgha - trivikrama
pluta - mahApurusha
anusvara - vishnuchakra
anunAsika - vishnuchApa
visarga - vishnusarga
ka ca Ta ta pa - hari-kamalam
kha Cha Tha tha pha - hari-khadga:
ga ja da Da ba - hari-gada
Gha Jha dha Dha bha - hari-ghosha:
Adesha - virinci
Agama - vishnu
pumlinga - purushottama
strIlinga - lakshmI
napumsalinga - brahmajna
avyaya - alinga
lopa: - hara:

and so on. All the technical terms are carefully replaced by equivalent meaningful facets of Vishnu! Thus Jiva Gosvamin creates about 3192 sutras - a devotional parallel to Panini's AshtadhyAyI.

The intellectual devotee fulfils two purposes immediately - learn grammar by chanting the names of Vishnu. Talk about direct ascendency to moksha by bhakti through jnana!

Wednesday, December 9, 2009

From raama to raamaha

In a previous post we saw how a programming language can be written effectively in a natural language using Paninian sutra style.

In this post, let us do the exact opposite: converting a set of Panini-sutras to programming language style syntax to understand the rules of Sanskritam. The aim of the post is to kindle interest in Sanskrita studies for a typical software engineer to see the parallels of concepts of programming in Paninis methods. Statements and researches on Panini's methodology and how it is close to programming can be found plenty googling around. But as the ancient saying goes the proof of code is in the compiling. Of course I wont be delivering a code here, but hopefully a pseudo-code should convince any software engineer. Much of the pseudo-code can be polished and implemented in languages like Groovy/Ruby that supports expando, reflection etc.

Beginner Sanskrita students are often confused between rAma and rAma: (pronounced raamaha). Why do we add a visarga? Does the addition of visarga change the meaning?

The short answer is: Yes, the addition of visarga does add meaning.

In non-inflexional language like English, the prepositions provide the purpose of the noun. For eg by Rama, to Rama, from Rama, in Rama: in these cases "Rama" stays constant, while the prepositions provide the notion. Hindi also exhibits non-inflexional properties (rAm ne, rAm ko, rAm se, rAm par). In inflexional languages, the noun itself is modified to denote the purpose.

So what does this have to do with rAma: ? The word rAma: can be split into rAma + visarga. Here rAma is called the "stem" or "nominal stem". In Sanskrita its called prAtipadikam (प्रातिपदिकम्). prAtipadikam is defined as "arthavat adhAtu apratyaya" (अर्थवत् अधातु अप्रत्यय प्रातिपदिकम्) -- that which has meaning, and not a root, and not a suffix is called prAtipadikam. This stem will undergo modifications (inflexions) to fulfill the purpose of the noun.

Panini provides the methodology of modifying stem "rAma" to "rAma:" in a few sutras.

  1. su aujasamauTChasTAbhyAmbhis~gebhyAmbhyas~gasibhyAmbhyas~gasosAm~gyossup
  2. upadeSe ajanunAsikA it
  3. sa sajuSho ru:
  4. kharAvasanayo: visarjanIya:
The same in devanAgarI:
  1. सु औजसमौट्छस्टाभ्याम्भिस्ङेभ्याम्भ्यस्ङसिभ्याम्भ्यस्ङसोसाम्ङ्योस्सुप्
  2. उपदेशे अजनुनासिका इत्
  3. स सजुषो रु:
  4. खरावसनयो: विसर्जनीय:

Forget the tongue-wrecking, memory-bending first sutra for now. We will see its utility in the future posts.

Lets do some pseudo-code now.

//purpose of the noun - what do we want? singular/plural, masculine/feminine etc.
def purpose
//the stem to use, based on the purpose, this stem will now change
def stem = "rAma"
//anunAsika vowels for #2 (using single quotes to denote nasalization)
def nasalVowels { a', A', i', I', u', U', R', R.', e', ai', o', au' }

//Requirement: create a nominative-singular-masculine form of rAma -- prathamA vibhakti, ekavachanam, pumlinga from prAtipadikam rAma

def create_nominative_singular_ masculine_noun_from_stem(stem) {

if (purpose.isMasculine()  && purpose.isSingular() && purpose.isNominative()) stem.append("su'") //sutra #1: rAma -> rAmasu'
if (stem.endsWith(nasalVowel)) stem.removeLast(nasalVowel) //sutra #2: rAmasu' -> rAmas
if (stem.endsWith("s")) stem.replace("s", "ru'") //sutra #3: rAmas -> rAmaru'
if (stem.endsWith(nasalVowel)) stem.removeLast(nasalVowel) //sutra #2: rAmaru' -> rAmar
if (stem.endsWithAnyOf(KHAR)) stem.replace(stem.findLast(KHAR), ":")) //sutra #4
return stem //rAma:
Following the algorithmic steps, when the intention of one rAma is to be in nominative case (or as a subject), the end result is that a visarga is appended. Just 'rAma' does not denote anybody. "rAma:" denotes one masculine person in nominative/subject form.

Naturally, a question arises - Why dont we just add a visarga at the end instead of going thru all these rules? Note that this visarga is only for a masculine form. For neuter and feminine nouns, a su' will be added, but other rules from prevent them into morphing into a visarga. So Panini adds a common suffix and specifies rules on how it is applied in various situations.

In the next post, let us look at making the above method efficient.