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

بعد قرابة الخمسة أشهر على ماراثون البرمجة في القاهرة، هذه مراجعة لما قطفه مشروع 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 ليدعم العربية إضافة إلى التعرف الضوئي (على الأرقام الهندية في مرحلته الأولى). طبعا فإن كل هذا لن يكون معزوفة منفردة يؤديها شخص واحد، بل هو أداء جماعي تؤديه جوقة متناغمة متفاهمة مشتركة في الأهداف والطموحات آمل أن يكون مجتمع التقنيين العرب لاعب أساسي فيها لما لمست لديهم من خبرة وطموح ورغبة في العطاء.

|
Taha Zerrouki's picture

رائـــع

تقرير رائع، يبعث البهجة، ويشحذ العزائم
وأعتقد أن تطبيق استخلاص النص العربي من pdf مهم جدا

» |
أحمد غربية's picture

القائمة البريدية؟

ما القائمة البريدية للمجموعة؟
أدعّي أني متابع للأخبار التي تنشر هنا لكني لا أذكر أنه قد أُعلن عنها.

» |
Manal Hassan's picture

codesprint2009@arabtechies.ne

codesprint2009@arabtechies.net

انشأت للمشاركين في الماراثون و مازالت تستخدم للتواصل ما بينهم و للمناقشة أو اعلان أخبار جديدة خاصة بأي من المشاريع.

تحب أضيفك عليها يا أحمد؟ حد تاني؟

» |

آخ زو

أنا كنت فاهم أنها للمهاويس العرب عموما.
لأ خلاص، بما أني مش مشارك تقنيا في أي من المشروعات دي، فما لهش لزوم.
شكرا يا منال.

» |

الإضافة إلى مكتبة PEAR

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

الصفحة المؤقتة لاقتراح إضافة هذه المكتبة هي التالية:
http://pear.php.net/pepr/pepr-proposal-show.php?id=617

نحن الآن في مرحلة طرح المسودة ومناقشتها، لذا نرحب بكل من لديه عضوية في مكتبة PEAR أن يشارك في هذه النقاشات بشكل إيجابي دعما لهذه المكتبة، كما أرغب في معرفة كم من الأصدقاء يملكون حساب PEAR حتى ننسق ونحشد التأييد الكافي لصالح هذه المكتبة حينما يحين الوقت لطرحها على التصويت

» |
Khaled Al-Shamaa's picture

أنا سعيد بإعلامكم أن الموقع

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

http://www.php.net/links.php

» |
Manal Hassan's picture

مبروك يا خالد :)

مبروك يا خالد :)

» |
Khaled Al-Shamaa's picture

PHP in Arabic - PHP Classes blog

تم نشر مقابلة حول هذا المشروع صباح اليوم في موقع
phpclasses.org

فيما يلي رابط إليها
http://www.phpclasses.org/blog/post/107-PHP-in-Arabic.html

» |
Mosab Ahmad's picture

عمل رائع يا خالد

لم ألحظ هذا التعليق وقمت بإضافة خبر اليوم على الموقع..
المقالة مفيدة جدا
وإلى الأمام دائما يا خالد

» |