مشروع PHP واللغة العربية

بقلم الأح خالد الشمعة على http://www.arabtechies.net/node/88

بعد قرابة الخمسة أشهر على ماراثون البرمجة في القاهرة، هذه مراجعة لما قطفه مشروع PHP واللغة العربية من ثمار بعد المشاركة في هذا الحدث.

لقد انطلق مشروع PHP واللغة العربية http://www.ar-php.org كمشروع شخصي صغير بداية العام 2006 وهدف إلى تقديم مجموعة متكاملة من الأدوات والمكتبات التي تعالج نصوص اللغة العربية وتتعامل معها بخصائصها وخصوصياتها، متيحا للمبرمجين العرب وسيلة تمكنهم من بناء تطبيقات ويب ذات طابع عربي أصيل تحت مظلة ترخيص البرمجيات الحرة المفتوحة المصدر، وذلك عوضا عما توفره لغة PHP من مكتبات وتقنيات صممت أصلا للتعامل مع نصوص اللغة الإنجليزية، وما يستتبع هذا من حشرها ولي عنقها للتعامل مع غيرها من لغات.

لم يقتصر نشاط هذا المشروع حتى الآن على نواة المكتبة ذاتها فقط، بل امتد ليوفر مجموعة من الإضافات التي تدمج بين ما توفره هذه المكتبة من مزايا ووظائف وبعض من الأدوات والتطبيقات الشائعة الاستخدام في عالمنا العربي مثل مدونة WordPress ومتصفح Firefox وإطار عمل CakePHP وأداة التحرير TinyMCE، هذا عدى عن إصدار كتاب بعنوان PHP واللغة العربية يشرح بالتفصيل العديد من الخوارزميات المستخدمة في هذا المشروع.

لقد كانت الدعوة للمشاركة في اجتماع التقنيين العرب في أيار/مايو 2009 دفعة معنوية قوية بعد ثلاثة أعوام على انطلاقة المشروع في وقت كانت فيه الثقة بأن هنالك من يهتم قد بدأت تهتز، فالدفع المعنوي أمر هام لمثل هكذا بذور مشاريع يطلقها أفراد يعملون عليها في أوقات فراغهم، وهذا كان مكسبنا الأول في مشروع PHP واللغة العربية، ألا وهو إدراكنا حقيقة أن هنالك من يهتم فعلا، وأننا نسير على الطريق الصحيح. من جهة أخرى كانت فرصة التعرف على المجموعة المميزة من المشاركين بهذا الحدث هي المكسب الأهم باعتقادي، والتي سينمو تأثيرها رويدا رويدا ككرة الثلج بعد المؤتمر وذلك من خلال النقاشات والتواصل عبر القائمة البريدية الخاصة بهذا التجمع من التقنيين العرب المهتمين بإيجاد حلول لمشاكل دعم ومعالجة اللغة العربية. من جهتنا في مشروع PHP واللغة العربية فقد كان توفر التوثيق الجيد إضافة إلى حفظ الشيفرة المصدرية في مكنز CVS على موقع Sourceforge.net عدى عن إدراجها أصلا تحت ترخيص LGPL عوامل ساعدت على سهولة الانخراط في جو العمل دون تأخير.

بالعودة إلى أيام الماراثون الأربعة، فقد عمل بعض الأصدقاء منهم بودي و علاء من مصر على دمج هذه المكتبة كإضافة بنظام Drupal لإدارة المحتوى، وترافق ذلك مع مواجهتهم لبعض الإشكاليات التي تتعلق بطريقة التبليغ عن الأخطاء والتحميل الآلي للملفات الفرعية ضمن هذه المكتبة والتي كانت تتعارض مع أسلوب عمل نظام Drupal لإدارة المحتوى، لذا تم في ضوء ملاحظاتهم تلك تعديل نواة المكتبة لتتيح مزيدا من المرونة في تفعيل أو إيقاف تفعيل هذه الخيارات من خلال ضبط الإعدادات فيها. كذلك ساعدت وجهات النظر المختلفة لطريقة التعامل مع هذه المكتبة على اقتراح أساليب أخرى لاستثمار واستدعاء ما توفره من خوارزميات بطرق جديدة، وقد كانت هذه هي الحال مع التابع الجديد isArabic عندما أشار الصديق بودي من مصر لحاجته إلى تحديد إن كان اسم الملف المعطى عربيا أم لا، وهي وظيفة كانت مدمجة بشكل أو بآخر ضمن المكتبة الفرعية ArIdentifier لكن ليست بالشكل الصريح والمباشر هذا، مما أسهم في نهاية المطاف في إغناء ما توفره هذه المكتبة من أدوات.

من جهة أخرى، كشف العمل مع الأخ اليمني من اليمن على تطبيق وظيفة البحث المتقدم للنص العربي بدلالة ساق الكلمة ضمن قاعدة MySQL للبيانات والذي توفره المكتبة الفرعية ArQuery محدودية أداء التوابع النظامية Regular Expressions في تعليمات SQL عند التعامل مع قواعد بيانات كبيرة الحجم، وتم بالاستعانة بنصائحه ونصائح غيره من الزملاء تحسين دقة النتائج التي يعيدها التابع allForms المتوفر من قبل ذات المكتبة والذي يقدم مجموعة الأشكال الصرفية المحتملة للكلمة المعطاة ليصار إلى البحث عنها جميعا ضمن قاعدة البيانات بالطريقة التقليدية.

