Quantcast
Channel: Planet SMC
Viewing all 295 articles
Browse latest View live

Santhosh Thottingal: Libreoffice Malayalam Hyphenation

$
0
0

I had developed and released hyphenation extension for Malayalam in Openoffice years back. Libreoffice was born later. Eventhough libreoffice supported the openoffice extensions, the extension repository is freshly created for libreoffice. The old extensions were not present in the libreoffice repository.

Now, I have uploaded the Malayalam hyphenation extension in libreoffice extension repository too. I will explain the installation and configuration step by step in this blog post:

All Operating systems

  • Download an extension and save it anywhere on your computer.
  • In LibreOffice, select Tools -> Extension Manager from the menu bar.
  • In the Extension Manager dialog click Add.
  • A file browser window opens. Navigate to the folder where you saved the LibreOffice extension file(s) on your system. The extension’s files have the file extension ‘OXT’.
  • Find and select the extension you want to install and click Open.
  • If this extension is already installed, you’ll be prompted to press OK to confirm whether to overwrite the current version by the new one, or press Cancel to stop the installation.
  • After you are asked whether to install the extension only for your user or for all users. If you choose the Only for me option, the extension will be installed only for your user. If you choose For all users, you need system administrator rights. In this case the extension will be available for all users. In general, choose Only for me, that doesn’t require administration rights on the operating system.

Debian and Ubuntu

The above steps works for Debian and Ubuntu too. But there is a better way. Using your package manager install hyphen-ml package. This will install hyphenation not only for libreoffice, but for typesetting packages like LaTeX.

Using the hyphenation

  • To automatically hyphenate the current or selected paragraphs, choose Format – Paragraph, and then click the Text Flow tab.

    LIbreoffice Hyphenation
  • To manually Hyphenate Single Words, click in the word where you want to add the hyphen, and then press Ctrl+Hyphen(-).
  • To manually Hyphenate Text in a Selection Select the text that you want to hyphenate. Choose Tools – Language – Hyphenation.

For detailed help, read libreoffice hyphenation documentation

A hyphenated paragraph

Known Issues

Malayalam and several other languages does not use visible hypen(-) at the end of line when a word is broken. Currently there is no way to control this in libreoffice.

I had developed hyphenation patterns for 10 other Indian languages too. Yet to upload them to libreoffice repository. But they are readily available in Debian and Ubuntu. You can install them by choosing hyphen-* package.

 


Santhosh Thottingal: On Kerala IT Policy Draft 2017

$
0
0

The Kerala IT Policy Draft 2017(draft) was published in March 2017 for public feedback. It has many progressive elements in it and are crucial for the rapidly changing IT ecosystem in the context of  Government  IT Policy.

Continuing earlier Kerala gov. policy on Free and Open source software, this version also emphasis the usage and promotion of free and opensource software. The policy also mentions about the importance of Malayalam computing and local language content. These are all good, even though planning and implementation of specific items in these sections need wider discussions.

One important topic I wanted to comment in this post is about e-governance. There are detailed mentions about e-governance in the policy. There is a plan to have single government poral for participatory e-governance. About government service delivery, it says:

State is embarking on its journey to offer an “Omni-channel experience” of all its e-Governance services through web portal, mobile applications, Akshaya / CSCs and through Integrated Citizen call centres. The objective is to setup and operationalise an effective Single Window for services supported by the core infrastructure and systems.
It shall be ensured that all government applications are compliant to Deity guidelines and thereby interoperable.

In my experience with government services and their digital services, one important issue is lack of high level information system planning. I often see each department develop websites, service portal and mobile apps and release with lot of PR every time a government changes or even under same government. A state goverment has serveral departments and the amount of data it handles and kind of services it provides is huge. By nature, these departments share a lot of data mostly interdependent. Every digital service on top of this is not connected. A citizen need to register and login to multiple government websites. A central web portal is the quick solution that comes out in every IT polciy acknowledging the above issue. Even then we see lot of apps for government, lot of websites inauguarated now and then.

I think it is time to think about the information system of all these departments and see how we can architect them. Having scattered information systems is natural in the early developing stage of a government IT infrastructure. But at one stage, they should get a strucutre and start communicating each other avoiding the need to rebuild every year or 5 years.

Of course it is not trivial to have a clarity on such system. But I don’t see an effort in IT policy in this direction. I feel that each departments will continue running their IT systems independently and the connection between each department will be the responsibility of the citizen. For example, get the certificate with sign and seal from this department, go to the other department office, submit the application with the previous ceritificate, get the approval , go to other department, get the stuff done(And as people always say, have a nice chappel). Oh, have your copy of ID proof in every department and prove that it is you and nobody else paying your tax. This happens when each of these department is completely digital.

The wish for well connected IT infrastructure for goverments is nothing new. This wish always ends up in centralized citizen data repositories with unique citizen ids.  That is the traditional modeling of this problem. Now a days it is very clear that this kind of system attracts lot of interest from govenrment and non-goverment entities. Surveillance is becoming the primary goal of the systems, replacing the goal of better citizen service.

There are lot of things to learn from the deficiencies of existing e-governance system. This is not a time to go silient about this in IT policy. The vulnerability of this centralized IT systems with Aadhaar like primary key systems is widely discussed in media now a days. These systems are highly insecure with exclusion and mistrust of citizen. This will infiltrate to state IT systems soon, lack of political will will accelerate it.  There are lot of e-governance space in Kerala in developing stage. Can this be better modelled?

One of the biggest problems in e-governance is the security which demands the greatest protection to be government information from the third party attacker or opponents.  It is of no doubt that it can not be secured with another highly insecure authentication systems like Aadhaar as widely promoted. The need of a well modelled e-Authentication framework is required and that need to learn from mistakes.

 

Santhosh Thottingal: A formal grammar for Malayalam conjunct

$
0
0

In Malayalam a conjunct(കൂട്ടക്ഷരം) is formed by combining 2 or more consonants by Virama(ചന്ദ്രക്കല).  “ക്ക” is a conjunct with 2 consonants, formed by ക + ് + ക. സ്ത്ര is a conjuct with 3 consonants സ+ ് + ത +്+ ര. ന്ത്ര്യ  is a conjunct with 4 consonants – ന + ് + ത + ് + ര + ് + യ. Conjuncts with more than 4 consonant is rare. ഗ്ദ്ധ്ര്യ is formed by 5 consonants.

Can we define this formation in a formal grammar?

Let us try. For the simplicity, I am using Parser Expression Grammar formalism since we can quickly write a parser for that to test and evaluate.

Before that let us define the conjuct in plain English in a bit more concise and unambigous way.

Conjunct: A Consonant combined with another Conjunct or Consonant using Virama

We need to define Consonant and Virama also.

  • Virama:   ്.
  • Consonants– Any of the set [കഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശഷസഹളഴറ]

Writing this in PEG syntax


You can try this in a PEG evaluator and try various conjucts to see if they all getting parsed. Use https://pegjs.org/online, copy paste the above grammar try inputs like ന്ത്ര്യ.

Let us look at the definition again.

Conjunct = Consonant Virama (Conjunct / Consonant )

This is a tail recursion. Meaning, The Conjuct  get expanded towards the end of the expression. Can we rewrite this using a Left recursion? We can. see:

Conjunct = (Conjunct / Consonant ) Virama Consonant

This will have the same result of our previous expression. We can also rewrite our plain English definition as well accordingly:

Conjunct: A Conjunct or Consonant combined with another Consonant using Virama

There is a problem with this new definition since it is Left recursion, depending up on the parser implementation, it can cause infinite recursion. The PEGjs parser which we used above for testing and evaluation does not support Left recursion since it is a top down parser(recursive descent parser). You can try modify the above pegjs grammar in the online evaluation tool, you will see the parser warns about ininite recursion.

But if the parser is capable of avoiding this issue, nothing stops you to write the grammar using Left recursion. LALR parsers such as GNU Bison can very well support left recursion. But big issue here is GNU Flex/Bison used for writing such grammars does not support Unicode!. You can make it working by doing some low level byte manipulation. I did not try.

One more thing: I wrote ( Conjunct / Consonant ) instead of (Consonant / Conjunct ). The order was chosen intentionally since the matches are done left to right. Since a Conjunct anyway start with a Consonant, the parsing will proceed with that path. We avoid it by using the Conjunct, Consonant order.

Santhosh Thottingal: A formal grammar for Malayalam syllables

$
0
0

I wrote about formal grammar for Malayalam conjunct in last blog post. Continuing from there, let us discuss the syllable model.

A syllable is a unit of organization for a sequence of speech sounds. Each syllable can be considered as pronounciation units that constitutes a word pronounciation. For example, “മലയാളം” has മ, ല, യാ, ളം as 4 syllables. If you ask a native Malayalam speaker, “How many letters are in the word മലയാളം?” The answer would be 4 and it corresponds to syllable count. The ‘letter’ concept, known as ‘അക്ഷരം’ in Malayalam often refers to syllables.

Along with a verbal description of syllables in Malayalam we attempt to formalize a grammar using PEG – Parser Expression grammar. That grammar is then used for writing a parser to find the syllables in a given word. A web interface is also provided to try out the system.

Before starting with definition of syllable model, we need to define some terminology.

Definitions

  1. Vowel– Vowels of Malayalam -Any of the set: [അആഇഈഉഊഋഎഏഐഒഓഔഔഅം]
  2. VowelSign– Vowel signs. – Any of the set [ാിീുൃെേൊോൗൂൈ]
  3. Consonant– Consonants – Any of the set [കഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരലവശഷസഹളഴറ]
  4. Virama– The sign ്.
  5. Visarga The sign ഃ
  6. Anuswara– The vowel sign of അം.ie ം. This share some properties of Chillu.
  7. Chillu– Pure consonants, without any vowels. Chillus are any of ൻ, ർ, ൽ, ൾ, ൺ, ൿ, ൔ, ൕ, ൖ. The last 4 chillus are rarely used or archaic. But we can consider them for our modeling. Due to historic encoding reasons, Chillus can also appear as base Consonant+Virama+ZWJ form. That means, ൻ = ന + ് + ZWJ. Chillus never appear in the begininning of word, but is not relevant for a syllable analyser.
  8. ZWNJZero Width Non Joiner.\u200C
  9. ZWJZero with Joiner \u200D
  10. Signs A term used to address various signs that modify a Consonant. Any of VowelSign, Virama, Anuswara, Visarga.
  11. Conjunct:Refer the formal definition of this we discussed in previous blog post. We defined it as A Consonant combined with another Conjunct or Consonant using Virama. Example: സ+ ് + ത => സ്ത , സ്ത + ് + ര = സ്ത്ര. ദ്ധ + ് ര = ദ്ധ്ര, ദ്ധ്ര + ് + യ = ദ്ധ്ര്യ. But we need an advanced version. That definition did not support DotReph (ൎ) which combines with a consonant or conjunct to form Conjunct. To support DotReph as well, we will redefine Conjunct as HalfConsonant Conjunct / Consonant
  12. DotReph The sign (ൎ). It combines with other consonants as in this example: ൎ + യ -> ൎയ in ഭാൎയ
  13. HalfConsonant: A Consonant followed by Virama Example: പ്, ര്, മ് etc. Or a DotReph

Syllable model

A syllable in Malayalam can be any of the following.

  1. An independent Vowel. Vowels are often found at the begininning of the word. Example: അമ്മ. But for the specific case of Syllables, we can relax this rule of being in the start of word and generally state that a vowel is syllable. Note that vowel appearing as vowel sign is not what we are considering here. Vowel signs has its own properties.
  2. A Chillu letter is a syllable.
  3. A Consonant without any Signs is a syllable. For example, in the word തറ, both ത and റ are Syllables.
  4. A Consonant or Conjunct with Signs is a syllable. Here the Signs can be repeated more than once, but not freely. This syllable has the following characteristics:
    1. Signs can be Virama only if it is the last items of a given word. For example. അത് has അ, ത് as syllables, but അത്ഭുതം has അ, ത്ഭു, തം as syllables.
    2. Signs can occur 2 times in folllowing cases:(a) First Sign is ു and Second is Virama This combination is also called Samvruthokaram. Example: തു് in അതു്. (b) First Sign is a VowelSign and Second is Anuswara. Examples: താം, തീം, തോം, തും etc.
  5. A ZWNJ marks a syllable boundary. A ZWNJ inserted between two blocks of text inserts a ligature as well as syllable boundary. For example: തമിഴ്‌നാട്, the ZWNJ inserted after ഴ് and before നാ prevents possible ഴ്ന Conjunct and hence also makes a point that the pronounciation should break at that point. It is a bit wierd to say a ZWNJ forms a syllable since it is just a seperator. But while analysing a series of letters from begininning to end, it is technically okey to consider ZWNJ as a syllable block.

Parser Expression Grammar

You can try this in a PEG evaluator and try various conjucts to see if they all getting parsed. Use https://pegjs.org/online, copy paste the above grammar try inputs like ‘ശാസ്ത്രവിഷയങ്ങൾ’.

Characteristics of the Grammar

There are a few important characteristics of this grammar.

It does certain validations against the signs. For example, it does not allow a VowelSign, virama or anuswara after a visarga. If that happens, the parser will fail to parse a word. It permits a virama after a VowelSign, but that is only for Samvruthokaram(vowel sign = ു ).

Among the signs, you can see Virama, but it is permitted only at the end of the word. For example: അത്. If virama comes in between a word, it has the nature of consonant combining.

The order of Signs is also enforced. For example, you cannot have a virama and then VowelSignു even though the reverse order is permitted.

Above rules creates some strictness for the parser. At the same time, there are some relaxed rules too. There is no maximum limit on a possible conjuct.  A nonsense conjunct like ‘ക്ച്ട്ത്പ്ബ്ഭ്മ്ജ്ത്ക്’ will be accepted by parser. Malayalam has valid conjuncts upto 5 as far as I know(Example: ഗ്ദ്ധ്ര്യ ). Usually the longer conjuncts will have the ending consonants as യ, ര, ല, വ.

In informal Malayalam, vowel sign duplication is sometimes used to denote elongation. For example, വാടാാാ. Our parser won’t accept that.

Syllable boundaries

If you want to know syllable boundaries and don’t care about anything else, there is an easy way to find boundaries.

A syllable boundary is after:

  1. A vowel. Note that this not vowel sign. Example: അ|റ, ഇ|ര, ഉ|പ്പ്
  2. A vowel sign, if not followed by virama, anuswara or visarga. Example: ത്തി|ൽ, പു|ക,
  3. A consonant if followed by another consonant or chillu. Example: ത|റ, ഷ്ട|മി, ക|ൽ
  4. A chillu. Example: സ|ർ|പ്പം
  5. An Anuswara. Example: കു|ടും|ബം,
  6. A Visarga. Example: ദുഃ|ഖം
  7. A ZWNJ is syllable boundary.

Web interface

I prepared a web interface if you just want to try out the syllable analyser and dont want to play with PEG.

https://phon.smc.org.in/syllables/

Malayalam syllable analyser

Now that comes with a JS API too, just include the following file in your web application:

https://phon.smc.org.in/syllables/lib/malayalam-syllables.js

Then use the following method to split a word to syllables.

malayalamSyllableParser.parse(inputWord)

I prepared a codepen project to demonstrate this.

See the Pen Malayalam syllable analyser by Santhosh Thottingal (@santhoshtr) on CodePen.

Source code

https://github.com/santhoshtr/malayalam-syllable-analyser

Please report any issues or ideas to improve this model there. Thanks!

Santhosh Thottingal: യൂണിക്കോഡ് പത്താം പതിപ്പ്: മലയാളത്തിന് മൂന്നു പുതിയ കോഡ്പോയിന്റുകൾ കൂടി

$
0
0

യൂണിക്കോഡിന്റെ പത്താം പതിപ്പ്പുറത്തിറങ്ങി. മലയാളത്തിന്റെ കോഡ് ബ്ലോക്കിലേയ്ക്ക് പുതിയ മൂന്നു അക്ഷരങ്ങൾ കൂടി ഔദ്യോഗികമായി ചേർന്നിരിക്കുന്നു. അങ്ങനെ മലയാളത്തിന്റെ കോഡ് ബ്ലോക്കിൽ  117 അക്ഷരങ്ങൾ ആയി.

പുതിയ അക്ഷരങ്ങൾ ഇവയാണ്:

  1. D00 – Combining Anuswara Above
  2. 0D3B – Malayalam Sign Vertical Bar Virama
  3. 0D3C- Malayalam Sign Circular Viramaപ്രാചീനരേഖകളിൽ കണ്ടുവരുന്നവയാണ് ഈ ചിഹ്നങ്ങൾ. അത്തരം ഗ്രന്ഥങ്ങളുടെ ഡിജിറ്റൈസേഷനിലും, പ്രാചീനലിപിസംബന്ധമായ പഠനഗവേഷണങ്ങളിലുമൊക്കെ ഇവ ഉപയോഗിക്കപ്പെട്ടേക്കാം.

0D00 – Combining Anusvara Above

ആദ്യത്തേത് ‘മുകളിലുള്ള അനുസ്വാരമാണ്’.

മലയാളത്തിൽ നാമിന്നുപയോഗിക്കുന്ന അനുസ്വാരത്തിനു തുല്യമായ ഉപയോഗമാണ് പ്രാചീനമലയാളലിപിയിൽ ഈ ചിഹ്നത്തിനുള്ളത്. അതായത് നാമിന്നുപയോഗിക്കുന്ന അനുസ്വാരം മറ്റക്ഷരങ്ങളുടെ അതേ നിരപ്പിൽ തന്നെ കിടന്ന് അതിനിടതുവശത്തുള്ള അക്ഷരത്തോട് ‘മകാരം’ ചേർക്കുമ്പോളുള്ള ഉച്ചാരണം നൽകുന്നു. പുതിയതായി നിർവ്വചിച്ചിരിക്കുന്ന ‘മുകളിലുള്ള അനുസ്വാരം’ അതുനുചുവട്ടിലുള്ള അക്ഷരത്തോടു ‘മകാരം’ ചേരുമ്പോഴുള്ള ഉച്ചാരണം നൽകുന്നു.

പ്രാകൃതഭാഷയിലെ നാടകസംഭാഷണങ്ങൾ മലയാളലിപിയിലെഴുതിയിരുന്നു. നാനൂറോളം വർഷം പഴക്കമുള്ള കയ്യെഴുത്തുപ്രതികൾ ഇതിനെ സാധൂകരിക്കുന്ന തെളിവുകൾ നൽകുന്നുണ്ട്. യൂണിക്കോഡിലേയ്ക്ക് ഇതു ചേർക്കാനുള്ള ശ്രീരമണശർമ്മയുടെ നിർദ്ദേശത്തിൽഇവ ലഭ്യമാണ്. പക്ഷേ തെളിവിനായുപയോഗിച്ചിരിക്കുന്ന കയ്യെഴുത്തുപ്രതികളിൽ തന്നെ അക്ഷരത്തോടൊപ്പം നിരന്നു കിടക്കുന്ന ‘അനുസ്വാരസമാനമായ ചിഹ്നങ്ങളും’ കാണാം. പക്ഷേ അവയ്ക്കു മറ്റൊരർത്ഥമാണ് പ്രാകൃതഭാഷ മലയാളലിപിയിൽ എഴുതുമ്പോഴുള്ളത്. ഈ സന്ദർഭത്തിൽ അതിന്റെ വലതുവശത്തുള്ള അക്ഷരത്തെ ഇരട്ടിപ്പിക്കുകയാണു ചെയ്യുക. നാം സ്ഥിരമായി ഉപയോഗിക്കുന്ന അനുസ്വാരത്തിന്റെ ഈ പ്രാചീന ഉപയോഗത്തെപ്പറ്റി യൂണിക്കോഡ് ചാർട്ടിൽ സൂചിപ്പിക്കുന്നുമുണ്ട്.

അതായത് പ്രാകൃതഭാഷ എഴുതാനായി മലയാളലിപി ഉപയോഗിക്കുമ്പോൾ ‘അനുസ്വാരം’ അതിന്റെ പിന്നാലെ വരുന്ന വ്യഞ്ജനത്തെ ഇരട്ടിപ്പിക്കുന്ന ഉച്ചാരണം നൽകുന്നു. ‘പത്തി’ എന്ന ഉച്ചാരണത്തിനായി ‘പംതി’ എന്നാവും എഴുതുക. എന്നുവെച്ചാൽ ‘പ + ം + തി’ എന്ന യൂണിക്കോഡ് സീക്വൻസിന് സാന്ദർഭികമായി രണ്ടു വ്യത്യസ്ഥ അർത്ഥവും ഉച്ചാരണവും വരുന്നുവെന്നാണ് സാരം. ഈ ഒരു സമീപനം യൂണിക്കോഡിന്റെ രീതിശാസ്ത്രത്തിനു നിരക്കുന്നതാണോയെന്ന സംശയം ബാക്കിവെയ്ക്കുന്നു. പിന്നാലെ വരുന്ന അക്ഷരത്തെ ഇരട്ടിപ്പിയ്ക്കുന്ന, കാഴ്ചയിൽ അനുസ്വാരം പോലെ തന്നെ തോന്നിപ്പിയ്ക്കുന്ന ഈ ചിഹ്നത്തെ പ്രത്യേകം എൻകോഡ് ചെയ്യേണ്ടതാണെന്നാണ് ഈ പ്രൊപ്പോസലിലെ തന്നെ തെളിവുകൾ വെച്ച് എനിക്കു തോന്നുന്നത്.

0D3B – Malayalam Sign Vertical Bar Virama

പുതിയ യൂണിക്കോഡ് പതിപ്പിൽ അടുത്തതായി എൻകോഡ് ചെയ്യപ്പെട്ടത് ‘കുത്തനെയുള്ള വിരാമചിഹ്നമാണ്’. 0D3B ആണിതിന്റെ കോഡ് പോയിന്റ്.

ഇത് സാധാരണയായി നാമുപയോഗിക്കുന്ന വിരാമചിഹ്നത്തിൽ നിന്നും വ്യത്യസ്ഥമാണ്. വിരാമചിഹ്നം അഥവാ ചന്ദ്രക്കല (0D4D) സംവൃതോകാരത്തെക്കുറിക്കാനും വ്യഞ്ജങ്ങളിലെ സ്വരസാന്നിദ്ധ്യമില്ലാത്തെ ശുദ്ധരൂപത്തെക്കുറിക്കാനുമാണുപയോഗിക്കുന്നത്. സംവൃതോകാരത്തെക്കുറിക്കുവാനായി ഇതുപയോഗിച്ചുതുടങ്ങിയത് 1847ൽ  ഡോക്ടർ ഹെർമൻ ഗുണ്ടർട്ടാണ്. 1900ത്തോടുകൂടിയാണ് സ്വരസാന്നിദ്ധ്യം ഒഴിവാക്കാനായുള്ള ചിഹ്നമായിക്കൂടി ഇതിനെ ഉപയോഗിച്ചു തുടങ്ങിയത്.

ഇതിനൊക്കെ വളരെ മുമ്പുതന്നെ (1700കൾ മുതൽ) സംസ്കൃതത്തിൽ നിന്നും യൂറോപ്യൻ ഭാഷയിൽ നിന്നുമുള്ള ലിപിമാറ്റ എഴുത്തുകളിൽ സ്വരസാന്നിദ്ധ്യമില്ലാത്ത വ്യഞ്ജനത്തെ സൂചിപ്പിക്കുവാൻ ഉപയോഗിച്ചിരുന്ന ചിഹ്നമാണ് ‘കുത്തനെയുള്ള വിരാമചിഹ്നം’. ഇതിനെയാണ് ഇപ്പോൾ 0D3B എന്ന കോഡ് പോയിന്റോടെ എൻകോഡ് ചെയ്തിരിക്കുന്നത്. ചന്ദ്രക്കലയുടെ ഉപയോഗം സാർവത്രികമായപ്പോൾ ‘കുത്തനെയുള്ള വിരമചിഹ്നത്തിന്റെ’ ഉപയോഗം തീർത്തും ഇല്ലാതായി എന്നു തന്നെ പറയാം. കൂടുതൽ വിശദാംശങ്ങൾ ഷിജു അലക്സ്, വി.എസ്. സുനിൽ, സിബു ജോണി എന്നിവർ ചേർന്നു തയ്യാറാക്കിയ എൻകോഡിങ്ങ് പ്രൊപ്പോസലിൽകാണാം.

0D3C- Malayalam Sign Circular Virama

‘വട്ടത്തിലുള്ള വിരമചിഹ്നമാണ്’ 0D3C എന്ന കോഡ്പോയിന്റോടു കൂടി അടുത്തതായി എൻകോഡ് ചെയ്യപ്പെട്ടത്. ഇത് പ്രൊപ്പോസ് ചെയ്തിരിക്കുന്നതുംഷിജു അലക്സ്, വി.എസ്. സുനിൽ, സിബു ജോണി എന്നിവർ ചേർന്നു തന്നെയാണ്.

സ്വരസാന്നിദ്ധ്യമില്ലാത്ത വ്യഞ്ജനത്തെക്കുറിക്കുവാനായിക്കൂടി ചന്ദ്രക്കല ഉപയോഗിച്ചു തുടങ്ങുന്നത് 1900ങ്ങൾ മുതലാണെന്ന് ‘കുത്തനെയുള്ള വിരാമചിഹ്ന’ത്തിന്റെ പ്രൊപ്പോസലിൽ തന്നെ കണ്ടുവല്ലോ. അങ്ങനെയൊരു ഉപയോഗം ചന്ദ്രക്കലയ്ക്ക് ഉണ്ടാവുന്നതിനു മുമ്പുള്ള ( ഏകദേശം 1850-1900) കാലത്ത്  മലയാളത്തിൽ ‘വട്ടത്തിലുള്ള വിരാമചിഹ്നം’  ശുദ്ധവ്യഞ്ജനത്തെക്കുറിക്കാനായി ഉപയോഗിച്ചിരുന്നു.

കാഴ്ചയിൽ ‘മുകളിലുള്ള അനുസ്വാരം’ എന്ന ആദ്യം പറഞ്ഞ ചിഹ്നവുമായി ഇതിന് സാദൃശ്യം തോന്നാം. പക്ഷേ രണ്ടും തമ്മിൽ പ്രയോഗത്തിൽ വലിയ വ്യത്യാസമുണ്ട്. ‘മുകളിലുള്ള അനുസ്വാരം’ അതുചേരുന്ന വ്യഞ്ജനാക്ഷരത്തിന്റെ നേരെ മുകളിലായി കാണുമ്പോൾ  ‘വട്ടത്തിലുള്ള വിരമചിഹ്നം’ അതുചേരുന്ന വ്യഞ്ജനാക്ഷരത്തിന്റെ വലതുമുകളിലായിട്ടാവും ഉണ്ടാവുക.

പ്രായോഗിക ഉപയോഗം

യൂണിക്കോഡിൽ എൻകോഡ് ചെയ്യപ്പെട്ടതുകൊണ്ടു മാത്രം കാര്യമില്ല. പ്രാചീന ഗ്രന്ഥങ്ങളുടെ ഡിഗിറ്റൈസേഷൻ ആവശ്യങ്ങൾക്കായിട്ടൊക്കെ ഈ ചിഹ്നങ്ങൾ ഉപയോഗിക്കണമെങ്കിൽ ഫോണ്ടുകളിൽ അവ വരച്ചു കോഡ്പോയിന്റ് അതുമായി ചേർക്കണം. അപ്പോഴേ ഇതു ഉപയോക്താവിലേയ്ക്ക് എത്തുകയുള്ളൂ.

തേങ്ങയ്ക്കും കോഡ്പോയിന്റ്

മലയാളഭാഷയുമായി ബന്ധമില്ലെങ്കിലും മലയാളികളുടെ സ്വന്തം തേങ്ങ ഒരു ഭക്ഷ്യവിഭവമെന്ന നിലയിൽ ഒരു ഇമോജിയായി കോഡ്പോയിന്റ് സ്വന്തമാക്കിയിരിക്കുന്നു. U+1F965ആണ് തേങ്ങ ഇമോജിയുടെ കോഡ്പോയിന്റ്.

Coconut Emoji. Image from http://emojipedia.org

 

 

Santhosh Thottingal: ദൃൿസാക്ഷി

$
0
0

സിനിമയെപ്പറ്റിയല്ല, ദൃൿസാക്ഷിയെപ്പറ്റിയാണ്. ദൃൿസാക്ഷി എന്ന വാക്കെങ്ങനെ എഴുതും? അല്ലെങ്കിൽ എങ്ങനെയൊക്കെ എഴുതാം?

ക്+സ എന്നു ചേരുന്നിടത്താണു പ്രശ്നം, രണ്ടുവാക്കുകൾ ഇവിടെ കൂടിച്ചേരുന്നുണ്ടു്, പക്ഷേ കൂടിച്ചേരുന്നിടത്തു് അക്ഷരങ്ങൾ കൂടി കൂട്ടക്ഷരങ്ങളുണ്ടാക്കാൻ പാടില്ലാത്ത ഒരു സവിശേഷതയാണിവിടെയുള്ളതു്.  കയുടെ അടിയിൽ സ എന്ന രൂപം- ഗ്ലിഫ് ഇല്ലാത്ത ഒരു ഫോണ്ടിനെ സംബന്ധിച്ചു് അതു് താഴെക്കൊടുത്തിരിക്കുന്ന സിനിമാ പോസ്റ്ററിലേതുപോലെ നിരത്തിയെഴുതിയാൽ മതി.

പക്ഷേ അങ്ങനെ നിരത്തിയെഴുതിയാൽ മതിയെങ്കിൽ ദൃൿസാക്ഷി എന്ന ഈ 1973 ലെ സിനിമാ പോസ്റ്ററിൽ കയുടെ ചില്ല് ൿ എങ്ങനെ വന്നു?

ക എന്ന വ്യഞ്ജനം പിന്നാലെ വരുന്ന സ-യോടു ചേരാതെ വേറിട്ടുച്ചരിക്കേണ്ട വാക്കാണിതു്. തമിഴ്‌നാട്, കായ്‌കറി, ജോസ്‌തോമസ് തുടങ്ങിയപോലെയൊക്കെ. ഇംഗ്ലീഷിൽ നിന്നു വന്ന ചില വാക്കുകളാണെങ്കിൽ ഹാർഡ്‌വെയർ(ഹാർഡ്വെയർ അല്ല), സോഫ്റ്റ്‌വെയർ, പേയിങ്‌കൌണ്ടർ(പേയിങ്കൌണ്ടർ അല്ല) ഒക്കെ ഉദാഹരണം.

സ്വരം ചേരാത്ത ശുദ്ധരൂപമായ വ്യഞ്ജനമാണു ചില്ലക്ഷരം. ക യുടെ ചില്ല് അത്ര പ്രചാരത്തിലില്ല. ഇലൿട്രോണിക്സ് എന്ന വാക്കിലോ സിവിൿ, സിഡാൿ എന്നിടത്തൊക്കെ ചിലപ്പോൾ കാണാം. 1973 ൽ പക്ഷേ സിനിമാ പോസ്റ്ററിൽ വരാൻ മാത്രം അതിനു പ്രചാരമുണ്ടായിരുന്നെന്നു മനസ്സിലാക്കാം.

ഏതുശരി ഏതുതെറ്റ് എന്ന ചർച്ചയിലേക്ക് പോകാതെ ഈ വാക്കെങ്ങനെയൊക്കെ എഴുതാമെന്നുമാത്രം നമുക്കിവിടെ നോക്കാം.:

  1. ക് + സ: ഇതു് ക യുടെ അടിയിൽ സ അടുക്കിയ ഗ്ലിഫുള്ള ഫോണ്ടുപയോഗിച്ചു് വായിച്ചാൽ ഇങ്ങനെയിരിക്കും: ( This is the most undesired rendering among these examples).ഇതുതന്നെ, അങ്ങനെയൊരു ഗ്ലിഫില്ലാത്ത ഫോണ്ടുപയോഗിച്ച് വായിച്ചാൽ:
  2. ക്+ Zero Width Non Joiner + സ: ക്സ എന്നു നിർബന്ധമായും പിരിഞ്ഞിരിക്കണം എങ്കിൽ യൂണിക്കോഡ് ഉപയോഗിക്കാൻ പറഞ്ഞിരിക്കുന്ന കണ്ട്രോൾ ക്യാരക്ടർ ആണ് Zero width non joiner. മിക്ക ഇൻപുട്ട് മെത്തേഡുകളിലും ഇതു ടൈപ്പു ചെയ്യാൻ സാധിക്കും. ഹാൻഡ് റൈറ്റിങ്ങ് ഇൻപുട്ട് മെത്തേഡിൽ ഇതിനു സാധിക്കില്ല.
  3. ൿ + സ: കയുടെ ചില്ലുപയോഗിച്ച്. കയുടെ ചില്ലിന്റെ യൂണിക്കോഡ് പോയിന്റ് 0D7F ആണ്. ചില്ലുപയോഗിച്ചാൽ പിന്നീട് കയുടെയും സയുടെയും കൂടിച്ചേരൽ നടക്കില്ല.
  4. ക്+ZWJ+സ: കയുടെ അറ്റോമിക് അല്ലാത്ത ചില്ല് – മറ്റു ചില്ലുകൾ പോലെ ഇത് സ്റ്റാൻഡേഡ് അല്ല. എങ്കിലും കുറേ ഫോണ്ടുകളിൽ(Example- in fonts maintained by SMC)

ഒരു വാക്കിങ്ങനെ പലരീതിയിൽ എഴുതുന്നതു് ഭാഷാ ശാസ്ത്രപരമായി ഇത്തിരി കുഴഞ്ഞുമറിഞ്ഞ പ്രശ്നമാണ്. അതിനെപ്പറ്റി തത്കാലം ഇവിടെ വിശദീകരിക്കുന്നില്ല.

Santhosh Thottingal: Anniversary of Manjari font release

$
0
0

Today, July 23 marks one year anniversary of Manjari font release.

Out of all my projects, this is the project that gave me highest satisfaction. I see people using it in social media every day for memes, banners, notices. I have seen the font used for Government publishings, notices, reports. I have seen wedding invitations, book covers, Movie titles with Manjari font. I am so happy that Malayalam speakers loved it.

Kavya and me are working on new version of Manjari with more glyphs to support latest Unicode, and optimize some of the ligature rules. The latest version of the font is always available at https://smc.org.in/fonts

Santhosh Thottingal: Malayalam collation updates in Glibc

$
0
0

GNU C library 2.26 released and proud to have my name listed under contributors. Two small patches for localedata were merged:

  1. Bug 19919 – iso14651_t1_common: Correct the Malayalam sorting order of 0D36 and 0D37
  2. Bug 19922 – iso14651_t1_common: Define collation for Malayalam chillu characters

Santhosh Thottingal: It is your language and your pen

$
0
0

Google recently added voice typing support to more languages. Among the languages Malayalam is also included. The speech recognition is good quality and I see lot of positive comments in my social media stream. Many people started using it as primary input mechanism. This is a big step for Malayalam users without any doubt. Technical difficulties related to writing in Malayalam in mobile devices is getting reduced a lot. This will lead to more content generated and that is one of the stated goals of Google’s Next billion users project. The cloud api for speech recognition will help android developers to build new innovative apps around the speech recognition feature.

Google had added handwriting based input method for many of these languages in 2015. It was also well recieved by Malayalam user community and many chose it as primary input method mechanism for mobile devices.

Google’s machine learning based language tools, including the machine translation is well engineered projects and takes the language technology forward. For a language like Malayalam with relatively less language processing technology, this is a big boost. There is not even a competing product in the above mentioned areas.

All of these above technologies are closed source software, completely controlled by Google. Google’s opensource strategy is a complicated one. Google supports and uses opensource to gain maximum out of it – a pragmatic corporate exploitation. Machine learning based technologies are complex to be defined in the traditional open source definition. Here, for a ML based service provider, the training toolkit might be opensource, tensorflow for example. At the same time, the training data, models might be closed and secret. So, basically the system can be only reproduced by the owners of the data and those who has enough processing capacity. These emerging trends in language technology is also hard for individual opensource developers to catch up because of resourcing issues(data, processing capacity).

Is this model good for language?

Think about this. With no competition, the android operating system with Google’s technology platform is becoming default presence in mobile devices of Malayalam speakers with no doubt. The new language technologies are being quickly accepted as the one and only way to convey a persons expressions to digital world. No, it is not an exaggeration. The availability and quality of these tools is clearly winning its mass user crowd. There is no formal education for Malayalam typing. People discover and try anything that is available. For a new person to the digital world, handwriting was the easiest method to input Malayalam. Now it is speech recognition. And that will be the one and only one way these users know to enter Malayalam content. And these tools are fully owned and controlled by Google with no alternatives.

The open soure alternatives for input methods are still at the traditional typing keyboards. With its peers, they indeed won large user base and it even came to the users before Google entered. For example, the Indic keyboard has 1.4 million installations and actively improved by contributor for 23 languages. But I don’t see any opensource project that is in parallel with handwriting and speech recognition based input methods. As a developer working in Indic language technology based on free software, this is indeed a failure of opensource community.

I contacted a few academic researchers working on speech recognition and handwring recognition and asked what they think about these products by Google. For them, it is more difficult to convince the value of their research. ‘Well, we have products from Google that does this and thousands are using it. Why you want to work again on it?’ This question can’t be answered easily.

But to me, all of these products and its above mentioned nature strongly emphasis the need for free software alternatives. The mediation by closed sourced systems on one of the fundamental language computing task- inputting – with no alternatives puts the whole language and hence its users in heavy risk. Input method technologies, speech recognition, handwriting recognition.. all these are core to the language technology. These technolgies and science behind them should be owned by its speakers. People should be able to study, innovate on top of this technology and should be able to build mechanisms that are free from any corporate control to express their language.

I don’t want to imply or spread fear, uncertainity that Google will one day just start charging for these services or shutdown the tools. That is not my concern. All these language tools I mentioned are not to be built for facing that situation. It is to be developed as fundamental communication tools for the people for the digital age – build, own, learn, use, maintain by the people.

Santhosh Thottingal: ദൈവങ്ങളുടെ ദ്വീപിൽ ഒരു ഇടവേള

$
0
0

വിനോദയാത്രകൾ ജീവിതത്തിന്റെ അജണ്ടയിലങ്ങനെ കാര്യമായുണ്ടായിരുന്നവയല്ല. താത്പര്യമില്ലാത്തതുകൊണ്ടല്ല, ധൈര്യപ്പെടാത്തതുകൊണ്ട്. കാലം ചില കോലങ്ങളൊക്കെ കെട്ടി ചിലപ്പോഴൊക്കെ നമ്മളെ വല്ലാതെ മിടുക്കരാക്കിക്കളയും. അങ്ങനെയൊരു നിമിഷത്തിലായിരുന്നു പതിവുകൾ വിട്ടു ബാലിയാത്രയ്ക്കൊരു ടിക്കറ്റ് ഞങ്ങളെടുത്തത്. ഒരു മാസത്തെ കാത്തിരുപ്പായിരുന്നു പിന്നെ. കാണാനുള്ള കാഴ്ചകളുടെ ട്രെയിലർ ഷോട്ടുകൾ യാത്രാസഹായികളായ വെബ്സൈറ്റുകൾ ദിവസേന നിരത്തിക്കൊണ്ടിരുന്നു.

ബാലിയുടെ സ്ഥാനം

ഇന്തോനേഷ്യൻ ദ്വീപസമൂഹങ്ങൾ പൊതുവിൽ മുസ്ലീം ഭൂരിപക്ഷ പ്രദേശമാണെങ്കിലും അവയ്ക്കിടയിൽ ഹൈന്ദവസംസ്കാരം പേറുന്ന ഒരു ദ്വീപാണ് ബാലി. അയ്യായിരത്തിഎഴുന്നൂറോളം ചതുരശ്ര കിലോമീറ്റർ മാത്രമാണ് ഈ കൊച്ചു ദ്വീപിന്റെ പരപ്പ്. നമ്മുടെ കേരളം ഇതിന്റെ ഏഴിരട്ടിയുണ്ടെന്നോർക്കുക. ചുറ്റോടുചുറ്റുമുള്ള കടലോരങ്ങളുടെ ചാരുത മുതൽ അഗ്നിപർവ്വതങ്ങളുടെ ഗാംഭീര്യം വരെ ഈ ഭൂവിഭാഗം ആവാഹിച്ചിരിക്കുന്നു. ടൂറിസം ഇന്ന് ബാലിയുടെ വലിയ വ്യവസായവും പ്രധാന വരുമാന മാർഗ്ഗവുമാണ്. ബാലി ജനതയുടെ സാംസ്കാരികപാരമ്പര്യത്തിന്റെ ഭാഗമായ നൃത്തസംഗീതാദികലകളും, കരകൗശലവിദ്യകളും, സ്വർണ്ണ-വെള്ളി ആഭരണ നിർമ്മാണവും മുതൽ നാടുമുഴുവൻ പരന്നുകിടക്കുന്ന ക്ഷേത്രസമുച്ചയങ്ങളും, നെൽപ്പാടങ്ങളും, കാപ്പിത്തോട്ടങ്ങളും ഒക്കെ വിനോദസഞ്ചാരികൾക്ക് കൗതുകക്കാഴ്ചയാകുന്നു. സാഹസികർക്കായി അഗ്നിപർവ്വതപരിസരങ്ങളിലെ ട്രെക്കിങ്ങും, സ്കൂബാഡൈവിങ്ങ് ഉൾപ്പെടെയുള്ള സമുദ്രജലകേളികളും ഇവിടെ ഉണ്ട്. അത്രസാഹസികമല്ലാത്ത ഒരു മനസ്സും കൊണ്ട് അഞ്ചുദിവസത്തെ ഒഴിവുദിനങ്ങളിൽ ഇതിലെന്തൊക്കെ അനുഭവങ്ങൾ സ്വന്തമാക്കാനാകുമെന്ന് ഫ്ലൈറ്റ് കയറുമ്പോൾ ഒരു രൂപം മനസ്സിലുണ്ടായിരുന്നില്ല എന്നതാണ് സത്യം.

വിസ ഓൺ അറൈവൽ

ടൂറിസം മുഖ്യവ്യവസായം ആയതുകൊണ്ടു തന്നെ ഇന്ത്യ ഉൾപ്പെടെ ഒട്ടുമിക്ക രാജ്യക്കാർക്കും ഇന്തോനേഷ്യയിലേയ്ക്ക് മുൻകൂർ വിസ സ്റ്റാമ്പിങ്ങ് ആവശ്യമില്ല. ബാലിയുടെ തലസ്ഥാനനഗരമായ ദെൻപസർ വിമാനത്താവളത്തിൽ എത്തിയതിനുശേഷം വിസ സ്റ്റാമ്പിങ്ങിനായുള്ള നിര സാമാന്യം നീണ്ടതു തന്നെയാണ്. ഇന്ത്യക്കാർക്ക് അതിനു പ്രത്യേക ഫീസൊന്നും ഇല്ലതാനും. സ്റ്റമ്പിങ്ങും കസ്റ്റംസ് ക്ലിയറൻസും കഴിഞ്ഞ് പുറത്തെത്താൻ ഒരുമണിക്കൂറോളമെടുത്തു. എയർഏഷ്യ വിമാനത്തിൽ കോലാലംപുർ വഴിയുള്ള കണക്ഷൻ ആയിരുന്നു. പക്ഷേ മലേഷ്യൻ ട്രാൻസിറ്റ് വിസയും ആവശ്യമായി വന്നില്ല.

ഇന്ത്യൻ രൂപയും ഇന്തോനേഷ്യൻ രൂപയും

കൊച്ചിയിൽ നിന്നും രാവിലെ എട്ടരയ്ക്ക് തുടങ്ങുന്ന യാത്ര മലേഷ്യയിലെ ട്രാൻസിറ്റും കഴിഞ്ഞ് ബാലിയിൽ അവസാനിയ്ക്കുമ്പോൾ സമയം രാത്രി ഒൻപതുമണിയാണ്. ഈ കൊച്ചുദ്വീപത്ര ‘ഡിജിറ്റൽ’ ആയിട്ടില്ല എന്നു വായിച്ചറിഞ്ഞിരുന്നു. അതിനാൽ കോലാലംപുർ വെച്ചുതന്നെ കറൻസി മാറ്റണമെന്നുവിചാരിച്ചിരുന്നെങ്കിലും ട്രാൻസിറ്റ് വഴികളിലൊന്നും മണിചേഞ്ചേഴ്സിനെ കാണാത്തതുകൊണ്ട് ആ പരിപാടി നടന്നില്ല.

ബാലിയിലെ വൈകിയ ലാൻഡിങ്ങിനും തുടർപ്പരിപാടികൾക്കും ശേഷം ഇന്ത്യൻ രൂപ മാറ്റാനായി അന്വേഷണം തുടങ്ങിയപ്പോഴാണ് നമ്മുടെ കയ്യിലുള്ള ഇന്ത്യൻ നോട്ട് സ്വീകരിക്കുന്ന സ്ഥാപനങ്ങളൊന്നും അവിടെ ഇല്ല എന്ന് ഞെട്ടലോടെ തിരിച്ചറിഞ്ഞത്. ഒരു രാത്രിപ്രസംഗത്തിലൂടെ അസാധുവാകാനിടയുള്ള കടലാസുകഷണങ്ങളെ എന്തുവിശ്വസിച്ചുവാങ്ങിവെക്കുമെന്ന ചിന്തകൊണ്ടാണോ ഇന്ത്യൻ രൂപ സ്വീകരിക്കാത്തതെന്നൊക്കെ സംശയിച്ചുകൊണ്ട് മുന്നോട്ടു നടന്നു. ഒടുവിൽ വിമാനത്താവളത്തിൽ ATMൽ കയറി പണമെടുക്കാൻ തന്നെ തീരുമാനിച്ചു. പിൻവലിക്കാനുള്ള തുക തെരഞ്ഞെടുക്കുമ്പോൾ നാണയവിനിമയനിരക്ക് അറിയില്ലയെങ്കിൽ ഒന്നുകൂടി ഞെട്ടേണ്ടി വന്നെനെ. ഒരുലക്ഷം മുതൽ പത്തുലക്ഷം രൂപവരെയുള്ള പല ഓപ്ഷനാണ് ATM മെഷീൻ നമുക്കു തരിക. ഒരു ഇന്ത്യൻ രൂപ ഏകദേശം ഇരുന്നൂറ് ഇന്തോനേഷ്യൻ രൂപയുടെ മൂല്യത്തിനൊപ്പം വരും. അതായത് അവിടെ പത്തുലക്ഷം പിൻവലിക്കുമ്പോൾ അയ്യായിരം ഇന്ത്യൻ രൂപയാണ് അക്കൗണ്ടിൽ നിന്നും കുറവുചെയ്യപ്പെടുക.

ഇന്തോനേഷ്യൻ കറൻസി

വിമാനത്താവളത്തിനു പുറത്തിറങ്ങിയപ്പോളും വീണ്ടും മണിചേഞ്ചേഴ്സിനെ പരതിക്കൊണ്ടിരുന്നു. ഇന്ത്യൻറുപ്പി എന്ന ബോർഡ് കണ്ട് ചെന്നു പണമെണ്ണിക്കൊടുത്തുകഴിഞ്ഞാണ് വിനിമയനിരക്ക് വെറും 135 ഇന്തോനേഷ്യൻ രൂപമാത്രമാണെന്ന് അറിയുന്നത്. ഇത്രയും നഷ്ടത്തിൽ കൈമാറണ്ട എന്നു തീരുമാനിച്ച് പണം തിരികെ വാങ്ങി ആ കച്ചവടം അങ്ങൊഴിവാക്കി. അതിനിടെ വേണമെങ്കിൽ 150 വരെ കൂട്ടിത്തരാമെന്ന വാഗ്ദാനവുമുണ്ടായി. തെരുവുകച്ചവടത്തിൽ വിലപേശേണ്ടിവരുമെന്ന് വായിച്ചറിഞ്ഞിരുന്നെങ്കിലും നാണയവിനിമയത്തിൽ തന്നെ അതുണ്ടായതോടെ വല്ലാതെ തട്ടിപ്പുമണത്തതുകൊണ്ട് കൂടുതൽ അവിടെ നിന്നില്ല.

പിന്നീടുള്ള ദിവസങ്ങളിലൊക്കെ പല ടൂറിസ്റ്റ് സ്പോട്ടുകളിലും മണി ചേഞ്ചിങ്ങ് സ്ഥാപനങ്ങൾ കണ്ടെങ്കിലും മിക്കയിടത്തും ഇന്ത്യൻ രൂപ സ്വീകരിക്കുന്നുണ്ടായിരുന്നില്ല. ഇനി സ്വീകരിക്കുന്ന അപൂർവ്വം സ്ഥാപനങ്ങളിലൊക്കെ 150 ഇന്തോനേഷ്യൻ രൂപയ്ക്ക് മുകളിൽ മൂല്യവും കിട്ടില്ല. ATMകളാണിക്കാര്യത്തിൽ വിശ്വസ്തസ്ഥാപങ്ങൾ. 188 ഇന്തോനേഷ്യൻ രൂപവരെയൊക്കെ വിനിമയമൂല്യം അവിടെ ലഭിയ്ക്കും. അതുകൊണ്ട് യാത്രയ്കായി കരുതിയ ഇന്ത്യൻ കറൻസി നോട്ടുകൾ അതുപോലെ തിരിച്ചുകൊണ്ടുവന്നു.

ഹൃദയംകൊണ്ട് സ്വീകരിച്ചവർ

ബന്ധുക്കളോ സുഹൃത്തുക്കളോ ഒന്നുമില്ലാത്ത ഒരു നാട്ടിൽ യാത്രാക്ഷീണത്തോടെ ചെന്നെത്തുമ്പോൾ നമ്മളെ സ്വാഗതം ചെയ്യുന്നവരാരായാലും അവരോടു ഒരു പ്രത്യേക മമതയുണ്ടാകും. എയർപോർട്ടിൽ നിന്നും ഹോട്ടലിലേയ്ക്കുള്ള ടാക്സി മുൻകൂട്ടി ബുക്ക് ചെയ്തിട്ടാണ് യാത്രതുടങ്ങിയത്. ബാലിയിലെ വൈകിയ ലാൻഡിങ്ങിനും ചെക്കൗട്ട് ചടങ്ങുകൾക്കും ശേഷം പുറത്തെത്തിയപ്പോൾ പ്രതീക്ഷിച്ചതിലും ഒന്നര മണിക്കൂറിലേറെ വൈകിയിരുന്നു.

ദെൻപസർ എയർപോർട്ട്

പുറത്തേക്കുള്ള കവാടത്തിൽ അതിഥികളുടെ പേരെഴുതിയ ബോർഡുകളുമായി തിങ്ങിനിറഞ്ഞ് കാത്തുനിൽക്കുന്ന ടാക്സിഡ്രൈവർമാർക്കിടയിൽ സ്വന്തം പേരു പരതി പലയാവർത്തി നടന്നു ഞങ്ങൾ നിരാശപ്പെട്ടു. ഇത്ര വൈകിയതുകൊണ്ട് ഡ്രൈവർ പോയിട്ടുണ്ടാകും എന്നു തന്നെ ഞങ്ങളുറപ്പിച്ചു. അപ്പോഴാണ് ടാക്സി ഓഫറുമായി ഒരു സ്ത്രീ ഞങ്ങളെ സമീപിച്ചത്. ഓൺലൈൻ ബുക്ക്ചെയ്ത ടാക്സിയുടെ ഇരട്ടിയോളം തുകപറഞ്ഞെങ്കിലും എയർപോർട്ടിൽ ഇനിയും മറ്റൊന്നന്വേഷിക്കാനുള്ള സമയമില്ലാത്തതുകൊണ്ട് അവർ പറഞ്ഞതുകയും കൊടുത്തു പുറത്തേയ്ക്കു കടന്നപ്പോഴാണ് മറ്റൊരു നിര ടാക്സി ഡ്രൈവർമാരെ കണ്ടത്. അവർക്കിടയിൽ കൂടി ഒന്നു നോക്കിവരാമെന്നുറപ്പിച്ച് ചെന്ന ഞാൻ കണ്ടത് സഹയാത്രികന്റെ പേരെഴുതിയ ബോർഡുമായി ക്ഷീണിച്ച് നിലത്ത് കുത്തിയിരിക്കുന്ന ഡ്രൈവറെയാണ്. അങ്ങനെ ഞങ്ങൾ രണ്ടു അതിഥികളും രണ്ടു ടാക്സിക്കാരും മുഖാമുഖം നോക്കി ഏതാനും നിമിഷം നിന്നു. കാലുകുത്തിയതേ അബദ്ധത്തിലേയ്ക്കാണല്ലോ എന്ന ചിന്തയാണോ, വിശപ്പാണോ, ക്ഷീണമാണോ അതിലേറെ ഇപ്പോൾ എന്തു ചെയ്യണമെന്ന ആവലാതിയാണൊ അലട്ടിയതെന്നു പറയാൻ വയ്യ.

ഞങ്ങളെ അത്ഭുതപ്പെടുത്തിക്കൊണ്ട് എയർപോർട്ടിൽ നിന്നും വിളിച്ച ടാക്സിക്കാർ പണം മുഴുവൻ തിരികെ തരാമെന്നു സമ്മതിച്ചു. വളരെ വിഷമിപ്പിക്കുമായിരുന്ന ആ സന്ദർഭം അങ്ങനെ മംഗളമായി പര്യവസാനിച്ചു. ഇത്ര വൈകിയിട്ടും കാത്തുനിന്ന ദിയാസിന് നന്ദി പറഞ്ഞുകൊണ്ട് ഞങ്ങൾ അയാൾക്കൊപ്പം ഹോട്ടലിലേയ്ക്കു നീങ്ങി. അതിഥികളെ സ്വീകരിച്ചിട്ടേ ഞങ്ങൾ ഡ്രൈവർമാർ മടങ്ങാറുള്ളൂവെന്നപ്പോൾ അയാൾ പറഞ്ഞു. ഒരുപക്ഷേ ആ രണ്ടാമത്തെ നിര ടാക്സിക്കാർക്കിടയിൽ നോക്കാൻ എനിയ്ക്കു തോന്നിയില്ലായിരുന്നുവെങ്കിൽ അയാളെത്രമാത്രം അങ്കലാപ്പിലായേനെ എന്നുകൂടി ആലോചിച്ചപ്പോൾ ആ തീരുമാനത്തിനു ഞാൻ എന്നെ വീണ്ടും അഭിനന്ദിച്ചുകൊണ്ടിരുന്നു.

