ابن سعید
خادم
اردو دنیا کے دوسرے کئی گوشوں میں کمپیوٹر کی مدد سے اشعار کی تقطیع کے لئے کوششیں جاری ہیں پر کسی عمومی فورم پر اس کی پروگریس اور طریقہ کار کے بارے میں کوئی گفتگو میرے علم میں نہیں ہے۔ لہٰذا آج اس سلسلے میں یہ پوسٹ کر رہا ہوں۔ اس کام کے لئے پروگرامنگ کے ساتھ ساتھ سخن شناسی اور شاعری کے قواعد کا علم بھی بہت ضروری ہے۔ اگر تھوڑی سی کوشش کی جائے تو ایک ابتدائی نوعیت کا ایسا سافٹوئر بنا کر اس پر تجربات کئے جا سکتے ہیں۔ اور ان تجربات کی روشنی میں مزید طریقہ کار متعین کرنے میں بھی مدد ملے گی ان شاء اللہ۔
فی الحال میرے دماغ میں ایک طریقہ کار کا خاکہ موجود ہے جسے یہاں بیان کرتا ہوں اور احباب کی رائے جاننا چاہتا ہوں۔
الحمد للہ محفل میں ہزاروں کی تعداد میں اشعار موجود ہیں اگر ان کو پارس کر کے مفرد و منفرد الفاظ کی ایک فہرست بنا لی جائے یا پہلے سے موجود کسی ڈکشنری سے الفاظ کا ذخیرہ حاصل کر لیا جائے۔ اس فہرست کی پروسیسنگ کر کے اس میں مشدد حروف کو دو بار لکھ دیا جائے (اگر زیر عمل لفظ پر تشدید نہیں لگایا گیا ہے تو اس کام کے لئے مشدد الفاظ کی فہرست درکار ہوگی) اور ایسے حروف کو حذف کردیا جائے جو تقطیع میں شمار نہیں کئے جاتے مثلاً "تھوڑا" کو "توڑا" کر لیا جائے اس طرح فہرست میں پھر سے کچھ ڈپلیکیٹ الفاظ جمع ہو جائیںگے جنھیں منفرد کرنے پر یہ فہرست کچھ چھوٹی ہو جائے گی۔ اگلا مرحلا ان سبھی مفردات کی ممکنہ بائنری بدل لکھنا ہے جو کہ خاصہ وقت طلب کام ہے۔ بعض حالات میں ایک ہی مفرد لفظ کے مختلف محل استعمال پر کئی بائنری بدل ہو سکتے ہیں اور ان سب کو فہرست میں جگہ دینا ہوگا۔ اس کے بعد کسی مصرع کی تقطیع کرنے کے لئے پہلے اس مصرع میں موجود سبھی الفاظ کی پری پروسیسنگ کر کے مشدد حروف کو دو بار لکھ کر اور تقطیع میں شامل نہ کیئے جانے والے حروف کو حذف کر کے مفردات کے اس جدول کی مدد سے متبادل بائنری ترتیب تیار کی جا سکتی ہے۔ اور کئی امکانات میں سے ایک کا انتخاب کرنے کے لئے تقطیع کرتے ہوئے اگر ممکن ہوا تو کچھ وصول مرتب کئے جا سکتے ہیں ورنہ گیم ٹری Game Tree کا طریقہ استعمال کیا جا سکتا ہے یعنی سبھی امکانات کو جمع کرکے ان میں سے ایسا سیٹ اپ منتخب کیا جا سکتا ہے جو کسی معلوم بحر سے متعلق ہو یا موجودہ نظم کی بحر سے ملتا ہو۔ ظاہر ہے ہمیں اس کام کے لئے ہمیں بحور کی بھی ایک فہرست مرتب کرنی ہوگی اور جس میں جائز بائنری ترتیبوں کو شامل کرنا ہوگا۔ یہ طریقہ کار قدرے وقت طلب ہے پر بہتر نتائج دے سکتا ہے۔ اس کام میںسب سے زیادہ وقت مفردات کی فہرست بنا کر اس میں بائنری متبادل شامل کرنا ہے۔
مشدد حروف والے الفاظ جن کی تحریر میں تشدید شامل نہ کیا گایا ہو وہ بعض حالات میں مشکل پیدا کر سکتے ہیں مثلاً "کتے کا پلا منی کی آغوش میں پلا بڑھا" کو مشدد الفاظ کی فہرست کی مدد سے بدلا جائے تو "کتتے کا پللا مننی کی آغوش میں پللا بڑھا" جبکہ آخری "پلا" کو "پللا" نہیں ہونا چاہئے۔
اسی طرح پری پروسیسنگ میں تنوین والے حروف بھی بدلنے ہونگے مثلاً "مثلاً" کو "مثلن" کرنا ہوگا۔ یہ تبدیلی بھی بعض حالات میں جبکہ تنوین تحریر میں شامل نہ ہو اور منون الفاظ کی فہرست سے تبدیلی کی جائے تو کنفلکٹ پیدا کر سکتی ہے۔ بہر کیف چونکہ شاعری میں تنوین والے الفاظ کم کم مستعمل ہیں اس لئے یہ شاید اتنے مسائل پیدا نہ کرے۔ اور ایسا بھی ممکن ہے کہ پری پروسیسنگ کے وقت انھیں بدلا ہی نہ جائے بلکہ مفردات کی فہرست میں تنوین کے ساتھ اور بغیر تنوین کے دونوں ہی صورتوں کا بدل لکھ دیا جائے۔
بہتر کار کردگی کے لئے فیڈ بیک لرننگ کی ضرورت ہے۔ یعنی پہلے سے معلوم بحر والے مصرعوں کی تقطیع کرا کے اس میں ہونے والی غلطیوں کا جائزہ لیا جائے اور اس غلطی کا سبب سمجھا جائے جس سے پروگرام لاجک میں تبدیلی کرنے نیز مفردات کے متبادل بائنری شامل کرنے میںمدد مل سکے۔
امکان: اگر اشعار مُعَرَّب اور مُشَکَّل لکھے جاتے تو مفرادات کی فہرست بنانے کی ضرورت نہیں پڑتی بلکہ ایک ساتھ دو دو حروف کے تجزیہ سے بائنری بدل کے امکانات کا پتہ چلایا جا سکتا تھا۔ پر عام حالات میں شاید ایسا ممکن نہ ہو۔ میں اس معاملے میں احباب خصوصاً وارث بھائی، یعقوب آسی صاحب، چاچو اور شاکر بھائی کی رائے کا شدت سے منتظر ہوں۔ اگر غیر معرب الفاظ میں دو دو تین تین حروف کے تجزیہ سے بائنری بدل لکھنے کی کوئی صورت ممکن ہو سکتی ہے تو اسے مذکورہ مفردات کی فہرست سازی میں استعمال کیا جا سکتا ہے اور بعد میں مینولی اس کی درستگی کی جا سکتی ہے۔
ڈیویلپمینٹ کے لئے ویب بیسڈ ایپلیکیشن بنانے کو ترجیح دوںگا جس میں ایچ ٹی ایم ایل اور جاوا اسکرپٹ کے ذریعہ انٹرفیس بنایا جائے اور اجاکس کمیونیکشن سے سرور پر پروسیسنگ کرائی جائے۔ سرور سائڈ میںکوئی بھی پروگرامنگ زبان استعمال کی جا سکتی ہے میں روبی یا پی ایچ پی کو ترجیح دوں گا۔
فی الحال میرے دماغ میں ایک طریقہ کار کا خاکہ موجود ہے جسے یہاں بیان کرتا ہوں اور احباب کی رائے جاننا چاہتا ہوں۔
الحمد للہ محفل میں ہزاروں کی تعداد میں اشعار موجود ہیں اگر ان کو پارس کر کے مفرد و منفرد الفاظ کی ایک فہرست بنا لی جائے یا پہلے سے موجود کسی ڈکشنری سے الفاظ کا ذخیرہ حاصل کر لیا جائے۔ اس فہرست کی پروسیسنگ کر کے اس میں مشدد حروف کو دو بار لکھ دیا جائے (اگر زیر عمل لفظ پر تشدید نہیں لگایا گیا ہے تو اس کام کے لئے مشدد الفاظ کی فہرست درکار ہوگی) اور ایسے حروف کو حذف کردیا جائے جو تقطیع میں شمار نہیں کئے جاتے مثلاً "تھوڑا" کو "توڑا" کر لیا جائے اس طرح فہرست میں پھر سے کچھ ڈپلیکیٹ الفاظ جمع ہو جائیںگے جنھیں منفرد کرنے پر یہ فہرست کچھ چھوٹی ہو جائے گی۔ اگلا مرحلا ان سبھی مفردات کی ممکنہ بائنری بدل لکھنا ہے جو کہ خاصہ وقت طلب کام ہے۔ بعض حالات میں ایک ہی مفرد لفظ کے مختلف محل استعمال پر کئی بائنری بدل ہو سکتے ہیں اور ان سب کو فہرست میں جگہ دینا ہوگا۔ اس کے بعد کسی مصرع کی تقطیع کرنے کے لئے پہلے اس مصرع میں موجود سبھی الفاظ کی پری پروسیسنگ کر کے مشدد حروف کو دو بار لکھ کر اور تقطیع میں شامل نہ کیئے جانے والے حروف کو حذف کر کے مفردات کے اس جدول کی مدد سے متبادل بائنری ترتیب تیار کی جا سکتی ہے۔ اور کئی امکانات میں سے ایک کا انتخاب کرنے کے لئے تقطیع کرتے ہوئے اگر ممکن ہوا تو کچھ وصول مرتب کئے جا سکتے ہیں ورنہ گیم ٹری Game Tree کا طریقہ استعمال کیا جا سکتا ہے یعنی سبھی امکانات کو جمع کرکے ان میں سے ایسا سیٹ اپ منتخب کیا جا سکتا ہے جو کسی معلوم بحر سے متعلق ہو یا موجودہ نظم کی بحر سے ملتا ہو۔ ظاہر ہے ہمیں اس کام کے لئے ہمیں بحور کی بھی ایک فہرست مرتب کرنی ہوگی اور جس میں جائز بائنری ترتیبوں کو شامل کرنا ہوگا۔ یہ طریقہ کار قدرے وقت طلب ہے پر بہتر نتائج دے سکتا ہے۔ اس کام میںسب سے زیادہ وقت مفردات کی فہرست بنا کر اس میں بائنری متبادل شامل کرنا ہے۔
مشدد حروف والے الفاظ جن کی تحریر میں تشدید شامل نہ کیا گایا ہو وہ بعض حالات میں مشکل پیدا کر سکتے ہیں مثلاً "کتے کا پلا منی کی آغوش میں پلا بڑھا" کو مشدد الفاظ کی فہرست کی مدد سے بدلا جائے تو "کتتے کا پللا مننی کی آغوش میں پللا بڑھا" جبکہ آخری "پلا" کو "پللا" نہیں ہونا چاہئے۔
اسی طرح پری پروسیسنگ میں تنوین والے حروف بھی بدلنے ہونگے مثلاً "مثلاً" کو "مثلن" کرنا ہوگا۔ یہ تبدیلی بھی بعض حالات میں جبکہ تنوین تحریر میں شامل نہ ہو اور منون الفاظ کی فہرست سے تبدیلی کی جائے تو کنفلکٹ پیدا کر سکتی ہے۔ بہر کیف چونکہ شاعری میں تنوین والے الفاظ کم کم مستعمل ہیں اس لئے یہ شاید اتنے مسائل پیدا نہ کرے۔ اور ایسا بھی ممکن ہے کہ پری پروسیسنگ کے وقت انھیں بدلا ہی نہ جائے بلکہ مفردات کی فہرست میں تنوین کے ساتھ اور بغیر تنوین کے دونوں ہی صورتوں کا بدل لکھ دیا جائے۔
بہتر کار کردگی کے لئے فیڈ بیک لرننگ کی ضرورت ہے۔ یعنی پہلے سے معلوم بحر والے مصرعوں کی تقطیع کرا کے اس میں ہونے والی غلطیوں کا جائزہ لیا جائے اور اس غلطی کا سبب سمجھا جائے جس سے پروگرام لاجک میں تبدیلی کرنے نیز مفردات کے متبادل بائنری شامل کرنے میںمدد مل سکے۔
امکان: اگر اشعار مُعَرَّب اور مُشَکَّل لکھے جاتے تو مفرادات کی فہرست بنانے کی ضرورت نہیں پڑتی بلکہ ایک ساتھ دو دو حروف کے تجزیہ سے بائنری بدل کے امکانات کا پتہ چلایا جا سکتا تھا۔ پر عام حالات میں شاید ایسا ممکن نہ ہو۔ میں اس معاملے میں احباب خصوصاً وارث بھائی، یعقوب آسی صاحب، چاچو اور شاکر بھائی کی رائے کا شدت سے منتظر ہوں۔ اگر غیر معرب الفاظ میں دو دو تین تین حروف کے تجزیہ سے بائنری بدل لکھنے کی کوئی صورت ممکن ہو سکتی ہے تو اسے مذکورہ مفردات کی فہرست سازی میں استعمال کیا جا سکتا ہے اور بعد میں مینولی اس کی درستگی کی جا سکتی ہے۔
ڈیویلپمینٹ کے لئے ویب بیسڈ ایپلیکیشن بنانے کو ترجیح دوںگا جس میں ایچ ٹی ایم ایل اور جاوا اسکرپٹ کے ذریعہ انٹرفیس بنایا جائے اور اجاکس کمیونیکشن سے سرور پر پروسیسنگ کرائی جائے۔ سرور سائڈ میںکوئی بھی پروگرامنگ زبان استعمال کی جا سکتی ہے میں روبی یا پی ایچ پی کو ترجیح دوں گا۔