تحسين آخر طال هذه المكتبة أثناء أيام الماراثون الأربعة وهو الذي طال وظيفة التلخيص الآلي التي تعتمد في خوارزميتها على تمييز الكلمات الشائعة واستثنائها من حساباتها، إذ كانت لائحة الكلمات الشائعة المتوفرة قبل هذا الحدث تفتقر إلى الكمال، لكن وبفضل جهود الأخوة طه من الجزائر و وليد و رهام و لينكساوي من مصر، تم الحصول على قائمة جديدة أفضل بعدة أشواط مما كان متاحا لنا سابق، مما انعكس إيجابا على دقة نتائج هذه الوظيفة وصحتها.

لم يقتصر ما قطفناه من ثمار خلال أيام المؤتمر على ذلك فحسب، بل كان هناك العمل المميز الذي قام به الصديق جهاد من الجزائر في بناء نسخة JavaScript من مكتبة ArKeySwap والتي تقوم بتغيير لغة لوحة المفاتيح لنص معطى برمجيا، وهو ما فتح الطريق أمامنا لجعل إضافة المتصفح Firefox تعمل دون الحاجة لوجود اتصال حي بشبكة الإنترنت، ليس هذا فحسب، بل قام بإضافة دعم اللغة الفرنسية إليها. بالحديث عن الإضافات، لا بد من أن أذكر الجهد الطيب الذي قام به الأخ أحجوج من المغرب في بناء إضافة إلى مدونة WordPress تدمج المزيد من وظائف مكتبة PHP واللغة العربية معها.

إن مجمل هذه التحسينات وغيرها الكثير ظهرت مع إطلاق الإصدار الثاني من مكتبة PHP واللغة العربيةبعد قرابة الشهرين من هذا الحدث، طبعا لا استثني الجهود الطيبة للأصدقاء من خارج دائرة التقنيين العرب وأخص بالذكر الصديقين صالح المطرفي من السعودية وخالد حوراني من سوريا. لكن القصة لم تتوقف عند هذا الحد، فكم المعلومات والمصادر والأفكار التي حصلنا عليها وتبادلناها مع الأصدقاء خلال أيام المارثون الأربع أكثر من أن تقف عند هذا الحد، وهكذا طرحت بعد ذلك ثلاثة إصدارات فرعية استفادت بشكل كبير من التواصل والنقاش وتبادل النصح من خلال القائمة البريدية الخاصة بمجموعة التقنيين العرب.

لقد تم التركيز في تلك الإصدارات الفرعية على تحسين الأداء وتقليل بصمة المكتبة في الذاكرة، إضافة إلى مواضيع التوافقية مع الإصدار السادس القادم من لغة PHP وقابلية الاستخدام ضمن العناقيد أو الحوسبة الغمامية Clouding Computing حيث أصبح بإمكانك كتابة شيفرة برمجية لا تعتمد على الحالة السابقة، هذا عدى عن ضبط شيفرتها البرمجية لتتقيد بمعايير مكتبة PEAR لطريقة كتابة الشيفرة المصدرية، وحزم المكتبة ذاتها بملف وحيد بتنسيق Phar.

أما تأثيرات التقنيين العرب في هذه المرحلة فقد كانت جمة، منها ملاحظة الأخ جهاد من الجزائر خلال أيام المؤتمر حول التركيبة المربكة لنواة المكتبة، وهو ما كان دافعا للعمل على إعادة كتابة شيفرتها البرمجية بالكامل بشكل أكثر فعالية ليصبح حجمه 9 KB عوض 43 KB وهو ما ساهم في تقليل بصمتها في الذاكرة إلى قرابة النصف. في هذا الإطار تأتي مساهمات الأخ طه الزروقي من الجزائر القيمة والمتواصلة، فقد تم إضافة وظيفة جديدة كليا لاستخلاص ساق الكلمة اعتمادا على خوارزمية قدمها هو، كما تم جعل وظيفة إزالة الكلمات الشائعة من نص معطى متاحة لمستخدمي المكتبة الفرعية الخاصة بالتلخيص الآلي بعد أن كانت محجوبة للاستخدامات الداخلية فقط لتلك المكتبة وذلك بناء على اقتراحه، أضف إلى ذلك مساهمته الكبيرة في تحسين دقة نتائج التابع isNoun من خلال تقديم مجموعة جديدة محسنة من القواعد التي تساعد في التفريق ما بين الأسماء والأفعال باللغة العربية، هذا عدى عن الإشارة إلى بعض الأخطاء البرمجية هنا أو هناك.

نحن في مشروع PHP واللغة العربية على يقين بأن هذه لا تزال البداية فقط، ونطمح لتحقيق الكثير في المستقبل القريب، فآفاق الاستفادة مما يوفره مشروع قطرب الذي يقوده الأخ طه الزروقي من الجزائر تبدو واعدة جدا، كما أن خطط إضافة وظائف جديدة للمكتبة مثل استخراج النصوص العربية من ملفات PDF و ضبط وتوليف وظائف الفهرسة المتقدمة التي تقدمها قاعدة MySQL للبيانات لتعطي أفضل أداء مع النصوص العربية هذا عدى عن ضبط وتوليف المدقق الإملائي المدمج مع لغة PHP ليدعم العربية إضافة إلى التعرف الضوئي (على الأرقام الهندية في مرحلته الأولى). طبعا فإن كل هذا لن يكون معزوفة منفردة يؤديها شخص واحد، بل هو أداء جماعي تؤديه جوقة متناغمة متفاهمة مشتركة في الأهداف والطموحات آمل أن يكون مجتمع التقنيين العرب لاعب أساسي فيها لما لمست لديهم من خبرة وطموح ورغبة في العطاء.

Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s


%d مدونون معجبون بهذه: