funderburkjim / ScharfSandhi

Software to apply sandhi to Sanskrit text
MIT License
6 stars 6 forks source link

TestSandhiCOutv1 #6

Open funderburkjim opened 4 years ago

funderburkjim commented 4 years ago

This is testfiles/TestSandhiCOutv1.txt

Three lines were changed regarding compound sandhi with consonants.

These reflect a difference between the pythonv3 and earlier versions and the pythonv4 version.

The testsuite.sh script is changed in pythonv4 so that TestSandhiCOutv1 is taken as the standard for TestSandhiC.

TestSandhiCOut.txt remains the standard for the earlier versions.

The differences occur when one of the nasals N, R, or Y (guttural, cerebral, palatal) is joined by compound sandhi to one or another sibilant. The table of the following comment enumerates the differences, with reference to the Paninian sutra involved.

funderburkjim commented 4 years ago

Table of differences

Spellings in SLP1 transliteration of Sanskrit.

pre-sandhi pythonv4 sandhi pythonv3 sandhi Sutra
N-S NkS NS 8.3.28 NRoH kuk wuk Sari
N-z Nkz Nz same
N-s Nks Ns same
R-S RwS RS same
R-s Rws Rs same
N-Sa NkCa NSa 8.3.28 NRoH kuk wuk Sari, etc.
n-Sa YCa YSa ...
funderburkjim commented 4 years ago

How to verify

To verify the pythonv4 sandhis, cd to pythonv4 and use ScharfSandhiArg.py program. e.g. python ScharfSandhiArg.py C N-S provides output:

sandhi: START: "N-S"
sandhimain: START: "N-S"
nnohkuktuksari: "Nk-S"
non_acsandhi: "Nk-S"
sandhimain: DONE: "NkS"
sandhi: DONE: "NkS"

Similarly, for the pythonv3 results, cd to python3; be sure 'python' is a Python2.xx version (see #5), and run the same command: python ScharfSandhiArg.py C N-S which provides output:

sandhi: START="N-S"
sandhi1: START="N-S"
sandhimain: START Linary=" N-S    "
sandhimain: Linary=" NS    "
sandhi1: Linary=" NS    "
sandhi: Linary=" NS    "
ScharfSandhiArg: ans="NS"
funderburkjim commented 4 years ago

various examples

Here is a list of various examples, using the current python4 code.


python ../ScharfSandhiArg.py C N-S
sandhi: START: "N-S"
sandhimain: START: "N-S"
nnohkuktuksari: "Nk-S"
non_acsandhi: "Nk-S"
sandhimain: DONE: "NkS"
sandhi: DONE: "NkS"
ScharfSandhiArg: ans="NkS"

python ../ScharfSandhiArg.py C N-z
sandhi: START: "N-z"
sandhimain: START: "N-z"
nnohkuktuksari: "Nk-z"
non_acsandhi: "Nk-z"
sandhimain: DONE: "Nkz"
sandhi: DONE: "Nkz"
ScharfSandhiArg: ans="Nkz"

python ../ScharfSandhiArg.py C N-s
sandhi: START: "N-s"
sandhimain: START: "N-s"
nnohkuktuksari: "Nk-s"
non_acsandhi: "Nk-s"
sandhimain: DONE: "Nks"
sandhi: DONE: "Nks"
ScharfSandhiArg: ans="Nks"

python ../ScharfSandhiArg.py C R-S
sandhi: START: "R-S"
sandhimain: START: "R-S"
nnohkuktuksari: "Rw-S"
non_acsandhi: "Rw-S"
sandhimain: DONE: "RwS"
sandhi: DONE: "RwS"
ScharfSandhiArg: ans="RwS"

python ../ScharfSandhiArg.py C R-z
sandhi: START: "R-z"
sandhimain: START: "R-z"
nnohkuktuksari: "Rw-z"
jharojharisavarne: "R-z"
sandhimain: DONE: "Rz"
sandhi: DONE: "Rz"
ScharfSandhiArg: ans="Rz"

python ../ScharfSandhiArg.py C R-s
sandhi: START: "R-s"
sandhimain: START: "R-s"
nnohkuktuksari: "Rw-s"
non_acsandhi: "Rw-s"
sandhimain: DONE: "Rws"
sandhi: DONE: "Rws"
ScharfSandhiArg: ans="Rws"

python ../ScharfSandhiArg.py C n-S
sandhi: START: "n-S"
sandhimain: START: "n-S"
situk: "nt-S"
stohscunascuh: "Yc-S"
jharojharisavarne: "Y-S"
non_acsandhi: "Y-S"
sandhimain: DONE: "YS"
sandhi: DONE: "YS"
ScharfSandhiArg: ans="YS"

python ../ScharfSandhiArg.py C n-z
sandhi: START: "n-z"
sandhimain: START: "n-z"
sandhimain: DONE: "nz"
sandhi: DONE: "nz"
ScharfSandhiArg: ans="nz"

python ../ScharfSandhiArg.py C n-s
sandhi: START: "n-s"
sandhimain: START: "n-s"
sandhimain: DONE: "ns"
sandhi: DONE: "ns"
ScharfSandhiArg: ans="ns"

python ../ScharfSandhiArg.py C N-Sa
sandhi: START: "N-Sa"
sandhimain: START: "N-Sa"
nnohkuktuksari: "Nk-Sa"
saschoti: "Nk-Ca"
non_acsandhi: "Nk-Ca"
sandhimain: DONE: "NkCa"
sandhi: DONE: "NkCa"
ScharfSandhiArg: ans="NkCa"

python ../ScharfSandhiArg.py C n-Sa
sandhi: START: "n-Sa"
sandhimain: START: "n-Sa"
situk: "nt-Sa"
stohscunascuh: "Yc-Sa"
saschoti: "Yc-Ca"
jharojharisavarne: "Y-Ca"
non_acsandhi: "Y-Ca"
sandhimain: DONE: "YCa"
sandhi: DONE: "YCa"
ScharfSandhiArg: ans="YCa"
funderburkjim commented 4 years ago

Rationale for changes in 'standard'

(comment due to @scharfp )

The change to the “standard” is the adoption of close sandhi between a final nasal and initial stop. A stop is first inserted after the nasal by the two rules (Note 1 below) I mention in my comments. That stop gets deleted by 8.4.65 JaraH Jari savarRe where it is of the same series as the following, but not if it is of a different series. So we get the k and w remaining in some cases. Although 8.3.28 is rarely conditioned in actual Sanskrit, the reason for adopting it is that it is parallel to 8.3.31 which is quite common. That sandhi is what we decided was more ‘standard’. Panini doesn’t provide a way to get rid of the ‘k’ and ‘w’ in the other cases of difference.

Note1: The two rules are