Friday, February 8, 2008

ইউনিকোড পাঠ ০৭

সাত.
আগের পর্বে আমরা জেনেছি, ইউনিকোডে শুধু মূল লিপির কোড পয়েন্ট দেয়া হয়। কেউ প্রশ্ন করতে পারেন, যুক্তাক্ষরের জন্য আলাদা কোডপয়েন্ট বরাদ্দ নেই কেন? ইউনিকোডের নিয়ম অনুযায়ী, যুক্তাক্ষর পেতে হলে তা মূল বর্ণের ক্যারেক্টার সিকোয়েন্সের মাধ্যমে ইনপুট দিতে হয়। যেমন, স্মরণ শব্দের বেলায় লিখতে হবে :
স + ্ + ম + র + ণ

কিন্তু যুক্তাক্ষরের জন্য আলাদা কোড পয়েন্ট থাকলে তা একবারে ইনপুট দেয়া যায়। আগের উদাহরণে তিনটি বর্ণ লিখলেই হবে : স্ম + র + ণ

তখন আর স্মরণ, স্পন্দন, স্নান, স্থান শব্দে ব্যবহৃত স্ম, স্প, স্ন, স্থ এর সাথে মূল বর্ণ 'স' এর কোনো সম্পর্ক রইলো না। সমস্যা হবে শব্দবিন্যাস বা সর্টিংয়ের সময়।

কোন বর্ণটি আগে বসবে?
স, স্ম, স্প, স্ন, স্থ, স্র নাকি স্ল?
এভাবে কয়েক শ' যুক্তাক্ষরের অনুক্রম তালিকা তৈরি করলে তার আকার বিশাল হয়ে যাবে। ফলে শব্দবিন্যাসে সময় বেশি লাগবে, তার কার্যকারিতাও হারাবে।

বাংলা লিপিতে শব্দবিন্যাস জটিল হয়ে যায় ‘মাত্রা’ (কার ও ফলা) ব্যবহারের বৈশিষ্ট্যের কারণে। কারণ এর কোনোটি বর্ণের ডানে বসে (া / ী), কোনোটি বামে (ি / ে / ৈ), কোনোটি নিচে ( ু / ূ / ৃ / র-ফলা) আবার কোনোটি ডানে-বামে দু দিকেই বসে (ো/ ৌ)। ইউনিকোড কারিগরি কমিটির তাত্ত্বিকরা এর চমৎকার একটি সমাধান দিয়েছেন। তারা বলছেন, মেমোরিতে সংরক্ষণের বেলায় সব ধরনের মাত্রাকে বর্ণের ডানে বসালে সর্টিংয়ে সমস্যা থাকে না। অর্থাৎ মাত্রা ব্যবহারের সময় বর্ণগুলো ফোনেটিক পদ্ধতিতে সংরক্ষণ করতে হবে।

যেমন, ডিম লেখার ক্ষেত্রে প্রথমে ড, পরে ি-এর কোড পয়েন্ট সংরক্ষিত হবে। তেমনি, ঘোড়া শব্দের ঘো লিখতে প্রথমে ঘ, তারপর ো সংরক্ষিত হবে। তবে দেখানোর সময় ঠিক দেখাবে ডিম, ঘোড়া। আর মনিটরে মাত্রা কোথায় দেখানো হবে, তার দায়িত্ব নেবে ওপেন টাইপ ফন্ট, ইউনিকোড নয়।

কেউ ভাবতে পারেন, বাংলা বর্ণমালার কোড পয়েন্ট সঠিক ক্রমে দেয়া হয়নি বলে সর্টিংয়ে এত ঝামেলা। ধারণাটি ভুল। কারণ কোড পয়েন্টের ওপর ভিত্তি করে ভাষাগত সর্টিং হয় না। বরং বর্ণের অনুক্রমের জন্য একাধিক স্তরের নির্ধারিত মান তুলনা করে সর্টিং করা হয়। এ জন্য অনেক অ্যালগরিদমও রয়েছে। এক্ষেত্রে, 'ইউনিকোড কোলেশন অ্যালগরিদম' খুব ভালো কাজ করে। আবার বিভিন্ন দেশে একই ভাষার কয়েক রকম বর্ণক্রম থাকতে পারে। যেমন, পশ্চিমবঙ্গ এবং বাংলাদেশের অভিধানে বাংলা বর্ণক্রম আলাদা। সে ক্ষেত্রে অন্য পদ্ধতি (কারিগরি ভাষায়, টেইলরিং মেকানিজম) প্রয়োগ করা যায়।
_________________________________
ওপেন টাইপ ফন্ট নিয়ে বলা হবে পরের কোনো কিস্তিতে।

No comments:

Post a Comment