الأربعاء، 31 أكتوبر 2012

نظرة تاريخية على نظام كوها



نظرة تاريخية على نظام كوها
عندما نتحدث عن نظام كوها لإدارة المكتبات نرجع الى الوراء الى ما يقرب على  ثلاثة عشر عاما منذ عام 1999 عندما بدأ تطوير نظام كوها لإدارة المكتبات  الى ان ظهرت أول اصدارة من إصدارات النظام في شهر يوليو عام 2000 وتوالت بعد ذلك الإصدارات والتحسينات واصبح لنظام كوها قاعدة عريضه جدا من المستخدمين والمطورين على مستوى العالم وتوالت الإصدارات حتى وصلنا الى الإصدارة 3.8 وهي أحدث اصدارات النظام .
عند النظر الى اخر اصدارات النظام نظرة فاحصة نجد أن نظام كوها قد وصل إلى درجة من النضج والإكتمال ترقى الى ان تنافس أكبر نظم المكتبات الموجوده في العالم بالإضافة الى انه مع نشاط مجتمع مستخدمي ومطوري النظام وجدت العديد من الترجمات للنظام بعدة لغات على مستوى العالم منها الفرنسية والصينية والعربية والعديد من اللغات الأخرى مما حقق له انتشارا اوسع.
وقد حصل نظام كوها على ما يقرب من 5 جوائز عالميه ، ويشارك في تطوير النظام العديد من إخصائيي المكتبات والمبرمجين بالإضافة الى الشركات التي تبنت تطوير النظام والعمل على دعمه بشكل تجاري
تم عقد 5 مؤتمرات لنظام كوها بدأت في عام 2006 في باريس ثم 2009 في تكساس 2010 نيوزيلندا 2011 في الهند وأخرها 2012 في إدنبره ، اسكوتلندا

   محمد الزلباني
إستشاري نظم آلية

المصادر
http://en.wikipedia.org/wiki/Koha_%28software%29
http://koha-community.org/about/release-schedule/

الجمعة، 26 أكتوبر 2012

البحث بالمحارف العربية ـ وتحسينه في كوها

 البحث بالمحارف العربية ـ وتحسينه في كوها

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

أولاً تفعيل ICU ، لدعم المحارف العربية بشكل بسيط :

في الحقيقة هنالك اشكالية كبيرة حول تفعيل ICU ، خاصة إذا ما كان ذلك في إصدارات كوها ما قبل الإصدار 3.8x أو حتى لاصدار 3.8x فما فوق ، سافصل أكثر في ذلك :

كوها ما قبلَ 3.8x :

في هذه الإصدارات من كوها ، لم يكن هنالك أي شيء بإمكانه أن يُخبر كوها بأنك تريد استخدام زيبرا لتبحث في المحارف غير اللاتينية ، وعليه فإن العملية كانت برمتها يدوية.

الخطوات اليدوية لتعفيل البحث بالكود الموحد Unicode :   

 أولاً إن لم تكن لديك حزمة  yaz-icu نصبها  من خلال تنفيذ الأمر التالي :
install yaz-icu package
ثانياً ادخل للمسار التالي بالصلاحيات المطلوبة للتعديل فيه :
/etc/koha/zebradb/etc/
ثمَّ حرر الملف المسمى default.idx وتأكد ان بدايته تشابه ما هو موجود في ما يلي  (إن لم تكن كذلك فعدلها) :
# Traditional word index
# Used if completenss is 'incomplete field' (@attr 6=1) and
# structure is word/phrase/word-list/free-form-text/document-text
index w
completeness 0
position 1
alwaysmatches 1
firstinfield 1
icuchain words-icu.xml


# Phrase index
# Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1)
# and structure is word/phrase/word-list/free-form-text/document-text
index p
completeness 1
firstinfield 1
icuchain words-icu.xml
 لاحظ الملون بالأحمر ، هو ما عليك أن تتاكد من وجوده ، وما هو عريض ، هو اسم الملف الذي سيأخذ منه قواعد icu ليدعم المحارف العربية والسوابق واللواحق ...
 ثالثاً أنشئ مستنداً نصياً (إن لم يكن موجوداً أصلاً أو حرره ) بالمسمى التالي  words-icu.xml  كما حُدد أعلاه بالأحمر العريض وتاكد من وجوده في نفس المسار السابق : 
/etc/koha/zebradb/etc/
ثمَّ تاكد من أن محتويات الملف النصي المسمى  words-icu.xml تشبه ما يلي (للدعم البسيط للمحارف العربية ) : 
<icu_chain locale="ar">
  <transliterate rule="\'>\ "/>
  <transliterate rule="[:Number:] { '-' > '' "/>
  <transform rule="[:Control:] Any-Remove"/>
  <tokenize rule="l"/>
  <transform rule="[[:WhiteSpace:][:Punctuation:]] Remove"/>
  <transform rule="NFD"/>
  <transform rule="[:Nonspacing Mark:] Remove"/>
  <transform rule="NFC"/> 
  <display/>
  <casemap rule="l"/>
