shreevatsa / sanskrit

Tool(s) to help read Sanskrit (and other) metrical verse
https://sanskritmetres.appspot.com
GNU General Public License v2.0
73 stars 14 forks source link

"Poetic licence" exceptions to conjunct consonants being treated as guru #1

Open drdhaval2785 opened 10 years ago

drdhaval2785 commented 10 years ago

[Note: There is an updated summary of this issue below.]

[Original subject: Defining Gurus and Laghus]

सानुस्वारो विसर्गान्तो दीर्घो युक्तपरश्च यः । वा पादान्तस्त्वसौ ग्वक्रो ज्ञेयोऽन्यो मातृको लृजुः ॥ ९
पदादाविह वर्णस्य संयोगः क्रमसंज्ञिकः । पुरःस्थितेन तेन स्याल्लघुताऽपि क्वचिद्गुरोः ॥ १०

These are the rules for Guru / Laghu in vRttaratnAkara. Rule 1: sAnusvAra - this is covered in the code by including M in the consonant list. Rule 2: visargAnta - this is also covered in the code by including H in the consonant list. Rule 3: dIrgha - This is also covered in the code by including the long_vowel variables. Rule 4: yuktapara - This needs a little refinement. This rule is made optional by the verse 10. Rule 5 - pAdAnta - pAdAnta laghu is treated as guru optionally. The commentary says पादस्तस्यान्ते वर्तमानो लघुरपि विभाषया गुरुः स्यात्‌ । स च कविसमयव्यवहारात्‌ द्वितीयचतुर्थयोरेव पादयोरन्ते वेदितव्यः । . Meaning thereby that this optionality will work only in case of the second or fourth pAda only. A laghu at the end of First or Third pAda will not have an option of being a guru optionally.

Rule 6: Others having short vowels are laghu.

Rule 7: This is important. This is an optional exception to the rule 4. When there is a conjoint at the start of a word (pada), (not pAda), the guru (as mandated by Rule 4) is sometimes treated as laghu. e.g. निद्रव्यो ह्रियमेति ह्रीपरिगतः प्रभ्रश्यते तेजसः Here, as the ति preceding ह्री is mandated to be guru by rule 4 - by rule 7, it remains laghu. If it is treated as guru - GGGLLGGGLLLG-GGLGGLG - doesnt correspond to zArdulavikrIDita meter. If it is treated as laghu - GGGLLGLGLLLG-GGLGGLG - corresponds to the meter.

This is optional. See: रागो नलिन्या हि निसर्गसिद्धस्तत्र भ्रमत्येव मुधा षडङ्घ्रिः ॥ Here, भ्र has त्र preceding, but still it got converted to dIrgha.

Also note that this applies only when the conjoint is at the start of a word (pada). see: प्रद्योतस्य प्रियदुहितरं वत्सराजोऽत्र जह्रे । Here, the ह्र in जह्रे is not at the beginning of a word. Therefore the guru is mandatory.

shreevatsa commented 10 years ago

Thanks for the information.

To summarize, there are two issues I identify:

  1. Missing feature: According to Kedārabhaṭṭa in vRttaratnAkara, a short vowel followed by a consonant cluster (i.e., multiple consonants), although guru by default, can optionally be treated as laghu if that consonant cluster happens to be the beginning of a new word. Implement this option. (With required UI changes, e.g. saying: "this verse can be read as <...> if an option is used in places x, y, z.")
  2. Treatment of pAdAnta laghus, which I've forked off as a separate issue #2.

So let's restrict this issue to discussing #1.

As I see it, to implement this, we'd like the metre-recognizing function to be passed in spaces as well, so that it can detect the beginning of words. The rest should be doable.

drdhaval2785 commented 10 years ago

"As I see it, to implement this, we'd like the metre-recognizing function to be passed in spaces as well, so that it can detect the beginning of words. The rest should be doable."

