مرقوم

معايير البيانات القرآنية

معيار موحد بني من مشاريع تراكمية، يساعد المطورين على بناء بيانات قرآنية موثوقة والاستفادة من مصادر البيانات المختلفة

مرقوم (Marqoom) يجمع العمل الجاري على معايير البيانات القرآنية. تشرح هذه التوثيقات المعايير، والمشكلات التي تعالجها، وكيف يمكن للمشاريع تطبيقها والاستفادة منها.

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

مشاريع تستخدم هذه المعايير

لماذا معيار مشترك؟

لنفترض أنك تبني تطبيقًا يشغّل التلاوة مع النص: تأخذ التلاوات من MP3 Quran، وتوقيت الآيات من مُنجّم. إذا سمّى كل مشروع بياناته بطريقته، فستكتب محوّلًا (adapter) لكل مشروع يترجم أسماءه إلى أسمائك. والمشكلة لا تقف عندك: كل مشروع آخر يكتب محوّلاته أيضًا، فيتكرر العمل نفسه في كل مكان، ويكبر مع كل مشروع جديد.

أما إذا اتفقنا على الأسماء، فيتعلمها كل مشروع مرة واحدة، ويقرأ بعدها بيانات الجميع.

كم محوّلًا نحتاج؟

كل خط في الشكل الأول محوّل يكتبه مشروعان ليفهم أحدهما بيانات الآخر. أضف مشروعًا وانظر كم يزيد كل شكل.

كلٌّ بتسمياته

١٠ محوّلات

بتسميات المعيار

٥ محوّلات على الأكثر

٥ مشاريع: ١٠ محوّلات بلا معيار، و٥ على الأكثر مع المعيار.
هذا أسوأ الاحتمالات: أن يتبادل كل مشروعين البيانات. وحتى لو لم يحدث ذلك، فمشروع واحد يأخذ من أربعة مصادر يكتب أربعة محوّلات. أما مع المعيار، فيكفي كلَّ مشروع محوّلٌ واحد، ولا يحتاج إليه إن استخدم الأسماء نفسها.

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

سجل آية واحدة، بتسمياتك وبتسميات المعيار
ayah.json+5 −4
 {
−  "sura": 2,−  "aya": 255,+  "surah_number": 2,+  "ayah_number": 255,

اسم واحد لكل مفهوم: sura وaya تهجئتان أخريان لـsurah وayah، وnumber للرقم الذي يذكره القارئ. الرقم المرجعي

+  "ayah_numbering_system": "kufi",

رقم الآية وحده لا يكفي. سورة البقرة ٢٨٥ أو ٢٨٦ أو ٢٨٧ آية بحسب نظام العد. أعداد الآيات

−  "rewaya": "Hafs",+  "riwayah": "hafs_an_asim",

احفظ الرمز من السجل، لا نص العرض. وHafs اسم راوٍ، أما الرواية فهي حفص عن عاصم. سجل القراءات

−  "timing": { … }+  "ayah_timing": { … }

timing وحدها لا تقول: توقيت آية أم توقيت كلمة؟ والقاموس يفرّق بين ayah_timing وword_timing. توقيت الآية

 }
يوحّد المعيار الأسماء الآن. أما صيغ النص والصوت والتوقيت فما زالت قادمة، فقد تبقى بين المشاريع فروق في البنية.

مجالات العمل

يجمع المعيار بين نوع من المحتوى وقواعد وصفه وتبادله. وتتوسع التوثيقات انطلاقًا من المصطلحات المشتركة إلى معايير مترابطة تُبنى عليها:

المصطلحات

المفاهيم والتعريفات وقواعد التسمية التي تُبنى عليها المعايير الأخرى: ٧٣ قاعدة و١٨٠ مفهومًا.

البيانات النصية

كيفية تمثيل النص القرآني وبنيته.

البيانات الصوتية

وصف التلاوة، بما في ذلك القارئ والرواية وما يحتويه الملف الصوتي.

التقطيع والتزمين

ربط المقاطع الصوتية وتوقيت الآيات أو الكلمات بالنص، وتحديد وحدات الزمن.

في هذه الصفحة