[smc-discuss] മലയാളം അകാരാദിക്രമം (Malayalam Sorting)

Santhosh Thottingal santhosh.thottingal at gmail.com
Tue Oct 7 09:58:06 PDT 2008


മലയാളം കമ്പ്യുട്ടിങ്ങിനെ സംബന്ധിച്ചിടത്തോളം  സുപ്രധാനമായൊരു ആവശ്യകതയായ
അകാരാദിക്രമം(Sorting) ഇത്രയും കാലമായും നമുക്കു് ശരിയായ രീതിയില്‍ ഇല്ല.
ഇപ്പോള്‍ നിങ്ങള്‍ മലയാളത്തില്‍ കുറേവാക്കുകള്‍
അകാരാദിക്രമത്തിലാക്കിയാല്‍ കിട്ടുന്ന ക്രമം  യൂണിക്കോഡ്  കോഡ്
പോയിന്റുകളുടെ ആരോഹണക്രമത്തിലായിരിക്കും. ഇതു പരിശോധിയ്ക്കാന്‍
മലയാളത്തിലുള്ള ഗ്നോമിലോ KDE യിലോ മലയാളം പേരുകളുള്ള കുറേ ഫയലുകള്‍
സോര്‍ട്ട് ചെയ്തു നോക്കിയാല്‍ മതി.
മലയാളം അകാരാദിക്രമം ഇല്ലാതിരുന്നതു് ഒരിക്കലും സാങ്കേതിക കാരണങ്ങള്‍
കൊണ്ടല്ല. ഏതു് ക്രമമാണു് ശരി എന്നതിനു് ആധികാരികമെന്നു പറയാവുന്ന ഒരു
നിര്‍വചനവും കണ്ടെത്താനാവാത്തതാണു്. ശബ്ദതാരാവലി തുടങ്ങിയ പല
ഗ്രന്ഥങ്ങളിലും പല തരത്തിലാണു് അകാരാദിക്രമം ഉള്ളതെന്നാണു് ഇതിനെപ്പറ്റി
അന്വേഷിച്ചപ്പോള്‍ അറിയാന്‍ കഴിഞ്ഞതു്. അക്ഷരമാലയിലെ ക്രമം അനുസരിച്ചാല്‍
പോരേ എന്നു ചോദിച്ചേക്കാം. പക്ഷേ അതുകൊണ്ടുമാത്രം പോര. എന്തുകൊണ്ടാണെന്നു
വഴിയേ പറയാം.
ഇത്തരമൊരു അവസ്ഥയില്‍ ഞാന്‍ ഒരു അകാരാദിക്രമം ചര്‍ച്ചയ്ക്കായി
അവതരിപ്പിയ്ക്കുകയാണു്. അതിനുമുമ്പു് അകാരാദിക്രമത്തിന്റെ
പ്രാധാന്യത്തെപ്പറ്റി കുറച്ചു പറയട്ടെ.
പേരുകളോ സ്ഥലപ്പേരുകളോ അകാരാദിക്രമത്തിലാക്കുന്നതു് നമുക്കു് സ്കൂള്‍
വിദ്യാഭ്യാസകാലം മുതലേ പരിചയമാണു്. ക്ലാസിലെ റോള്‍ നമ്പര്‍
അതിനനുസരിച്ചായിരിക്കും. പരീക്ഷയില്‍ അടുത്തു് ആരിരിയ്ക്കും,
ഇന്റര്‍വ്യൂവിനു പോകുമ്പോള്‍ പേരു വിളിയ്ക്കുന്നതു് ആദ്യമോ അവസാനമോ,
തുടങ്ങി എത്രയോ സന്ദര്‍ഭങ്ങളില്‍ ഈ ക്രമത്തെ കുറിച്ചു് നമ്മള്‍
ചിന്തിച്ചിട്ടുമുണ്ടു്. 'ഒരു പരീക്ഷയില്‍ ജയിച്ച 100 പേരില്‍ ആദ്യത്തെ 10
പേര്‍ക്കു ജോലി കൊടുക്കാമെന്നു തീരുമാനിച്ചപ്പോള്‍ സ എന്ന അക്ഷരത്തില്‍
പേരുള്ളതുകൊണ്ടു് അവസാനമായിപ്പോയി ജോലി പോയി' എന്ന
സന്ദര്‍ഭത്തെക്കുറിച്ചാലോചിച്ചു നോക്കൂ.. വ്യക്തിപരമായി,  s എന്ന
അക്ഷരത്തില്‍ പേരു് തുടങ്ങിയതുകൊണ്ടു്  ചില്ലറ വിഷമങ്ങള്‍
ഉണ്ടായിട്ടുണ്ടു്. പക്ഷേ അതേ s പലപ്പോഴും നല്ലതായി ഭവിച്ചിട്ടുമുണ്ടു് :)
അതുകൊണ്ടു് അകാരാദിക്രമം ജീവിതപ്രശ്നമാണെന്നു് ഞാന്‍ പറയുന്നു...!