I agree. Right now we are removing the space before starting guru / laghu identification. This should be avoided and space should be retained till we have completed guru / laghu identification.

short vowel -> space -> consonant -> consonant === % -> consonant, where % denotes both Guru and Laghu. Maybe we can set a counter here. If that counter is 1 -> we can change % to G and run the meter checker. and then we change % to L and run the meter checker again.

vvasuki commented 10 years ago

पुरा शतावधानिना गणेशेन एवमप्य् उक्तम् - https://groups.google.com/forum/#!search/%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A4%B9%E0%A5%8D%E0%A4%B0%E0%A5%87/bvparishat/ya1cGLuhc14/U_biGQ4FJscJ

shreevatsa commented 10 years ago

In light of the fact that this (≈shithila-dvitva) is more found in later Prākṛta-influenced poetry and the most classical poets have not used it, and the fact that metre-recognizer now takes all partial line matches into account (any verse is unlikely to require this option in all four lines), this seems low-priority.

Leaving this as-is for now, until I see examples of verses where this option is exploited in all four lines.

drdhaval2785 commented 10 years ago

निद्रव्यो ह्रियमेति ह्रीपरिगतः प्रभ्रश्यते तेजसः still didnt give the correct result.

shreevatsa commented 9 years ago

@drdhaval2785 -- if you type the entire verse, it does correctly identify the metre; see the following screenshot:

screen shot 2015-01-01 at 12 49 04

That's what I meant by the previous comment. Let me post another one to elaborate.

shreevatsa commented 9 years ago

Let me summarise the issue again.

The traditional rule is that the presence of a conjunct consonant (consonant cluster) makes the preceding syllable a guru syllable. For purists, this is an inviolable rule, and there are no exceptions.

However, under the influence of Prākṛta and deśa-bhāṣā prosody, and also music, later prosodists give poets the option to either conform to this rule, or to occasionally indulge in an exception. This exception is stated differently by different authors:

  1. In Kannada and Telugu prosody, under the name of śithila-dvitva, the exception is that sometimes in a consonant cluster of the form [consonant + "r"], the "r" (repha) can be ignored, so that it is not a conjunct consonant anymore.
  2. Kedāra-bhaṭṭa in his Vṛtta-ratnākara states the exception as: if the consonant cluster is at the beginning of a word, then it may be treated as a single consonant.
  3. Yet another way of stating the exception is that a consonant cluster can be optionally treated as a single consonant if the effort of pronouncing it is quick (तीव्रप्रयत्नेन) or with less effort (श्रममन्तरा).

All ways of stating the exception cover the example of "निद्रव्यो ह्रियमेति ह्रीपरिगतः प्रभ्रश्यते तेजसः", but Kedārabhaṭṭa's way doesn't cover the example of "राज्ञां मध्ये सपदि जह्रिषे मित्रविन्दामवन्तीम्" from the Nārāyaṇīyam. So far I don't see a reason to prefer Kedārabhaṭṭa's formulation over the others.

But anyway, to return to the main point:

  1. The exception is not accepted by purists: Shatavadhani Ganesh says that the Sanskrit masters like Kālidāsa, Bhāravi, Māgha, Śrīharṣa, and Viśākhadatta have not freely used this exception (though the masters in Kannada and other languages have).
  2. Being more of a "poetic licence" and a violation of the standard rule (only found in later poetry), it is extremely unlikely that any sane poet would have indulged in that exception in all four pāda-s of a verse.
  3. Thus it is very unlikely that the program will miss identifying a verse that indulges in this exception. At least, I haven't seen any example from real life so far. (Just saying that because it would be easy to intentionally compose a verse to disproves this!)

Reference: see comments by Dr. Ganesh and Nityananda Misra in this thread started by Vishvas Vasuki: https://groups.google.com/forum/#!topic/bvparishat/ya1cGLuhc14/discussion

shreevatsa commented 9 years ago

On the way forward, I see a couple of options:

  1. Do nothing and leave the code as it is.
  2. When violations are detected (as in the screenshot above), mention that the violation may perhaps be OK, because of all these exceptions.
  3. Go out of the way to proactively check whether the verse makes use of this exception (for all the different definitions of "this exception").

My position is that (3) is not necessary, because, being at just edit distance 1 from the correct metre, it will be subsumed by the general effort to find closest matches to existing metres (mentioned as #43) — we will still identify the correct metre.

So I'm treating the TODO here as 2.

drdhaval2785 commented 9 years ago

Option 2 would be great

gasyoun commented 9 years ago

2 is 100 times better than 1 is.

shreevatsa commented 9 years ago

Inasmuch as every minute spent on this is a minute less spent on other things, I'm not even sure that's true. :-)

In the meantime, there is absolutely not a single known example of a verse for which the program will fail at its main purpose, that of identifying the metre. And even of its secondary purpose (that of pretty-printing the input verse), and even of the minor effect it has (something underlined in red), it only matters in a tiny number (close to zero) of all the verses that have ever been input to the program.

So I feel it is pointless to spend more time on this issue now, until the issues of far greater impact are fixed.

अलमतिविस्तरेण।

gasyoun commented 9 years ago

If https://github.com/shreevatsa/sanskrit/issues/53 possible, so be it :8ball:

vvasuki commented 9 years ago

2015-01-02 18:43 GMT-08:00 Shreevatsa notifications@github.com:

So I feel it is pointless to spend more time on this issue now, until the issues of far greater impact are fixed.

​My vote is on building the collaborative flexible online Chandas table.​

Vishvas /विश्वासः

drdhaval2785 commented 9 years ago
collaborative flexible online Chandas table.​

Without moderation - difficult task. Some one entering some wrong data may throw off the machine off scent

vvasuki commented 9 years ago

पालनं क्रियतामावाभ्याम्। नास्ति तत्र क्लेशः।​

2015-01-04 8:25 GMT-08:00 Dr. Dhaval Patel notifications@github.com:

collaborative flexible online Chandas table.​

Without moderation - difficult task. Some one entering some wrong data may throw off the machine off scent

— Reply to this email directly or view it on GitHub https://github.com/shreevatsa/sanskrit/issues/1#issuecomment-68638557.

Vishvas /विश्वासः

shreevatsa commented 7 years ago

Again, I was thinking about this recently since last weekend, and it occurs to me that I was trying to solve too many problems during the metre identification phase. The problem becomes easier if we treat the job of that phase to simply throw up some candidate metres, and then we do some ranking of these candidate metres based on how well they match. During this ranking, we can consider aspects like this alternative scansion. That is a clean solution to this problem that had not occurred to me previously.

So I need to first implement some form of ranking, and then this problem can become solvable. Even with the “poetic license” used in every line!

gasyoun commented 4 years ago

first implement some form of ranking

Guess it remains as is, undone?

kidasund commented 3 years ago

The website https://sanskritmetres.appspot.com/ is not working. Can you please fix it.

shreevatsa commented 3 years ago

The website https://sanskritmetres.appspot.com/ is not working. Can you please fix it.

Created a new issue at https://github.com/shreevatsa/sanskrit/issues/133 (resolved now).

kidasund commented 3 years ago

https://sanskritmetres.appspot.com/ is an absolutely awesome website. I use it very regularly. I would like to make a donation. How should I do it. Please let me know the procedure.

shreevatsa commented 3 years ago

https://sanskritmetres.appspot.com/ is an absolutely awesome website. I use it very regularly. I would like to make a donation. How should I do it. Please let me know the procedure.

Thank you, that's nice to hear! The website costs no money to run, and I have a regular full-time job, so there is no need for any donation. (If the situation changes, I'll add a note on the website.) [In fact I already feel guilty about leaving so many bugs and issues unattended here, so taking money would make me feel even worse. :-)] But it's nice to hear that someone is using it regularly and finds it useful despite all the shortcomings; thank you.