</icu_chain>
احفظ الملف وأعد تشغيل زيبرا من خلال الأمر التالي :
/etc/init.d/koha-zebra-daemon restart
ثم اعد تكشيف فهرس زيبرا من خلال الأمر التالي : 
/usr/share/koha/bin/migration_tools/rebuild_zebra.pl -b -r -v -w
افتح كوها ، وابحث بالعربية :) . 
شكر :
شكراً للأستاذ مسعود الشريف الذي ساعدني بإرشادات في ( الدعم البسيط للمحارف العربية للاصدارات قبل 3.8) .
وشكراً للسيد "Nitesh Rijal" الذي استفدتُ من مستنده المنشور للاستزادة في هذه المعلومات ودعم نفس العملية : 
http://www.scribd.com/doc/45190333/ICU-Support-in-Zebra

كوها 3.8x وما فوق :

بعد اصدار كوها 3.8x ، فبإمكانك اختصار الخطوات المذكورة آنفاً أثناء عملية التنصيب ، وذلك من خلال اختيار الخيار icu اثناء عملية التنصيب وبالضبط بالخطوة التي يسالك فيها عن التالي : 
Zebra has two methods to perform records tokenization
and characters normalization: CHR and ICU. ICU is
recommended for catalogs containing non-Latin
characters. (chr, icu) [chr] icu

اذا هنا عليك ان تختار icu ، وبذلك يتم التكوين الذي قمنا به بشكل يدوي أعلاه ، وستحتاج بعد ذلك ( في الاصدارات بعد 3.8 ) أن تخبر كوها انك تستخدم icu وذلك من خلال الذهاب للمسار التالي :
من واجهة كوها الأساسية > المزيد > الإدارة > تفضيلات النظام العامة > البحث > UseICU > اختر استخدم (use) .
ومن نفس المسار اختر للتفضيل  QueryFuzzy >اختر لا تحاول (don't try)
واختر التفضيل QueryStemming > واجعل قيمته لا تحاول (don't try)


وأعد تشغيل زيبرا من خلال الأمر التالي :
/etc/init.d/koha-zebra-daemon restart
ثم اعد تكشيف فهرس زيبرا من خلال الأمر التالي : 
/usr/share/koha/bin/migration_tools/rebuild_zebra.pl -b -r -v -w
افتح كوها ، وابحث بالعربية :) .


ثانياً ـ تفعيل البحث بالمحارف العربية بشكل متقدم :

قد يبدو العنوان خطيراً ههه ولكن لا تقلق ... فالأمر بسيط . في كلتا الحالتين المذكورتين أعلاه ، سواء ﻹصدارات كوها ما قبل 3.8x أو ما بعدها فإن الخطوة هي نفسها ن المهم ان تكون فعلت البحث البسيط بالمحارف العربية كما شرحتُ أعلاه ، ثم ما عليك إلا أن تحرر الملف المسمى words-icu.xml في المسار  

/etc/koha/zebradb/etc/
وجعله كالتالي لدعم تجاهل (ال) من بداية الكلمات ويمكن تطويرها لتدعم ه ة ي ى ون ين ان ... حسب الحاجة . 
<icu_chain locale="ar">
  <transliterate rule="\'>\ "/>
  <transliterate rule="[:Number:] { '-' > '' "/>
  <transform rule="[:Control:] Any-Remove"/>
  <tokenize rule="l"/>
  <transform rule="[[:WhiteSpace:][:Punctuation:]] Remove"/>
  <transform rule="NFD"/>
  <transform rule="[:Nonspacing Mark:] Remove"/>
  <transform rule="NFC"/>
  <transliterate rule="{ الا > ا "/>
  <transliterate rule="{ الأ > أ "/>
  <transliterate rule="{ الإ > إ "/>
  <transliterate rule="{ الآ > آ "/>
  <transliterate rule="{ الب > ب "/>
  <transliterate rule="{ الت > ت "/>
  <transliterate rule="{ الث > ث "/>
  <transliterate rule="{ الج > ج "/>
  <transliterate rule="{ الح > ح "/>
  <transliterate rule="{ الخ > خ "/>
  <transliterate rule="{ الد > د "/>
  <transliterate rule="{ الذ > ذ "/>
  <transliterate rule="{ الر > ر "/>
  <transliterate rule="{ الز > ز "/>
  <transliterate rule="{ الس > س "/>
  <transliterate rule="{ الش > ش "/>
  <transliterate rule="{ الص > ص "/>
  <transliterate rule="{ الض > ض "/>
  <transliterate rule="{ الط > ط "/>
  <transliterate rule="{ الظ > ظ "/>
  <transliterate rule="{ الع > ع "/>
  <transliterate rule="{ الغ > غ "/>
  <transliterate rule="{ الف > ف "/>
  <transliterate rule="{ الق > ق "/>
  <transliterate rule="{ الك > ك "/>
  <transliterate rule="{ الل > ل "/>
  <transliterate rule="{ الم > م "/>
  <transliterate rule="{ الن > ن "/>
  <transliterate rule="{ اله > ه "/>
  <transliterate rule="{ الو > و "/>
  <transliterate rule="{ الي > ي "/>
  <display/>
  <casemap rule="l"/>
</icu_chain>
للاستزادة حول اساليب صياغة هذه القواعد ارجع إلى دليل icu : 
http://userguide.icu-project.org/transforms/general/rules

تهانينا ! كوها الآن يتكلم ويجيب بالعربية :) .


والسلام عليكم ورحمة الله .

كرم قبسي .

برمجيات حرة برمجيات مفتوحة المصدر © نظام كوها ﻹدارة المكتبات