ചോദ്യം: പക്ഷേ മലയാളത്തിന്റെ അകാരാദിക്രമം യൂണിക്കോഡ് തീരുമാനിക്കില്ലേ?
ഉത്തരം: തീര്‍ച്ചയായും!. അവര്‍ അതു നേരത്തേ തന്നെ തീരുമാനിച്ചുവെന്നു
തോന്നുന്നു. മലയാളത്തിന്റെ കോളേഷന്‍ ചാര്‍ട്ട് ഇവിടെയുണ്ടു്:
http://unicode.org/charts/collation/chart_Malayalam.html . വായിച്ചു
നോക്കൂ. യരലവശഷസഹളഴറ എന്നതിനു പകരം യരറലള എന്ന ക്രമം കാണാം. കൂടാതെ ആ
ചാര്‍ട്ടില്‍ രണ്ടു്  മലയാളം അക്ഷരങ്ങളെ കാണ്‍മാനില്ല! അനുസ്വാരം,
വിസര്‍ഗ്ഗം (ം‌, ഃ) എന്നിവ അതിലില്ല. ആരാണു് ഈ പട്ടിക
ഉണ്ടാക്കിയതെന്നറിയില്ല. ആരായാലും  മലയാളിയാവാന്‍ വഴിയില്ല. മലയാളം
മാത്രമല്ല ഗുജറാത്തി, മറാത്തി എന്നിവയും തെറ്റാണു്. ബാക്കി ഭാഷകളുടെ
കാര്യം ഇങ്ങനെയൊക്കെ തന്നെയാണെന്നാണു് അറിയാന്‍ കഴിഞ്ഞതു്.

ഇനി നമ്മുടെ അകാരാദിക്രമത്തിലേയ്ക്കു വരാം.
അക്ഷരമാലാക്രമം തന്നെയാണു് അടിസ്ഥാനമാക്കിയിട്ടുള്ളതു്. പക്ഷേ
പൂര്‍ണ്ണമായും ആ ക്രമം അല്ല താനും. താഴെപ്പറയുന്നവയാണു്
പ്രധാനമാറ്റങ്ങള്‍ അല്ലെങ്കില്‍ ശ്രദ്ധിയ്ക്കേണ്ട മാറ്റങ്ങള്‍ :

1. അനുസ്വാരത്തെ മകാരത്തിന്റെ ചില്ലായി
പരിഗണിച്ചിരിക്കുന്നു.കേരളപാണിനീയത്തില്‍ അനുസ്വാരം മകാരത്തിന്റെ
ചില്ലായി കണക്കാക്കാവുന്നതാണെന്നു പറഞ്ഞിട്ടുണ്ടു്. ഇതു പ്രകാരം
കംപ്യൂട്ടര്‍-കമ്പ്യൂട്ടര്‍, പംപരം(ഇങ്ങനെ എഴുതാറില്ലെങ്കില്‍ കൂടി)-
പമ്പരം എന്നിവ അടുത്തടുത്തു വരും. മ് = ം എന്ന ഒരു
നിയമമാണിതിനുപയോഗിച്ചതു്.
കംപ്യൂട്ടര്‍
കമ്പ്യൂട്ടര്‍
എന്ന ക്രമമായിരിക്കും വരുന്നതു്. (ഈ മാറ്റം ഉമേഷേട്ടനാണു് നിര്‍ദ്ദേശിച്ചതു്)

