Monday, February 27, 2006

குறியேற்றமும் இலக்கணமும்

இனி அடுத்த சோதனைக்கு - 3 க்குப் போவோம். இப்பொழுதும் நாம் எடுத்துக் கொள்ளும் சொற்கள் அதே ஐந்து தாம்.

இவன்
இவனை
இவனால்
இவனோடு
இவனிடம்

இந்தத் தொகுதியில் இவன் என்பதை மாணிக்கன் என்று மாற்றினால், நாம் எதிர்பார்க்கும் முடிவுகள் கீழே வரும்படி இருக்க வேண்டும்.

மாணிக்கன்
மாணிக்கனை
மாணிக்கனால்
மாணிக்கனோடு
மாணிக்கனிடம்

ஆனால் வெறும் முதற்சொல் மட்டுமே WORD - ல் Find and Replace மூலம் மாறுகிறது; கூடவே முன்னால் சொன்னது போல, மேலே உள்ளதை. உரோமன் எழுத்தில் போட்டால், எல்லாமே மாறுகிறது. So, no big deal.

அடுத்ததாக, மாணிக்கன் என்பதற்குப் பகரியாய் (substitute) மாணிக்கம் என்று கடையெழுத்தை மட்டும் மாற்றிப் போடுகிறோம் என்று வையுங்கள். தமிழ் வழக்கப் படி நாம் எதிர்பார்க்கும் மாற்றங்கள்:

மாணிக்கம்
மாணிக்கத்தை
மாணிக்கத்தால்
மாணிக்கத்தோடு
மாணிக்கத்திடம்

ஆனால் முடிவுகளோ? தமிழ் எழுத்து, உரோமன் எழுத்து என இரண்டில் எழுதினாலும் வெறுமே முதற்சொல் மட்டுமே மாணிக்கம் என்று மாறுகிறது; மற்றதெல்லாம் கந்தர கோளமாய் நிற்கின்றன. முன்னால் (உயிர்மெய் எழுத்துக்களே இல்லாத, வெறும் அகரவரிசையைக் கையாளும்) உரோமன் எழுத்தில் எழுதியபோது, ஐந்தும் சரியாக மாறின; இப்பொழுது அதுவும் no go.

Maanikkam
Maanikkamai
Maanikkamaal
Maanikkamootu
Maanikkamitam

என்ன ஆச்சு? குழந்தை அழுதுது; இலக்கணம் போச்சு. மொழிக்கும் எழுத்துக்கும் உள்ள தனித்தன்மைகளை விளக்கும் முகமாக இங்கே அத்துச் சாரியை உள்ளே நுழைய வேண்டியதை கணி மட்டும் உணர மாட்டேன் என்கிறது. ஏனென்றால் தமிழ் என்ற மொழியைக் கையாளுகிறோம் என்று கணிக்குத் தெரியாது. (நாம் சொல்லாவிட்டால் கணி எங்கே உணரப் போகிறது?) In other words, we have a Unicode compliant software which does not recognize Tamil Script and also Tamil language.

While we need a proper script recognition to solve problems like Experiment - 1, we need special add - on modules to recognize Tamil Grammer for solving problems like Experiment - 3.

i.e.,
Exp - 1 is related to a grammer independent problem (but needing to understand vowelized consonant properly).
Exp - 3 is related to a grammer dependent problem.

We should not lump both the problems together. The first one has to be solved at the encoding level and the second one at the special purpose software level. Present Unicode encoders developers take an escapist position and dump every such problem (both exp - 1 and 3) on to the special purpose software level posing burden on computing.

இதுவரை புரிந்து கொண்டதையும், அதில் இருந்து விரிகின்ற சில முடிபுகளையும், தொகுத்து உரைப்போமா?

1. தமிழ் மொழி என்பது ஓர் ஒட்டுநிலை மொழி (Agglutinative language). அது மேலை மொழிகளைப் போல நெகிழா மொழி (inflexive type = a language that adds one moneme or phoneme to a verb to denote case, number, gender, person, tense, etc. - Latin, Greek, Russian, etc. - as opposed to agglutinative languages. ஆங்கிலம் இலத்தீன், கிரேக்கம், உருசியன் பார்க்கச் சற்று வேறுபட்டது.) அல்ல, நெகிழா மொழிகளில் வேற்றுமை தெரிவது வினைச்சொல்லில்; தமிழில் பின்னொட்டுக்களை வைத்துப் பெயர்ச்சொல்லில் வேற்றுமை பழகுகிறோம். [மேலை மொழிகளில் பெரும்பாலானவற்றில் வேற்றுமை உருபுகள் தனித்தே நிற்கும்; அல்லது வினைச்சொல்லில் பிணைந்து நிற்கும். பெயர்ச்சொல்லோடு கொழுவி (கொழுவுதல் = சார்ந்து நிற்றல், கொழுநன் = சார்ந்து நிற்கிறவன்) நிற்காது.] முதல்வகைச் சொற்களோடு வேற்றுமை சேர்க்கும் போது புணர்ச்சி பார்த்துச் சேர்க்க வேண்டியது முகமையானது. அப்படியானால் "ஒரு ஆவணத்தில் வரும் உயிர்மெய் எழுத்துக்களை எந்த நேரத்திலும் அதில் பொதிந்து கிடக்கும் மெய்யென்ன? உயிரென்ன" என்று இம்மி நேரத்தில் பிரித்து அறியக் கூடிய வாய்ப்பு கணிக்குள் செயற்படும் எந்த நிரலிக்கும் இருக்க வேண்டும். இந்த வாய்ப்பு அமையவேண்டுமானால் அது குறியேற்றத்திற்குள்ளேயே குறிப்புள்ளி (code-point) அளவிலேயே பொருத்தப் பட்டு இருக்க வேண்டும். (இதை எப்படிச் செய்யலாம் என்று பின்னால் வரும் பதிவுகளில் பார்ப்போம்.)

