ഈയിടെ XKCD യിൽ വന്ന ഒരു തമാശയാണു് മുകളിൽ കൊടുത്തിരിക്കുന്നതു്. ഇമോജികളെ പരിചയമുള്ളവർക്കു കാര്യം പിടികിട്ടിക്കാണും. എന്തെങ്കിലും ആശയം പ്രകടിപ്പിക്കാനുള്ള ചെറുചിത്രങ്ങളെയും സ്മൈലികളെയുമാണു് ഇമോജികൾ എന്നുവിളിക്കുന്നതു്. ചാറ്റു ചെയ്യുമ്പോഴൊക്കെ നമ്മൾ ഉപയോഗിക്കുന്ന ചിരിക്കുന്നതും സങ്കടഭാവത്തിലുള്ളതും നാക്കുനീട്ടുന്നതുമായ ചെറുചിത്രങ്ങളുടെ നിര ഇന്നു് വളർന്നു് ആയിരക്കണക്കിനായിട്ടുണ്ട്. ചിത്രങ്ങൾക്കു പകരം അവയെ അക്ഷരങ്ങളെന്നപോലെ കണക്കാക്കാൻ യുണിക്കോഡ് ഇപ്പോൾ ഇവയെ എൻകോഡ് ചെയ്യുന്നുണ്ടു്. ഉദാഹരണത്തിനു് 😀 എന്ന സ്മൈലിക്ക് U+1F60x എന്ന കോഡ്പോയിന്റാണുള്ളതു്. അടുപോലെ 👨 പുരുഷൻ, 👩 സ്ത്രീ എന്നിവയൊക്കെ പ്രത്യേക കോഡ് പോയിന്റുകളുള്ള ഇമോജികളാണു്.
ഇമോജികൾ അക്ഷരങ്ങളെപ്പോലെയായാൽ അവ ചേർന്നു് കൂട്ടക്ഷരങ്ങളുണ്ടാവുമോ? 😀
ഇമോജികളെ കൂട്ടിയിണക്കി പുതിയ അർത്ഥമുള്ള ഇമോജികൾ ഉണ്ടാക്കാനുള്ള സംവിധാനം യുണിക്കോഡ് ഒരുക്കിയിട്ടുണ്ടു്. 👪 എന്ന ഇമോജി കുടുംബത്തെ സൂചിപ്പിക്കുന്നു. അച്ഛൻ, അമ്മ, മക്കൾ എന്നിവരടങ്ങിയ കുടുംബം. ഇതുപക്ഷേ അച്ഛൻ അമ്മ, മകൻ, മകൾ എന്നിവ കൂട്ടിച്ചേർത്തും ഉണ്ടാക്കാം. 👨👩👧👦 എന്ന ഇമോജി അങ്ങനെ 👨 + 👩 + 👧 + 👦 എന്നീ ഇമോജികൾ കൂട്ടിയുണ്ടാക്കിയതാണു്. വെറുതെ അടുപ്പിച്ചെഴുതിയതല്ല, നമ്മൾ ക്ക എന്നു് എഴുതാൻ ക കഴിഞ്ഞ ചന്ദ്രക്കലയിട്ട് അടുത്ത കയുമായി യോജിപ്പിക്കില്ലേ, അങ്ങനെ യോജിപ്പിക്കണം. അതായതു് U+1F468 U+200D U+1F469 U+200D U+1F466 എന്ന ശ്രേണി ഉപയോഗിക്കണം. ഇവിടെ കൂട്ടിയോജിപ്പിക്കാൻ ഉപയോഗിച്ചിരിക്കുന്നതു് U+200D എന്ന അക്ഷരമാണു്.
എന്താണു് U+200D? Zero Width Joiner എന്ന ഒരു അദൃശ്യ അക്ഷരമാണതു്. അതിനു രൂപമില്ല, സ്വഭാവമേ ഉള്ളൂ. അതിനിരുവശവമുള്ള അക്ഷരങ്ങളെ കൂട്ടിയോജിപ്പിക്കുക എന്ന സ്വഭാവം. ഒരു ഫോണ്ടിനു് ഇങ്ങനെയുള്ള ഒരു ശ്രേണിവന്നാൽ പകരം ഒരു ഒറ്റ ഇമോജിയുടെ ചിത്രം വെയ്ക്കണം എന്നറിയാം. നമ്മുടെ ക + ് + ക എന്ന അക്ഷരശ്രേണിവന്നാൽ അതു് ക്ക എന്നാക്കണം മലയാളം ഫോണ്ടുകൾക്കറിയാമെന്നപോലെ.
ഇനിയിപ്പോൾ ഒരു ഇമോജി ഫോണ്ടിനകത്തു് അങ്ങനെ കൂട്ടിയോജിപ്പിക്കണമെന്ന നിയമമില്ലെങ്കിലോ, വെറുതെ വിട്ടാലും മതി, ‘കുടുംബം’ ഇമോജി ഒറ്റ ചിത്രമല്ലാതെ നാലുപേർ നിരന്നു നിൽക്കുന്ന ചിത്രമാവും. എങ്ങനെ? നമ്മുടെ പ്ന എന്ന കൂട്ടക്ഷരം പ്ന എന്ന രീതിയിൽ പിരിഞ്ഞുവന്നാലും നമുക്ക് പ്ന തന്നെയാണല്ലോ, അതുപോലെ.
അങ്ങനെ ഇമോജികളെ ഇഷ്ടാനുസരണം ചേർത്തു് വിചിത്രമായ ഇമോജികൾ ഉണ്ടാക്കുന്നതിനെപ്പറ്റിയാണു് മുകളിലെ XKCD തമാശ. പക്ഷേ അങ്ങനെ എല്ലാ ഇമോജികളെയും തോന്നിയപടി ചേർക്കാൻ പറ്റില്ല കെട്ടോ, യുണിക്കോഡ് പ്രത്യേകം നിർവചിക്കണം. ഇതുവരെ നിർവചിച്ചിരിക്കുന്നവയുടെ ചാർട്ട് യുണിക്കോഡ് പുറത്തിറക്കിയിട്ടുണ്ടു്. അതിപ്പോൾ, മലയാളത്തിലും ഞ യും പയും ചന്ദ്രക്കലയിട്ടാലും കൂട്ടക്ഷരമുണ്ടാക്കില്ലല്ലോ, ചില അക്ഷരങ്ങൾ ചില ക്രമത്തിൽ ചേർന്നാലല്ലേ കൂട്ടക്ഷരമുണ്ടാക്കൂ.
നേരത്തെപറഞ്ഞ ZWJ യെ എവിടെയോ കണ്ട പരിചയമുണ്ടോ? 😀
മലയാളത്തിലെ ചില്ലക്ഷരങ്ങൾ എങ്ങനെയാണെഴുതുന്നതു്? ൻ എന്ന ചില്ലക്ഷരത്തിനു് U+0D7B എന്ന കോഡ്പോയിന്റ് ഉണ്ടു്. ഒറ്റയ്ക്കൊരു കോഡ് പോയിന്റുള്ളതുകൊണ്ടു് ചില്ലക്ഷരം ൻ അറ്റോമിക് ആയി എൻകോഡ് ചെയ്യപ്പെട്ടിരിക്കുന്നു എന്നും പറയാം. പക്ഷേ ഇങ്ങനെയുള്ള ഒരൊറ്റ കോഡ് പോയിന്റ് ചില്ലക്ഷരങ്ങൾക്കില്ലായിരുന്നു. സ്വരം ചേരാത്തു വ്യഞ്ജനം എന്ന അർത്ഥമാണല്ലോ ചില്ലക്ഷരങ്ങൾക്കുള്ളതു്. ൻ എന്നാൽ ന് എന്ന് സ്വരമൊന്നും ചേരാതെ ഉച്ചരിക്കുന്നു. അവൻ എന്ന വാക്ക് ഉദാഹരണം. ൻ എന്നെഴുതാൻ യൂനിക്കോഡ് 5.1 പതിപ്പിനുമുമ്പു വരെ ന + ് + ZWJ എന്ന ശ്രേണിയാണു് ഉപയോഗിച്ചിരുന്നതു്. പിന്നീടു് അറ്റോമിക് കോഡ് പോയിന്റ് വന്നപ്പോൾ അതുപയോഗിച്ചും എഴുതിത്തുടങ്ങി. ZWJ യ്ക്കിവിടെ നേരത്തെ പറഞ്ഞ അദൃശ്യരൂപം തന്നെയാണ്. ന് എന്നതിനെ മോഡിഫൈ ചെയ്യുന്ന സ്വഭാവമാണു് ഈ സന്ദർഭത്തിലുള്ളതു്. ന് എന്നതിന്റെ ദൃശ്യരൂപം മാറ്റുക എന്ന സ്വഭാവം. അർത്ഥത്തിൽ മാറ്റം വരുത്തുന്നില്ല, ദൃശ്യത്തിൽ മാത്രം. നൻമ, നന്മ എന്നീ വാക്കുകളിൽ മയുടെ മുമ്പിലത്തെ ൻന്റെ ഉച്ചാരണം ഒന്നു തന്നെയാണല്ലോ. ഈ രണ്ടുവാക്കുകളും ഒന്നുതന്നെയാണെന്നും ZWJ എന്ന അദൃശ്യാക്ഷരംകൊണ്ടു് രൂപത്തിൽ മാത്രം വ്യത്യാസപ്പെട്ടിരിക്കുന്നുവെന്നും ഉദ്ദേശിക്കുന്നു.
ZWJ യുടെ നിർവചനമനുസരിച്ചു് ഡാറ്റാപ്രൊസസ്സിങ്ങിൽ വേണമെങ്കിൽ അവയെ അവഗണിയ്ക്കാം എന്നാണ് – ignorable character. ഇമോജികളുടെ കാര്യം പറയുമ്പോഴും ഇവ വേണമെങ്കിൽ ഒഴിവാക്കി കാണിക്കാം എന്നാണല്ലോ പറഞ്ഞതു്.
“When not available, the ZWJ characters are ignored and a fallback sequence of separate emoji is displayed. Thus an emoji zwj sequence should only be supported where the fallback sequence would also make sense to a viewer.”
ഇതുപോലെത്തന്നെയാണു് മലയാളത്തിലെ ZWJ യുടെ ഉപയോഗവും അർത്ഥവ്യത്യാസം ഉണ്ടാക്കാത്ത വാക്കുകളിൽ ദൃശ്യരൂപത്തിനു മാറ്റം വരുത്താൻ മാത്രം ZWJ ഉപയോഗിക്കാമെന്നായിരുന്നു പൊതുവിലുള്ള മനസ്സിലാക്കാൽ.
മലയാളത്തിൽ പക്ഷേ കാര്യങ്ങൾ അത്ര എളുപ്പമായിരുന്നില്ല. ഇങ്ങനെ ZWJ കൊണ്ട് ദൃശ്യരൂപത്തിനു മാറ്റം ഉണ്ടാക്കണമെന്ന നിർദ്ദേശം അനുസരിക്കാത്ത ബഗ്ഗുകളുള്ള അപ്ലിക്കേഷനുകളുണ്ടായിരുന്നു. ഉദാഹരണം ഫയർഫോക്സിന്റെ ആദ്യപതിപ്പുകൾ. “അവൻ കൊടുത്തു” എന്ന വാക്യം “അവന് കൊടുത്തു” എന്ന രീതിയിൽ തെറ്റിക്കാണിച്ചാൽ തെറ്റിപ്പോകില്ലേ? ഈ ചോദ്യം ചോദിച്ചാൽ അത്യാവശ്യം ഭാഷാവബോധമുള്ളവർ സംവൃതോകാരം ഉപയോഗിക്കാത്തതിന്റെ പ്രശ്നങ്ങൾ ചൂണ്ടിക്കാണിക്കും. “അവന് കൊടുത്തു” എന്നതു് “അവനു് കൊടുത്തു” എന്നു് മീത്തൽ മാത്രമല്ലാതെ സംവൃതോകാരം ഉ ചിഹ്നം കൂട്ടി എഴുതിയാൽ ഈ ആശയക്കുഴപ്പം വരില്ലയെന്നു്.
എന്തായാലും ചില്ലക്ഷരങ്ങളെ ഇങ്ങനെ ZWJ ചേർത്തെഴുതാതെ സ്വന്തമായി കോഡ് പോയിന്റ് കൊടുത്തു് അറ്റോമിക് ആയി നിർവചിക്കണമെന്ന വാദം യുണിക്കോഡ് അംഗീകരിക്കുകയാണുണ്ടായതു്. അതാണു് ഇന്നത്തെ ചില്ലുകളുടെ അംഗീകൃത/റെക്കമെന്റഡ് രീതി. എന്നാൽ ZWJ ചേർത്തെഴുതിയ ചില്ലുകൾ വ്യാപകമായി അപ്പോഴേക്കും മലയാളത്തിൽ വന്നിരുന്നതിനാൽ അപ്ലിക്കേഷനുകൾ അവയെ ചില്ലുകൾക്കു തുല്യമായി പരിഗണിക്കണമെന്ന നിർദേശവും ഉണ്ടു്.
കൌതുകകരമായ ഒരു കാര്യം, ഈ ചില്ലക്ഷരവിവാദമൊക്കെ നടക്കുമ്പോൾ ZWJ യ്ക്ക് ഇത്ര പ്രശസ്തിയൊന്നും ഉണ്ടായിരുന്നില്ല. മലയാളം, സിംഹള, അറബിക്ക് എന്നീ ഭാഷകളിലെ കുഴപ്പം പിടിച്ച, ആർക്കും മനസ്സിലാക്കാൻ പെട്ടെന്നു കഴിയാത്ത, അക്ഷരമാലയിലേക്കു് കടന്നുകയറിയ ഒരു അന്യാക്ഷരം ആയിരുന്നു അന്നതു്. അതുകൊണ്ടുതന്നെ അപ്പ്ലിക്കേഷനുകളൊന്നും ഇവ നേരാംവണ്ണം പ്രൊസസ്സ് ചെയ്യില്ല, നമുക്ക് ചില്ലുകൾക്ക് പ്രത്യേകം കോഡ് പോയിന്റ് വേണമെന്നൊക്കെ വാദമുണ്ടായിരുന്നു. പക്ഷേ വർഷങ്ങൾ കഴിഞ്ഞപ്പോൾ zwj യെ നമ്മൾ കൂടുതൽ കൂടുതലിടങ്ങളിൽ കാണുകയാണു്.
കൂടുതൽ വായനക്ക്:
-
ചില്ലക്ഷരവിവാദത്തിന്റെ വിശദവിവരങ്ങൾ – http://thottingal.in/documents/ReportonMalayalamUnicodeIssues.pdf
-
ചില്ലക്ഷരങ്ങളുടെ ചിത്രീകരണം https://blog.smc.org.in/rendering_of_chillu_characters/
-
ചില്ല് എന്കോഡിങ്ങ് പരാജയം : ഗൂഗിള് റിപ്പോര്ട്ട്