2. മലയാള സ്വരചിഹ്നങ്ങള്‍ക്കു് യൂണിക്കോഡ് നിര്‍ദ്ദേശിച്ചിരിക്കുന്ന
canonical equivalence പാലിച്ചിരിക്കുന്നു.
താഴെ പറയുന്നവയാണവ:
U+0D4A MALAYALAM VOWEL SIGN O = U+0D46 MALAYALAM VOWEL SIGN E + U+0D3E
MALAYALAM VOWEL SIGN AA
U+0D4B MALAYALAM VOWEL SIGN OO = U+0D47 MALAYALAM VOWEL SIGN EE +
U+0D3E MALAYALAM VOWEL SIGN AA
U+0D4C MALAYALAM VOWEL SIGN AU = U+0D46 MALAYALAM VOWEL SIGN E +
U+0D57 MALAYALAM AU LENGTH MARK
അതായതു്
ൊ  = െ  + ാ
ോ  = േ  + ാ
ൌ  = െ +ൗ
ഇതിന്‍ പ്രകാരം
 മേ + ാ + ഷണം  == മോ + ഷണം == മോഷണം  എന്നാവും
അതായതു് മോ എന്നെങ്ങനെ എഴുതിയാലും അടുത്തടുത്തു വരും.
കുറിപ്പു്: സാധാരണഗതിയില്‍ ഇത്തരത്തില്‍ സ്വരചിഹ്നങ്ങളെ
പിരിച്ചെഴുതാറില്ല. ഇങ്ങനെ ഒരു നിയമം ഉണ്ടു് എന്നതുകൊണ്ടു മാത്രം
ഇവിടെയും അതുചേര്‍ത്തു എന്നുമാത്രം (ഇതിനെപ്പറ്റിയുള്ള കൂടുതല്‍
വിവരങ്ങള്‍ക്കു് എന്റെ ഈ ബ്ലോഗ് പോസ്റ്റ് കാണുക:
http://santhoshtr.livejournal.com/11701.html)

3. ചില്ലക്ഷരങ്ങള്‍:
യൂണിക്കോഡ് സ്റ്റാന്‍ഡേഡ് അനുശാസിയ്ക്കുന്ന പൂജ്യം കോളേഷന്‍ വെയ്റ്റ് zwj
യ്ക്കു് കൊടുത്തിരിക്കുന്നു(ഞാനൊന്നും പ്രത്യേകിച്ചു് ചെയ്തില്ല. ഇതു്
glibc യുടെ  collation tables ല്‍ നേരത്തെ തന്നെ ഉണ്ടു്).
അതുകൊണ്ടു് :
ന്‍ = ന+ ് + zwj = ന + ് = ന്
ഇതുപ്രകാരം ന് എവിടെ വരുന്നുവോ അവിടെ തന്നെ ന്‍ വരും. ഉദാഹരണത്തിനു് താഴെ
ഒരു അകാരാദിക്രമത്തിലാക്കിയ ചില വാക്കുകള്‍ കൊടുത്തിരിയ്ക്കുന്നു.
നനഞ്ഞ
നന്‍മ
നന്മ
വില്‍പന
വില്പന

4.zwnj : zwj യെ പോലെ തന്നെ ഇതിനും പൂജ്യം കൊളേഷന്‍ വെയിറ്റാണുള്ളതു്.
അതുകൊണ്ടു്  അവയെ അകാരാദിക്രമത്തില്‍ കണക്കിലെടുക്കില്ല.
ഉദാഹരണത്തിനു് താഴെ  അകാരാദിക്രമത്തിലാക്കിയ ചില വാക്കുകള്‍ കൊടുത്തിരിയ്ക്കുന്നു.
തമിഴ്‌നാട്
തമിഴ്നാട്
നനഞ്ഞ
നന്‌‌മ
നന്‍മ
നന്മ
വില്‌പന
വില്‍പന
വില്പന

5. ചന്ദ്രക്കല :
ഇതിന്റെ കാര്യത്തില്‍ എനിക്കു സംശയം ഉണ്ടു്
ക്
ക
കാ
എന്ന ക്രമമാണോ, അതോ
ക്
ക
കാ
എന്ന ക്രമമാണോ വേണ്ടതെന്നു്.
ആദ്യത്തെ ക്രമമാണെങ്കില്‍, കാക്ക, കാകന്‍ എന്ന രീതി വരും.
രണ്ടാമത്തെതില്‍ കാകന്‍, കാക്ക എന്നതും. ഇരട്ടിപ്പുകളും ,
കൂട്ടക്ഷരങ്ങളുമൊക്കെ അവയുടെ ആദ്യ അക്ഷരം കഴിഞ്ഞല്ലേ വരൂ എന്നു
തോന്നിയതിനാല്‍, തത്കാലം എടുത്തിരിയ്ക്കുന്നതു് രണ്ടാമത്തേതാണു്. മദ്രാസ്
തമിഴ് ലെക്സിക്കണ്‍  അനുസരിച്ചു്, തമിഴിലെ അകാരാദിക്രമം രണ്ടാമത്തെ
പ്രകാരമാണു്.(Ref: see /usr/share/i18n/locales/ta_IN in your gnu/linux
OS)

6. മലയാള അക്കങ്ങള്‍ അക്ഷരങ്ങള്‍ക്കു മുന്‍പേ വരും. അതായതു്
൨
൫
൫൯
൬
അത്
അതു
എന്നതാണു് ക്രമം.

7. സംവൃതോകാരം ഉകാരത്തിന്റെ സ്വരചിഹ്നത്തിനുശേഷം വരും
അത്
അതു
അതു്
എന്ന ക്രമത്തില്‍

8. യൂണിക്കോഡ് 5.1:
പുതുതായി വന്ന ൠ, ൡ , ഇവയുടെ ചിഹ്നങ്ങള്‍, അവഗ്രാഹ എന്നിവ
ചേര്‍ത്തിട്ടുണ്ടു്. മലയാളം ഭിന്നങ്ങളുടെ ചിഹങ്ങള്‍ അവയുടെ കോഡ് പോയിന്റ്
ക്രമത്തില്‍ തന്നെ വരും.


ചോദ്യം: ഇതാണോ മലയാളം അകാരാദിക്രമത്തിന്റെ തീരുമാനിച്ചുറപ്പിച്ച ക്രമം?
ഉത്തരം: ആവണമെന്നില്ല. ഇതു് എന്റെ അറിവുപ്രകാരമുള്ള ഒരു ക്രമമാണു്. ഈ
വിഷയത്തില്‍ അറിവും താത്പര്യവുമുള്ള മലയാളികളുടെ അഭിപ്രായമറിയുന്നതിനായി
പുറത്തിറക്കുന്നതാണു്. ആരെങ്കിലും മാറ്റങ്ങള്‍ നിര്‍ദ്ദേശിയ്ക്കുന്ന
പക്ഷം തിരുത്താന്‍ തയ്യാറാണു്.

ചോദ്യം: ഇതെങ്ങനെ എന്റെ കമ്പ്യൂട്ടറില്‍ സജ്ജമാക്കാം?
ഉത്തരം: മലയാളം അകാരാദിക്രമത്തിനുവേണ്ടി മാറ്റം വരുത്തിയ മലയാളത്തിന്റെ
ഫയല്‍  ഇതിനോടൊപ്പം അയയ്ക്കുന്നു.

For All distros[ Tested in Ubuntu 8.04 and Fedora 9]:
ഡൌണ്‍ലോഡ് ചെയ്ത ഫയല്‍ നിങ്ങളുടെ home folder ല്‍  work എന്ന ഒരു
അറയുണ്ടാക്കി അതില്‍ വെയ്ക്കുക.
എന്നിട്ട് താഴെപറയുന്ന കമാന്റുകള്‍ ടെര്‍മിനലില്‍ ഓടിയ്ക്കുക
cd ~/work
sudo localedef -i ml_IN-new -f UTF-8 ./ml_IN
sudo localedef --add-to-archive --replace ./ml_IN
ഇത്രയും കഴിയുമ്പോള്‍
Adding ./ml_IN
എന്ന ഔട്ട്പുട്ട് കിട്ടും. അതിനര്‍ത്ഥം സംഗതി വിജയകരമായി എന്നാണു്.
[ഇതില്‍ work എന്ന അറയുണ്ടാക്കുന്നതും മറ്റൂം കാര്യം ലളിതമാക്കാന്‍
പറഞ്ഞതാണു്. നിങ്ങള്‍ എന്താണു ചെയ്യുന്നതെന്നു നിശ്ചയമുണ്ടെങ്കില്‍
എവിടെവെച്ചും ഈ കമാന്റുകളോടിയ്ക്കാം. ലൊക്കേല്‍ ഫയല്‍ മാറ്റാന്‍ വേറെയും
വഴികളുണ്ടു്]

ചോദ്യം: എങ്ങനെ പരിശോധിയ്ക്കും?
ഉത്തരം:

മലയാളം പണിയിടമാണു് ഉപയോഗിയ്ക്കുന്നതെങ്കില്‍
gedit എടുക്കുക.
Edit->Preferences->Plugins->Sorting(ചിട്ട->മുന്‍ഗണനകള്‍->സംയോജകങ്ങള്‍)
ചേര്‍ക്കുക.
gedit ല്‍ കുറേ വാക്കുകളെഴുതുക. ഒരു വരിയില്‍ ഒന്നു വീതം. എന്നിട്ട്
edit->sort ചെയ്യുക.

ഇംഗ്ലീഷ് പണിയിടമാണെങ്കില്‍:
gedit ല്‍ കുറേ വാക്കുകളെഴുതുക. ഒരു വരിയില്‍ ഒന്നു വീതം. എന്നിട്ട്
ഫയല്‍ സംരക്ഷിക്കുക(save).
Open terminal. If the file name is testfile.txt, run:
LANG=ml_IN sort testfile.txt > testfile-sorted.txt

ചോദ്യം: എന്റെ കമ്പ്യൂട്ടറില്‍ വിന്‍ഡോസ് മാത്രമേ ഉള്ളൂ. അതില്‍ മലയാളം
അകാരാദിക്രമം ശരിയാക്കാന്‍ പറ്റുമോ?
ഉത്തരം:  :(

ചോദ്യം: ഇതെങ്ങനെ ഗ്നു/ലിനക്സ് പ്രവര്‍ത്തകസംവിധാനത്തില്‍ സ്ഥിരമായി കൊണ്ടുവരും?
ഉത്തരം: ഗ്നുവിന്റെ സി ലൈബ്രറിയാണു് (glibc) അകാരാദിക്രമം കൈകാര്യം
ചെയ്യുന്നതു്. ഗ്നു/ലിനക്സിലെ ഒട്ടുമിക്ക പ്രയോഗങ്ങളും ഈ ലൈബ്രറി
ഉപയോഗിച്ചാണു് സോര്‍ട്ട് ചെയ്യുന്നതു് . ഓപ്പണ്‍ഓഫീസും, Postgresql
database ഉം എല്ലാം...ഇതിലേയ്ക്കാണു് പാച്ച് സമര്‍പ്പിയ്ക്കേണ്ടതു്.
അതിനുശേഷം എല്ലാ ഗ്നു/ലിനക്സ് വിതരണങ്ങളിലും ഇതു് ലഭ്യമാകും

എത്രയും പെട്ടെന്നു് കാര്യങ്ങള്‍ തീരുമാനമായാല്‍ നമുക്കു് ഇതിനെ
അപ്സ്ട്രീമിലേയ്ക്കു വിടാം. ഗ്നു/ലിനക്സ് വിതരണങ്ങളുടെ അടുത്ത
പതിപ്പുകളില്‍ ലഭ്യമാക്കാന്‍ ശ്രമിയ്ക്കാം.

സ്നേഹപൂര്‍വ്വം
സന്തോഷ് തോട്ടിങ്ങല്‍

--~--~---------~--~----~------------~-------~--~----~
സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് - എന്റെ കമ്പ്യൂട്ടറിനു് എന്റെ ഭാഷ 
സംരംഭം: https://savannah.nongnu.org/projects/smc
വെബ്‌സൈറ്റ് : http://smc.org.in  IRC ചാനല്‍ : #smc-project @ freenode
പിരിഞ്ഞു പോകാന്‍: smc-discuss-unsubscribe at googlegroups.com
-~----------~----~----~----~------~----~------~--~---
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ml_IN-new
Type: application/octet-stream
Size: 9785 bytes
Desc: not available
URL: <http://lists.smc.org.in/pipermail/discuss-smc.org.in/attachments/20081007/aba4841d/ml_IN-new.obj>


More information about the discuss mailing list