2. சில குறிப்பிட்ட பெயர்ச்சொற்கள் சாரியை இல்லாமல் வேற்றுமை உருபுகளை எடுக்காது. அவற்றைக் கையாள வேண்டுமானால் குறியேற்றத்தினின்று விலகி ஒரு புறனடையாக (exception) விதப்பு (specialized) நிரலிகள் வைத்துத் தான் find and replace செய்யமுடியும். இவை என்னென்ன, எந்த நிலையில் வருகின்றன என்பதை தொல்காப்பியம், நன்னூல் பார்த்துச் செய்யமுடியும்.

இனி அடுத்த சோதனைக்குப் போவோம்.

அன்புடன்,
இராம.கி.

4 comments:

aathirai said...

1.Unicode compliant என்பதும் Tamil compliant என்பதும் ஒன்றல்ல.

2. உங்களுடைய ஆங்கில ivan , ivanil உதாரணத்தில்

Ivan என்ற ஒரு ஆளின் பெயர் இருந்தது என்று வைத்துக்கொள்வோம். அவருடைய
பெயர் Avan என்று மாறிவிடும். இதற்கு என்ன செய்ய முடியும்?

Replace All ஐ உபயோகிக்காமல் ஒவ்வொரு சொல்லுக்கும் மாத்து, மாத்தாதே
என்றுதான் சொல்ல முடியும்.

அது போலவே தமிழில் 'இவ' என்பதை மட்டும் 'அவ' என்று மாற்றச் சொல்லலாம்.

இதனால் word கண்டுபிடிக்கும் 'இவ' என்று தொடங்கும் வேறு சொற்களுக்கு
மாற்றாதே மேலே போ என்று சொல்லலாம்.

3. க் + ஐ என்று பிரிப்பது 8 bit காலத்திலிருந்து வருகிறது. இது தவறுதான்
என்று நினைக்கிறேன். unicode இல் அதிக பொந்துகள் பெறுவது இந்த பிரச்சினையை
தீர்க்கும்.

4.தமிழ் இலக்கணம் தெரிந்த editor வேண்டுமானால் நிரலியை நாம்தான்
எழுத வேண்டும். அப்பொழுதும் unicode உபயோகப்படுத்தலாம்.

Voice on Wings said...

ஆதிரை,

//1.Unicode compliant என்பதும் Tamil compliant என்பதும் ஒன்றல்ல.//
தமிழும் யூனிகோட்-ஆல் அங்கீகரிக்கப் பட்ட ஒரு மொழிதான். யூனிகோட் என்பது தோன்றியதே, அது அங்கீகரிக்கும் அனைத்து மொழிகளிலும் மென்பொருட்கள் சிக்கலின்றி செயலாற்ற வேண்டும் என்ற நோக்கத்தில்தான். தற்போது யூனிகோட் compliantஆக இருந்தும், தமிழ் compliantஆக இல்லை என்றால், அதில் தமிழ் சரிவர represent செய்யப்படவில்லை என்றுதான் பொருள். மொழியின் அடிப்படைகள் சற்றும் மதிக்கப்படாமல், தோன்றியவாறு குறியீடுகள் வழங்கப்பட்டிருக்கின்றன. இந்த misrepresentationஇன் விளைவுகள் போகப்போக நம்மை அதிகமாக பாதிக்கக்கூடும்.

//3. க் + ஐ என்று பிரிப்பது 8 bit காலத்திலிருந்து வருகிறது. இது தவறுதான்
என்று நினைக்கிறேன். unicode இல் அதிக பொந்துகள் பெறுவது இந்த பிரச்சினையை
தீர்க்கும்.//

'க் + ஐ' என்பதில் பிரச்சனையில்லை, சொல்லப்போனால், அதுதான் சரியான முறையும் கூட. தற்போது 'க + ஐ' என்று குறிக்கப்படுகிறது, அதனால்தான் பிரச்சனையே. மேலும், அதிக பொந்துகள் பயன்படுத்துவதிலுள்ள சிக்கல்களையும் அண்மையில் எழுதிய எனது இடுகையில் குறிப்பிட்டிருக்கிறேன்.

aathirai said...

virivaaga piragu ezudhugiren.

vow, irandu ezuthukalai semipadhai vida, oru uyirmei ezuthai semipadharku memory adhigam thevaipadadhu. maraga kuraivagathan selavagum.

Anonymous said...

Maybe you'll want to get a facebook icon to your site. I just bookmarked this article, however I must make it by hand. Simply my $.02 :)