ഹോട്ടലിലെത്തിയപ്പോൾ രാത്രി പതിനൊന്നുമണിയും കഴിഞ്ഞിരുന്നു. ഇനി പുറത്തുപോയി കഴിക്കുവാനുള്ള മൂഡൊന്നും ഞങ്ങൾക്കുണ്ടായിരുന്നില്ല.. അവിടെയുള്ള പാതിരാത്രിവരെയുള്ള റെസ്റ്റോറന്റ് പ്രവർത്തനം അവസാനിപ്പിക്കാനൊരുങ്ങുകയായിരുന്നു. അന്നത്തെ അവസാനത്തെ ഓർഡർ ഞങ്ങൾക്കായി ഒരുക്കി അവരും ആദ്യത്തെ ഇന്തോനേഷ്യൻ രുചി നാവിലേറ്റി ഞങ്ങളും ആ നീണ്ട ദിവസം പൂർത്തിയാക്കി.

പൊതുഗതാഗത സംവിധാനങ്ങൾ തിരെയില്ലാത്ത നാടാണ് ഇത്. ഇരുചക്രവാഹനങ്ങളാണ് തദ്ദേശീയരുടെ പ്രധാനവാഹനം. ഇന്തോനേഷ്യയിൽ വാലിഡായ ലൈസൻസുണ്ടെങ്കിൽ ടൂറിസ്റ്റുകൾക്ക് വാടകയ്ക്കെടുത്ത് സഞ്ചരിക്കുവാൻ ബൈക്കുകൾ ഒക്കെ ലഭ്യമാണ്. പക്ഷേകൂടുതൽ പേരും ആശ്രയിക്കുന്നത് പ്രൈവറ്റ് ഡ്രൈവർമാരെയാണ്. അവർഒരേ സമയം ഡ്രൈവറും ഗൈഡും ചിലപ്പോൾ ഫോട്ടോഗ്രാഫറും ഒക്കെയായി കൂടെയുണ്ടാകും. Uber, Blue Taksi തുടങ്ങിയ ഓൺലൈൻ ടാക്സി സർവീസുകളും ഉണ്ട്.

ഞങ്ങൾ ആദ്യയാത്രയ്ക്കായി Uber Taxi സർവീസാണുപയോഗിച്ചത്. പക്ഷേ യൂബർ ആപ്പിൽ കണ്ട വാഹനമായിരുന്നില്ല ഞങ്ങളെ കൂട്ടാൻ ഹോട്ടലിലെത്തിയത്. സംശയിക്കേണ്ട, വണ്ടി കേടായതുകൊണ്ട് താൻ മറ്റൊരു വാഹനമുപയോഗിച്ചതാണെന്ന് ഡ്രൈവർ പറഞ്ഞു. ബാലിയുടെ തെക്കൻ മുനമ്പിലൊന്നായ ഉലുവാട്ടു ക്ഷേത്രവും അവിടുത്തെ കെചക് നൃത്തവുമായിരുന്നു അന്നത്തെ പ്ലാൻ. തിരിച്ചുള്ള ട്രിപ്പിന് താൻ കാത്തുനിൽക്കാമെന്നയാൾ പറഞ്ഞു. ഇതൊന്നും നമ്മുടെ നാട്ടിൽ പതിവില്ലാത്തതുകൊണ്ട് ആകെ കൺഫ്യൂഷനായി. ഇംഗ്ലീഷ് അത്ര വശമില്ലെങ്കിലും അയാൾ ഞങ്ങളോട് സംസാരിക്കുവാൻ ശ്രമിച്ചുകൊണ്ടേയിരുന്നു.

ഉലുവാട്ടൂ ക്ഷേത്രം

പുട്ടു എന്നായിരുന്നു അദ്ദേഹത്തിന്റെ പേര്. I am the number one in Bali എന്നൊക്കെ പറഞ്ഞത്, ബാലിനീസ് കുടുംബത്തിലെ മുതിർന്ന കുട്ടിയ്ക്കുള്ള പേരാണ് തന്റേതെന്നാണെന്നൊക്കെ മനസ്സിലാക്കാൻ ഞങ്ങൾക്കത്ര ബുദ്ധിമുട്ടേണ്ടി വന്നില്ല. അതിനിടയിൽ Uber is very dangerous in Bali എന്നൊക്കെ പറഞ്ഞപ്പോൾ ഒന്നു പേടിച്ചു. പിന്നെ വഴിയിലെ ചില ഫ്ലക്സ് ബോർഡുകളും കൂടി കണ്ടപ്പോഴാണ് കാര്യം മുഴുവനും മനസ്സിലായത്. ലോക്കൽ ടാക്സികളും ഓൻലൈൻ ടാക്സികളും തമ്മിൽ നമ്മുടെ കൊച്ചിയിലൊക്കെ ഉണ്ടായതിനു സമാനമായ ക്ലാഷുകൾ അവിടെയും ഉണ്ട്. ടൗണുകളിലെ ഹോട്ടലിൽ നിന്നുള്ള പിക്കപ്പ് അനുവദിക്കുമെങ്കിലും വിദൂരസ്ഥമായ ടൂറിസ്റ്റുസ്പോട്ടുകളിൽ നിന്നുള്ള പിക്കപ്പിന് ഓൺലൈൻടാക്സികളെ അനുവദിക്കില്ല എന്നതായിരുന്നു കണ്ട ഫ്ലക്സ്. പുട്ടു ഞങ്ങളുടെ പേഴ്സണൽ ഡ്രൈവറായി അവിടെ കാത്തുനിന്നതുകൊണ്ടു മാത്രമാണ് തിരികെ ഹോട്ടലിലേയ്ക്കുള്ള യാത്ര സുഖമായി നടന്നത്. ഇനി യാത്രയുണ്ടെങ്കിൽ വിളിയ്ക്കുവാൻ നമ്പർ ഒക്കെ തന്നാണ് പുട്ടു മടങ്ങിയത്.

ഊബർ ടാക്സിക്കെതിരെയുള്ള ഫ്ലക്സ് ബോർഡ്

സമുദ്രവിഭവങ്ങൾക്ക് പേരുകേട്ടതാണ് ജിംബാരൻ ബീച്ച്. കടൽത്തീരത്ത് നൂറുകണക്കിന് റെസ്റ്റൊറന്റുകളാണിവിടെ ഉള്ളത്. സൂര്യാസ്തമയത്തിനു ശേഷം സജീവമാകുന്നവർ. അതിഥികൾക്കായി പാട്ടും നൃത്തവുമൊക്കെയുണ്ടവിടെ. ഞങ്ങളുടെ ഇന്ത്യൻ മുഖം കണ്ട് അടുത്തു വന്ന ഗായകസംഘം സംഗീതോപകരണങ്ങളൊക്കെ ചുറ്റും നിരത്തി ‘തൂ മുസ്കുരായാ’ പാടുമ്പോൾ എങ്ങനെ ഹൃദയം നിറഞ്ഞ് പുഞ്ചിരിക്കാതിരിക്കും?

സീഫുഡ് റെസ്റ്റോറന്റിലെ ഗായകസംഘം

താമസിക്കുന്ന ഹോട്ടൽ താരതമ്യേന തിരക്കേറിയ കുട്ട എന്ന നഗരപ്രദേശത്തായിരുന്നു. പിറ്റേന്നത്തെ യാത്ര ബാലിയുടെ ഗ്രാമപ്രദേശമായ ഉബുദിലേയ്ക്കാണ്. ടൂറിസ്റ്റ് ട്രിപ്പുകൾ നടത്തുന്ന ഒരു കമ്പനിയുമായി ബന്ധപ്പെട്ട് ഹോട്ടൽ തന്നെ ഒരു പ്രൈവറ്റ് ഡ്രൈവറെ ഏർപ്പെടുത്തി. ഞങ്ങളുടെ ഡ്രൈവർ വയാൻ മറ്റൊരു ഒന്നാം നമ്പർ പേരുകാരനായിരുന്നു. നാലാമത്തെ കുട്ടിയ്ക്ക് വരെ ഇങ്ങനെ സ്ഥിരം പേരുകളുണ്ട്. അഞ്ചാമതൊരു കുട്ടിയുണ്ടായാൽ വീണ്ടും വയാൻ അല്ലെങ്കിൽ പുട്ടു എന്ന പേരിടും. ഇതൊക്കെ ആൺപേരുകളാണ്. ജാതിസമ്പ്രദായമൊക്കെ അവിടെയും ഉണ്ട്. ശൂദ്രർക്കിടയിലാണ് ഇപ്പറഞ്ഞ പേരുകളൊക്കെ എന്നാണ് വയാൻ പറഞ്ഞത്. വഴിയിലുടനീളം പല കടകൾക്കും വയാൻ എന്ന പേരുകാണുന്നുണ്ടെന്ന കാര്യം ഞാൻ സൂചിപ്പിച്ചപ്പോഴാണ് ഇതൊക്കെ പറഞ്ഞത്.

നമ്മുടെ താത്പര്യമനുസരിച്ച് വിശേഷങ്ങൾ പറയാൻ വയാന് നല്ല ഉത്സാഹമായിരുന്നു. ധാരാളം ചിത്രങ്ങൾ എടുത്തു തരികയും ചെയ്തു. ടൂർ കമ്പനിയുടെ ഉബുദ് പാക്കേജിൽ സ്വർണ്ണാഭരണനിർമ്മാണം ഒക്കെ ഉണ്ടായിരുന്നുവെങ്കിലും അതിൽ അത്ര താത്പര്യമില്ല എന്നു പറഞ്ഞപ്പോൾ പുതിയ റൂട്ട് പ്ലാൻ ചെയ്യാനൊക്കെ വയാൻ സഹായിച്ചു. മടക്കയാത്രയിൽ കടുത്ത ട്രാഫിക് ബ്ലോക്കുകൊണ്ട് അല്പം ബോറടിച്ചു. പൊതുഗതാഗതം തീരെയില്ലാത്തതുകൊണ്ട് ഇതു പ്രതീക്ഷിച്ചേ പറ്റൂ. സ്കൂൾകുട്ടികളുടെ യാത്ര പിൻവശം തുറന്ന ഗുഡ്സ് കാരിയറിനു സമാനമായ വാഹനങ്ങളിലാണ്.

രണ്ടുദിവസത്തിനപ്പുറമുള്ള ചെറിയ യാത്രയ്ക്ക് ഞങ്ങൾ പുട്ടുവിനെ വീണ്ടും കൂടെ കൂട്ടി. ടയർ പഞ്ചറായി എത്താമെന്നേറ്റ സമയത്തിന് വരാൻ പറ്റാതെ കുട്ടു വിഷമിച്ചു. ഞങ്ങൾ കാത്തിരിക്കാമെന്നു പറഞ്ഞു. മുക്കാൽ മണിക്കൂർ വൈകിത്തുടങ്ങിയ യാത്രയാണെങ്കിലും തനാലോട്ടിലെ മറക്കാനാവാത്ത ഒരു സൂര്യാസ്തമയക്കാഴ്ചയിൽ ആ ദിവസവും മനോഹരമായി.

കുട്ടുവിനും വയാനും ദിയാസിനുമൊപ്പം ഒരു പടം പോലും എടുത്തില്ലല്ലോയെന്ന സങ്കടം ഇപ്പോൾ ഇതെഴുതുമ്പോൾ ബാക്കി നിൽക്കുന്നു.

ഭാഷ : എഴുത്ത്, ലിപി, വർത്തമാനം

ജനസാമാന്യത്തിന്റെ ഭാഷ ബാലിനീസും, ഇന്തോനേഷ്യനുമാണ്. പക്ഷേ ടൂറിസം മിക്കവരേയും ഇംഗ്ലീഷുപറയാൻ പഠിപ്പിച്ചിരിക്കുന്നു. നമുക്കിടപഴകേണ്ടി വരുന്ന കച്ചവടക്കാരും, റെറ്റോറന്റ് ജീവനക്കാരും, ഡ്രൈവർമാരുമെല്ലാം അത്യാവശ്യം ഇംഗ്ലീഷ് സംസാരിക്കും. അതുകൊണ്ട് ഭാഷ ഒരു ബുദ്ധിമുട്ടായതേയില്ല.

ആംഗലേയസ്വാധീനം നമുക്ക് വൊക്കാബുലറിയിൽ ആണെങ്കിൽ അവർക്കത് ലിപിയിലാണ്. ലാറ്റിൻ ലിപിയിലാണ് ഭൂരിപക്ഷം എഴുത്തുകളും. അതായത് നമ്മുടെ മംഗ്ലീഷ് ശൈലിയിൽ. ബാലിനീസ് വാക്കുകൾ ഇംഗ്ലീഷ് അക്ഷരങ്ങളിൽ. അതുകൊണ്ട് അർത്ഥം മനസ്സിലായില്ലെങ്കിലും മുഴുവനും വായിക്കാം. മരുന്നുകടകൾ ‘അപ്പോത്തെക്കു’കളാണ്. അപ്പൂപ്പന്റെ ഭാഷയിൽ ‘അപ്പോത്തിക്കിരി’ ഡോക്ടറായിരുന്നുവല്ലോയെന്ന് ഓർത്തു. ഡോക്ടർ ഗിഗി എന്ന പേര് പലയാവർത്തി കണ്ടു. വയാനും പുട്ടുവും പോലെ ഈ പേര് ഇത്ര പോപ്പുലർ ആണോയെന്നും അവരൊക്കെ കൃത്യമായി ഡോക്ടറായതെങ്ങനെയെന്നുമൊക്കെ വിചാരിച്ചുപോയി പെട്ടെന്ന്. പിന്നീട് ഗൂഗിളാണ് സഹായിച്ചത്, ഇന്തോനേഷ്യൻ ഭാഷയിൽ ‘ഗിഗി’ പല്ലാണത്രെ. ഞാൻ കണ്ടതൊക്കെ ദന്താശുപത്രി ബോർഡുകളാണ്.

ബാലിനീസ് അക്ഷരങ്ങൾ

കടലിലെ ഓളം പോലെ തുള്ളിത്തുളുമ്പുന്ന രൂപമാണ് ബാലിനീസ് ലിപിയ്ക്ക്. പക്ഷേ ആ ലിപി അപൂർവ്വമായേ കാണാൻ കിട്ടൂ. ക്ഷേത്രത്തിലെ കൊത്തിവെച്ച കല്ലുകളിൽ, സ്ഥലപ്പേരെഴുതിയ ചില ബോർഡുകളിൽ ഒക്കെ കാണുകയുണ്ടായി. ബ്രാഹ്മിലിപിയിൽ നിന്നും ഉരുത്തിരിഞ്ഞു വന്നതുകൊണ്ട് ബാലിനീസ് അക്ഷരങ്ങൾ ഒന്നു സൂക്ഷിച്ചുനോക്കിയാൽ നമ്മുടെ ലിപിയുമായി താരതമ്യപ്പെടുത്തി വായിക്കാൻ പറ്റുമെന്നൊക്കെ സന്തോഷിന്റെ തിയറി കേട്ടുവെന്നല്ലാതെ എനിക്കതിനു പറ്റിയില്ല. ഒരു ബോർഡൊക്കെ വായിക്കാൻ ശ്രമിച്ച് സന്തോഷ് വയാനെ ഞെട്ടിക്കുകയും ചെയ്തു. വയാന് അതെല്ലാം വായിക്കാനൊന്നും അറിയില്ലെന്നും പറഞ്ഞു. സ്കൂളിൽ ആ ലിപി പഠിപ്പിക്കുന്നുണ്ടെങ്കിലും നിത്യജീവിതത്തിൽ അതുപയോഗിക്കേണ്ടി വരാറില്ലാത്തതുകൊണ്ട് മറന്നുവത്രെ.

സ്ഥലപ്പേര് ഇംഗ്ലീഷിലും ബാലിനീസിലും

ഇന്ത്യയിൽ നിന്നാണെങ്കിൽ, ഹിന്ദുവാണൊ എന്നൊരു ചോദ്യം ഗൈഡുമാരിൽ നിന്നുമുണ്ടാകും. ആണെങ്കിൽ താനുമതേയെന്ന് പറഞ്ഞ് ആഹ്ലാദം പങ്കുവെയ്ക്കും. ഹിന്ദുസംസ്കാരത്തിന്റെ വേരുകൾ ഇന്ത്യയിൽനിന്നായതുകൊണ്ട് തായ്‌വേരിനോടുള്ള മമതയാണവിടെ കാണുക. സംസ്കൃതം കൂടി അറിയാമെങ്കിൽ ബഹുമാനം കൂടും, ഉറപ്പ്.

ക്ഷേത്രസമുച്ചയങ്ങൾ, ആരാധന, നൃത്തസംഗീതശില്പം

ക്ഷേത്രങ്ങളുടെ സാമീപ്യമില്ലാത്ത വിനോദസഞ്ചാരകേന്ദ്രങ്ങൾ ബാലിയിൽ കുറവാണ് ഇന്തോനേഷ്യൻ സംസ്കാരത്തിലധിഷ്ഠിതമായ ഹിന്ദുമതമാണ് ഇവിടെ പിന്തുടരുന്നത്. ക്ഷേത്രങ്ങളുടെ പ്രധാന പ്രവേശനകവാടത്തിന് രണ്ടായിപിളർന്ന ഗോപുരത്തിന്റെ രൂപമാണ്. ആരാധാനാലയങ്ങൾക്കുപുറമേ ബാലിനീസ് വാസ്തുകലയുടെ ഈ രീതി പിന്തുടർന്ന് പല സ്ഥാപനങ്ങളും ഇത്തരം കവാടങ്ങൾ പണിതിട്ടുള്ളത് ശ്രദ്ധയിൽ പെടും.

ഉലുവട്ടുവിലെ കെച്ചക് നൃത്തവേദിയിലെ കവാടം

പ്രധാനക്ഷേത്രങ്ങളെല്ലാം വിശാലമായ കോംപൗണ്ടോടുകൂടിയതാണ്. അതിനുള്ളിലുള്ള മതിൽക്കെട്ടിലെ കവാടങ്ങളുടെ മേൽക്കൂര പൂർണ്ണമായ ഗോപുരങ്ങൾ തന്നെയാണ്. ശ്രീകോവിലിനു സമാനമായ പ്രധാന കെട്ടിടത്തിന്റെ പലതട്ടിലുള്ള മേൽക്കൂര പുല്ലുമേഞ്ഞതാണ്. മേരുഗോപുരംഎന്നാണിവയെ വിളിക്കുക.

ബട്വാൻ ക്ഷേത്രത്തിലെ മേരുഗോപുരങ്ങൾക്ക് മുന്നിൽ സാരോംഗ് ധരിച്ച്

തെക്കൻ സമുദ്രതീരത്തുള്ള ഉലുവാട്ടുക്ഷേത്രം ഒരു കുന്നിൻമുകളിലാണ്. അവിടെ സൂര്യാസ്തമയത്തിനു ശേഷം ദിവസേനെ കെച്ചക് നൃത്തം അരങ്ങേറുന്നു. ഈ പരമ്പരാഗതനൃത്തം ഇപ്പോൾ സഞ്ചാരികൾക്കായാണ് ദിവസവും അവതരിപ്പിക്കുന്നത്. കെചക്നൃത്തം ബാലെയ്ക്കു സമാനമായ ഒരു നൃത്തരൂപമാണ്. രാമായണകഥയാണ് ഇതിവൃത്തം. ബാലിനീസ് വേഷവിധാനത്തിൽ സീതയും രാമനും രാവണനും ഒക്കെ അരങ്ങിലെത്തും. ഹനുമാൻ വാനരരൂപത്തിൽ കാണികൾക്കിടയിലിറങ്ങി ഗോഷ്ഠികളുമായി ചിരിപടർത്തും. ഉലുവാട്ടു ക്ഷേത്രപരിസരത്ത് ധാരാളം കുരങ്ങന്മാരെ കാണാം. അവതരണത്തിനിടയ്ക്ക് അവയൊക്കെ ഗാലറിയിൽ വന്നുംപോയുമിരിക്കുന്നുണ്ടായിരുന്നു.

കെച്ചക് നൃത്തത്തിനായുള്ള കാത്തിരിപ്പ് – ഉലുവാട്ടു

തനാലോട്ട് കുറച്ചുകൂടി പടിഞ്ഞാറോട്ട് മാറിയുള്ള കടലോരത്തെ പാറക്കെട്ടാണ്. കടലിലേയ്ക്ക് തള്ളിനിൽക്കുന്ന ഒരു ഉയർന്നപാറയ്ക്കുമേലാണ് തനാലോട്ട് ക്ഷേത്രം. അങ്ങോട്ടുള്ള വഴി വേലിയേറ്റസമയത്ത് കടൽ മൂടും. അല്ലെങ്കിൽ ക്ഷേത്രം വരെ നടന്നുപോകാവുന്നതാണ്. തുടർച്ചയായി തിരയടിച്ച് പാറക്കെട്ടിലുണ്ടായ അടയാളങ്ങൾ മനോഹരമാണ്. തനാലോട്ടിലെ സൂര്യാസ്തമയം കാണാൻ സഞ്ചാരികളുടെ വലിയ തിരക്കുണ്ടാകും.

തനാലോട്ടിലെ സൂര്യാസ്തമയം
വേലിയിറക്കസമയത്ത് തനാലോട്ട് ക്ഷേത്രത്തിലേയ്ക്ക് സഞ്ചാരികൾ നടന്നുപോകുന്നു

എല്ലായിടത്തും പ്രവേശനഫീസും ടിക്കറ്റും വെച്ചാണ് കടത്തിവിടുന്നത്. കോംപൗണ്ടിലേയ്ക്കലാതെ ആരാധനാസ്ഥാനത്തേയ്ക്ക് ടൂറിസ്റ്റുകൾക്ക് പ്രവേശനവുമില്ല. ക്ഷേത്രങ്ങളുടെ പരിസരത്തേക്കു കടക്കുമ്പോൾ പരമ്പരാഗത ബാലിനീസ് വേഷമായ സരോംഗ് ധരിക്കാൻ നൽകും. പോരുമ്പോൾ അതു തിരികെ കൊടുക്കണം. ഇതത്ര നിർബന്ധമൊന്നും ഉള്ളതായി തോന്നിയില്ല. സഞ്ചാരികളുടെ ഒരു സന്തോഷത്തിന് തരുന്നതാണെന്നു തോന്നി. ഗൈഡുകളൊന്നും പൊതുവേ സരോംഗ് ധരിക്കാറില്ല.

ക്ഷേത്രങ്ങളിലൊന്നും നിത്യപൂജ ഉണ്ടാവാറില്ല. വിശേഷദിവസങ്ങളിൽ മാത്രമാണ് ക്ഷേത്രങ്ങളിലെ ചടങ്ങുകളൊക്കെ. പക്ഷേ നിത്യേനയുള്ള ചെറിയ ആരാധന എല്ലായിടത്തും ഉണ്ടാകും. കടകളിലും വീടുകളിലും മ്യൂസിയങ്ങളിലുമൊക്കെ. കുരുത്തോല കൊണ്ടുമെടഞ്ഞ ഒരു ചെറിയ മുറത്തിൽ പൂജാപുഷ്പങ്ങളും ബിസ്ക്കറ്റുമൊക്കെയായി ഇതെല്ലായിടത്തും കാണാം. ഡൊമിനോസ് പിസ്സയുടെ മുന്നിൽ പോലും കണ്ടു.

പൂജാപാത്രം – നടപ്പാതയിലെ കാഴ്ച

ക്ഷേത്രത്തിലെ ദ്വാരപാലകശില്പങ്ങൾക്കുസമാനമായ രൂപങ്ങൾ കടകൾക്കുമുന്നിലും റെസ്റ്റോറന്റുകളിലുമൊക്കെയുണ്ട്. ഇതൊക്കെ അലങ്കാരശില്പങ്ങളാണെന്നും ദൈവികമാണെങ്കിൽ വസ്ത്രമുണ്ടാകുമെന്നും വയാൻ പറഞ്ഞു തന്നു. കറപ്പും വെളുപ്പും കള്ളികളുള്ള വസ്ത്രമുടുപ്പിച്ച രൂപങ്ങൾ പിന്നെ ശ്രദ്ധിച്ചുതുടങ്ങി. പല മരങ്ങൾക്കും അതുണ്ടെന്നു കണ്ടു. അതില്ലാത്ത ഗണേശരൂപങ്ങളേയും കണ്ടു.

വസ്ത്രം ധരിച്ച ദ്വാരപാലക രൂപം
ചെമ്പരത്തിപ്പൂവ് ചൂടിയ ഗണേശപ്രതിമ

ഈഴച്ചമ്പകമെന്നു നമ്മുടെ നാടിലറിയപ്പെടുന്ന പൂവാണ് പ്രധാനപൂജാപുഷ്പം. കംബോജിയപ്പൂക്കളെന്നാണ് അവർ വിളിയ്ക്കുക. അലങ്കാരത്തിനും ഇതു തന്നെ പ്രാധാനയിനം – മേശപ്പുറത്താണെങ്കിലും കേശഭാരത്തിലാണെങ്കിലും. ഈ ചെറുമരം കാണാത്തയൊരിടവും ഉണ്ടാകില്ല ബാലിയിൽ. ചുവന്ന ചെമ്പരത്തിയും ഇതിനു സമാനമായ പ്രാധാന്യത്തോടെ ഉപയോഗിച്ചുവരുന്നു. പക്ഷേ പെട്ടെന്നു വാടുന്നതു കൊണ്ട് അലങ്കാരപുഷ്പമാകാൻ ഇതിനു പറ്റില്ലല്ലോ.

കംബോജിയപുഷ്പം അലങ്കാരമായി മേശമേല്‍

കംബോജിയപ്പൂമരം

രുചിഭേദങ്ങൾ

അരിഭക്ഷണം കഴിയ്ക്കുന്നവരാണ് ബാലിക്കാർ, പൊതുവിൽ ഇന്തോനേഷ്യക്കാർ. മാംസവിഭവങ്ങൾ അവർക്കൊഴിച്ചുകൂടാനാവില്ല. കോഴി, താറാവ്, പോത്ത്, പന്നി ഒക്കെ അവരുടെ മെനുവിൽ ഉണ്ട്. കടൽവിഭവങ്ങളുടെ കലവറയാണ് ബീച്ച് റെസ്റ്റോറന്റുകൾ. ഭക്ഷണത്തിൽ പരീക്ഷണങ്ങൾക്ക് മുതിരാറില്ലാത്തവരായിരുന്നു ഞങ്ങൾ. പക്ഷേ ഇത്തവണ കുറച്ച് രുചിയനുഭവങ്ങൾ സ്വന്തമാക്കാമെന്ന് കരുതി.

മലേഷ്യൻ ട്രാൻസിറ്റിനിടയിൽ വെച്ചാണ് നാസി ലെമക്ക് പരീക്ഷിച്ചത്. ഇതു മലേഷ്യയുടെ ദേശീയ വിഭവമാണ്. തേങ്ങാപ്പലിൽ വെന്ത ചോറിനൊപ്പം എരിവും മധുരവും ചേർന്ന സംബാൾ (മുളകുപേസ്റ്റ്), വറുത്തകടല, ഒരു കഷണം വെള്ളരിക്ക, ചെറിയമീൻ വറുത്തത്, പുഴുങ്ങിയ മുട്ട ഇതൊക്കെ ചേർന്ന സമീകൃതാഹാരമാണ് നാസി ലെമെക്. ഒപ്പം കോഴി, ആട്, താറാവ് ഇതിലേതെങ്കിലും കറിയായോ ഫ്രൈ ആയോ ഉണ്ടാകും.

നാസി ലെമെക്കും നോന്യ ചിക്കന്‍ കറിയും

ന്യോന്യ ചിക്കൻ കറി മറ്റൊരു മലേഷ്യൻ വിഭവമാണ്. നമ്മുടെ തേങ്ങാപ്പാല് ചേർത്ത ചിക്കൻ കറിയ്ക്ക് വളരെ സമാനമായ സ്വാദാണ് ഇതിന്, ചെറിയ മധുരമുണ്ടാകുമെന്ന് മാത്രം. സുഗന്ധവ്യഞ്ജനക്കൂട്ടിലെ പ്രാദേശികഭേദം കൊണ്ടുള്ള വ്യത്യാസം അറിയാനുണ്ട്. ബ്രെഡിനോ ചോറിനോ ഒപ്പം കഴിയ്ക്കാം.

നാസി കാംപുർ ഒരു ഇന്തോനേഷ്യൻ വിഭവമാണ്. അല്ലെങ്കിൽ ഒരുകൂട്ടം വിഭവങ്ങളാണ് എന്നു പറയുന്നതാണ് കൂടുതൽ ശരി. ചോറിനൊപ്പം മാംസ-മാംസേതര വിഭവങ്ങളടങ്ങിയ ഒരു കൂട്ട്. നാസിലെമെക്കിന് സമാനമാണിത്.

നാസി ഗൊരെങ്ങ് -ഇത് ഇന്തോനേഷ്യൻ ഫ്രൈഡ് റൈസ് ആണ്. പച്ചക്കറികളും മാംസവിഭവങ്ങളും ഒപ്പമുണ്ടാകും. ഞങ്ങൾക്ക് കോലിൽകുത്തി ചുട്ടെടുത്ത ചിക്കൻ പീസുകൾ പീനട്ട് സോസിനൊപ്പം വിളമ്പിക്കിട്ടി. സേറ്റ് അയാം എന്നിതിനെ വിളിയ്ക്കും.

നാസി ഗൊരെങ്ങ്. ഒപ്പം ക്രിസ്പി ഡക്ക്

തെരിയാക്കി ചിക്കൻ – സോയസോസ്, ഓറഞ്ച് ജ്യൂസ്, തേൻ, ഇഞ്ചി ഇവയിൽ മാരിനേറ്റ് ചെയ്തെടുക്കുന്ന ചിക്കൻ വെണ്ണയിൽ വറുത്തെടുത്തതാണിത്. മധുരവും എരിവും ചേർന്നൊരു രസമുള്ള സ്വാദ്.

തെരിയാക്കി ചിക്കന്‍

മാംസവിഭവങ്ങൾ ഏത് ഓർഡർ ചെയ്താലും കൂടെ ചോറുമുണ്ടാകും. കോണാകൃതിയിലോ വൃത്താകൃതിയിലോ കമിഴ്ത്തിയത്. KFCയിൽ നിന്നുപോലും അങ്ങനെയാണ് കിട്ടുക.

കടൽവിഭവങ്ങൾ പരീക്ഷിച്ചത് ജിംബാരനിൽ നിന്നുമാണ്. പിടയ്ക്കുന്ന കടൽജീവികളെ നമുക്കു കാണാം. ചൂണ്ടിക്കാണിച്ചു കൊടുക്കുന്നതു് എടുത്തു പാകം ചെയ്തു തരും. പക്ഷേ ഓരോന്നും എത്രവീതം തൂക്കിയെടുക്കണെമെന്നതിനെക്കുറിച്ചൊരു രൂപവും കിട്ടാത്തതിനാൽ ഞങ്ങൾ സെറ്റ് ചെയ്ത കപ്പിൾ മെനു ഒന്നെടുത്തു. കല്ലുമ്മക്കായയും, ചെമ്മീനും, വലിയ കടൽമത്സ്യവും, കലമാരിയും (വറുത്ത കണവ) ചേർന്നതായിരുന്നു മെനു. ഒപ്പം മുന്നിലെ കടൽപ്പരപ്പ്, കാറ്റ്, സംഗീതം, നൃത്തം. ആ വേറിട്ട അനുഭവത്തിനു പക്ഷേ ഇരുപതുശതമാനം ടാക്സടക്കം വലിയ വിലകൊടുക്കേണ്ടി വന്നു.

ജിംബാരനിലെ കടല്‍വിഭവങ്ങള്‍

മാംസവിഭവങ്ങളിൽ നിന്നും ഒഴിവെടുത്ത ദിവസം കഴിച്ചത് ഗാർളിക് കസ്സാവ ആയിരുന്നു, വെളുത്തുള്ളി പുരട്ടി ചുട്ടെടുത്ത കപ്പ.

ചുട്ടെടുത്ത കപ്പ

ഇന്തോനേഷ്യയുടെ തനതു റെസ്റ്റോറന്റുകളെ (നമ്മുടെ നാട്ടിലെ തട്ടുകട/ചായക്കട സെറ്റപ്പ്) വാറുംഗ് എന്നാണ് പറയുക. കുട്ട പോലെയുള്ള ടൂറിസ്റ്റി ഇടങ്ങളില്‍ പക്ഷേ വാറുംഗുകള്‍ സഞ്ചാരികളുടെ ഇഷ്ടത്തിനനുസരിച്ച് രൂപം മാറിക്കഴിഞ്ഞിരിക്കുന്നു – പല ബ്രാന്‍ഡഡ് വാറുംഗുകള്‍ വരെ ഇപ്പോഴവിടെ ഉണ്ട്. എയര്‍പ്പോര്‍ട്ടില്‍ അവയുടെ ബ്രാഞ്ചുകളും കണ്ടു.

എയര്‍പോര്‍ട്ടിലെ വാറുംഗ്

ബാലി എന്ന അനുഭവം

സഞ്ചാരികളുടെ താത്പര്യമെന്തായാലും അതിനുപറ്റിയ അനുഭവങ്ങള്‍ സമ്മാനിക്കാന്‍ മാത്രം സമ്പന്നമാണ് ബാലി.

നഗരത്തിന്റെ തിരക്കുകളില്‍ നിന്നൊഴിവായിട്ടൊരുദിവസം ചെലവഴിക്കാന്‍ സഞ്ചാരികള്‍ തെരഞ്ഞെടുക്കുന്ന സ്ഥലമാണ് ഉബുദ്. ഉബുദിലേയ്ക്കുള്ള യാത്രാമദ്ധ്യേയാണ് തടികൊണ്ടും ലോഹം കൊണ്ടുമുള്ള ആഭരണ കരകൗശല  നിര്‍മ്മാണശാലകള്‍. മിക്കതും വീടുകളോടു ചേര്‍ന്നു തന്നെ. നിര്‍മ്മാണം കാണാം, സാമാനങ്ങള്‍ വാങ്ങുകയുമാകാം. സഞ്ചാരികള്‍ക്ക് പണികളില്‍ കൂടുകയുമാകാം. പക്ഷേ ഞങ്ങള്‍ അക്കാഴ്ചകള്‍ക്കായി നിന്നില്ല.

തട്ടുനെല്‍ക്കൃഷി

നെല്‍ക്കൃഷിയ്ക്കു പറ്റിയ ഫലപുഷ്ടമായ മണ്ണാണിവിടെ. കുന്നിന്‍ചെരിവിലെ നിലം തട്ടുതട്ടായി തിരിച്ചിട്ടുള്ള നെല്‍പ്പാടങ്ങള്‍ കാണാന്‍ വലിയ തിരക്കാണ്. ഏറ്റവും മുകള്‍ത്തട്ടില്‍ നിന്നും ജലസേചനത്തിനുള്ള വെള്ളം പലതട്ടുകളിലൂടെ ഒഴുകി ഒടുവില്‍ താഴെയെത്തും. സഞ്ചാരികള്‍ക്കായി നടപ്പാതയൊരുക്കിയിട്ടാണ് കൃഷിഭൂമി. ഇടയ്ക്കുള്ള വീടുകളൊക്കെ മുറ്റത്ത് ലഘുഭക്ഷണവിതരണമൊക്കെ നടത്തി വരുമാനമുണ്ടാക്കുന്നു. സെല്യൂക്കിലെ ഈ നെല്‍പ്പാടങ്ങള്‍ക്കു ചുറ്റിലും ഉബുദിലെ ആര്‍ട്ട് മാര്‍ക്കറ്റിന്റെ തുടര്‍ച്ചയായുള്ള വില്പനശാലകളുണ്ട്.

ഉബുദില്‍ തന്നെയാണ് പ്രശസ്തമായ മങ്കിഫോറസ്റ്റ്. നമ്മുടെ കണക്കില്‍ അത്ര നിബിഡവനമൊന്നുമല്ല. പക്ഷേ പാശ്ചാത്യസഞ്ചാരികള്‍ക്ക് സംബന്ധിച്ച് ട്രോപ്പിക്കല്‍ കാലാവസ്ഥയിലെ മരങ്ങളും ചെടികളുമൊക്കെ പുതുമയുള്ള കാഴ്ച തന്നെയാണല്ലോ. നേന്ത്രപ്പഴമൊക്കെ കൈയ്യിലുണ്ടെങ്കില്‍ തോളത്തുചാടിക്കയറുന്ന വലിയൊരു വാനരപ്പട തന്നെയുണ്ടവിടെ. സൂക്ഷിച്ചില്ലെങ്കില്‍ തൊപ്പിയും കൂളിംഗ്‌ഗ്ലാസ്സുമൊക്കെ അവര്‍ തട്ടിയെടുക്കുമെന്ന് വയാന്‍ സൂചന തന്നിരുന്നു. ഞങ്ങള്‍ ചെല്ലുമ്പോള്‍ ചെറിയ ചാറ്റല്‍ മഴയുണ്ടായിരുന്നു. ഒരു കാട്ടരുവി, അടഞ്ഞുകിടക്കുന്ന ഒരു അമ്പലം, ചെറിയൊരു ബറിയല്‍ഗ്രൗണ്ട്, മരപ്പാലം ഇതിലൂടെയൊക്കെ നടന്ന് പുറത്തെത്തുവാന്‍ അധികം സമയമൊന്നും എടുത്തില്ല.

മങ്കി ഫോറസ്റ്റ്

തിരികെ വരുന്ന വഴിയാണ് ടൂര്‍പക്കേജിലില്ലാതിരുന്ന ഗുവാഗജാ കാണാന്‍ പോയത്. ഗജഗുഹയെന്ന് നമുക്ക് വിവര്‍ത്തനം ചെയ്യാം. ആനമുഖംകൊത്തിയ ഗുഹാകാവടത്തിനുള്ളിലേയ്ക്ക് നമുക്ക് നടന്നു പോകാം. ഉള്ളില്‍ ഗണേശവിഗ്രഹമൊക്കെ കണ്ടു. ചെറിയൊരുവെള്ളച്ചാട്ടവും താമരപ്പൊയ്കയും സമീപത്തുണ്ടായിരുന്നു.

ഗജഗുഹാകവാടത്തിനുമുന്നില്‍ ടൂറിസ്റ്റുകള്‍

ശലഭോദ്യാനത്തില്‍കൂടി പോകാമെന്നു വയാന്‍ പറഞ്ഞെങ്കിലും അപ്പോഴേയ്ക്കും ക്ഷീണിച്ചിരുന്നു. അതുകൊണ്ട് നേരെ ഹോട്ടലിലേയ്ക്ക് മടങ്ങി. രാവിലെ എട്ടരയ്ക്ക് തുടങ്ങിയ യാത്ര വൈകിട്ട് ആറരയോടെ അവസാനിച്ചു. ചെറിയറോഡുകളും അതിലൂടെ നിറയെ ടൂറിസ്റ്റ് വാഹനങ്ങളും കൂടിയാകുമ്പോള്‍ ട്രാഫിക്‌ബ്ലോക്ക് ഇവിടെ പതിവാണ്.

കുട്ടയിലെ ബീച്ചിലേയ്ക്കുള്ള വഴി നിറയെ തെരുവുകച്ചവടക്കാരാണ്. കുട്ടയിലും ഉബുദിലും മറ്റു ടൂറിസ്റ്റ് സ്പോട്ടിലൊക്കെ കാണുന്ന വില്പനസാമഗ്രികളൊക്കെ ഒന്നുതന്നെയാണ്. വിലകളൊക്കെ പേശുന്നതിനനുസരിച്ച് മാറിക്കൊണ്ടിരിക്കും. എങ്കിലും സമാന്യം ലാഭകരമായ വിലകളില്‍ സഞ്ചാരികള്‍ക്കാവശ്യമായ വസ്ത്രങ്ങളും ബാഗുകളും ഒക്കെ കിട്ടും.

ഉബുദിലെ ആര്‍ട്ട് മാര്‍ക്കറ്റില്‍ നിന്ന്

ഞങ്ങള്‍ തങ്ങിയ ഹോട്ടലിലെ സ്വിമ്മിങ്ങ് പൂളില്‍ വെച്ചായിരുന്നു ജീവിതത്തിലാദ്യത്തെ പൂളനുഭവം. തോട്ടിലോ പുഴയിലോ പോലും കുളിച്ചു ശീലമില്ലാത്തതാണ്. നീന്തലൊട്ടറിയുകയുമില്ല. എങ്കിലും മടിച്ചില്ല. ചുറ്റിലും വെയില്‍കായാന്‍ കിടക്കുന്നവരും വെള്ളത്തില്‍ നീന്തുന്നവരും ഒന്നും നമ്മളെ ശ്രദ്ധിക്കുന്നില്ല എന്നതാണ് ധൈര്യമായത്. പിന്നെയുള്ള രണ്ടുദിവസം ഉച്ചവരെ പൂളില്‍ തന്നെയായിരുന്നു. നീന്തി മുന്നോട്ട് നീങ്ങാന്‍ നല്ല ആയാസം തോന്നിയെങ്കിലും പൊങ്ങിക്കിടക്കാന്‍ പഠിച്ചു. ടീഷര്‍ട്ടിനുപകരം സ്വിംസ്യൂട്ടിലേയ്ക്ക് മാറാനുള്ള ധൈര്യം കണ്ടെത്തണം അടുത്ത അവസരം വരുമ്പോള്‍.

സ്വിമ്മിങ്ങ് പൂള്‍

മസ്സാജ് പാര്‍ലറുകളുടെ ബോര്‍ഡുകള്‍ എല്ലായിടത്തും കാണാം. ബാലിനീസ് മസ്സാജിങ്ങ് സഞ്ചാരികള്‍ക്ക് പ്രിയപ്പെട്ടതാണ്. ഫുള്‍ ബോഡി മസ്സാജിങ്ങ്, ഹെഡ് & ഫേസ് മസ്സാജിങ്ങ് ഒപ്പം മാനിക്യൂര്‍, പെഡിക്യൂര്‍, ഫിഷ് സ്പാ തുടങ്ങിയ സൗന്ദര്യസംരക്ഷണപരിപാടികളൊക്കെ ഇത്തരം പാര്‍ലറുകളില്‍ ലഭ്യമാണ്. ഒരു ബാലിനീസ് മസ്സാജിങ്ങ് പരീക്ഷിക്കാന്‍ ഞങ്ങള്‍ മടിച്ചില്ല. നീന്തലിന്റെ ക്ഷീണമൊക്കെ മസ്സാജില്‍ തീരട്ടെയെന്നു കരുതി.

പകലൊക്കെ നല്ല വെയിലും ചൂടുമുണ്ടാകും. അതുകൊണ്ട് ഒരു പകല്‍ പുറത്തുള്ള കറക്കംഒഴിവാക്കി കുട്ടയില്‍ തന്നെയുള്ള ഡ്രീം മ്യൂസിയത്തില്‍ ചെലവഴിച്ചു. അതൊരു രസകരമായ അനുഭവമായിരുന്നു. ചുമരും തറയുമൊക്കെ കാന്‍വാസാക്കി ഒരുകൂട്ടം ചിത്രകാരന്മാര്‍ അണിയിച്ചൊരുക്കിയത്. ഫോട്ടോയെടുക്കുമ്പോള്‍ നമ്മളുംകൂടിച്ചേര്‍ന്ന് ത്രിമാനചിത്രങ്ങള്‍ രൂപപ്പെടും. ഫോട്ടോയ്ക്ക് പോസുചെയ്യിക്കാനും നമ്മുടെ ക്യാമറയില്‍ ചിത്രങ്ങളെടുത്തുതരാനുമായി അവിടെ ജീവനക്കാരുണ്ട്.

ഡ്രീം മ്യൂസിയം
ഡ്രീം മ്യൂസിയം

 

ബാക്കിവെച്ചത്

അഗ്നിപര്‍വ്വതനിരകളിലെ ട്രെക്കിങ്ങ് ഒഴിവാക്കാനാവാത്ത ഒരു ബാലിനീസ് അനുഭവമാണെന്ന് വായിച്ചറിഞ്ഞിരുന്നു. കിണ്ടാമണിയിലെ ബാത്തൂര്‍ പര്‍വ്വതനിരയിലാണ് പ്രധാനമായും അതിനവസരമുള്ളത്. ഉബുദിലേയ്ക്കുള്ള യാത്രയുടെ ഇരട്ടിയോളം ദൂരം വരുമിത്. ഒരു മുഴുവന്‍ ദിവസവും ഇതിനായി മാറ്റിവെയ്ക്കേണ്ടതുണ്ട്. അതിനു പറ്റിയില്ല.

സ്കൂബാഡൈവിങ്ങ്, സ്നോര്‍ക്കേലിങ്ങ്, സ്പീഡ്ബോട്ടിങ്ങ്, സര്‍ഫിങ്ങ് തുടങ്ങിയ കടല്‍വിനോദങ്ങള്‍ക്കു പേരുകേട്ട ബാലിയില്‍ പോയിട്ടും ഇതൊന്നും പരീക്ഷിച്ചില്ല. ധൈര്യം വരാത്തതുകൊണ്ടാണ്. ഇപ്പോള്‍ ആലോചിക്കുമ്പോള്‍ ഒരുകൈ നോക്കാമായിരുന്നെന്നു തോന്നുന്നു. സാരമില്ല, ബാക്കിവെച്ച ആഗ്രഹങ്ങളാണല്ലോ മുന്നോട്ടുനീങ്ങാനുള്ള പ്രേരണ. അവസരങ്ങള്‍ ഇനിയുമുണ്ടാകുമെന്ന് കരുതുന്നു.

 

 

Santhosh Thottingal: പുതിയൊരു മലയാളം ഫോണ്ട് നിർമിക്കുന്നതെങ്ങനെ?

$
0
0

ഈ ചോദ്യം ധാരാളം പേർ എന്നോടു് ചോദിക്കാറുണ്ടു്. പലപ്പോഴും വിശദമായ രീതിയിൽ തൃപ്തികരമായി ഉത്തരം കൊടുക്കാൻ പറ്റാറില്ല – പ്രത്യേകിച്ച് ചാറ്റിലും മറ്റും ചോദിക്കുമ്പോൾ. അതുകൊണ്ട് എല്ലാവർക്കും വേണ്ടി കുറച്ചു് കാര്യങ്ങൾ സ്വന്തം അനുഭവങ്ങളുടെ വെളിച്ചത്തിൽ ഇവിടെ എഴുതാമെന്നു കരുതുന്നു. ഇതുവായിച്ചാൽ ഒരു ഫോണ്ട് നിർമിക്കാനാവുമെന്നു തെറ്റിദ്ധരിക്കരുത്. ഒരു ഫോണ്ട് നിർമാണത്തിലെ സ്റ്റെപ്പുകൾ വളരെ ചുരുക്കിയെഴുതിയിരിക്കുന്നുവെന്നു മാത്രം. ഇംഗ്ലീഷ് ഫോണ്ടുകളുടെ നിർമാണം സംബന്ധിച്ച് ഇന്റർനെറ്റിൽ തിരഞ്ഞാൽ കിട്ടുന്ന വിവരങ്ങൾ മിക്കവയും മലയാളത്തിനും ഉപകരിക്കും.

ഇന്നത്തെ യുണിക്കോഡ് ഫോണ്ടുകൾ ഓപ്പൺടൈപ്പ്സാങ്കേതികവിദ്യ അടിസ്ഥാനമാക്കിയാണു് പ്രവർത്തിക്കുന്നതു്. ഫോണ്ടിൽ അക്ഷരങ്ങളുടെ വരച്ച രൂപങ്ങളും, അക്ഷരങ്ങൾ കൂടിച്ചേരുന്നതിനെ സംബന്ധിച്ച ചിത്രീകരണ നിയമങ്ങളും ആണുള്ളതു്.

എങ്ങനെ തുടങ്ങാം?

പുതിയൊരു ഫോണ്ട് നിർമിക്കുന്നതു് കലാപരമായ ഒരു പ്രവൃത്തിയാണു്.  ഇതു് മനസ്സിലാക്കുന്നതു് വളരെ പ്രധാനപ്പെട്ട ഒരു കാര്യമാണ്. ഒരു ചിത്രകാരൻ ചിത്രം വരക്കുന്നതുമായി ഇതിനെ സങ്കൽപിക്കുക. ചിത്രം ആർക്കും വരക്കാം. പക്ഷേ എല്ലാം നല്ല ചിത്രങ്ങളാവില്ല, ജനങ്ങൾ ഒരേപോലെ ആസ്വദിക്കില്ല. അപാരമായ ക്ഷമയും കലയോടുള്ള താത്പര്യവും നിർബന്ധമാണു്. അതുപോലെത്തന്നെയാണു് ഫോണ്ടിന്റെ കാര്യവും. നല്ലൊരു ഫോണ്ടിന്റെ രൂപകല്പനയ്ക്ക് ധാരാളം ഫോണ്ടുകൾ ആസ്വദിക്കണം, അതിനു പരിശീലിക്കണം. നിത്യജീവിതത്തിൽ കാണുന്ന വിവിധങ്ങളായ അക്ഷരരൂപങ്ങളെ വെറും അക്ഷരങ്ങളായല്ലാതെ അവയിലെ വരകളെയും വളവുകളെയും അനുപാതങ്ങളെയും ആഴത്തിൽ മനസ്സിലാക്കാനുള്ള നിരീക്ഷണപാടവം വളർത്തിയെടുക്കണം. കുറച്ചു ദിവസങ്ങളിലെ ഒരു ഫോണ്ട് വർക്ക് ഷോപ്പുകൊണ്ട് ആർക്കും ഒരു ഫോണ്ട് ഉണ്ടാക്കാൻ കഴിയില്ല. സാങ്കേതികവശങ്ങളും നടപടിക്രമങ്ങളും മനസ്സിലാക്കാൻ മാത്രമേ സാധിക്കൂ.

  1. നിലവിലുള്ള ഫോണ്ടുകളെ വിശദമായി വിലയിരുത്തുക. ഏതൊക്കെ ശൈലികൾ ഉണ്ടു്, വരകളെങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു, ഏതുതരം ഉപയോഗത്തിനാണ് മുൻതൂക്കം കൊടുക്കുന്നതു്. അക്ഷരങ്ങളെങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു. ഇവ മനസ്സിലാക്കണം. എനിക്ക് ഇവ മനസ്സിലാക്കാൻ സാധിച്ചതു് ഫോണ്ട് ഡിസൈൻ ചെയ്യുക എന്ന ഉദ്ദേശ്യമില്ലാതെ ഫോണ്ടിന്റെ സാങ്കേതികവശങ്ങളിലും പ്രോഗ്രാമിങ്ങിലും പ്രവർത്തിച്ചാണു് ഞാൻ ഈ മേഖലയിലെത്തിയതു് എന്നതുകൊണ്ടാണ്. അഞ്ചാറുവർഷം അങ്ങനെ നിരന്തരം പല ഫോണ്ടുകളുടെ രൂപങ്ങൾ നമ്മുടെ മുന്നിൽ വന്നപ്പോൾ മേൽപ്പറഞ്ഞ കാര്യങ്ങളിൽ കൂടുതൽ അറിവുനേടാനായി.
  2. അക്ഷരങ്ങൾ, കൂട്ടക്ഷരങ്ങൾ തുടങ്ങിയവയെ സംബന്ധിച്ച  ഭാഷാപരമായ അറിവ് അത്യന്താപേക്ഷിതമാണ്. ഉദാഹരണത്തിന് മ്പ = മ്+പ ആണ്, ന്+പ അല്ല എന്നൊക്കെ കൃത്യമായി അറിഞ്ഞിരിക്കണം.
  3. ഫോണ്ടുകളെക്കാൾ വൈവിധ്യം മലയാളത്തെ സംബന്ധിച്ചിടത്തോളം ഉള്ളതു് വഴിയോരങ്ങളിലെ ചുമരെഴുത്തുകൾക്കാണ്. ഫ്ലക്സുകളുടെ കയ്യേറ്റമുണ്ടെങ്കിലും.

ഇതൊക്കെ ചെയ്താലും ടൈപ്പോഗ്രഫിയിൽ പ്രാവീണ്യമുള്ളവരുമായി നേരിട്ട് സംസാരിച്ചും ചർച്ച ചെയ്തും മനസ്സിലാക്കേണ്ട ഒരുപാടു പ്രായോഗികവശങ്ങളുണ്ടു്. അവയൊക്കെ ഇതുവരെ മലയാളത്തിൽ രേഖപ്പെടുത്തിയിട്ടില്ല എന്ന വലിയൊരു കുറവുണ്ടു്.  മലയാളം ടൈപ്പോഗ്രഫി ഗൌരവപരമായി ഒരു കോഴ്സ് ആയി നടപ്പാകുന്നൊരുകാലത്തൊക്കെ അത്തരം ഡോക്യുമെന്റേഷനുകൾ വരുമായിരിക്കും.

ഏതൊക്കെ ടൂളുകൾ ഉപയോഗിക്കണം?

ഫോണ്ട് ഡിസൈനിങ്ങിനു പല സോഫ്റ്റ്‌വെയർ പാക്കേജുകൾ ലഭ്യമാണു്. ഞാനുപയോഗിക്കാറുള്ളതു് ഫോണ്ട്ഫോർജ്ആണു്. ലിനക്സധിഷ്ഠിത ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിൽ ഇതു് സൗജന്യമായി ലഭ്യമാണ്. വിൻഡൊസിലും മാക്കിലും പ്രവർത്തിക്കുന്ന സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറാണ്. ഫോണ്ട്ഫോർജിൽ അക്ഷരരൂപങ്ങൾ വരക്കാനുള്ള സൌകര്യമുണ്ടെങ്കിലും അവ പ്രയാസമായിട്ടാണ് എനിക്ക് തോന്നിയിട്ടുള്ളതു്. അതുകൊണ്ടു് വരകൾ ഇങ്ക്‌സ്കേപ്ഉപയോഗിച്ചാണ് ചെയ്യാറു്. അങ്ങനെ വരച്ച SVG ഫയലുകൾ ഫോണ്ട് ഫോർജിൽ ഇമ്പോർട്ട് ചെയ്ത് ഉപയോഗിക്കും. ഇങ്ക്‌സ്കേപ്പും എല്ലാ ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിലും സൌജന്യമായി ലഭ്യമായ സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറാണ്. ഈ ടൂളുകളുടെ ഉപയോഗം പരിശീലിക്കുകതന്നെ വേണം.

ഫോണ്ട്ഫോർജ്

ഫോണ്ട്‌ഫോർജ് പക്ഷേ ടൈപ്പ് ഡിസൈൻ ടൂളുകളിൽ മെച്ചപ്പെട്ടതെന്നു പറയാനാകില്ല. മാക്കിനു മാത്രമുള്ള Glyphs, Robofontതുടങ്ങിയവയൊക്കെയാണു് ഈ മേഖലയിലെ പ്രൊഫഷണലുകൾ ഉപയോഗിക്കുന്നതു്. പക്ഷേ ഇരുപതിനായിരത്തിലധികം രൂപ വിലയുണ്ടു് ഇവയുടെ ലൈസൻസിന്.

എങ്ങനെ വരയ്ക്കാം

പേപ്പറിൽ വരച്ചു് സ്കാൻ ചെയ്ത് അതിന്റെ ഔട്ട്‌ലൈൻ ട്രെയ്സ് ചെയ്യുന്ന രീതി പിന്തുടരുന്ന ടൈപ്പോഗ്രഫേഴ്സ് ഉണ്ടു്. ഞാൻ പേപ്പർ ഉപയോഗിക്കാറില്ല. പൂർണ്ണമായും ഇമേജ് എഡിറ്ററിൽ മൌസ് കൊണ്ടുതന്നെയാണ് മഞ്ജരി, ചിലങ്ക ഫോണ്ടുകൾ വരച്ചതു്. നിങ്ങൾക്കിഷ്ടമുള്ള രീതി പിന്തുടരാം.

വരയ്ക്കുമ്പോൾ ശ്രദ്ധിക്കാൻ ഒരുപാടു കാര്യങ്ങളുണ്ടു്. അക്ഷരങ്ങളുടെ ഉയരം, വരകളുടെ കട്ടി എന്നിവ എല്ലാ അക്ഷരങ്ങൾക്കും ഒരുപോലെ ആവണമല്ലോ. ഗ്രിഡ് മാർക്ക് ചെയ്ത ഒരു ടെമ്പ്ലേറ്റ് ഇമേജിലാണ് ഞാൻ വരയ്ക്കാറ്. അതിൽ ബേസ് ലൈൻ, x-height, Em-size, bearings തുടങ്ങിയ ടൈപ്പൊഗ്രഫി അളവുകൾ എല്ലാം അടയാളപ്പെടുത്തിയിരിക്കും. ഈ വാക്കുകൾ പരിചയമില്ലെങ്കിൽ പേടിക്കേണ്ട, പഠിച്ചെടുക്കാവുന്നതാണ്. പക്ഷേ ഈ ഒരു ലേഖനത്തിൽ ടൈപ്പൊഗ്രഫി അനുപാതങ്ങളെപ്പറ്റി പറയാനുദ്ദേശിക്കുന്നില്ല. ഈ അളവുകൾ ഓരോ ഡിസൈനിനും ഓരോന്നാണ്. അവ എങ്ങനെ തീരുമാനിക്കുന്നു എന്നതു് വളരെ പ്രധാനമാണ്.

Source: https://pica-ae.deviantart.com/journal/Project-Educate-About-Typefaces-293238420

ചിലങ്ക, മഞ്ജരിഎന്നിവയുടെ സോഴ്സ് കോഡിനോടൊപ്പം ഉപയോഗിച്ച എല്ലാ svg ഇമേജുകളും കൊടുത്തിട്ടുണ്ടു്. അവ റെഫർ ചെയ്യുന്നതു് മേൽപ്പറഞ്ഞ കാര്യങ്ങൾ മനസ്സിലാക്കാൻ സഹായിച്ചേക്കും.

bezier കർവുകളാണ്ഒരു ഫോണ്ടിലെ അക്ഷരരൂപങ്ങളെ നിശ്ചയിക്കുന്നതു്. പേപ്പറിൽ വരച്ചാലും ട്രേയ്സ് ചെയ്ത് ഫോണ്ടിലേക്ക് ചേർക്കേണ്ടതു് ബെസിയർ കർവുകളാൽ നിർവചിച്ച രൂപമാണ്. വൃത്തിയായി കൃത്യതയോടെ ഈ കർവുകൾ എങ്ങനെ വരക്കാമെന്ന് മിക്ക ഇമേജ് എഡിറ്റിങ്ങ് സോഫ്റ്റ്‌വെയറുകളും പരിശീലിക്കുമ്പോൾ പരിചയിക്കുന്നതാണ്. തുടക്കക്കാർക്ക് വേണമെങ്കിൽ http://bezier.method.ac/എന്ന ഒരു ഗെയിം ഉപയോഗിച്ചിത് പരിശീലിക്കാം.

മഞ്ജരി ഫോണ്ടിലെ യ എന്ന അക്ഷരത്തിന്റെ വര. ബെസിയർ കർവുകളും ടൈപ്പോഗ്രഫി മെട്രിക്സ് ഗൈഡുകളും ശ്രദ്ധിക്കുക.

അക്ഷരങ്ങളുടെ രൂപകല്പന

Source: https://medium.com/type-talk/the-typography-lettering-and-calligraphy-cousins-d66543b0ff3c

സ്വന്തമായൊരു ഡിസൈൻ ആശയം മനസ്സിലുണ്ടാകണമെന്നു പ്രത്യേകം പറയേണ്ടതില്ലല്ലോ. കാലിഗ്രഫിയിൽ നിന്നും ടൈപ് ഡിസൈനിങ്ങിനെ വ്യത്യസ്തമാക്കുന്നതു് കാലിഗ്രാഫി ആശയങ്ങൾ പലപ്പോഴും കുറച്ചു അക്ഷരങ്ങൾക്കു വേണ്ടി ആ അക്ഷരങ്ങളുടെ പ്രത്യേകതകൾ ഉൾക്കൊണ്ടുകൊണ്ട് ചെയ്യുന്നതാണ്. അതേ സമയം ടൈപ്പ് ഡിസൈനിൽ ഒരു ആശയം മലയാളത്തിലെ എല്ലാ അക്ഷരങ്ങളിലും പ്രയോഗിക്കണം. ഉദാഹരണത്തിനു് നാരായണഭട്ടതിരി “കാക്ക” എന്ന വാക്ക് കാക്കയുടെ രൂപം ആവാഹിച്ചുകൊണ്ടു വരയ്ക്കും. പക്ഷേ അതു് ടൈപ്പ് ഡിസൈനിനു പറ്റില്ല – കാരണം അറുനൂറോളം അക്ഷരരൂപങ്ങളിലേക്ക് ആ തീം പകർത്താനാവില്ല. അതുകൊണ്ടു് മനസ്സിലുള്ള ഡിസൈൻ ടൈപ്പ് ഡിസൈനിലേക്ക് ഉപയോഗിക്കുന്നതിനുമുമ്പ് ഈ ശൈലിയിൽ എല്ലാ അക്ഷരങ്ങളും വരയ്ക്കാൻ സാധിക്കുമോ എന്നൊക്കെ ആലോചിക്കണം.

ഇവിടെയും നിലവിലെ ഫോണ്ടുകൾ – മലയാളത്തിലൊതുക്കേണ്ടതില്ല – വിശദമായി ആസ്വദിക്കുകയും അനലൈസ് ചെയ്യുകയും ചെയ്യുന്നതുപകാരപ്പെടും. എന്തായാലും മലയാളത്തിൽ വളരെ ചുരുക്കം ഫോണ്ടുകളേ ഉള്ളൂ എന്നതുകൊണ്ടു് അനന്യമായ ഒരു ആശയം കണ്ടുപിടിക്കാൻ ബുദ്ധിമുട്ടേണ്ടിവരില്ല. ഇംഗ്ലിഷ് ഫോണ്ട് ഒക്കെ ചെയ്യുന്നവർ പറയാറുണ്ടു്, ആ ഭാഷയിലെ ഡിസൈൻ വളരെ സാചുറേറ്റഡ് ആയതുകൊണ്ടു് എങ്ങനെ വരച്ചാലും അതുപോലത്തെ ഒന്ന് വേറേ ആരെങ്കിലും ചെയ്തിട്ടുണ്ടാവുമെന്ന്.

എന്തൊക്കെ വരയ്ക്കണം?

മലയാളം യുണിക്കോഡ് ബ്ലോക്കിൽനിലവിൽ നൂറോളം അക്ഷരങ്ങളുണ്ട്. ഇവയെല്ലാം വരച്ചാൽ മാത്രം പോര. ഇവ ചേർന്നുള്ള കൂട്ടക്ഷരങ്ങൾ വരക്കണം. മഞ്ജരി ഫോണ്ടിൽ മലയാളത്തിനു മാത്രമായി അറുനൂറോളം ഗ്ലിഫുകളുണ്ടു്.  മഞ്ജരി താരതമ്യേന കൂട്ടക്ഷരങ്ങൾ കുറഞ്ഞ ഫോണ്ടാണ്. രചനയിൽ ഇതു് ആയിരത്തിനപ്പുറം കടക്കും. ഇത്രയും ഗ്ലിഫുകൾ ഉണ്ടെങ്കിലും ഏകദേശം 200-250 എണ്ണം ആണ് ഡിസൈൻ ചെയ്യേണ്ടതു്, ബാക്കിയുള്ളവ മിക്കവാറും ഇമേജ് എഡിറ്ററിന്റെ സഹായത്തോടെ കൂട്ടിച്ചേർക്കാവുന്നതാണ്.

സാധാരണ മലയാളം ഫോണ്ടുകളിൽ ബേസിക് ലാറ്റിൻ ഗ്ലിഫുകളും ചേർക്കാറുണ്ട്. മലയാളം അക്ഷരങ്ങളുടെ ശൈലിയുമായി മാച്ചാവുന്ന ഇംഗ്ലീഷ് അക്ഷരങ്ങളാണ് വരയ്ക്കാറ്. ഇതു് ഇംഗ്ലീഷ് ചെറിയക്ഷരം വലിയക്ഷരങ്ങളിൽ ഒതുങ്ങില്ല കെട്ടോ, ചിഹ്നങ്ങൾ, അക്കങ്ങൾ, കറൻസികൾ, ഡയാക്രിറ്റിക് മാർക്കുകൾ ഒക്കെ വേണം. മഞ്ജരി ഫോണ്ടിൽ ഇതെല്ലാം ചേർന്ന് 850 ഗ്ലിഫുകളുണ്ടു്.

പുതിയ ലിപി ഫോണ്ടാണെങ്കിൽ വരകൾ കുറയ്ക്കാമല്ലോ എന്നൊരു സംശയം ഉണ്ടാവും. അതുശരിയാണ്. നോട്ടോസാൻസ് മലയാളം ഫോണ്ടിൽ 320 ഗ്ലിഫുകളുണ്ടു്. വ്യക്തിപരമായി എനിക്ക് ഇത്തരം ഫോണ്ടുകളോടു് മമതയില്ല. ഒരു ഡിസൈനറെ സംബന്ധിച്ചോളം തൃപ്തിതരുന്നതു് മലയാളത്തിന്റെ ലിപിസങ്കീർണത അതിന്റെ പരമാവധി പൂർണതയിൽ ആവാഹിക്കാൻ കഴിയുമ്പോഴാണ്. മലയാളത്തിന്റെ കൂട്ടക്ഷരങ്ങളിലാണ് അതിന്റെ സൌന്ദര്യം ഇരിക്കുന്നതു്. അതുവിട്ടുകളഞ്ഞ് ചെറിയൊരു സബ് സെറ്റ് മാത്രം ചെയ്യുന്നതിൽ ടൈപ് ഡിസൈനർ എന്ന നിലയിൽ എനിക്ക് നല്ല അഭിപ്രായമില്ല. എന്നുവെച്ചു് ഈ എളുപ്പപ്പണി ആരെങ്കിലും ചെയ്യുന്നതിലെനിക്കു വിരോധമൊന്നുമില്ല. ഒരുപാടുപേർ പുതിയലിപി ഇഷ്ടപ്പെടുന്നുണ്ടല്ലൊ.

മഞ്ജരി ഒരു ടൈപ്പ് ഫേസാണ്, ഫോണ്ടല്ല എന്നു പറയാറുണ്ടു്. ഒരു പ്രത്യേക ശൈലിയിൽ, കനത്തിൽ ഉള്ള അക്ഷരരൂപങ്ങളുടെ കമ്പൈലേഷനാണ് ഒരു ഫോണ്ട്. ഉദാഹരണത്തിന് മഞ്ജരി റെഗുലർ, മഞ്ജരി ബോൾഡ്, മഞ്ജരി തിൻ ഒക്കെ ഓരോരോ ഫോണ്ടുകളാണ്. ആ ശൈലിയുടെ വകഭേദങ്ങൾ. ഇവയെല്ലാം ചേർന്ന ഫാമിയ്ക്കാണ് ടൈപ്പ് ഫേസ് എന്നോ ഫോണ്ട് ഫാമിലി എന്നോ പറയുന്നതു്.

മഞ്ജരിയാണെന്നു തോന്നുന്നു ഇത്തരത്തിൽ 3 സ്റ്റൈൽ വേരിയന്റുകൾ ആദ്യം മലയാളത്തിൽ കൊണ്ടുവന്നതു്. ബാക്കിയുള്ള മിക്ക ഫോണ്ടുകളും ഒരു ശൈലിയിൽ ഒരു തിക്ൿനസ്സിൽ ഉള്ള ഫോണ്ടാണ്. രചനയ്ക്ക് ബോൾഡ്, റെഗുലർ വകഭേദങ്ങളുണ്ടു്.

ഒന്നിലധികം വകഭേദങ്ങളുള്ള ഒരു ഫോണ്ട് ഫാമിലി രൂപകല്പന ചെയ്യുന്നതു് വളരെ സങ്കീർണ്ണവും സമയമെടുക്കുന്നതുമായ പ്രൊജക്ടാണെന്നു പറയേണ്ടതില്ലല്ലോ.

പ്രോഗ്രാമിങ്ങ് അറിയേണ്ടതുണ്ടോ?

ടൈപോഗ്രാഫർ വരച്ചു തയ്യാറാക്കിയ അക്ഷരരൂപങ്ങളെ ഒരു ഫോണ്ടാക്കി മാറ്റുന്നതു് ഫോണ്ടിന്റെ ചിത്രീകരണനിയമങ്ങളാണു്. ഓപ്പൺടൈപ്പ് സ്പെസിഫിക്കേഷൻ അനുസരിച്ചുള്ള ഇത്തരം നിർദ്ദേശങ്ങൾ പ്രോഗ്രാമിങ്ങ് കഴിവുള്ളവരാണ് തയ്യാറാക്കുന്നതു്. എന്നിരിക്കലും ഒരിക്കൽ തയ്യാറാക്കിയാൽ പുനരുപയോഗിക്കാം എന്ന മെച്ചമുണ്ടു്. സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങിന്റെ ഫോണ്ടുകളിലെ ഈ ചിത്രീകരണനിയമം പുനരുപയോഗിക്കാവുന്ന രീതിയിൽ തയ്യാറാക്കിയതാണ്. ഒരു പ്രത്യേക രീതിയിൽ അക്ഷരരൂപങ്ങൾക്കു പേരിട്ടാൽ വളരെക്കുറച്ചു സമയം കൊണ്ടുതന്നെ ഫോണ്ട് നിർമാണത്തിലെ ഈ ഭാഗം ചെയ്തു തീർക്കാം. ഈ നിർദ്ദേശങ്ങൾ പക്ഷേ വർഷങ്ങളെടുത്തു് തയ്യാറാക്കിയതാണെന്നോർക്കണം. ഇതുകൂടാതെ സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് ഫോണ്ടുകളുടെ സോഴ്സ് കോഡിൽ ഓട്ടോമാറ്റിക് ഫോണ്ട് കമ്പൈൽ ചെയ്യാനും, പല ഫോർമാറ്റുകളിൽ തയ്യാറാക്കാനും ഉള്ള സ്ക്രിപ്റ്റുകളും ഉണ്ടു്. ഇവയും പുനരുപയോഗിക്കാം. ഇങ്ങനെ നിർമിക്കുന്ന പുതിയ ഫോണ്ടുകൾ സ്വതന്ത്ര ലൈസൻസിലുള്ള ഫോണ്ടുകളാവണം എന്നു പ്രത്യേകം പറയേണ്ടതില്ലല്ലോ. ഇതിനെപ്പറ്റി SMC യുടെ ബ്ലോഗിൽ ഒരു ലേഖന പരമ്പരഉണ്ടു്. വായിക്കുന്നതു് നന്നാവും.

എത്ര സമയമെടുക്കും?

പുതിയൊരു ഫോണ്ട് നിർമിക്കുന്നതു് കലാപരമായ ഒരു പ്രവൃത്തിയാണു്. അതുകൊണ്ടുതന്നെ എത്ര സമയം എടുക്കും എന്നതു് പറയാൻ പറ്റില്ല. ടൈപ്പോഗ്രഫർക്കു തൃപ്തിയാവും വരെ അതു് മാറ്റിമാറ്റി വരച്ചുകൊണ്ടിരിക്കും. രചന, മീര ഫോണ്ടുകളൊക്കെ വർഷങ്ങളോളം നീണ്ടുനിന്ന അധ്വാനത്തിന്റെ ഫലമാണ്. ഞാൻ ചെയ്ത ചിലങ്ക ഫോണ്ട് രണ്ടു മാസത്തെ സമയമെടുത്തുവെങ്കിൽ രണ്ടാമതു ചെയ്ത മഞ്ജരി ഫോണ്ട് ഒന്നരക്കൊല്ലം എടുത്തു. എല്ലാ ദിവസവും രാവിലെ മുതൽ വൈകുന്നേരം വരെ ഫോണ്ട് നിർമാണത്തിൽ ഏർപ്പെട്ടു എന്ന് തെറ്റിദ്ധരിക്കരുതു്. ജോലിയും മറ്റു തിരക്കുകളും കഴിഞ്ഞു കിട്ടുന്ന ചുരുക്കം ചില മണിക്കൂറുകളൊക്കെ ഉപയോഗിച്ചാണ് ഫോണ്ടിന്റെ നിർമാണത്തിൽ സമയം ചെലവഴിക്കുന്നതു്. കണ്ണിന്റെ സൂക്ഷ്മമായ ഉപയോഗം ആവശ്യപ്പെടുന്ന പ്രവൃത്തിയായതിനാൽ അധികസമയം ഒരു ദിവസം വരക്കാൻ സാധിക്കുകയുമില്ല.

പൊതുവായ ഉപയോഗത്തിനുള്ള ഫോണ്ടുകൾ റിലീസ് ചെയ്ത ശേഷം വിവിധ കമ്പ്യൂട്ടിങ്ങ് ഉപകരണങ്ങൾക്കു വേണ്ടിയും പുതുതായിറങ്ങുന്ന ഓപ്പറേറ്റിങ്ങ് സംവിധാനങ്ങൾക്കു വേണ്ടിയും ടെസ്റ്റ് ചെയ്യുകയും പുതുക്കിക്കൊണ്ടിരിക്കുകയും വേണം. ഇതു് ഒരുപാടു സമയവും ഒരുപാടുവർഷത്തെ തുടർച്ചയായ മെയിന്റനൻസും ആവശ്യപ്പെടുന്ന പ്രവൃത്തിയാണ്. ഒരു സോഫ്റ്റ്‌വെയർ പോലെ ഫോണ്ടുകളുടെ പുതിയ പതിപ്പുകൾ റിലീസ് ചെയ്യുന്നു. ഉദാഹരണത്തിനു് സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് പുറത്തിറക്കിയ എല്ലാ ഫോണ്ടുകളിലും സജീവമായ മെയിന്റനൻസ് നടക്കുന്നതും പുതിയ പതിപ്പുകൾ ഇറക്കുന്നതും കാണാൻ സാധിക്കും. റിലീസ് ചെയ്യുന്നതോടെ തീരുന്നതല്ല ഫോണ്ട് നിർമാണമെന്നർത്ഥം.

പൊതു ഉപയോഗത്തിനുള്ള നല്ലൊരു ഫോണ്ടെന്നാലെന്താണ്?

പരീക്ഷമെന്നതിലുപരി സീരിയസ്സായി എല്ലാവർക്കും ഉപയോഗിക്കാവുന്ന ഒരു ഫോണ്ട് രൂപകല്പന ചെയ്തു പുറത്തിറക്കുക എന്നതു് ശ്രമകരമായ ജോലിയാണ്. ഇത്തരം ഒരു ഫോണ്ടു് ചിത്രീകരണപ്പിഴവുകളില്ലായെന്നുറപ്പു വരുത്താനുള്ള ടെസ്റ്റിങ്ങ് ചെയ്യണം. അതു് പല ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിൽ, പല അപ്ലികേഷനുകളിൽ ടെസ്റ്റ് ചെയ്യണം. ഫോണ്ടിന്റെ പല വലിപ്പങ്ങളിൽ വായനയ്ക്കനുയോജ്യമാണെന്നു ഉറപ്പുവരുത്തണം. അതുതന്നെ പ്രിന്റ്, സാധാരണ കമ്പ്യൂട്ടർ സ്ക്രീൻ, മൊബൈൻ ഡിവൈസുകൾ, ഉയർന്ന റെസലൂഷനും പിക്സൽ ഡെൻസിറ്റിയുമുള്ള സ്കീനുകൾ എന്നിവയിൽ ടെസ്റ്റ് ചെയ്യണം.  ഒറ്റയൊറ്റ അക്ഷരങ്ങളായും വാക്കുകളായും പാരഗ്രാഫായും പേജായും തലക്കെട്ടായും ടെസ്റ്റ് ചെയ്യണം.

ഇതിനുള്ള ഒരു സൂത്രപ്പണി സ്വന്തം കമ്പ്യൂട്ടറിലെ ഡിഫോൾട്ട് ഫോണ്ടായി തുടക്കം മുതലേ ഉപയോഗിക്കുക എന്നതാണ്. കൂടാതെ എല്ലാ അക്ഷരങ്ങളും വരച്ചുകഴിഞ്ഞാൽ അടുത്ത സുഹൃത്തുക്കളോടും ഇങ്ങനെ ചെയ്തു സഹായിക്കാൻ ആവശ്യപ്പെടുക. അങ്ങനെ നിത്യോപയോഗത്തിൽ കാണുന്ന പ്രശ്നങ്ങൾ പരിഹരിച്ചാൽതന്നെ നല്ലൊരു ഫോണ്ടായി മാറും.

ചെറിയൊരു പരിശീലനം

ഇത്രയൊക്കെ വായിച്ചാലും പുതിയൊരു ഫോണ്ട് ചെയ്യാൻ മാത്രം ആത്മവിശ്വാസം ഉണ്ടാവില്ലെന്നറിയാം. അതിനാൽ ഒരു കൈ നോക്കാൻ ചെറിയൊരു പരിശീലനം താഴെക്കൊടുക്കുന്നു. കാര്യങ്ങൾ വേഗത്തിലാക്കാൻ വേണ്ടി നമ്മൾ ചെയ്യാൻ പോകുന്നതു് നിലവിലെ ഒരു ഫോണ്ടെടുത്തു് അതിലെ ചില അക്ഷരങ്ങൾ മാറ്റിവരച്ചു് കമ്പൈൽ ചെയ്തു ഇൻസ്റ്റാൾ ചെയ്തു് ഉപയോഗിച്ചുനോക്കലാണ്. അധികം പഴയതല്ലാത്ത ഒരു ലിനക്സ് ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റം നിങ്ങൾ ഉപയോഗിക്കുന്നുവെന്നും അതിലെ ടെർമിനൽ അത്യാവശ്യം ഉപയോഗിക്കനറിയാം എന്നുമുള്ള വിശ്വാസത്തോടെ. (സ്വതന്ത്ര സോഫ്റ്റ്‌വെയറുപയോഗിച്ചുള്ള ഫോണ്ട് രൂപകല്പനയേ എനിക്ക് ഏറ്റവും പരിചയം. അതുകൊണ്ടാണ്).

  1. ആദ്യപടിയായി നിലവിലെ ഒരു ഫോണ്ടിന്റെ സോഴ്സ് കോഡ് എടുത്തു് കമ്പൈൽ ചെയ്യാൻ പഠിക്കലാണ്. ഇതിനായി https://github.com/smc/chilankaഎന്ന ചിലങ്ക ഫോണ്ടിന്റെ റിപ്പോസിറ്ററിയിൽ പോയി Clone or Download എന്ന ബട്ടണിൽ ക്ലിക്കു ചെയ്ത് Zip ആയി സോഴ്സ് കോഡ് ഡൌൺലോഡ് ചെയ്യുക. അതൊരു ഫോൾഡറിലേക്ക് തുറന്നിടുക(extract)
  2. നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ താഴെപ്പറയുന്ന സോഫ്റ്റ്‌വെയർ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക:
    1. fontforge
    2. python-fontforge
    3. build-essential
    4. python-pip
  3. അതിനുശേഷം ചിലങ്ക കോഡുള്ള ഫോൾഡറിൽ നിന്ന് താഴെപ്പറയുന്ന കമാന്റ് റൺ ചെയ്യുക. pip install -r tools/requirements.txt
  4. ശേഷം make all എന്ന കമാന്റ് റൺ ചെയ്യുക. അപ്പോൾ test എന്ന ഫോൾഡറിൽ ഒരു പിഡിഎഫ് ഫയൽ കാണാം. അതിൽ ഇപ്പോൾ നിങ്ങൾ കമ്പൈൽ ചെയ്ത ഫോണ്ട് ഉപയോഗിച്ച് കുറേ സാമ്പിൾ മലയാളം റെൻഡർ ചെയ്തിരിക്കുന്ന കാണാം.

ഇപ്പോൾ നിങ്ങൾ ഒരു ഫോണ്ട് വിജയകരമായി കമ്പൈൽ ചെയ്ത് ടെസ്റ്റു ചെയ്തു. ഫോൾഡറിൽ കാണുന്ന Chilanka-Regular.ttf ഫയൽ ഇൻസ്റ്റാൾ ചെയ്യുകയുമാവാം. ജിഞ്ജാസുക്കൾക്ക് ഇപ്പോൾ എന്താ സംഭവിച്ചതു് എന്നറിയാൽ ഫയലുകളൊക്കെ തുറന്നു നോക്കാം. Chilanka-Regular.sfd എന്ന ഫയൽ ഫോണ്ട് ഫോർജ് കൊണ്ടു തുറന്നാൽ ചിലങ്ക ഫോണ്ടിലെ എല്ലാ ഗ്ലിഫുകളും കാണാം. features എന്ന ഫോൾഡറിൽ ചിത്രീകരണനിയമങ്ങൾ കോഡ് ചെയ്തതും കാണാം.

ഇനി നമ്മൾ ഇതിലെ ഏതെങ്കിലും ഒരു അക്ഷരം മാറ്റി വരയ്ക്കാൻ പോവുകയാണ്. glyphs എന്ന ഫോൾഡറിൽ കാണുന്ന നൂറുകണക്കിനു svg ഫയലുകളിലാണ് ചിലങ്ക ഫോണ്ടിന്റെ അക്ഷരങ്ങൾ വരച്ചിട്ടുള്ളതു്. അതിലേതെങ്കിലും ഒന്നു തുറന്ന് എഡിറ്റ് ചെയ്യാം. പുതുതായി ഒന്നു വരയ്ക്കണമെങ്കിൽ template.svg എന്ന ഫയൽ തുറന്ന് അതിലെ ഗ്രിഡ് ഒക്കെ ഉപയോഗിച്ച് വരയ്ക്കാം. ഇങ്ക് സ്കേപ്പ് ഉപയോഗിക്കാം. അല്ലെങ്കിൽ വേറേതെങ്കിലും നിങ്ങൾക്കറിയുന്ന svg എഡിറ്റർ ഉപയോഗിക്കാം. ക എന്ന ഒരൊക്ഷരം ഇങ്ക്‌സ്കേപിൽ വരക്കുന്ന ഒരു വീഡിയോഒരുദാഹരണത്തിന് വേണ്ടി ഞാൻ കുറേ കാലം മുമ്പ് യുട്യൂബിൽ ഇട്ടിട്ടുണ്ട്. ശ്രദ്ധിക്കേണ്ട ഒരു കാര്യം സ്ട്രോക്കുകളെ പാത്ത് ആക്കണം വരച്ചു കഴിഞ്ഞാൽ എന്നതാണ്. അങ്ങനെ വരച്ച ഇമേജ് സെലക്ട് ചെയ്ത് കോപി ചെയ്ത് ഫോണ്ട് ഫോർജിൽ തുറന്നിരിക്കുന്ന അതേ അക്ഷരത്തിൽ കൊണ്ടുപോയി പേസ്റ്റ് ചെയ്യുക. ഫോണ്ട്ഫോർജിൽ ആ മാറ്റം സേവ് ചെയ്യണം. എന്നിട്ട് make all എന്ന കമാന്റ് അടിക്കുക. നേരത്തെ പറഞ്ഞ പിഡിഎഫിൽ നിങ്ങൾ ഇപ്പോൾ മാറ്റിവരച്ച അക്ഷരങ്ങൾ കാണും!.

മേൽ വിവരിച്ച പരിശീലനം അത്ര എളുപ്പമല്ല എന്നറിയാം. ടൂളുകൾ ഉപയോഗിക്കാൻ പരിശീലിക്കേണ്ടതുണ്ട്, വരയ്ക്കാൻ പരിശീലിക്കേണ്ടതുണ്ടു്, ടെർമിനൽ ഉപയോഗിക്കാൻ അറിഞ്ഞിരിക്കണം. അങ്ങനെ കുറേ കടമ്പകളുണ്ടു്. പക്ഷേ ഈ ഓരോ സ്റ്റെപ്പും പരിശീലിക്കാതെ നിവൃത്തിയില്ല. അതിനു നിങ്ങൾ കുറേ സമയവുമെടുത്തേക്കും. നിങ്ങൾ ഇതിൽ വിജയിച്ചില്ലെങ്കിലും സങ്കടപ്പെടേണ്ട. വർഷങ്ങളുടെ പരിശീലനവും നിരീക്ഷണവും ശരാശരിയിൽ കവിഞ്ഞ കമ്പ്യൂട്ടർ പ്രയോഗത്തിലുള്ള കഴിവുകളും ഫോണ്ട് നിർമാണത്തിനാവശ്യമുണ്ടെന്നു മനസ്സിലായാലും മതി.

ചുരുക്കത്തിൽ

  1. അക്ഷരങ്ങളെ ടൈപ്പൊഗ്രഫി എന്ന കാഴ്ചപ്പാടിൽ നീരിക്ഷിക്കുക, ആസ്വദിക്കാൻ ശീലിക്കുക. നിലവിലെ ഫോണ്ടുകളും അവയുടെ സോഴ്സ് കോഡും പഠിക്കുക.
  2. വിവിധ തരം വരകൾ പ്രാക്ടീസ് ചെയ്യുക – പേപ്പറിലാവാം ഇമേജ് എഡിറ്ററിലാവാം
  3. നല്ല ഒരു ഡിസൈൻ സങ്കൽപം ഉണ്ടാക്കിയെടുക്കുക. പൂർണ്ണമായ ഒരു ഫോണ്ടു് എന്ന ലക്ഷ്യത്തിലേക്ക് ആ സങ്കല്പം യോജിക്കുന്നതാണോയെന്നാലോചിക്കുക. കുറച്ച് സാമ്പിളുകൾ വരച്ചുനോക്കുക.
  4. നല്ലൊരു ഫോണ്ട് എഡിറ്റർ/ഇമേജ് എഡിറ്റർ തിരഞ്ഞെടുക്കുക. ഫോണ്ട് ടൂൾകിറ്റായി നിലവിലെ സ്വതന്ത്ര ഫോണ്ടുകളുടെ സോഴ്സ് കോഡ് ഉപയോഗിക്കുക – അതോടൊപ്പം ഫോണ്ട് കമ്പൈൽ ചെയ്യാനും ടെസ്റ്റ് ചെയ്യാനുമുള്ള ടൂളുകൾ കിട്ടുന്നു. ലൈസൻസിങ്ങ് ശ്രദ്ധിക്കുക.
  5. അക്ഷരങ്ങൾ വരച്ചു തുടങ്ങുക. ഫോണ്ട് എഡിറ്ററിൽ ചേർക്കുക. പല വട്ടം മാറ്റിവരയ്ക്കേണ്ടിവരും.
  6. പല രീതിയിലുള്ള ടെസ്റ്റുകൾ ചെയ്യുക.
  7. ഫോണ്ട് റിലീസ്
  8. മെയിന്റനൻസ്

സഹായം വേണമെങ്കിൽ

സീരിയസ്സായി ഒരു ഫോണ്ടിന്റെ നിർമാണത്തിലേർപ്പെടാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെങ്കിൽ സഹായിക്കുന്നതിൽ സന്തോഷമേയുള്ളൂ. സ്വതന്ത്ര ലൈസൻസിലുള്ള ഫോണ്ടായിരിക്കണം എന്ന ഒറ്റ നിബന്ധനയേ എനിക്കുള്ളൂ. ചോദിക്കാൻ മടിക്കേണ്ട.

Rajeesh K Nambiar: Switching Raspbian to Pixel desktop

$
0
0

Official Raspbian images based on Debian Stretch by default has the Pixel desktop environment and will login new users to it. But if you have had a Raspbian installation with another DE (such as LXDE), here are the steps to install and login to the Pixel desktop.

  1. apt-get install raspberrypi-ui-mods
  2. sed -i 's/^autologin-user=pi/#autologin-user=pi/' /etc/lightdm/lightdm.conf
  3. update-alternatives --set x-session-manager /usr/bin/startlxde-pi
  4. sed -i 's/^Session=.*/Session=lightdm-xsession/' ${USER}/.dmrc

Make sure the user’s ‘.dmrc’ file is updated with the new startlxde-pi session as that is where lightdm login manager looks to decide which desktop should be launched.


Tagged: linux

Santhosh Thottingal: മലയാളം അകാരാദിക്രമം

$
0
0

ഓരോ ഭാഷയിലും അതിലെ ലിപികളെ ഒരു പ്രത്യേക ക്രമത്തിൽ എഴുതുന്ന ഒരു കീഴ്‌വഴക്കം ഉണ്ടു്. ഇംഗ്ലീഷിൽ A,B,C,D എന്ന ക്രമമാണെങ്കിൽ മലയാളത്തിലത് അ, ആ, ഇ, ഈ എന്നിങ്ങനെ തുടങ്ങുന്ന ക്രമമാണുള്ളതു്. ഇങ്ങനെ ഒരു കീഴ്‌വഴക്കം കൊണ്ടു് പല പ്രയോജനങ്ങളുമുണ്ടു്. നമുക്കെല്ലാം പരിചയമുള്ള നിഘണ്ടുവിൽ നോക്കലും,  കുറേ പേരുടെ പട്ടികയിൽ നിന്നെളുപ്പത്തിൽ ഒന്ന് കണ്ടുപിടിക്കലും ഒക്കെ ഉദാഹരണം. കീഴ്‌വഴക്കം എന്നതിൽ കവിഞ്ഞ് എന്തെങ്കിലും കൃത്യമായ ശാസ്ത്രീയതയൊന്നും ഈ ക്രമീകരണത്തിൽ കാണണമെന്നില്ല.

അയിൽ തുടങ്ങുന്ന ഈ ക്രമത്തിനു് മലയാളത്തിൽ അകാരാദിക്രമമെന്നും പറയുന്നു. അക്ഷരമാല പൊതുവിൽ അകാരാദിക്രമത്തിലാണു് എഴുതുന്നതും പഠിക്കുന്നതും. സാമാന്യേന ഈ ക്രമം മലയാളികളെല്ലാം അറിഞ്ഞിരിക്കുന്നതാണ്. അക്ഷരങ്ങളൊറ്റയ്ക്കുള്ള ക്രമം അല്ലാതെ കുറേ വാക്കുകൾ തന്നാൽ അതെങ്ങനെ ക്രമീകരിക്കും എന്ന പ്രശ്നം കുറേകൂടി സങ്കീർണ്ണമാണ്. അവിടെ അക്ഷരങ്ങളുടെ കൂടെ സ്വരചിഹ്നങ്ങൾ ചേരും, കൂട്ടക്ഷരങ്ങൾ വരും, ചില്ലുകൾ വരും. ഭാഷയുടെ തന്നെ ചില പ്രത്യേകതകളായ റ്റ, ന്റ എന്നിവ വരും, എഴുത്തിലെ വൈവിധ്യങ്ങളായ നൻമ, നന്മ പോലുള്ള വാക്കുകൾ വരും. അവിടെയാണ് അക്ഷരമാലാക്രമം എന്ന ലാളിത്യത്തിൽ നിന്നും സങ്കീർണ്ണവും പലപ്പോഴും കൃത്യതയില്ലാത്തതുമായ ക്രമീകരണ നിയമങ്ങളിലേക്ക് നാം എത്തുന്നതു്.

അച്ചടി, എഴുത്തു് തുടങ്ങിയ മാർഗങ്ങളിൽ നിന്നും ഡിജിറ്റൽ ഡാറ്റ എന്ന രൂപത്തിലേക്ക്  ഭാഷ എത്തുമ്പോൾ ഈ ക്രമത്തിനു് ഒരുപാടു പ്രാധാന്യം കൈവരുന്നുണ്ടു്. വിവരങ്ങളുടെ കൂട്ടങ്ങളെ പ്രോഗ്രാമുകൾക്കു് അടുക്കിവെയ്ക്കേണ്ടിവരുന്നതു് ഡിജിറ്റൽ ലോകത്തിലെ ഒരു സാധാരണ കാര്യമാണ്. മലയാളം വാക്കുകളെ സംബന്ധിച്ച അകാരാദിക്രമീകരണ നിയമങ്ങൾ അപ്പോൾ കൈകാര്യം ചെയ്യുന്നതു് പ്രോഗ്രാമുകളാണു്. ഈ ലേഖനത്തിൽ നമ്മൾ ഇതേപറ്റിയാണ് ചർച്ച ചെയ്യുന്നതു്. അകാരാദിക്രമീകരണത്തെ സംബന്ധിച്ച മാനകങ്ങളെന്താണ്, ക്രമീകരണ രീതികളുടെ യുക്തി എന്താണ്, മാനകങ്ങളും നിഘണ്ടുക്കളും ഒക്കെ എങ്ങനെയൊക്കെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു എന്നെല്ലാം ഉദാഹരണങ്ങളുടെ സഹായത്തോടെ നമുക്ക് വിശദമായി പരിശോധിക്കാം

നിഘണ്ടുക്കളിലെ അകാരാദിക്രമം

മലയാളത്തിലെ നിഘണ്ടുക്കൾ പരിശോധിച്ചാൽ അവയുടെ ആമുഖത്തിൽ തന്നെ ഉപയോഗിച്ചിരിക്കുന്ന ക്രമത്തിനെപ്പറ്റി ചെറിയ വിവരണം കാണാനാകും. സ്വരാക്ഷരങ്ങൾ, അഞ്ച് വ്യഞ്ജനങ്ങൾ എന്നീ ക്രമം എല്ലാവരും പാലിക്കുന്നുണ്ടു്. എങ്കിലും ഗുണ്ടർട്ടിന്റെ നിഘണ്ടുവിൽ യ, ര, റ എന്ന ക്രമമാണുള്ളതു്. അതേസമയം ശബ്ദതാരാവലി റ ഏറ്റവും അവസാനം കൊടുക്കുന്നു. ചില്ലുകൾ, കൂട്ടക്ഷരങ്ങൾ എന്നിവയുടെ കാര്യത്തിലും വലിയ വ്യത്യാസങ്ങൾ കാണുന്നുണ്ടു്. അതുകൊണ്ടു് ഏതെങ്കിലും ഒരു നിഘണ്ടു ശരിയാണെന്നോ മറ്റൊന്ന് തെറ്റാണെന്നു പറയാനോ കഴിയില്ല. ഓരോ നിഘണ്ടുവും സ്വീകരിച്ച ക്രമങ്ങളും അതിനു പിന്നിലെ യുക്തിയോ വിശദീകരണമോ മനസ്സിലാക്കാൻ ശ്രമിക്കുക എന്നതിനുമാത്രമേ പ്രസക്തിയുള്ളൂ.

ഈ പ്രശ്നം നിഘണ്ടു പ്രസാധകർ തന്നെ നന്നായി തിരിച്ചറിഞ്ഞിട്ടുണ്ട്. ശബ്ദതാരാവലിയുടെ നാലാംപതിപ്പിന് പ്രസാധകൻ ശ്രീ പി ദാമോദരൻനായർ എഴുതിയ ആമുഖത്തിലെ താഴെക്കൊടുത്തിരിക്കുന്ന ഭാഗം നോക്കൂ.

നിഘണ്ടുക്കൾക്കു പുറമേ കേരള സർക്കാറിന്റെ സർവ്വവിജ്ഞാനകോശത്തിലുംഒരു പ്രത്യേക അകാരാദിക്രമം പിന്തുടരുന്നുണ്ടു്.

ഇവയെല്ലാം ഓരോ ലിപിഗണങ്ങളുടെ അകാരാദിക്രമം വിശദീകരിക്കുമ്പോൾ ഓരോന്നായി പരിചയപ്പെടാം.

സ്റ്റാൻഡേഡുകൾ, ലൈബ്രറികൾ

അകാരാദിക്രമത്തിന്റെ അടിസ്ഥാന തത്വം രണ്ടു വാക്കുകൾ അല്ലെങ്കിൽ ഒന്നോ അധിലധികമോ അക്ഷരങ്ങളുടെ ഒരു ശ്രേണി കിട്ടിയാൽ ഏത് ആദ്യം ക്രമീകരിക്കണം എന്ന String comparison അൽഗോരിതമാണ്. ഈ അൽഗോരിതം എല്ലാ വാക്കുകൾക്കും അപ്ലൈ ചെയുമ്പോൾ ആ വാക്കുകളെല്ലാം ക്രമത്തിലാവും. ഈ അൽഗോരിതത്തെ സംബന്ധിക്കുന്ന പ്രധാന മാനകം ISO 14651ആണ്.

ISO/IEC 14651:2011, Information technology — International string ordering and comparison — Method for comparing character strings and description of the common template tailorable ordering, is an ISO Standard specifying an algorithm that can be used when comparing two strings.

ഈ മാനകമനുസരിച്ചു് ഒന്നിലധികം കൊളേഷൻ സ്പെസിഫിക്കേഷനുകളും ഡാറ്റ സെറ്റുകളും ഉണ്ടു്. അതിലെ ഏറ്റവും പ്രധാനം യുണിക്കോഡ് കൊളേഷൻ അൽഗോരിതം (UCA) ആണ്. യുണിക്കോഡ് എന്ന വലിയ സ്റ്റാൻഡേഡിനകത്ത് ടെക്നിക്കൽ റിപ്പോർട്ട് 10 ആയി വരുന്ന ഈ സ്പെസിഫിക്കേഷൻ , അതിന്റെ കൂടെത്തന്നെ യുണിക്കോഡ് എൻകോഡ് ചെയ്തിട്ടുള്ള എല്ലാ കാരക്ടറുകളുടെയും കൊളേഷൻ ക്രമം പ്രതിപാദിക്കുന്ന Default Unicode Collation Element Table (DUCET)ഇതാണ് ഇന്നത്തെ കാലത്തെ ഏതു ഭാഷയിലെയും അക്ഷരങ്ങളുടെ ക്രമം നിർവചിക്കുന്ന അടിസ്ഥാന പ്രമാണം.

ഈ സ്പെസിഫിക്കേഷൻ പക്ഷേ അതിന്റെ തന്നെ നിർവചനമനുസരിച്ചു് പ്രായോഗികമായി ഉപയോഗിക്കുന്നതിനു് അപൂർണ്ണമാണ്. ഭാഷാ നിയമങ്ങൾ ഇതിന്റെ മുകളിൽ ചേർത്ത് ടെയിലർ ചെയ്യണമെന്ന് അതുതന്നെ അനുശാസിക്കുന്നു.

Tailoring consists of any well-defined change in the Collation Element Table and/or any well-defined change in the behavior of the algorithm. Typically, a tailoring is expressed by means of a formal syntax which allows detailed manipulation of values in a Collation Element Table, with or without an additional collection of parametric settings which modify specific aspects of the behavior of the algorithm. A tailoring can be used to provide linguistically-accurate collation, if desired.

ഇങ്ങനെ ഭാഷയ്ക്കനുരൂപമാക്കിയ ക്രമീകരണ നിയമങ്ങൾ Unicode Common Locale Data Repository [CLDR] എന്ന റിപ്പോസിറ്ററിയിലാണുള്ളതു്. യുണിക്കോഡ് അധിഷ്ഠിതമായ അൽഗോരിതങ്ങൾക്കും മറ്റുമുള്ള ഡാറ്റ സന്നദ്ധപ്രവർത്തകരാണ് ഇവിടെ സംഭരിക്കുന്നതു്. ആർക്കും ഇതിലേക്ക് ഡാറ്റകൾ ചേർക്കുകയും തിരുത്തുകയും ചെയ്യാം. CLDR ൽ യുണിക്കോഡ് കൊളേഷൻ അൽഗോരിതത്തിന്റെ മുകളിലുള്ള, ലിംഗ്വിസ്റ്റിക് കറക്ഷനുകൾ ചെയ്യാനുള്ള തരത്തിൽ CLDR Collation അൽഗോരിതവുംഉണ്ടു്.

പക്ഷേ ഇതൊക്കെയും അൽഗോരിതവും ഡാറ്റയും മാത്രമാണല്ലോ. അതിന്റെ പുറത്തു് ആരെങ്കിലും ശരിക്കും വാക്കുകൾ ക്രമീകരിക്കാനുള്ള പ്രോഗ്രാം എഴുതണമല്ലോ. അങ്ങനെ എഴുതിയ സോഫ്റ്റ്‌വെയർ ലൈബ്രറികളിലൊന്നാണ് ICU Project– International Components for Unicode. ഈ ലൈബ്രറി ഉപയോഗിച്ച് ഒരു അപ്പ്ലിക്കേഷന് ഏതു ഭാഷയ്ക്കുമുള്ള ക്രമീകരണം സാധ്യമാക്കാം.

GNU C library localedata

നേരത്തെ പറഞ്ഞ ISO 14561 അനുസരിച്ചുള്ള വേറെയും അൽഗോരിതവും അതനുസരിച്ച് ഉള്ള അപ്ലിക്കേഷൻ ലൈബ്രറികളുമുണ്ടു്. അതിൽ പ്രധാനം GNU സി ലൈബ്രറിയാണ്. സ്വതന്ത്ര സോഫ്റ്റ്‌വെയർ പ്രസ്ഥാനത്തിന്റെ അതിപ്രധാനവും വളരെ പഴക്കമുള്ളതുമായ സ്വതന്ത്ര സി കമ്പൈലറിന്റെ ഭാഗമാണ് ഈ ലൈബ്രറി. അതിൽ string comparison സംവിധാനമുണ്ടാവുമെന്നു പറയാതെത്തന്നെ അറിയാമല്ലോ. ഈ ലൈബ്രറി പക്ഷേ യുണിക്കോഡ് കൊളേഷൻ ഡാറ്റ ഉപയോഗിക്കുന്നില്ല. പകരം സ്വതന്ത്ര സോഫ്റ്റ്‌വെയർ ഡെവലപ്പർമാർ ചേർത്ത അക്ഷരക്രമീകരണ നിയമങ്ങളാണ് ഉപയോഗിക്കുന്നതു്. സ്വതന്ത്ര സോഫ്റ്റ്‌വെയർ ലോകത്തിലെ ഭൂരിപക്ഷം അപ്ലിക്കേഷനുകളും ഒരുതരത്തിലല്ലെങ്കിൽ മറ്റൊരുതരത്തിൽ ഈ GNU C library യെ ആധാരമാക്കിയായതുകൊണ്ടു് പ്രായോഗികമായി ഇതിൽ എന്തു് അകാരാദിക്രമമാണോ ഉള്ളതു്, അതാണ് കിട്ടുക. ഉദാഹരണത്തിനു ലിനക്സിലെ sort കമാന്റ് ഒക്കെ തരുന്ന മലയാളത്തിന്റെ സോർട്ടിങ്ങ് ഇതുപ്രകാരമാണ്. അതുപോലെ പൈത്തണിലെ Locale packageന്റെ സോർട്ടിങ്ങ്.

GNU C library യുടെ ഉള്ളിലുള്ള മലയാളത്തിന്റെ അകാരാദിക്രമം എഴുതിയിരിക്കുന്നതു് ഞാനാണ്.

അപ്പോൾ നമുക്ക് മൂന്നിടത്തു് നിയമങ്ങളുണ്ടു്:

  1. Unicode Default Collation Element Table  ൽ ഉള്ള മലയാള അക്ഷരങ്ങളുടെ ക്രമം Unicode Collation Algorithm(UCA) അനുസരിച്ചിട്ടുള്ളതു്
  2. CLDR ലെ ഡാറ്റ ഉപയോഗിച്ച് ICU ഇംപ്ലിമെന്റ് ചെയ്ത മലയാളം കൊളേഷൻ
  3. GNU C library യിലെ മലയാളം കൊളേഷൻ.

ഇനി ഈ ലേഖനത്തിൽ മലയാളത്തിലെ അക്ഷരങ്ങളുടെ അകാരാദിക്രമീകരണം ചർച്ച ചെയ്യുമ്പോൾ ഈ മൂന്ന് നിയമങ്ങൾ എങ്ങനെ വ്യത്യാസപ്പെട്ടിരിക്കുന്നു എന്നു വിശദമാക്കുന്നതാണ്.

സ്റ്റാൻഡേഡുകൾ എന്ന ബഹുവചനത്തിന്റെ അനൌചിത്യം ഈ ഭാഗത്തിന്റെ തലക്കെട്ടിനുണ്ടെങ്കിലും അതെങ്ങനെ വന്നു എന്നു മനസ്സിലായിക്കാണുമെന്നു കരുതുന്നു. അല്ലെങ്കിലും സ്റ്റാൻഡേഡ് എപ്പോഴും ബഹുവചനംതന്നെയാണല്ലോ!

പൊതുവായ നിയമങ്ങൾ

അക്ഷരമാലയിലെ പൊതുവായ ക്രമം താഴെക്കൊടുക്കുന്നു:

അ ആ ഇ ഈ ഉ ഊ ഋ എ ഏ ഐ ഒ ഓ ഔ അം അഃ ക ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ത ഥ ദ ഥ ന പ ഫ ബ ഭ മ യ ര ല വ ശ ഷ  സ ഹ ള ഴ റ

ഇതിൽ, റ അവസാനം കൊടുത്തിരിക്കുന്നതു് എല്ലാ നിഘണ്ടുക്കളും ഒരു പോലെ പാലിക്കുന്നില്ല. ഉദാഹരണത്തിന്  1871 ലെ ഗുണ്ടർട്ടിന്റെ നിഘണ്ടുവിൽ ര കഴിഞ്ഞ് റ കൊടുത്തിരിക്കുന്നു. കുറച്ചു കൂടി കൃത്യമായിപ്പറഞ്ഞാൽ യ,  ര, ർ, ൎ , റ, റ്റ, ല എന്ന ക്രമമാണ് ഗുണ്ടർട്ട് ഉപയോഗിക്കുന്നതു്.

ഇതേക്രമം സർവവിജ്ഞാനകോശവും പിന്തുടരുന്നു. അർക്കൻ  കഴിഞ്ഞ് ‘ല, ശ, സ’കളിൽ അനേകം പദങ്ങൾ വന്നശേഷം അറ കൊടുക്കുന്നതിന് ഉപപത്തിയില്ല – എന്ന് വിശദീകരണം കൊടുത്തിരിക്കുന്നു.

മലയാളത്തിന്റെ യുണിക്കോഡ് ബ്ലോക്ക് ര, റ എന്ന രീതിയിലാണ് കോഡ് പോയിന്റുകൾ കൊടുത്തിട്ടുള്ളത്. രയുടെ കോഡ് പോയിന്റ് 0D30, റയുടെത് 0D31, അതുകഴിഞ്ഞ ലയുടെത് 0D32 എന്ന രീതിയിൽ. ലിംഗ്വിസ്റ്റിക് നിയമങ്ങളോ യുണിക്കോഡ് കൊളേഷൻ നിയമങ്ങളോ പാലിക്കാത്ത ഒരു സിസ്റ്റത്തിന്റെ ഫോൾബാക്ക് ക്രമം അക്ഷരങ്ങളുടെ കോഡ് പോയിന്റ് ക്രമം ആയിരിക്കും.

മലയാളം യുണീക്കോഡ് ബ്ലോക്കിലെ അക്ഷരങ്ങളുടെ ക്രമം

ശ്രീകണ്ഠേശ്വരത്തിന്റെ ശബ്ദതാരാവലിയുടെ ആദ്യപതിപ്പുകൾ പക്ഷേ ര, ർ, ൎ എന്ന ക്രമവും, ല, വ, ശ, ഷ, സ, ഹ, ള, ഴ എന്നിവയ്ക്ക് ശേഷം ഏറ്റവും അവസാനം റ-യും കൊടുക്കുന്നു. ശബ്ദതാരാവലിയുടെ രണ്ടാംപതിപ്പാണ് ഞാൻ പരിശോധിച്ചത്. ശബ്ദതാരാവലിയുടെ പരിഷ്കരിച്ച പുതിയ പതിപ്പ് – പതിപ്പ് 39 – ഇതേ ക്രമം തന്നെയാണെങ്കിലും ബിന്ദുരേഫം- ൎ എടുത്തുകളഞ്ഞിരിക്കുന്നു.

ശബ്ദതാരാവലി രണ്ടാംപതിപ്പ് – ഴ യ്ക്ക് ശേഷം റ വരുന്നു.

സോഫ്റ്റ്‌വെയറുകളുടെ കാര്യം വരുമ്പോൾ നേരത്തെപ്പറഞ്ഞ എല്ലാ സിസ്റ്റങ്ങളും ഒരേ ക്രമം പിന്തുടരുന്നു.

ചന്ദ്രക്കല, ചില്ലക്ഷരങ്ങൾ, സംവൃതോകാരം

ചന്ദ്രക്കലയെ അകാരാദി ക്രമത്തിൽ എങ്ങനെ പരിഗണിക്കുന്നു എന്നതനുസരിച്ചു് അകാരാദിക്രമത്തിൽ വിവിധങ്ങളായ സമ്പ്രദായങ്ങൾ ഉണ്ടു്.

അകാരാദിക്രമത്തെ ലിപിസ്വരൂപത്തിന്റെ അടിസ്ഥാനത്തിൽ നിർവചിക്കുന്ന സമ്പ്രദായങ്ങളും, വർണ്ണവ്യവസ്ഥയുടെ(Phonetic nature)  അടിസ്ഥാനത്തിൽ നിർവചിക്കുന്ന സമ്പ്രദായങ്ങളും ഉണ്ടു്.  ലിപിസ്വരൂപത്തിൽ നിർവചിക്കുമ്പോൾ അക്ഷരമാലയിലെ സ്വരങ്ങളും, ക, ച, ട, ത, പ തുടങ്ങിയ വ്യഞ്ജനങ്ങളും ആണ് പ്രാഥമിക കണികകൾ. അതേ സമയം വർണ്ണവ്യവസ്ഥയിൽ വർണങ്ങളാണ് അടിസ്ഥാന കണികകൾ.

വർണം എന്നതുകൊണ്ട് ഉദ്ദേശിക്കുന്നതു് ഒരുദാഹരണം കൊണ്ടു് വ്യക്തമാക്കാൻ ക എന്ന അക്ഷരം എടുക്കുക. ഇതിലെ അടിസ്ഥാന ഉച്ചാരണ ഘടകം ക് എന്ന ശുദ്ധവ്യഞ്ജനം അഥവാ സ്വരം ചേരാത്ത വ്യഞ്ജനം ആണ്. ക എന്നതു് ക് + അ എന്നീ രണ്ട് വർണ്ണങ്ങൾ കൂടിച്ചേന്നതാണെന്നു വരുന്നു.

അതേ സമയം ക എന്നതു് പിരിക്കാനാകാത്ത ഒരു അക്ഷരമാണെന്ന അടിസ്ഥാനത്തിലാണ് പരിഗണിക്കുന്നതെങ്കിലോ? ക് എന്നത് ക യുടെ കൂടെ ചന്ദ്രക്കല ചേർന്ന രൂപമാണെന്നും വരുന്നു.

വർണം, അക്ഷരം, ലിപി എന്നിവ മാറിപ്പോകാതെ മനസ്സിലാക്കാൻ അവയെന്തെന്നു താഴെ വ്യക്തമാക്കുന്നു.

  • വർണം – സ്വരം ചേരാത്ത ഉച്ചാരണയോഗ്യമല്ലാത്ത ശബ്ദഘടകം. ഉദാഹരണം  ക്, ച്, ട്, ത്, പ്. സ്വനിമം (phoneme) എന്നും അറിയപ്പെടുന്നു.
  • അക്ഷരം – വർണത്തിൽ സ്വരം ചേർത്ത ഉച്ചാരണയോഗ്യമായത്. ഇതിനായി വ്യഞ്ജനങ്ങളുടെ കൂടെ സ്വരങ്ങൾ ചേർക്കുന്ന. പൊതുസ്വരമായ അ ചേർത്തു് സ്വരചിഹ്നമില്ലാതെ ക എന്നെഴുതി ക് എന്ന വർണത്തെ ഉച്ചാരണസൌകര്യാർത്ഥം എഴുതുന്നു. ഒന്നിലധികം വ്യഞ്ജനങ്ങളും അക്ഷരം ആണ്. സ്വാതന്ത്ര്യം എന്ന വാക്കിൽ മൂന്ന് അക്ഷരങ്ങളുണ്ടെന്നാണ് നമ്മൾ പറയാറെന്നോർക്കുക. Syllable എന്നു ഇംഗ്ലീഷിൽ പറയാം.
  • ലിപി – അക്ഷരങ്ങളെ എഴുതാൻ ഉപയോഗിക്കുന്ന ചിഹ്നങ്ങളുടെ വ്യവസ്ഥ

അകാരാദി എന്നും അക്ഷരമാലാക്രമം എന്നും പറയുമ്പോൾ വർണങ്ങൾ (phonemes) ആയി പിരിച്ച് അവയുടെ ക്രമമാണ് നോക്കേണ്ടത് എന്ന പ്രമാണമനുസരിക്കുന്ന സമ്പ്രദായം മിക്ക നിഘണ്ടുക്കളും പിന്തുടരാൻ ശ്രമിച്ചിട്ടുണ്ടു്.

ഉദാഹരണത്തിന് കടല്(ൽ), കടല എന്ന 2 വാക്കുകൾ, ശബ്ദതാരാവലി, പച്ചമലയാളം നിഘണ്ടു, സർവവിജ്ഞാനകോശം എന്നിവയെല്ലാം കടല്(ൽ), കടല എന്ന ക്രമത്തിൽ തന്നെ കൊടുക്കുന്നു.

പക്ഷേ ഗ്നു സി ലൈബ്രറിയൊഴികെയുള്ള സംവിധാനങ്ങൾ വർണങ്ങളെ അടിസ്ഥാനമാക്കിയല്ല ക്രമീകരിക്കുന്നതു്. ചന്ദ്രക്കലയും ചില്ലും എല്ലാ സ്വരചിഹ്നങ്ങളും കഴിഞ്ഞാണു് അവയിൽ വരുന്നതു്.

ചന്ദ്രക്കലയുടെ അതേ സ്വഭാവമല്ലേ ചില്ലിനും – സ്വരം ചേരാത്ത ശുദ്ധവ്യഞ്ജനം? ആ യുക്തി അനുസരിച്ച് ല്(ൽ) , ല എന്ന ക്രമം വരും.  മുകളിൽ glibc സിസ്റ്റം ഈ രിതി പിന്തുടരുന്നതായി കാണാം.

നിഘണ്ടുക്കളും അങ്ങനെത്തന്നെ.

ശബ്ദതാരാവലി – പരിഷ്കരിച്ച പതിപ്പ്. ചില്ലക്ഷരം ർ, ര യുടെ മുമ്പ് വരുന്നു.

ചന്ദ്രക്കലയുടെ ഉപയോഗം ചില്ലിനു സമാനമായ സ്വരമില്ലാത്ത വ്യഞ്ജനം ഉണ്ടാക്കലാണെന്നു പറഞ്ഞാൽ അതു് പൂർണ്ണമായും ശരിയാവില്ല. “അത്”, “കാല്”, “ചോറ്” എന്നീ വാക്കുകളൊക്കെ ഉച്ചരിച്ചുനോക്കൂ.  കാല് എന്നതിലെ ല് ന്റെ ഉച്ചാരണമാണോ കാൽ എന്നതിലെ ൽ ന്റെ ഉച്ചാരണം? അല്ലല്ലോ? ഈ വ്യത്യാസത്തിന്റെ കാരണം മനസ്സിലാക്കാൻ സംവൃതോകാരം എന്താണെന്നറിയണം.

കാല് എന്നു പറയുമ്പോൾ ല് എന്നതിന്റെ ഉച്ചാരണത്തിൽ ല + ഉ + ് എന്നീ വർണങ്ങൾ അടങ്ങിയിട്ടുണ്ടു്. പക്ഷേ അതു് അതേപോലെ എഴുതുമ്പോൾ ലു് എന്നാണെഴുതേണ്ടതു്. കാലു് എന്ന്. ഈ ലേഖനത്തിൽ ഞാൻ ഈ ഉകാരവും ചന്ദ്രക്കലയും ഇട്ടെഴുതുന്ന ശൈലി വ്യാപകമായി ഉപയോഗിച്ചിരിക്കുന്നതു് ശ്രദ്ധിച്ചിരിക്കുമല്ലോ. ചുരുക്കത്തിൽ ഉ+് എന്നതിനെ സംവൃതോകാരം എന്നു വിളിക്കാം. കാലു് എന്നു് ഇന്നധികമാരും എഴുതാറില്ല. കാല് എന്ന് ലളിതമായെഴുതി ഉ കാരം കൂടി ഉച്ചരിക്കാറാണു പതിവ്. സംവൃതോകാരം കാണിക്കാൻ ഉ കാരം പ്രത്യേകം എഴുതേണ്ടതുണ്ടോ ഇല്ലയോ എന്ന കാര്യങ്ങളും സംവൃതോകാരത്തിന്റെ സ്വഭാവവും മലയാളവ്യാകരണവിദഗ്ദ്ധൻമാർക്കിടയിൽ വ്യാപകമായ ചർച്ച ചെയ്യപ്പെട്ട വിഷയമാണു്.

എന്തായാലും കാലു് എന്നു ഞാൻ എഴുതിയെന്നിരിക്കട്ടെ, അതിൽ ഉ ചിഹ്നമുണ്ടുതാനും. കാൽ, കാല്, കാല്, കാലു്, കാല എന്നീ വാക്കുകൾ ഏത് ക്രമത്തിൽ വരും?

കാൽ, കാല് എന്നിവ കാല എന്നതിനു മുമേ വരുമെന്നു നമ്മൾ നേരത്തേ കണ്ടു. UCA, ICU(CLDR) എന്നിവ ആ ക്രമം  പിന്തുടരുന്നില്ലെന്നും. കാലു്, കാലു എന്നിവയോ? അവയിലെ വർണങ്ങൾ പിരിച്ചെഴുതിനോക്കാം:

കാലു് = ക് + ആ + ല് + ഉ + ്

കാലു = ക് + ആ + ല് + ഉ

അതുപ്രകാരം ലു എന്നതിന്റെ പൂർണ്ണ ഉച്ചാരണത്തിലേക്കെത്താത്ത പാതിവഴിയാണ് കാലു്. അതുകൊണ്ട് കാലു്, കാല് എന്ന ക്രമം വരണം. ഈ ക്രമം glibc അനുസരിച്ചിരിക്കുന്നതു് താഴെക്കൊടുത്തിരിക്കുന്ന ചിത്രത്തിൽ ശ്രദ്ധിക്കുക.

 

നിഘണ്ടുകളിൽ അങ്ങനെ ഉകാരചിഹ്നമിട്ട് സംവൃതോകാമെഴുതുന്നതു് ഇക്കാലത്തെ നിഘണ്ടുക്കളിൽ ഇല്ലേയില്ല. ഗുണ്ടർട്ടിന്റെ നിഘണ്ടുവിൽ ചോറു, കാലു, കോഴിക്കോടു, വേണാടു. തുടങ്ങി പൂർണ്ണ ഉകാരമുമ്പയോഗിച്ചെഴുതുന്ന ശൈലിയാണുള്ളതു്. ശബ്ദതാരാവലിയുടെ ആദ്യകാല പതിപ്പിൽ സംവൃതോകാരം ഉകാരവും ചന്ദ്രക്കലയും ചേർത്തെഴുതുന്നുണ്ടു്. അതിൽ കാട, കാടി, കാടു്, കാടു എന്ന ക്രമം പിന്തുടരുന്നു. അതു് മേൽപ്പറഞ്ഞ വർണങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ള യുക്തിയനുസരിച്ചുള്ളതാണു്.

സർവവിജ്ഞാനകോശത്തിൽ സംവൃതോകാരം ഉകാരലിപി ഉപയോഗിച്ച് എഴുതുന്നില്ലെങ്കിലും ഉകാര ചിഹ്നങ്ങളുടെ തൊട്ടുമുമ്പ് ക്രമീകരിച്ചിരിക്കുന്നു. “മലയാളത്തിൽ സംവൃതോകാരത്തിന് വ്യാകരണമൂല്യം പ്രകടമാകയാൽ അതിന് അകാരാദിയിൽ അംഗീകാരം നൽകിയിരിക്കുന്നു. പട്ട, പട്ട്, പട്ടു. വന്ന, വന്ന്, വന്നു. ചാർ – ചാറ -ചാറി -ചാറ്-ചാറുക ഈ ക്രമത്തിലാണ് അകാരാദി കണക്കാക്കേണ്ടത്.” എന്നു് കൊടുത്തിരിക്കുന്നു.

ഗുണ്ടർട്ടിന്റെ നിഘണ്ടുവിൽ ചില്ലക്ഷരങ്ങൾ എല്ലാം എല്ലാ സ്വരചിഹ്നങ്ങളും കഴിഞ്ഞ് അവസാനമാണ് വരുന്നതു്. എളുപ്പം, എൾ എന്ന ക്രമം വരുന്നുണ്ടു്. പക്ഷേ  നേരെതിരിച്ച് കടൽ, കടല എന്ന ക്രമവും കാണുന്നതുകൊണ്ടു് ഇക്കാര്യത്തിൽ വ്യക്തത പോര.

മലയാള ചില്ലക്ഷരങ്ങളുടെ എൻകോഡിങ്ങിനെക്കുറിച്ചുള്ള നീണ്ട ചർച്ചകളിൽ ചന്ദ്രക്കല, സംവൃതോകാരം എന്നിവയുടെ നിർവചനങ്ങളും സ്വഭാവവും വലിയ ചർച്ചയായിരുന്നു. അകാരാദിക്രമത്തെ മുൻനിർത്തി ഇവയുടെ സ്വഭാവം വിശകലനം ചെയ്യുന്ന Chandrakkala, Samvruthokaram, Chillaksharam – from the perspective of Malayalam Collationഎന്ന ഒരു പ്രബന്ധം ആർ. ചിത്രജകുമാർ, എൻ. ഗംഗാധരൻ എന്നിവർ ചേർന്നു് രചിച്ചിട്ടൂണ്ടു്. ഈ പ്രബന്ധത്തിൽ ഉകാരചിഹ്നമില്ലാതെ എഴുതുകയും സംവൃതമായി ഉച്ചരിക്കുകയും ചെയ്യുന്ന കാല്, അത്  തുടങ്ങിയ ശൈലി PseudoSamvruthokaram എന്ന പേരിട്ട് റെഫർ ചെയ്യുന്നുണ്ടു്. സംവൃതമായി ഉച്ചരിക്കുന്നവ ഉകാരചിഹ്നത്തോടെ തന്നെ എഴുതുക വഴി ചില്ലക്ഷരത്തിന്റെ അറ്റോമിക് എൻകോഡിങ്ങ് അനാവശ്യമാകും എന്ന വാദം മുന്നോട്ടു വെയ്ക്കുന്നുണ്ടു്.  സ്വനിമം/വർണങ്ങളായി അക്ഷരങ്ങളെ വേർപെടുത്തിയെഴുതി കൊളേഷൻ നിർണയിക്കുന്ന ആശയം GNU C Library യിൽ എഴുതാൻ എന്നെ ഈ പ്രബന്ധം വളരെ സഹായിച്ചിട്ടുണ്ടു്. അതു് വായിക്കണമെന്നഭ്യർത്ഥിക്കുന്നു.

ചില്ലക്ഷരങ്ങളുടെ എൻകോഡിങ്ങിനെപ്പറ്റി സൂചിപ്പിച്ചുവല്ലോ. ZWJ ഉപയോഗിച്ചെഴുതുന്ന ചില്ലുകളും (ന്‍ = ന്+ZWJ) ഉം അറ്റോമിക് ആയി എൻകോഡ് ചെയ്ത ചില്ലുകളും ഉപയോഗത്തിലുണ്ടു്. ഈ രണ്ടു ചില്ലുകളെയും ഒരേ പോലെയാണ് glibc, icu, uca എന്നീ സോഫ്റ്റ്‌വെയർ സംവിധാനങ്ങളും ഇപ്പോൾ സോർട്ട് ചെയ്യുന്നതു്.

അനുസ്വാരം

അനുസ്വാരം – ം , മയുടെ ചില്ലായിട്ടാണ് അകാരാദിക്രമത്തിൽ പരിഗണിക്കുന്നതു്. ം == മ്  അതിനാൽ ‘കനകം’ കഴിഞ്ഞേ ‘കനം’ വരൂ. ശബ്ദതാരാവലിയിൽ അങ്ങനെയാണ്. ഗുണ്ടർട്ടിൽ നേരെ മറിച്ചാണ് കാണുന്നത്. Glibc, ICU എന്നിവയും കനകം, കനം എന്നു ക്രമീകരിക്കുന്നു.

കൂട്ടക്ഷരങ്ങൾ

കൂട്ടക്ഷരങ്ങളുടെ ക്രമം അതിനെ വർണങ്ങളാക്കി പിരിച്ചു് ഇടത്തുനിന്നു വലത്തോട്ട് ഒരേസ്ഥാനത്തുള്ളവയുടെ ക്രമം കണക്കാക്കിയാണ്.

താഴെക്കൊടുത്തിരിക്കുന്ന ചിത്രത്തിൽ നിന്നും ഇക്കാര്യം മനസ്സിലാക്കാമെന്നു കരുതുന്നു.

സമാന സ്വരചിഹ്നങ്ങൾ

മലയാളത്തിലെ ഔ ചിഹ്നത്തിനു് ൌ എന്നും ൗ എന്നും ചിഹ്നങ്ങൾ ഉണ്ടു്. പൌർണ്ണമി, പൗർണ്ണമി എന്നിവ ഉദാഹരണങ്ങൾ. ഈ രണ്ടു ചിഹ്നങ്ങളും ഒരേ സ്വനിമത്തെത്തന്നെ സൂചിപ്പിക്കുന്നതിനാൽ അടുത്തടുത്തുവരണം. നിഘണ്ടുക്കൾ ഇതിലേതെങ്കിലും ഒന്നേ ഉപയോഗിക്കാറുള്ളൂവെന്നതിനാൽ ഈ പ്രശ്നം ഉദിക്കുന്നില്ല. സോഫ്റ്റ്‌വെയർ ലൈബ്രറികളിൽ glibc,  ICU എന്നിവ ഈ ബന്ധം തിരിച്ചറിയുന്നുണ്ട്.

ഒ, ഓ, ഔ എന്നിവയുടെ സ്വരചിഹനങ്ങള്‍ യഥാക്രമം ൊ , ോ , ൌ എന്നോ െ+ ാ , േ+ ാ , െ+ ൗ എന്നോ വേർപെടുത്തി എഴുതിയാലും തുല്യമായി കണക്കാക്കും(Canonical Equivalence.)

വിസർഗം, ഹ

ഹ, വിസർഗം എന്നിവയ്ക്ക് സമാന ഉച്ചാരണമായതിനാൽ അവ അടുത്തടുത്തുവരണമെന്നൊരു പ്രമാണം കേട്ടിട്ടുണ്ടെങ്കിലും നല്ലൊരു ഉദാഹരണം അറിയില്ല. ഏതെങ്കിലും നിഘണ്ടുവിലോ സോഫ്റ്റ്‌വെയർ ലൈബ്രറികളിലോ ഇങ്ങനെ ക്രമീകരിച്ചതായി അറിയില്ല.

റ്റ

ഗുണ്ടർട്ടിന്റെ നിഘണ്ടുവിലെപ്പോലെത്തന്നെ റയ്ക്ക് ശേഷം റ്റ ശബ്ദതാരാവലി രണ്ടാം പതിപ്പും  പിന്തുടരുന്നു. മാത്രമല്ല, ശബ്ദതാരാവലിയുടെ ഇന്നത്തെ മുപ്പത്തൊമ്പതാം പതിപ്പും, സുമംഗലയുടെ പച്ചമലയാളം നിഘണ്ടുവും  ഇതേ ക്രമം പിന്തുടരുന്നു.

 

റ്റ – റയ്ക്ക് ശേഷം വരുന്നു – ശബ്ദതാരാവലി രണ്ടാം പതിപ്പ്.

റ്റ = റ + ് + റ എന്ന യുണിക്കോഡ് രീതിവെച്ച്, റയുടെ തൊട്ടുശേഷം തന്നെ റ്റ വരും. ഇത് എല്ലാ ലൈബ്രറികളും ഒരു പോലെ പിന്തുടരുന്നു. എങ്കിലും നേരത്തെപ്പറഞ്ഞ ചന്ദ്രക്കലയുടെ വ്യത്യാസമുണ്ടെന്നു ഓർക്കണം.

റ്റ  യഥാർത്ഥത്തിൽ ഺ ഖരമായും ഩ അനുനാസികമായും വരുന്ന ഒരു വ്യഞ്ജനവർഗത്തിലെ ഺ യുടെ ഇരട്ടിപ്പാണെന്നു കേരളപാണിനീയം പറയുന്നുണ്ടെങ്കിലും ഺ യും റ്റ യും തമ്മിൽ ഒരു ബന്ധവും ഒരു കൊളേഷൻ സിസ്റ്റവും കൊടുക്കുന്നില്ല.

മലയാള അക്കങ്ങൾ

മലയാളം അക്കങ്ങള്‍ അവയുടെ അറബി ലിപികളുടെ കൂടെ തന്നെ വരും. മറ്റുഭാഷകളിലെ അക്കങ്ങൾ ഉണ്ടെങ്കിലും അടുത്തടുത്തുവരും.

പ്രാധാന്യം

ഒരു നീണ്ട പട്ടികയിൽ നിന്നും പെട്ടെന്നൊരു പേരോ മറ്റോ കണ്ടുപിടിക്കുന്നതിനു അകാരാദിക്രമം സഹായിക്കും. അതുപക്ഷേ ഇന്നത്തെ കാലത്തെ സോഫ്റ്റ്‌വെയറുകൾ സെർച്ച് ഫീച്ചർ തരുമെങ്കിലും. തെരഞ്ഞുകണ്ടുപിടിക്കലിലൊതുങ്ങുന്നില്ല, ഒരു പട്ടികയലെ സ്ഥാനവും അകാരാദിക്രമമാണ് തീരുമാനിക്കുന്നതു്. ഉദാഹരണത്തിനു് ഒരു ക്ലാസിലെ ഒരു കുട്ടിയുടെ റോൾ നമ്പർ ക്ലാസിലെ കുട്ടികളുടെ പേരുകൾ സോർട്ട് ചെയ്ത ക്രമമായിരിക്കും തീരുമാനിക്കുന്നതു്.

 

നിഘണ്ടുക്കളിലും സോഫ്റ്റ്‌വെയർ സിസ്റ്റങ്ങളിലും അകാരാദിക്രമത്തിന്റെ കാര്യത്തിൽ ഏകീകൃതസ്വഭാവം ഇല്ല എന്നു മനസ്സിലായല്ലോ. ഏകീകൃതമായ ഒരു ക്രമം ഇല്ലാത്തതിന്റെ കാരണം സാങ്കേതികമല്ല. അങ്ങനെ ഒരു ക്രമത്തിന്റെ നിർവചനം ലഭ്യമല്ല എന്നതുകൊണ്ടാണ്. ആരായിരിക്കും അങ്ങനെ ഔദ്യോഗികമായി ഒരു ക്രമം നിർവചിക്കേണ്ടതു്? യഥാർത്ഥത്തിൽ അകാരാദിക്രമത്തിന്റെ മാനകീകരണത്തെപ്പറ്റി മലയാളം ഉപയോക്താക്കൾ ബോധമുള്ളവരാണോ? എന്തെങ്കിലും പ്രശ്നം അതുണ്ടാക്കുന്നുണ്ടോ? ഇല്ലെങ്കിൽ ഇതു് വെറുമൊരു “പെർഫക്ഷൻ” ഇഷ്യൂ ആണോ?

സാങ്കേതികക്കുറിപ്പുകൾ

  1. glibc collation: ഇതിന്റെ ആദ്യപതിപ്പ് 2009ൽആണെഴുതുന്നതു്. പക്ഷേ പിന്നീട് ശ, ഷ, സ എന്നിവയുടെ ക്രമത്തിൽ ഒരു പിശക് ശ്രദ്ധയിൽ പെടുകയും തിരുത്തുകയുംചെയ്തിട്ടുണ്ടു്. അറ്റോമിക് ചില്ലുകൾ ചേർത്തിട്ടില്ലായിരുന്നതിനാൽ അതും ഇപ്പോൾ ചേർത്തിട്ടുണ്ട്. ഈ മാറ്റങ്ങളെല്ലാം ചേർന്ന glibc യുടെ പതിപ്പ് 2.26 ൽ ആണ് വരുന്നതു്. അതു് ഉബുണ്ടുവിന്റെ അടുത്ത മാസം വരുന്ന പതിപ്പിൽ വരും. ഈ ലേഖനത്തിലെ അകാരാദിക്രമം glibc യുടെ ഈ മാറ്റങ്ങളെല്ലാം ഉള്ള പതിപ്പിലാണ് ടെസ്റ്റ് ചെയ്തിരിക്കുന്നതു്.
  2. CLDR അടിസ്ഥാനമാക്കിയുള്ള ICU കൊളേഷൻ സംവിധാനം ബ്രൌസറുകളിലൊക്കെ ജാവാസ്ക്രിപ്റ്റിൽ നിലവിലുണ്ടു്. അതെങ്ങനെ ഉപയോഗിക്കാമെന്നതിന്റെ ചെറിയൊരു ഡെമോ: https://codepen.io/santhoshtr/pen/NjMXjE
  3. ഈ ലേഖനത്തിൽ മൂന്നു വ്യത്യസ്ത സോഫ്റ്റ്‌വെയർ സംവിധാനങ്ങളിലെ അകാരാദിക്രമം കാണിക്കാൻ വേണ്ടി ചെറിയൊരു അപ്ലിക്കേഷൻ പൈത്തൺ ഉപയോഗിച്ചെഴുതിയിട്ടുണ്ട്. അതിന്റെ സോഴ്സ് കോഡ്: https://gist.github.com/santhoshtr/681e8bb72c63cb74d67d123f4fb7e7be
  4. ചിലയിടത്തു് രണ്ടക്ഷരങ്ങളും തുല്യമായി പരിഗണിക്കും എന്ന് ലേഖനത്തിൽ പറയുമ്പോൾ, അകാരാദിക്രമത്തിൽ അതിനെ മനസ്സിലാക്കേണ്ടത് ഇങ്ങനെയാണ്: അക്ഷരങ്ങൾക്കെല്ലാം ഒരു കൊളേഷൻ വെയിറ്റ് ഉണ്ടു്. അത് ഒരു സംഖ്യ ആണെന്നു കരുതുക. ഇത് തന്നെ പ്രൈമറി കൊളേഷൻ വെയിറ്റ്, സെക്കന്ററി കൊളേഷൻ വെയിറ്റ് എന്നിങ്ങനെ കൂടുതൽ ലെവലുകളാക്കി തിരിച്ചിരിക്കുന്നു. രണ്ട് അക്ഷരങ്ങൾ തുല്യമെന്നൊക്കെ പറയുമ്പോൾ പ്രൈമറി കൊളേഷൻ വെയിറ്റ് തുല്യമാണെന്നും സെക്കന്ററി കൊളേഷൻ വെയിറ്റ് വ്യത്യാസപ്പെട്ടു്, അക്ഷരങ്ങളിലേതു് ആദ്യം വരണമെന്നും തീരുമാനിക്കുന്നു. പ്രൈമറി കൊളേഷൻ വെയിറ്റ് തുല്യമായ അക്ഷരങ്ങളെ string comparison, string search എന്നിവയിലൊക്കെ തുല്യമായി പരിഗണിക്കണം.
  5. glibc പുതിയ യൂണിക്കോഡ് കോഡ്പോയിന്റുകൾ പരിഗണിക്കുന്നില്ല.

പരിശോധിച്ച നിഘണ്ടുക്കൾ

  1.  A Malayalam And English Dictionary – H Gundert, 1871
  2. ശബ്ദതാരാവലി – രണ്ടാം പതിപ്പ്. ശ്രീകണ്ഠേശ്വരം ജി പത്മനാഭപിള്ള, 1931
  3. ശബ്ദതാരാവലി പരിഷ്കരിച്ച പുതിയ പതിപ്പ്: മുപ്പത്തൊമ്പതാം പതിപ്പ് – സാഹിത്യ പ്രവർത്തക സഹകരണ സംഘം. 2013
  4. പച്ചമലയാളം നിഘണ്ടു – സുമംഗല – ഗ്രീൻബുക്സ്, 2016

നിഘണ്ടുക്കളിൽ ആദ്യാവസാനം ഏകദേശം ഒരേ ക്രമം പിന്തുടരുന്നെങ്കിലും മനുഷ്യപ്രയത്നഫലമായതിനാൽ ചില നോട്ടപ്പിശകുകൾ ഒക്കെ ഉണ്ട്. ഉദാഹരണത്തിനു് ശബ്ദതാരാവലി രണ്ടാം പതിപ്പിൽ {ചക്കു്, ചക്ക}, {ചങ്കിടി, ചക്കു്} തുടങ്ങിയ ക്രമങ്ങളിൽ സംവൃതോകാരം പലയിടത്തായി വന്നിരിക്കുന്നു.

 

Santhosh Thottingal: മഞ്ജരി ഫോണ്ട് – പതിപ്പ് 1.3

$
0
0

മഞ്ജരി ഫോണ്ടിന്റെ 1.3 പതിപ്പ് ഇപ്പോൾ ലഭ്യമാണു്.

പ്രധാന മാറ്റങ്ങൾ ഇവയാണ്:

  • കണ്ടീഷണൽ സ്റ്റാക്കിങ്ങ് സംവിധാനം കൂടുതൽ അക്ഷരരൂപങ്ങളിലേക്ക് കൊണ്ടുവന്നു. കൂടുതൽ വിവരങ്ങൾ സ്വതന്ത്ര മലയാളം കമ്പ്യൂട്ടിങ്ങ് ബ്ലോഗിൽ: https://blog.smc.org.in/conditional-stacking/
  • ഫോണ്ട് ഇപ്പോൾ TTF നു പകരം OTF ഫോർമാറ്റിൽ ആണ് സ്വതവേ വരുന്നതു്. മഞ്ജരി രൂപകല്പന ചെയ്തത് OTF ഫോർമാറ്റ് മുന്നിൽ കണ്ടായിരുന്നെങ്കിലും(ക്യുബിക് ബെസിയർ കർവുകൾ) എല്ലാ ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിലും കുറ്റമറ്റതായി കാണാത്തതുകൊണ്ട് TTF ൽ ആയിരുന്നു ആദ്യം പുറത്തിറക്കിയതു്. ഇപ്പോൾ ആ പ്രശ്നങ്ങളൊക്കെ പരിഹരിച്ചിട്ടുണ്ടു്. TTF, Webfonts എന്നിവയും വേണമെങ്കിൽ ഡൌൺലോഡ് ചെയ്യാം.
  • ഫോണ്ട് ഫോർജ് ആയിരുന്നു മഞ്ജരിയടക്കമുള്ള എല്ലാ ഫോണ്ടുകളും എഡിറ്റ് ചെയ്യാൻ ഞങ്ങൾ ഉപയോഗിച്ചിരുന്നതു്. വളരെ പഴയ ആ സോഫ്റ്റ്‌‌വെയർ അതിന്റെ ഡെവലപ്മെന്റ് പതിയെ നിർത്തുകയാണ്. Unified Font Objectഫോർമാറ്റിലേക്ക് എല്ലാ ഫോണ്ടുകളുടെയും സോഴ്സ് കോഡ് മാറുകയും Trufont പോലുള്ള പുതിയ എഡിറ്റർ വരുകയും ചെയ്യുന്നുണ്ട്. ഈ മാറ്റത്തിനൊപ്പം പോകാൻ ആദ്യമായി മഞ്ജരിയുടെ സോഴ്സ് കോഡ് UFO ഫോർമാറ്റിലേക്ക് മാറ്റി. ബാക്കി ഫോണ്ടുകളും പതിയെ അങ്ങനെ മാറ്റി ഫോണ്ട് ഫോർജുമായുള്ള ബന്ധം ഉപേക്ഷിക്കും.

പുതിയ ഫോണ്ടുകൾ ഡൌൺലോഡ് ചെയ്യാൻ: https://smc.org.in/fonts/#manjari

സോഴ്സ് കോഡ്, ഇഷ്യൂ ട്രാക്കർ: https://gitlab.com/smc/manjari/

1.2 പതിപ്പിൽ യൂണിക്കോഡ് 10 ൽ മലയാളത്തിൽ വന്ന കുറച്ച് അക്ഷരങ്ങൾ ചേർത്തിരുന്നു.

Santhosh Thottingal: Trufont now has SVG paste, drag and drop support

$
0
0

TruFont the font-editing application written with Python3, ufoLib, defcon and PyQt5 now has support for pasting SVG images as glyphs. It now also support drag and dropping SVG files. Trufont

For my font design workflow I mainly use Inkscape to desgin master drawings and then use fonteditor for further editing. I am migrating the fonts we maintained to Trufont from Fontforge(It is no longer developed). But, not having SVG support with Trufont was a blocker for me. So today I filed two patches and got merged to Trufont master.

There are still some known issues. Mainly the pasted svg is vertically flipped. The editor can flip it again. But the original issue need investigation.


Santhosh Thottingal: Scribus gets Malayalam Hyphenation support

$
0
0

Scribus now has support for Malayalam hyphenation.

I filed a bug report to add Malayalam hyphenation rules to Scribus and it is now added to scribus. The hyphenation rules are based on the TeX hyphenation patterns I wrote.

How to use

You need scribus 1.5.4 or later. It is not yet available as release while I am writing this. But once released you can get from https://www.scribus.net/downloads/

  • Start a new document. Add text frames and content. You will need narrow columns to have wordbreaking contexts. For example 2 columns as I use for demo here.
  • Select the text and set font as a Malayalam font like Manjari, Set the language as Malayalam.
  • In Hyphenation properties, set hyphenation character as blank, otherwise visible hyphens will appear.
  • Set the text justified.
  • From menu Extras->Hyphenate text. Done.

Here is the output:

Hyphenated two column content

 

Santhosh Thottingal: Indesign CC automatic hyphenation for Indian languages

$
0
0

More and more publishers are starting to use Indesign CC and Unicode. One of the many adavantages the publishers get with unicode and Indesign cc is automatic hyphenation. A few of my friends told me that they don’t know how to use hyphenation. Eventhough I never used Indesign before, I decided to figure out. In my Windows 10 virtual machine, I installed Indesign CC 2018.

Following is a tutorial on how to get perfect hyphenation for text in Indian languages in Indesign. I use Malayalam as example.

Indesign CC 2018 comes with Hunspell hyphenation dictionaries. These hyphenation dictionaries are written by me long time back. See https://github.com/smc/hyphenation

From menu Edit-> Preferences->Dictionary, set Language and Hyphenation as “Hunspell”

Create a text frame and add content to it. Make sure that the composer is set as Adobe World-Ready paragraph composer. You can access it from Paragraph settings as shown below. Without this settings, the Indic text won’t render correctly.

Tick the “Hyphenation” from the paragraph settings. Select an appropriate font for the content. Choose the language of the content as Malayalam or other Indic language you are working on. See screenshot below. Justify the content.

The content will get automatically hyphenated. If you resize the column width or insert more content, text will get automatically hyphenated.

The exported PDF will look like:

You can see the hyphenation rules in Installation folder: C:\Program Files\Adobe\Adobe InDesign CC 2018\Resources\Dictionaries\LILO\Linguistics\Providers\Plugins2\AdobeHunspellPlugin\Dictionaries

Patterns are available for Assamese, Bengali, Panjabi, Gujarati, Assamese, Marathi, Tamil, Telugu, Odia, Kannada and Malayalam.

I have not tried older Indesign versions, so I don’t know from which version this feature is available. But I don’t see a reason for not using latest version either.

Santhosh Thottingal: Eureka magazine with Manjari font

$
0
0

Eureka childrens science magazine now prints in Manjari font I designed. Happiness is seeing your favorite childhood magazine in your font!

Santhosh Thottingal: Towards a Malayalam morphology analyser

$
0
0

Malayalam is a highly inflectional and agglutinative language. This has posed a challenge for all kind of language processing. Algorithmic interpretation of Malayalam’s words and their formation rules continues to be an untackled problem.  My own attempts to study and try out some of these characteristics was big failure in the past. Back in 2007, when I tried to develop a spellchecker for Malayalam, the infinite number of words this language can have by combining multiple words together and those words inflected was a big challenge. The dictionary based spellechecker was a failed attempt. I had documented these issues.

I was busy with my type design  projects for last few years, but continued to search for the solution of this problem. Last year(2016), during Google summer of code mentor summit at Google campus, California, mentors working on language technology had a meeting and I explained this challenge. It was suggested that I need to look at Finnish, Turkish, German and such similarly inflected and agglutinated languages and their attempts to solve this. So, after the meeting, I started studying some of the projects – Omorfi for Finnish, SMOR for German, TRMorph for Turkish. All of them use Finite state transducer technology.

There are multiple FST implementation for linguistic purposes – foma, XFST– The Xerox Finite State Toolkit, SFST– The Stuttgart Finite State Toolkit and HFST– The Helsinki Finite State Toolkit. I chose SFST because of good documentation(in English) and availability of reference system(TRMorph, SMOR).  And now we have mlmorph  – Malayalam morphology analyser project in development here:  https://github.com/santhoshtr/mlmorph

I will document the system in details later. Currently it is progressing well. I was able to solve arbitrary level agglutination with inflection. Nominal inflection and Verbal inflections are being solved one by one. I will try to provide a rough high level outline of the system as below.

  • Lexicon: This is a large collection of root words, collected and manually curated, classified into various part of speech categories. So the collection is seperated to nouns, verbs, conjunctions, interjections, loan words, adverbs, adjectives, question words, affirmatives, negations and so on. Nouns themselves are divided to pronouns, person names, place names, time names, language names and so on. Each of them get a unique tag and will appear when you analyse such words.
  • Morphotactics: Morphology rules about agglutination and inflection. This includes agglutination rules based on Samasam(സമാസം) – accusative, vocative, nominative, genitive, dative, instrumental, locative and sociative. Also plural inflections, demonstratives(ചുട്ടെഴുത്തുകൾ) and indeclinables(അവ്യയങ്ങൾ). For verbs, all possible tense forms, converbs, adverbal particles, concessives(അനുവാദകങ്ങൾ) and so on.
  • Phonological rules: This is done on top of the results from morphotactics. For example, from morphotactics, ആൽ<noun>, തറ<noun>, ഇൽ<locative> will give ആൽ<noun>തറ<noun>ഇൽ<locative>. But after the phonological treatment it becomes, ആൽത്തറയിൽ with consonant duplication after ൽ, and ഇ becomes യി.
  • Automata definition for the above: This is where you say nouns can be concatenated any number of times, following optional inflection etc in regular expression like language.
  • Programmable interface, web api, command line tools, web interface for demos.

What it can do now? Following screenshot is from its web demo. You can see complex words get analysed to its stems, inflections, tense etc.

Note that this is bidirectional. You can give a complex word, it will give analysis. Similarly when you give root words and POS tags, it will generate the complex word from it. For example:

ആടുക<v><past>കൊണ്ടിരിക്കുക<v><present> =>  ആടിക്കൊണ്ടിരിക്കുന്ന

Covering all possible word formation rules for Malayalam is an ambitious project, but let us see how much we can achieve. Now the effort is more on linguistic aspects of Malayalam than technical. I will update about the progress of the system here.

 

 

Santhosh Thottingal: Number spellout and generation in Malayalam using Morphology analyser

$
0
0

Writing a number 6493 as six thousand four hundred and ninety three is known as spellout of that number. The most familiar example of this is in cheques. Text to speech systems also need to convert numbers to words.

Source: https://commons.wikimedia.org/wiki/File:Sample_cheque.jpeg by User:Tshrinivasan

The reverse process of this, to convert a phrase like six thousand four hundred and ninety three to number 6493 – the number generation, is also common. In software, it is often required in Speech recognition and in general any kind of semantic analysis of text.

Numbers and its conversion to English words is not really a complex problem to solve with a computer. But how about other languages? In this article, I am discussing the nature of these words in Malayalam and an approach to parse the number and numbers written in words.

Malayalam number spellout

In Malayalam, the spellout of numbers forms a single word. For example, a number 108 is നൂറ്റെട്ട് – a single word. This word is formed by adjective form of നൂറ്(100) and എട്ട്(8). While these two words are glued, Malayalam phonological rules are also applied, resulting this single word നൂറ്റെട്ട്. This word formation characteristics are present for almost all possible numbers you can imagine. Parsing the number നൂറ്റെട്ട് and interpreting it as 108 or converting 108 to നൂറ്റെട്ട് is an interesting problem in Malayalam computing.

I came across this problem while I was trying to develop a dictionary based spellchecker years back. Such a dictionary should have all these single words for all possible numbers, right? Then how big it will be? Later when I was researching on Malayalam morphology analyser, I again encountered this problem. You cannot have all these words in lexicon as entries – it is not practical. At the same time, you should be able to parse these words and and also generate with correct morpho-phonological rules of Malayalam.

Like I mentioned in my introduction article of my Malayalam morphological analyser,  project, Malayalam is a heavily agglutinative language. While I was learning the Finite transducer technology, Malayalam number words were one of the obvious candidates to try out. These numbers perfectly model Malayalam word formations. They get agglutinated and inflected, during which morpho-phonological rules get applied. നൂറ്റെട്ടിലായിരുന്നു, നൂറ്റെട്ടിനെ, നൂറ്റെട്ടോ? നൂറ്റെട്ടാം, നൂറ്റെട്ടാമത്തെ, നൂറ്റെട്ടര  – All are examples of words you get on top number word നൂറ്റെട്ട്. Also, it is not two word agglutination, പതിനാറായിരത്തൊരുനൂറ്റെട്ട് – 16108 is an example where പതിനാറ്(16), ആയിരം(1000), നൂറ്(100), എട്ട്(8) – all joined to form a single word. In fact this is a common word you often see in literature because of this myth about Lord Krishna. The current year, 2017 is often written as രണ്ടായിരത്തിപ്പതിനേഴ്.

Let us examine a nature of these word formation.

Ones

Numbers between 0 and 9 has words as പൂജ്യം, ഒന്ന്, രണ്ട്, മൂന്ന്, നാല്, അഞ്ച്, ആറ്, ഏഴ്, എട്ട്, ഒമ്പത് respectively. The word ഒമ്പത് is sometimes written as ഒൻപത് too, which is phonetically similar to ഒമ്പത്. Each of these words ending with Virama(്) is sometimes written with Samvruthokaram too. ഒന്ന് – ഒന്നു്, രണ്ടു്, മൂന്നു്, നാലു് etc.

Tens

Number 10 is പത്ത്. Multiples of tens till 80 follows the rough pattern:

Adjective form of [രണ്ട്|മൂന്ന്|നാല്|അഞ്ച്|ആറ്|ഏഴ്|എട്ട്] + പത്.

So, they are ഇരുപത്(20), മുപ്പത്(30), നാല്പത്(40), അമ്പത്(50), അറുപത്(6), എഴുപത്(70), എൺപത്/എമ്പത്(80). But at 90, a new form emerges – തൊണ്ണൂറ് – Which has no root on ഒമ്പത് (9). Instead it is more like something before നൂറ്(100).

The numbers 11-19 are unique words. പതിനൊന്ന്, പന്ത്രണ്ട്, പതിമൂന്ന്, പതിനാല്, പതിനഞ്ച്, പതിനാറ്, പതിനേഴ്, പതിനെട്ട്, പത്തൊമ്പത് respectively.

All other two digit numbers between the multiples of tens follow the following pattern

[Word for 10x] + [Word for Ones]

So, 21 is ഇരുപത്(20)+ ഒന്ന്(1). But to form a single word, An adjective form is used, which is similar to female gender inflection of Malayalam nouns- ഇരുപത്തി + ഒന്ന് . Phonological rules should be applied to combine these two words. The vowel sign ി(i) at the end of ഇരുപത്തി  will introduce a new consonant യ(ya). Also the first letter of ഒന്ന് – the vowel ഒ will change to its vowel sign form ൊ. So we get ഇരുപത്തി + യ + ൊന്ന്. It results ഇരുപത്തിയൊന്ന്. This phonological rule is actually Agama Sandhi / ആഗമ സന്ധി as per Malayalam grammer rules. But, ഇരുപത്തിയൊന്ന് has a more propular form, ഇരുപത്തൊന്ന് which is generated by dropping ി + യ from the generation process.

The words for 20s can be generated similarly. ഇരുപത്തിരണ്ട്(22), ഇരുപത്തിമൂന്ന്(23), ഇരുപത്തിനാല്(24),  ഇരുപത്തിയഞ്ച്/ഇരുപത്തഞ്ച്(25), ഇരുപത്തിയാറ്/ഇരുപത്താറ്(26), ഇരുപത്തിയേഴ്/ഇരുപത്തേഴ്(27), ഇരുപത്തിയെട്ട്/ഇരുപത്തെട്ട്(28), ഇരുപത്തിയൊമ്പത്/ഇരുപത്തൊമ്പത്(29). For all other two digit numbers the pattern is same. Note that തൊണ്ണൂറ് (90) has the prefix form തൊണ്ണൂറ്റി. So 98 is തൊണ്ണൂറ്റിയെട്ട്/തൊണ്ണൂറ്റെട്ട്.

Hundreds

100 is നൂറ്. Its prefix form is നൂറ്റി. Multiples of 100s is somewhat similar to multiples of 10s we saw above. They are ഇരുന്നൂറ്(200), മുന്നൂറ്(300), നാനൂറ്(400), അഞ്ഞൂറ്(500), ആറുനൂറ്(600), എഴുന്നൂറ്(700), എണ്ണൂറ്(800), തൊള്ളായിരം(900). Here also the 900 deviates from others. The word is related to 1000(ആയിരം) than 100 – Just like the case of 90-തൊണ്ണൂറ് we discussed above.

Forming 3 digits numbers is, in general the prefix of multiple of hundred followed by Tens we explained above. So 623 is അറുനൂറ് + ഇരുപത്തിമൂന്ന്  = അറുനൂറ്റിയിരുപത്തിമൂന്ന് or the more popular and short form അറുനൂറ്റിരുപത്തിമൂന്ന്. 817 is എണ്ണൂറ്റി+ പതിനേഴ് = എണ്ണൂറ്റിപ്പതിനേഴ് with gemination of consonant പ as per phonological rule. 999 is തൊള്ളായിരത്തിത്തൊണ്ണൂറ്റിയൊമ്പത് or തൊള്ളായിരത്തിത്തൊണ്ണൂറ്റൊമ്പത്  or തൊള്ളായിരത്തിത്തൊണ്ണൂറ്റിയൊൻപത്.

Numbers between 100-199 may optionally prefixed by ഒരു – Adjective form of ഒന്ന്(1).  101 – ഒരുന്നൂറ്റിയൊന്ന് 122-ഒരുന്നൂറ്റിയിരുപത്തിരണ്ട് etc. നൂറ്(100) can be also ഒരുന്നൂറ്

Thousands

1000 is ആയിരം. ആയിരത്തി is prefix for all other 4 digit numbers till 1 lakh(ലക്ഷം 100000). Multiples of 1000 can be generated by suffixing ആയിരം. For example, 4000  is നാല് + ആയിരം = നാലായിരം. 6000 – ആറായിരം. But 5000 is അയ്യായിരം, and അഞ്ചായിരം is less popular version. 8000 is എട്ട് + ആയിരം = എട്ടായിരം, but എണ്ണായിരം is popular form.  10000 is പത്ത് + ആയിരം = പത്തായിരം. But പതിനായിരം is the more familiar version. പതിനായിരം is the suffix for multiples of 10K. They are ഇരുപതിനായിരം, മുപ്പതിനായിരം, നാല്പതിനായിരം, അമ്പതിനായിരം, അറുപതിനായിരം, എഴുപതിനായിരം, എൺപതിനായിരം, തൊണ്ണൂറായിരം. 3000 is മുവ്വായിരം than മൂന്നായിരം. So 73000 is എഴുപത്തിമുവ്വായിരം or എഴുപത്തിമൂന്നായിരം.

Numbers between 1000-1999 may optionally prefixed by ഒരു – Adjective form of ഒന്ന്(1).  1008 – ഒരായിരത്തിയെട്ട് 1122-ഒരായിരത്തിയൊരുന്നൂറ്റിയിരുപത്തിരണ്ട് etc. ആയിരം(1000) can be also ഒരായിരം.

Lakhs & Crores

100, 000 is ലക്ഷം. ലക്ഷത്തി is prefix. 1,00, 00, 000 is കോടി. കോടി itself is prefix. 12,00,90 is  പന്ത്രണ്ടുലക്ഷത്തിത്തൊണ്ണൂറ്. 99,00,00,00,00,00,00 is തൊണ്ണൂറ്റൊമ്പതുലക്ഷംകോടി.

Why morphology analyser?

From the above explanation of word formation for numbers in Malayalam, one can see that there are patterns and there are lot of exceptions. But still, isn’t it possible to write a generator using just a rule based program in a programming language. I  would agree. Yes, it is possible. But other than mapping these numbers to word forms, handling exceptional rules, there are a few other things also we saw. When words are agglutinated, there are phonological rules in action. Also, I said that these words can be inflected again. We also want the bidirectional conversion – not just word generation, but converting those words back into a number. All these will make such a program so complicated and it has to duplicate so many things from morphology analyser. That is why I used morphology analyser here.

What are the morphemes in a string like ആയിരത്തിത്തൊള്ളായിരത്തിത്തൊണ്ണൂറ്റിയാറ്? ആയിരം, തൊള്ളായിരം, തൊണ്ണൂറ്, ആറ്? Sounds good, but we see that  തൊള്ളായിരം is ഒമ്പത്, നൂറ്. and തൊണ്ണൂറ് is ഒമ്പത്, പത്ത്. So expanding it, we get ആയിരം, ഒമ്പത്, നൂറു, ഒമ്പത്, പത്ത്, ആറ്. But this sequence does not make any sense of the single word it created. What is missing? Can we consider തൊള്ളായിരം, തൊണ്ണൂറ് as single morphemes? We can, but…

  • If  തൊള്ളായിരം is a morpheme, it means, it is in a lexicon. That makes all other 3 digit number also eligible to be listed as items in lexicon. So ultimately, we go back to the large lexicon/dictionary issue I mentioned in the beginning of the article.
  • Semantically, any number spellout is originated from Ones and their place value. So തൊണ്ണൂറ് is 9<tens>.

I have not seen any morphology analyser dealing with number spellout. It seems Malayalam numbers are so unique in this aspect. I read a few academic papers on dealing with this complexity using Rule based approaches(See References) and an automata like paradigm language(Richard Gillam – A Rule-Based Approach to Number Spellout).

The approach I derived after trying out some choices is as follows:

  • Introduce morphology tags for positional values. This is similar to POS tags, but here we apply for number spellouts. <ones>, <tens>, <hundreds>, <thousands>, <lakhs>, <crores> are those tags.
  • Parse a spellout to reach the atomic morphemes in a number spellout – they are ഒന്ന്, രണ്ട്, മൂന്ന്, നാല്, അഞ്ച്, ആറ്, ഏഴ്,എട്ട്, ഒമ്പത്, പൂജ്യം.
  • These morphemes will have the tags mentioned above.

To illustrate this, let use use some examples,

As you can observe, only the atomic numbers are used as morphemes and place values are indicated using tags. You can also see that the analysis is easy to interpret for a program to generate the number.

For example, if the analysis is രണ്ട്<ones><thousands> ഒന്ന്<tens> ഏഴ്<ones>,  replace the words with its numbers, tags by position value. You get

2*1*1000 + 1*10 + 7*1  =  2000+10+7 = 2017

I said that, the advantage of morphology analyser is you can generate the word from analysis strings. The bidirectional property. This means, if you have a number, you can generate the spellout. For that we first need to some maths on the number. For example, for same number 2017, we can divide incrementally by lakhs, thousands, hundreds, tens and arrive at the following formation

2017 = 2*1000 + 0*100 + 1*10+ 7*1

Which can be converted to:

രണ്ട്<thousands>ഒന്ന്<tens>ഏഴ്<ones>

The morphology analyser can easily generate the word രണ്ടായിരത്തിപ്പതിനേഴ് by applying all grammatical rules.

 

If you are eager to try out this conversion, I wrote a quick javascript based number to word convertor using the APIs of morphology analyser.

See the Pen Malayalam number parser by Santhosh Thottingal (@santhoshtr) on CodePen.

I did not write a convertor from the spelled out word to number. You are free to write one. The web interface of mlmorph is available for trying out some analysis too – https://morph.smc.org.in/

Inflections

Some illustrations on inflected spellout analysis

Ordinals

Ordinal form of numbers are used to show position. Examples are first, third etc. In Malayalam examples are ഒന്നാം, പതിനെട്ടാം ഏഴാമത്, ഒമ്പതാമത്തെ etc.  Supporting those forms is just like inflections. See the below screenshot

Technical details

Known issues

  • Some commonly used forms like മുപ്പത്തിമുക്കോടി is not supported yet.There are also variations like മുവ്വായിരം, മൂവായിരം.
  • If there are are multiple ways to generate a number word, the system generates all such forms. But some of these forms may be very obscure and not used at all.
  • There is a practice to insert space after some prefixes like ആയിരത്തി, ലക്ഷത്തി, കോടി. In the model I assumed the words are generated as single word.

Summary

We analysed the word formation for the spellout of the numbers in Malayalam. Usage of morphology analyser for analysis and generation of these word forms are introduced. A demo program that converts numbers to its word forms considering all morphophonological rules are presented. Algorithm for spelled out word to number conversion is given with example. Programmable API and Web API is given for the system.

References

Viewing all 295 articles
Browse latest View live