مكتبات النصوص المكتبة الشاملة ونحوها
تتيح نصوص الكتب كاملةً وتُمكّن من البحث فيها.
والترجمة داخلها نصٌّ في كتاب، لا سجلٌّ مهيكل يقبل التصفية والمقارنة والتصدير.
مشروع بحثي — إعداد مصطفى محمد البيك
قولُ كل كتاب في العَلَم محفوظٌ على حدة، بنصّه وموضعه من الكتاب. وإذا اختلفت الكتب في خبرٍ عُرض الخلاف على وجهه، دون ترجيحٍ صامت بين الروايات.
المخطط مسوّدة قيد المراجعة، ولم يبدأ إدخال البيانات بعد. والأمثلة المعروضة في هذه الصفحة توضيحية تبيّن بنية النموذج، وليست مادةً منشورة.
اختلاف المصادر في تراجم الأعلام أصلٌ في هذا العلم لا خللٌ يُصلَح. والمشكلة أنّ الموارد الرقمية اليوم لا تحتفظ بهذا الاختلاف: تصل الترجمة إلى القارئ وقد صارت نصاً واحداً، لا يُعرف قائلُ كل خبرٍ فيه.
ويقع الخلل في الموارد القائمة في أربعة مواضع، هي التي بُني هذا المشروع لتلافيها:
تُذاب أقوال الكتب في نصٍّ واحد متّصل، فيختلط ما قاله مؤرّخ من القرن الثامن بما قاله آخر من القرن الحادي عشر، ولا يبقى سبيلٌ إلى ردّ خبرٍ بعينه إلى قائله.
إذا تعدّدت الروايات عُرضت واحدة منها دون بيان وجه ترجيحها، أو رُكّب بينها قولٌ وسطٌ لم يذهب إليه أحد من المتقدّمين. ولا يدري القارئ أنّ ثَمّ خلافاً أصلاً.
قائمة المراجع في آخر الصفحة تدلّ على الكتب التي رُجِع إليها جملةً، ولا تدلّ على مصدر خبرٍ بعينه. والتحقّق من سنة وفاة واحدة يقتضي العودة إلى تلك الكتب كلّها.
لا تصلح للاستشهاد في بحثٍ محكَّم، ولا للتصفّح بالقرن أو المكان أو المهنة، ولا للتحليل الكمّي.
ويبدأ «تراجم» من المصدر لا من السيرة: لكل كتاب ترجمتُه المستقلة بنصّها، والخلاف بين الكتب محفوظٌ معروض، وكل خبرٍ معزوٌّ إلى موضعه من الكتاب.
الميدان الرقمي العربي ليس فارغاً، وهذا العمل لا يزعم سدّ فراغ. فلكلٍّ من المشاريع القائمة غرضٌ يُحسنه، والفجوة التي يقصدها هذا العمل تقع بينها جميعاً.
تتيح نصوص الكتب كاملةً وتُمكّن من البحث فيها.
والترجمة داخلها نصٌّ في كتاب، لا سجلٌّ مهيكل يقبل التصفية والمقارنة والتصدير.
مدوّنة نصوص عربية مقروءة آلياً، بمعرّفات للمؤلفين وسنوات وفياتهم، بُنيت عليها دراسات في تتبّع ما تناقلته الكتب من نصوص.
والبناء فيها على مستوى النصّ والمؤلّف، لا على مستوى الخبر المفرد داخل الترجمة.
معرّفات ثابتة وربطٌ بين ملفّات الاستناد، وبنيةٌ جيدة للتواريخ والانتماءات.
وتغطيتها للأعلام المتقدّمين متفاوتة، ولا تحمل نصّ الترجمة كما ورد في مصدره.
تقرّب سِيَر الأعلام إلى القارئ العام بلغة ميسّرة.
والنصّ فيها ممزوج، والعزو عامّ، والخلاف بين المصادر لا يظهر.
ويبقى خارجها جميعاً ما عليه مدار عمل المحقّق: ترجمةُ كتابٍ بعينه لعَلَمٍ بعينه، محفوظةً كما وردت، ومعها أخبارُها معزوّةً كلٌّ إلى موضعه. وهذا هو موضع «تراجم».
الفروق في بنية البيانات نفسها، لا في العرض.
| المحور | الشائع في الموارد الرقمية | تراجم |
|---|---|---|
| وحدة الحفظ | الترجمة نصٌّ واحد للعَلَم | ترجمة مستقلة لكل كتاب عن العَلَم الواحد |
| الخلاف بين المصادر | يُرجَّح قولٌ أو تُمزج الأقوال | تُحفظ الأقوال كلها وتُعرض متقابلة |
| مستوى الإسناد | قائمة مراجع للصفحة | لكل خبر كتابُه وموضعُه وقائلُه |
| التاريخ | سنة مفردة أو حقل فارغ | حدّان ودرجة دقّة وقيدٌ: نحو، قبل، بعد |
| المكان | اسم نصّي يُفهم بحدود اليوم | معجم تاريخي، لكل موضع مدّته وتبعيته المؤرّخة |
| التصنيف | وسوم في قائمة واحدة لا تراتب فيها | محاور مستقلة، ينطبق منها على العَلَم ما يَعنيه |
| التصويب | بلاغ يُرسل ولا يُعرف مآله | مراجعة حقلاً حقلاً، ومآلُ كل تغيير في سجل علني |
العمود الأوسط وصفٌ لأنماط عامة في الموارد الرقمية، لا لمشروع بعينه ممّا ذُكر أعلاه؛ ولكلٍّ منها غرضٌ يختلف عن غرض هذا العمل.
يستشهد بترجمة كتابٍ بعينه في موضعٍ بعينه، ويقف على خلاف المصادر قبل أن يبني عليه حكماً.
يقارن روايات الكتب في العَلَم الواحد جنباً إلى جنب، دون أن يجمعها بنفسه من مظانّها المتفرّقة.
يتصفّح بالقرن والطبقة والمكان والمهنة، ويتتبّع شبكة الشيوخ والتلاميذ، ويصل إلى المادة بصيغة تصلح للاستشهاد.
يصدّر البيانات مهيكلةً بمعرّفات ثابتة، فيُجري عليها التحليل الكمّي، ويرسم خرائطها وخطوطها الزمنية بأدواته.
من أين تأتي مادة تراجم، وكيف تُراجَع قبل النشر.
طبعات محقَّقة مُثبتة ببيانات نشرها كاملة: المحقّق والناشر والطبعة وعدد الأجزاء. ولا معنى للإحالة إلى صفحة دون تحديد الطبعة.
تُنقل ترجمة كل كتاب كما وردت، لا تُلخَّص ولا تُعاد صياغتها، وتُقيَّد بجزئها وصفحتها ورقم ترجمتها إن وُجد.
يُستخرج من كل ترجمة ما فيها من تواريخ وأماكن وعلاقات ومناصب، ويُعزى كلٌّ منها إلى موضعه من الكتاب.
يُراجع كل حقل على حدة: يُقبل أو يُرفض أو يُعدَّل، ويُسجَّل القرار. ولا يُنشر ما لم يُراجَع — سياسةً ملتزمةً؛ وخيارُ تجاوز الطابور للموثوقين مجمَّدٌ حتى يُحسم أمره.
يُستعان به في اقتراح الحقول المهيكلة من صفحة المصدر، وفي توحيد رسم النصّ العربي آلياً. وتبقى الاقتراحات في قائمة انتظار، فلا يدخل شيء منها في البيانات دون موافقة محرّر، ولا يُعرض على القارئ نصٌّ مولَّد بحال.
كل تعديل بعد النشر يُقيَّد في سجل علني يبيّن الحقل، وقيمته قبل التغيير وبعده، وتاريخه.
87 كتاباً في قائمة العمل، موزّعة على 9 أقسام.
قائمة العمل الأولية، وهي قابلة للزيادة. ولكل كتاب عند الإدخال بيانات طبعته كاملة: المحقّق والناشر وسنة الطبع وعدد الأجزاء.
خمسة مبادئ يقوم عليها تراجم، وتنضبط بها كل جداوله.
P1السجل الأساسي يعرّف الشخص فحسب، وأما التراجم فسجلٌّ مستقل لكل كتاب.
P2تُحفظ أقوال الكتب كما وردت، ويُعرض بعضها إلى جانب بعض، ولا يصل القارئَ نصٌّ مولَّد.
P3المذهب والطبقة ودرجة الحديث محاور تصنيف اختيارية، لا أعمدة ثابتة في الجدول. فمنها ما لا ينطبق على الطبيب النصراني ولا على الفلكيّ الصابئي بحال.
P4الخبر يحمل الكتاب الذي قُرئ فيه وموضعه منه، ويحمل معه قائله إذا كان الكتاب ناقلاً: «قال ابن معين» قولُ ابن معين لا قولُ الكتاب. ودرجة الاكتمال تُقاس وتُعرض ولا تُفرض وقت الإدخال.
P5يُرجّح المحرّر روايةً واحدة للترتيب والعرض المختصر، وتُخزَّن التواريخ حدوداً لا نقاطاً، وستُطابق مرشِّحات البحث أيَّ رواية فلا يسقط عَلَمٌ من النتائج بسبب هذا الترجيح — وإنفاذ ذلك في مسار القراءة بندٌ مفتوح بعد.
كل صورة تجيب عن سؤال واحد في بنية بيانات تراجم.
حفظُ الخلاف لا يعني فوضى في العرض: الروايات مرتّبة، والمرجَّحة معلَّمة، وكل ترجمة في موضعها من كتابها ومعها صفحتها المصوَّرة. والصور بعده تبيّن كيف بُني هذا كلّه.
سمع ببغداد وحدّث بها، وكان من أهل الفضل. مات سنة أربع وعشرين وثلاثمائة.
قال ابن معين: ثقة. وتوفي سنة خمس وعشرين وثلاثمائة.
ذكره صاحب الكتاب الثاني، وقال: قيل مات نحو العشرين وثلاثمائة.
لا تُختار روايةٌ وتُطرح البواقي، ولا يُركَّب منها وسطٌ لم يقل به أحد. تُحفظ الروايات الثلاث، ويُرجّح المحرّر واحدةً منها للترتيب والعرض المختصر، وتبقى الأخريان معروضتين إلى جانبها.
الكتاب المتأخّر ينقل عمّن قبله: يقول «قال فلان»، ويقول الذي بعده «ذكر فلان أنّ». فإذا نُسب الخبر إلى الكتاب الذي قُرئ فيه وحده، ظهرت كتبٌ متّفقة، وإنما هي شاهدٌ واحد ونَقَلةٌ عنه. ولذلك يحمل كل خبر قائله لا كتابه فقط، ويُقيَّد ما بين الكتب من نقلٍ واختصار.
الإحالة تصل إلى ترجمةٍ بعينها في طبعةٍ بعينها، لا إلى صفحة على الشبكة. ولكل جزء من الإحالة موضعه في النموذج، فتُبنى آلياً ولا تُكتب باليد.
المعرّف الثابت مصمَّم ألّا يتغيّر وإن صُحّحت الترجمة أو تغيّر عنوان صفحتها، فتبقى الإحالة المطبوعة صالحة — وضمانُ ثباته عبر دورة الحياة كلِّها، حذفاً ودمجاً واستبدالاً، بندٌ مفتوح في سجل المتابعة لم يُغلق بعد. ولا يصحّ الاستشهاد بالجزء والصفحة دون الطبعة، ولذلك تُثبَّت بيانات الطبعة كاملة قبل نقل أول ترجمة منها.
لا فرق بين تاريخ محدَّد وتقريبٍ وقرنٍ كامل: كلها حدود، يكفيها فهرسٌ واحد. والسنوات السابقة للهجرة لا تحتاج إلى معالجة خاصة.
حين تُخزَّن التواريخ حدوداً، يصير رسم الخط الزمني استعلاماً واحداً: من عاصر من، ومن أدرك من، ومن ولد بعد وفاة من.
خطابٌ وكنيةٌ واسمٌ ونسبٌ ولقبٌ ونسبة، على ما قرّره معيار الإفلا لأسماء العرب (يفتح في تبويب جديد). ومتى فُكّك الاسم صار «كل من نسبته الشافعي» أو «كل من في نسبه ابن إدريس» تصفّحاً مُفهرساً لا بحثاً في نص. والاسم قد يكون مركّباً: «عبد الكافي» جزءٌ واحد في كلمتين، فإن فُصلت كلمتاه ظهر عَلَمٌ اسمه «عبد» لا وجود له.
الشهرة — وهي المدخل الذي يُفهرس به العَلَم عند الإفلا (يفتح في تبويب جديد) — قد تقع على أيّ جزء: فالجاحظ لقب، وابن حزم نسب، وأبو حيان كنية، ومالك اسم، والسبكي نسبة، ورشيد الدين خطاب. ولذلك لا يصلح الاسم وحده مدخلاً للفهرس: ترتيبٌ على الاسم يضع الجاحظ تحت «عمرو» وابن حزم تحت «علي»، ولا يبحث عنهما أحد هناك. فتُثبَت الشهرة عند الإدخال، وتُعزى كسائر الأخبار إلى ما أثبتها من المراجع.
| الشهرة | نوعها | بقية الاسم |
|---|---|---|
| رشيد الدين | خطاب | الطبيب |
| أبو حيان | كنية | التوحيدي، علي بن محمد |
| مالك | اسم | بن أنس |
| ابن حزم | نسب | علي بن أحمد |
| الجاحظ | لقب | عمرو بن بحر |
| السبكي | نسبة | تقي الدين علي بن عبد الكافي |
صيغة النسبة واحدة، وما تدلّ عليه يختلف: نسبٌ، أو بلد، أو حرفة قد تُورَث فلا يزاولها صاحبها، أو مذهب، أو ولاء. فلو جُمعت في محور واحد لجاء «كل من نسبته الشافعي» خليطاً من ولد شافع ومن أخذ بمذهبه. ولذلك تُخزَّن النسبة بنوعها، ولا يُستخرج النوع من اللفظ بعد الإدخال.
المحاور تُضاف دون تعديل بنية الجدول، والطبيب النصراني لا مصطلح له من «المذهب» ولا من «درجة الحديث». والخانة فارغة لأن المحور لا يتعلّق به، لا لأن قيمته مجهولة.
| العَلَم | المهنة | المجال | الديانة | المذهب | الطبقة | درجة الحديث | الأصل |
|---|---|---|---|---|---|---|---|
| شاعر أندلسي | شاعر | الأدب | مسلم | مالكي | — | — | أندلسي |
| محدّث دمشقي | محدّث | الحديث | مسلم | شافعي | تابعي | ثقة | قرشي |
| طبيب نصراني | طبيب | الطب | نصراني | — | — | — | سرياني |
| عالم صابئي | رياضي | الفلك | صابئي | — | — | — | حرّاني |
الأماكن التاريخية كيانات قائمة بذاتها، لكلٍّ منها مدّته، فلا يُنسب عَلَمٌ من القرن الرابع إلى دولة قامت بعده بقرون.
من نُسب إلى الأندلس سنة 100 هـ غير من نُسب إليها سنة 800 هـ، ولا يطابق أيٌّ منهما حدود إسبانيا اليوم. ولذلك تحمل كل نسبة مكانية تاريخها.
المولد في بلد، والطلب في آخر، والتدريس في ثالث، والوفاة في غيرها. لكل محطة صفٌّ مستقل يحمل دورها وتاريخها ومصدرها، لا حقلٌ واحد اسمه «المدينة» يُختزل فيه ذلك كلّه.
المخزَّن أزواجٌ مفردة، كلٌّ منها مسنَد إلى كتاب قال به. أما الطريق الذي يجاوز خطوةً واحدة فمركَّبٌ من طرفين، لم يقل به كتاب، فيُعلَّم أنه مستنتج ولا يُعرض كأنه مرويّ.
يُسجَّل الاتجاه المذكور في المصدر وحده ويُشتقّ عكسه آلياً، فلا يُدخَل الخبر مرتين ولا يتناقض طرفاه.
الترتيب الآلي الافتراضي يفرّق «أحمد» عن «احمد»، ويكدّس نصف المعجم تحت الألف بسبب «ال».
ما تغيّر ومتى، حقلاً حقلاً. وأما هوية المحرّر فللإدارة وحدها.
| الحقل | قبل | بعد | التاريخ |
|---|---|---|---|
| سنة الوفاة | 324 | 325 | 1447-03-12 |
| مكان الوفاة | — | بغداد | 1447-03-12 |
| المهنة | شاعر | شاعر، قاضٍ | 1447-03-12 |
أربع طبقات: الهوية ثابتة، والتراجم مستقلة، والأخبار معزوّة إلى قائليها، وفوقها محصّلة واحدة تخدم التصفّح ولا تُلغي ما تحتها.
المراجع لا يرى كتلة واحدة يقبلها أو يرفضها، بل حقولاً يقرّر في كلٍّ منها على حدة.
يُفكَّك إلى حقول عند الإرسال
الحالي مقابل المقترح، ومصدره
قبول أو رفض أو تعديل
تُطبَّق القيم المقبولة
ما تغيّر ومتى
تُصوَّر صفحات الطبعة، ويُقرأ نصّها آلياً ليُعين المحرّر ويجعل الصفحة قابلة للبحث قبل نقلها. غير أنّ ما تُخرجه الآلة مسوَّدة لا تُنشر؛ فما يدخل المدوَّنة هو ما نقله محرّر وأقرّه، ثم يُستخرج منه الخبر بمصدره وقائله.
قرارات اتُّخذت في بناء تراجم، ولكلٍّ منها بديلٌ نُظر فيه ورُفض.
طبقتان: صيغةٌ تحفظ ما قاله المصدر بلفظه، وحدّان عدديّان مُفهرسان للاستعلام. وهذا ما جرى عليه معيار EDTF في مكتبة الكونغرس، وويكي بيانات، وقاعدتا PASE و PBE في التراجم، ومشروع OpenITI.
EDTF (يفتح في تبويب جديد)ويكي بيانات (يفتح في تبويب جديد)PASE (يفتح في تبويب جديد)PBE (يفتح في تبويب جديد)OpenITI (يفتح في تبويب جديد)
WHERE earliest_hijri_year <= :to
AND latest_hijri_year >= :fromتقويم أم القرى غير مُعرَّف قبل سنة 1356 هـ، فلا يصلح لعامّة ما في المدوَّنة. ويُستعمل التقويم الحسابي الجدولي، ولا يُشتقّ منه يومٌ ميلادي لتاريخ هجري متقدّم.
المحاور صفوفٌ في جدول لا أعمدةٌ في بنية، فإضافة محور جديد لا تستلزم تغيير المخطط. ودرجات الجرح والتعديل موسومة بأنها لا تُقبل بغير مصدر، لأن «ثقة» حكمُ ناقدٍ بعينه لا صفةٌ في الموصوف.
الترتيب الحاسوبي الافتراضي يفصل «أحمد» عن «احمد»، ويضع التاء المربوطة بين الباء والتاء. ولذلك يُحسب لكل اسم مفتاحُ ترتيبٍ يوحّد الهمزة والتاء المربوطة والألف المقصورة، ويُسقط «ال» و«ابن»، ثم يرمّز كل حرف برتبته الهجائية.
يُخزَّن الفرق حقلاً حقلاً بصيغة مقروءة، لا صورةً كاملة من السجل، لأن الصورة الكاملة لا تُنقَّح بأمان قبل عرضها على العموم.
ما بُني هذا التصميم ليعطيه الباحث ولا يجده مجموعاً في غيره — عناوين مخطَّطة، لا مزايا قائمة.
ما قاله كل كتاب في موضعه، وعلامةٌ ظاهرة حيث اختلفت الكتب.
الكتاب المتأخّر ينقل عمّن قبله، فيُعدّ الناقلون شاهداً واحداً لا عدداً — بابٌ مخطَّط، وجدول النقل بين التراجم لم يُصمَّم بعد.
يُعرض على المراجع جدول فروق، فيقرّر في كل حقل على حدة.
الأقاليم التاريخية كيانات قائمة بذاتها، لكلٍّ منها مدّته وتبعيته المؤرّخة.
بالقرن والطبقة والمكان والمهنة، مع بحث حرّ في نصّ الترجمة نفسه.
تُرسم من الحدود المخزّنة، فيظهر فيها ما في التواريخ من تقريب ولا يُخفى.
خطاب وكنية واسم ونسب ولقب ونسبة، يُتصفَّح بكلٍّ منها.
ما لا يزعمه هذا العمل، مذكوراً صراحةً.
بنية قاعدة البيانات، لمن يعنيه التنفيذ. وما قبلها يُقرأ مستقلاً عنها.
الأسهم مقروءة من المفاتيح الخارجية في المخطط نفسه، لا مرسومة يدوياً.
الشخص سجلّ هوية لا سيرة. والأسماء العربية مفكّكة إلى أجزائها.
person_name_parts23 عموداً · 7 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبpartTEXTمطلوبpart_normalizedTEXTمطلوبkindTEXTمطلوبSix elements, following IFLA's Names of Persons: Arabic Names (2018), which is the standard a research library will expect this to align to. khitab خطاب — honorific compound ending in الدين: تقي الدين، فخر الدين، نور الدين. Missing from the first draft, and pervasive from the 5th c. AH on. kunya كنية — أبو/أم + name. NOT evidence of actual parenthood: IFLA notes it is "not necessarily an indication of actual relationship" and is often courtesy. Nothing may infer a child from a kunya. ism اسم — the given name. May be COMPOUND (عبد + a name of God: عبد الله، عبد الرحمن). One part, two words; splitting on whitespace invents a person called عبد. nasab نسب — بن/بنت chain, each generation preceded by the particle. laqab لقب — epithet, of quality or of defect: الجاحظ، الأعشى، الصديق. nisba نسبة — attributive, in ‑ي. See nisba_type below; a person may carry several.
is_shuhraINTEGERمطلوبIs this the part the person is actually KNOWN by — the شهرة? IFLA makes it the entry element for classical Arabic names, and it may be any of the six: الجاحظ is a laqab, ابن حزم a nasab, أبو حيان التوحيدي a kunya, مالك بن أنس an ism, السبكي a nisba, رشيد الدين a khitab. Alphabetical browse and citation both key on the شهرة, not on the ism, so without this the index is filed under names nobody looks a person up by. Determined against reference works — الأعلام للزركلي is already in the bibliography — and it is a sourced judgement like any other, hence the citation block below. The partial unique index below filters on `is_shuhra = 1`, so any other non-zero value would slip past it — hence the CHECK, here and on every 0/1 flag.
token_countINTEGERمطلوبWords as printed, so a compound ism or a خطاب is never re-split by a later process.
nisba_typeTEXTA nisba is not one thing. الشافعي is descent for the Imam and مذهب for البيهقي and النووي; التيمي is tribe for a Taymi and clientage for أبو عبيدة. Without the type, the nisba browse RESEARCH.md §5.1 promises unions descent, madhhab, trade and city into one bucket, and the type is not derivable from the string afterwards.
is_walaINTEGERمطلوبمولاهم inverts the tribal nisba it attaches to: البخاري is الجعفي مولاهم, a client of بني جُعفي and not a member. Stored bare he files under a tribe he is not of.
resolves_to_term_idTEXT→ termsWhat the nisba REFERS to, when the referent already exists as a record. This resolves the name element; it does not assert the claim. «النووي الشافعي» tells us how the books write his name, and «كان شافعي المذهب» is a separate statement with its own source. They are two assertions, and merging them would lose one. Without this the corpus grows two independent, unlinked populations of الشافعية — one in person_terms, one in person_name_parts — differently sized, both plausible, with nothing reconciling them.
resolves_to_place_idTEXT→ placesseqINTEGERمطلوبsource_idTEXT→ sourcescitation + attribution block. This table had neither, which made the name the one axis where P2/P4 were not implemented -- and it is the axis sources disagree about most, since تصحيف and تحريف in names are a genre of their own.
account_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبperson_names18 عموداً · 4 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبnameTEXTمطلوبname_normalizedTEXTمطلوبkindTEXTمطلوبlanguageTEXTمطلوبis_primaryINTEGERمطلوبsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبpersons33 عموداً · 8 فهرساًidTEXTPKslugTEXTمطلوبpublic_refTEXTمطلوبfull_nameTEXTمطلوبdisplay_nameTEXTمطلوبheadingTEXTمطلوبshort form used on cards The catalogue heading: شهرة first, then the rest — «الجاحظ، عمرو بن بحر». This is the form an index line and a citation both take, and it is not derivable from display_name because it depends on which part is the شهرة.
sort_keyTEXTمطلوبname_normalizedTEXTمطلوبfrom the شهرة; see §4.15
descriptorTEXTgenderTEXThuman-written, e.g. "شاعر أندلسي" NOT a summary of any source
birth_earliest_hijriINTEGERbirth_latest_hijriINTEGERdeath_earliest_hijriINTEGERdeath_latest_hijriINTEGERbirth_earliest_gregorianINTEGERbirth_latest_gregorianINTEGERdeath_earliest_gregorianINTEGERdeath_latest_gregorianINTEGERdeath_century_hijriINTEGERbirth_century_hijriINTEGERdenormalized browse axis: أعلام القرن 7
era_idTEXT→ erasdate_displayTEXTdates_are_contestedINTEGERمطلوب"ت. نحو 324 هـ" — prerendered for cards sources disagree → UI marker
birth_place_idTEXT→ placesdeath_place_idTEXT→ placesstatusTEXTمطلوبaccounts_countINTEGERمطلوبsources_countINTEGERمطلوبcompleteness_scoreINTEGERمطلوبis_featuredINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبpublished_atINTEGERلكل مصدر ترجمته الخاصة. لا دمج ولا تلخيص بين المصادر.
person_accounts16 عموداً · 2 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبsource_idTEXT→ sourcesمطلوبvolumeTEXTpage_startTEXTpage_endTEXTentry_numberTEXTمطلوبNOT NULL with an empty-string default, because the UNIQUE below is void on a NULL: SQL treats NULLs as distinct, so a nullable entry_number lets the SAME ترجمة be transcribed three times and read afterwards as three corroborating witnesses. Verified — three identical rows survive the constraint.
headingTEXTالترجمة رقم; '' = the source numbers no entries
body_object_keyTEXTbody_formatTEXTمطلوبbody_bytesINTEGERمطلوبbody_checksumTEXTdisplay_orderINTEGERمطلوبstatusTEXTمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبsources25 عموداً · 2 فهرساًidTEXTPKslugTEXTمطلوبtitleTEXTمطلوبtitle_normalizedTEXTمطلوبsort_keyTEXTمطلوبshort_titleTEXTtypeTEXTمطلوبcitation form, e.g. "سير أعلام النبلاء"
author_person_idTEXT→ personsauthor_nameTEXTwork_idTEXT→ workspublisherTEXTeditor_nameTEXTeditionTEXTالمحقق; a page cite is edition-bound, and RESEARCH §5.10 promises this
published_yearINTEGERpublished_place_idTEXT→ placesvolumes_countINTEGERisbnTEXTurlTEXTis_primary_sourceINTEGERمطلوبreliability_noteTEXTaccounts_countINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبapi_distributableINTEGERمطلوبrights_noteTEXTالتواريخ والأماكن والعلاقات، كل صف منها معزوٌّ إلى مصدره.
person_dates27 عموداً · 5 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبkindTEXTمطلوبstated_textTEXTstated_calendarTEXTمطلوب"سنة أربع وعشرين وثلاثمائة" — the source's own wording
date_expressionTEXTprecisionTEXTمطلوبcentury_thirdTEXTqualifierTEXTمطلوبhijri_yearINTEGERhijri_monthINTEGERhijri_dayINTEGERearliest_hijri_yearINTEGERمطلوب── query layer (indexed; every temporal query uses only these) ─── NOT NULL with open-ended sentinels. An open bound stored as NULL is silently dropped by the predicate below, because `NULL <= :to` is NULL, not true — so «قبل 400» and «بعد 350» match nothing at all. Two of the seven allowed qualifiers, and both are everywhere in this genre. Sentinels rather than `IS NULL OR` because the predicate must stay index-friendly. Deliberately NO DEFAULT: with a default of (-9999, 9999) an *unfilled* row is indistinguishable from a *known-open* one and matches every interval query — an unknown date must be written as a decision, never happen by omission. A date that cannot be bounded at all gets no person_dates row (§6.2 T).
latest_hijri_yearINTEGERمطلوبearliest_gregorian_yearINTEGERمطلوبlatest_gregorian_yearINTEGERمطلوبsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبperson_languages15 عموداً · 4 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبlanguageTEXTمطلوبproficiencyTEXTsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبperson_places17 عموداً · 5 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبplace_idTEXT→ placesمطلوبroleTEXTمطلوبfrom_year_hijriINTEGERto_year_hijriINTEGERsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبperson_positions19 عموداً · 4 فهرساًidTEXTPK"شيخ الأزهر" becomes a dated role, not a tag
person_idTEXT→ personsمطلوبorganization_idTEXT→ organizationsplace_idTEXT→ placestitleTEXTمطلوبtitle_term_idTEXT→ termsfrom_year_hijriINTEGERto_year_hijriINTEGERsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبperson_relations17 عموداً · 6 فهرساًidTEXTPKfrom_person_idTEXT→ personsمطلوبto_person_idTEXT→ personsمطلوبrelation_type_idTEXT→ relation_typesمطلوبfrom_year_hijriINTEGERto_year_hijriINTEGERsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبrelation_types7 عموداًidTEXTPKkeyTEXTمطلوبnameTEXTمطلوبinverse_keyTEXTcategoryTEXTمطلوبis_symmetricINTEGERمطلوبsortINTEGERمطلوبنظام تصنيف يُضاف إليه دون تعديل البنية، لا أعمدة ثابتة.
person_terms15 عموداً · 8 فهرساًidTEXTPKperson_idTEXT→ personsمطلوبterm_idTEXT→ termsمطلوبvocabulary_idTEXT→ vocabulariesمطلوبsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبterm_names6 عموداً · 1 فهرساًidTEXTPKterm_idTEXT→ termsمطلوبnameTEXTمطلوبname_normalizedTEXTمطلوبkindTEXTمطلوبcreated_atINTEGERمطلوبterms13 عموداً · 2 فهرساًidTEXTPKvocabulary_idTEXT→ vocabulariesمطلوبparent_idTEXT→ termsslugTEXTمطلوبnameTEXTمطلوبname_normalizedTEXTمطلوبsort_keyTEXTمطلوبdescriptionTEXTmerged_into_idTEXT→ termsperson_countINTEGERمطلوبsortINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبvocabularies13 عموداًidTEXTPKkeyTEXTمطلوبnameTEXTمطلوبdescriptionTEXTis_hierarchicalINTEGERمطلوبis_filterableINTEGERمطلوبis_visualizableINTEGERمطلوبrequires_sourceINTEGERمطلوبapplies_hintTEXTsortINTEGERمطلوبterm_countINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبالأعمال والمؤسسات والأماكن التاريخية والأحداث.
eras12 عموداًidTEXTPKالجاهلية، الراشدي، الأموي، العباسي، العثماني، الحديث
slugTEXTمطلوبnameTEXTمطلوبdescriptionTEXTstart_hijri_yearINTEGERend_hijri_yearINTEGERnullable: الجاهلية has no start
region_place_idTEXT→ placesparent_idTEXT→ erassortINTEGERمطلوبperson_countINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبevents33 عموداً · 5 فهرساًidTEXTPKperson_idTEXT→ personsplace_idTEXT→ placesorganization_idTEXT→ organizationswork_idTEXT→ workstypeTEXTمطلوبtitleTEXTdescriptionTEXTstated_textTEXTstated_calendarTEXTمطلوبdate_expressionTEXTprecisionTEXTمطلوبcentury_thirdTEXTqualifierTEXTمطلوبhijri_yearINTEGERhijri_monthINTEGERhijri_dayINTEGERearliest_hijri_yearINTEGERlatest_hijri_yearINTEGERearliest_gregorian_yearINTEGERlatest_gregorian_yearINTEGERmannerTEXTsource_idTEXT→ sources"manner of death": شهيد، غريق، قتيل citation + attribution block (§4 conventions)
account_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبexternal_ids7 عموداً · 3 فهرساًidTEXTPKentity_typeTEXTمطلوبentity_idTEXTمطلوبauthorityTEXTمطلوبvalueTEXTمطلوبurlTEXTcreated_atINTEGERمطلوبorganizations14 عموداًidTEXTPKslugTEXTمطلوبnameTEXTمطلوبname_normalizedTEXTمطلوبsort_keyTEXTمطلوبtypeTEXTمطلوبplace_idTEXT→ placesparent_idTEXT→ organizationsfounded_year_hijriINTEGERdissolved_year_hijriINTEGERdescriptionTEXTperson_countINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبplace_hierarchy7 عموداً · 2 فهرساًidTEXTPKtemporal containment: قرطبة ⊂ الأندلس, then ⊂ إسبانيا
child_place_idTEXT→ placesمطلوبparent_place_idTEXT→ placesمطلوبfrom_year_hijriINTEGERto_year_hijriINTEGERsource_idTEXT→ sourcescreated_atINTEGERمطلوبplace_names10 عموداً · 1 فهرساًidTEXTPKالقسطنطينية → إسطنبول, both searchable
place_idTEXT→ placesمطلوبnameTEXTمطلوبname_normalizedTEXTمطلوبkindTEXTمطلوبlanguageTEXTمطلوبfrom_year_hijriINTEGERto_year_hijriINTEGERsource_idTEXT→ sourcescreated_atINTEGERمطلوبplaces16 عموداً · 3 فهرساًidTEXTPKslugTEXTمطلوبnameTEXTمطلوبname_normalizedTEXTمطلوبsort_keyTEXTمطلوبtypeTEXTمطلوبlatREALlngREALis_historicalINTEGERمطلوبexists_from_year_hijriINTEGERخراسان، بلاد الفرنجة، الأندلس
exists_to_year_hijriINTEGERmodern_place_idTEXT→ placesdescriptionTEXTperson_countINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبwork_contributors16 عموداً · 5 فهرساًidTEXTPKwork_idTEXT→ worksمطلوبperson_idTEXT→ personsمطلوبroleTEXTمطلوبseqINTEGERمطلوبsource_idTEXT→ sourcesaccount_idTEXT→ person_accountspageTEXTconfidenceTEXTمطلوبis_preferredINTEGERمطلوبnoteTEXTattributed_to_person_idTEXT→ personsattributed_to_nameTEXTattribution_kindTEXTمطلوبsource_stanceTEXTمطلوبcreated_atINTEGERمطلوبwork_relations6 عموداًidTEXTPKfrom_work_idTEXT→ worksمطلوبto_work_idTEXT→ worksمطلوبtypeTEXTمطلوبsource_idTEXT→ sourcescreated_atINTEGERمطلوبwork_terms4 عموداًidTEXTPKwork_idTEXT→ worksمطلوبterm_idTEXT→ termsمطلوبcreated_atINTEGERمطلوبworks13 عموداً · 2 فهرساًidTEXTPKslugTEXTمطلوبtitleTEXTمطلوبtitle_normalizedTEXTمطلوبsort_keyTEXTمطلوبtypeTEXTمطلوبlanguageTEXTمطلوبcomposed_year_hijriINTEGERis_extantTEXTdescriptionTEXTstatusTEXTمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبسجل تغييرات علني: ما تغيّر ومتى. وهوية المحرّر للإدارة وحدها.
revision_changes9 عموداً · 1 فهرساًidTEXTPKrevision_idTEXT→ revisionsمطلوبfield_pathTEXTمطلوبfield_labelTEXTمطلوبbefore_valueTEXT"سنة الوفاة" (rendered for the public log)
after_valueTEXTbefore_labelTEXTafter_labelTEXTcreated_atINTEGERمطلوبrevisions12 عموداً · 2 فهرساًidTEXTPKentity_typeTEXTمطلوبentity_idTEXTمطلوبrevision_numberINTEGERمطلوبactionTEXTمطلوبactor_user_idTEXT→ useractor_kindTEXTمطلوبsubmission_idTEXT→ submissionssource_idTEXT→ sourcessummaryTEXTis_publicINTEGERمطلوبcreated_atINTEGERمطلوبقائمة واحدة للمقترحات، وكل اقتراح مفكّك إلى حقول تُقبل أو تُرفض أو تُعدَّل.
ai_suggestions12 عموداً · 1 فهرساًidTEXTPKentity_typeTEXTمطلوبentity_idTEXTaccount_idTEXT→ person_accountsfield_pathTEXTمطلوبsuggested_valueTEXTمطلوبrationaleTEXTmodelTEXTمطلوبstatusTEXTمطلوبreviewer_user_idTEXT→ usercreated_atINTEGERمطلوبreviewed_atINTEGERcontributors15 عموداً · 1 فهرساًidTEXTPKuser_idTEXT→ useremailTEXTidentity_hashTEXTdisplay_handleTEXTsubmitted_countINTEGERمطلوبaccepted_countINTEGERمطلوبmodified_countINTEGERمطلوبrejected_countINTEGERمطلوبspam_countINTEGERمطلوبtrust_levelTEXTمطلوبauto_approveINTEGERمطلوبnotesTEXTfirst_seen_atINTEGERمطلوبlast_seen_atINTEGERمطلوبrejection_reasons7 عموداًidTEXTPKkeyTEXTمطلوبlabelTEXTمطلوبdescriptionTEXTis_activeINTEGERمطلوبsortINTEGERمطلوبusage_countINTEGERمطلوبreview_batches6 عموداًidTEXTPKreviewer_user_idTEXT→ userمطلوبactionTEXTمطلوبcountINTEGERمطلوبnoteTEXTcreated_atINTEGERمطلوبsubmission_changes20 عموداً · 1 فهرساًidTEXTPKsubmission_idTEXT→ submissionsمطلوبseqINTEGERمطلوبfield_pathTEXTمطلوبfield_labelTEXTمطلوبoperationTEXTمطلوب"سنة الوفاة" — rendered directly in the UI
current_valueTEXTcurrent_labelTEXTproposed_valueTEXTproposed_labelTEXTfinal_valueTEXTfinal_labelTEXTdecisionTEXTمطلوبreject_reason_idTEXT→ rejection_reasonscited_source_idTEXT→ sourcescited_pageTEXTconflicts_with_currentINTEGERمطلوبdecided_by_user_idTEXT→ userdecided_atINTEGERcreated_atINTEGERمطلوبsubmissions30 عموداً · 4 فهرساًidTEXTPKtypeTEXTمطلوبentity_typeTEXTentity_idTEXTpayloadTEXTمطلوبcited_source_idTEXT→ sourcescited_source_textTEXTcited_pageTEXTsubmitter_user_idTEXT→ usersubmitter_emailTEXTsubmitter_noteTEXTip_hashTEXTturnstile_okINTEGERمطلوبstatusTEXTمطلوبreviewer_user_idTEXT→ userreview_noteTEXTapplied_revision_idTEXT→ revisionsoriginTEXTمطلوبbase_revision_idTEXT→ revisionsis_staleINTEGERمطلوبchanges_countINTEGERمطلوبhas_citationINTEGERمطلوبpriorityINTEGERمطلوبspam_scoreINTEGERclaimed_by_user_idTEXT→ userclaimed_atINTEGERbatch_idTEXT→ review_batchesrejection_reason_idTEXT→ rejection_reasonscreated_atINTEGERمطلوبreviewed_atINTEGERمفاتيح مُصرَّح بها، صلاحيات دقيقة، وقياس استهلاك منذ اليوم الأول.
api_access_requests12 عموداً · 1 فهرساًidTEXTPKclient_idTEXT→ api_clientscontact_nameTEXTمطلوبcontact_emailTEXTمطلوبinstitutionTEXTrequested_plan_idTEXT→ api_plansintended_useTEXTمطلوبstatusTEXTمطلوبreviewer_user_idTEXT→ userreview_noteTEXTcreated_atINTEGERمطلوبreviewed_atINTEGERapi_clients17 عموداًidTEXTPKnameTEXTمطلوبkindTEXTمطلوبcontact_nameTEXTمطلوبcontact_emailTEXTمطلوبinstitutionTEXTcountry_place_idTEXT→ placeswebsiteTEXTintended_useTEXTمطلوبstatusTEXTمطلوبterms_accepted_atINTEGERterms_versionTEXTattribution_requiredINTEGERمطلوبexternal_customer_idTEXTnotesTEXTcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبapi_key_permissions6 عموداًidTEXTPKapi_key_idTEXT→ api_keysمطلوبpermission_idTEXT→ permissionsمطلوبeffectTEXTمطلوبgranted_by_user_idTEXT→ usercreated_atINTEGERمطلوبapi_keys18 عموداً · 2 فهرساًidTEXTPKclient_idTEXT→ api_clientsمطلوبplan_idTEXT→ api_plansمطلوبnameTEXTمطلوبkey_prefixTEXTمطلوبkey_hashTEXTمطلوبlast_fourTEXTمطلوبkindTEXTمطلوبstatusTEXTمطلوبexpires_atINTEGERlast_used_atINTEGERlast_used_ip_hashTEXTrevoked_atINTEGERrevoked_by_user_idTEXT→ userrevoked_reasonTEXTcreated_by_user_idTEXT→ usercreated_atINTEGERمطلوبupdated_atINTEGERمطلوبapi_plan_permissions4 عموداًidTEXTPKplan_idTEXT→ api_plansمطلوبpermission_idTEXT→ permissionsمطلوبcreated_atINTEGERمطلوبapi_plans16 عموداًidTEXTPKkeyTEXTمطلوبdisplay_nameTEXTمطلوبdescriptionTEXTrate_limit_per_minuteINTEGERمطلوبmonthly_request_quotaINTEGERmax_page_sizeINTEGERمطلوبexport_rows_quotaINTEGERconcurrent_requestsINTEGERمطلوبprice_amountINTEGERprice_currencyTEXTprice_intervalTEXTis_systemINTEGERمطلوبsort_orderINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوبapi_usage_daily12 عموداً · 2 فهرساًidTEXTPKapi_key_idTEXT→ api_keysمطلوبclient_idTEXT→ api_clientsمطلوبdayTEXTمطلوبendpoint_groupTEXTمطلوبrequestsINTEGERمطلوبrows_returnedINTEGERمطلوبbytes_outINTEGERمطلوبerrorsINTEGERمطلوبthrottledINTEGERمطلوبcreated_atINTEGERمطلوبupdated_atINTEGERمطلوببحث حر في نصوص التراجم، تُقرَن نتائجه بالتصفية المهيكلة على خطوتين.
account_search5 عموداًفهرس نصي مشتقّ، يُعاد بناؤه من المصدر وقت الحاجة.
account_idنصperson_idنصchunk_seqنصbodyنصnormalizer_versionنصperson_search6 عموداًفهرس نصي مشتقّ، يُعاد بناؤه من المصدر وقت الحاجة.
person_idنصnamesنصdescriptorنصtermsنصplacesنصnormalizer_versionنصالحذف وإحالات العناوين ومطابقة البيانات المشتقّة.
deletion_log11 عموداً · 2 فهرساًidTEXTPKentity_typeTEXTمطلوبentity_idTEXTمطلوبentity_slugTEXTentity_labelTEXTمطلوبsnapshotTEXTمطلوبreasonTEXTمطلوبreason_noteTEXTredirected_to_idTEXTactor_user_idTEXT→ usercreated_atINTEGERمطلوبreconciliation_runs8 عموداًidTEXTPKstarted_atINTEGERمطلوبfinished_atINTEGERscopeTEXTمطلوبdriftedINTEGERمطلوبcorrectedINTEGERمطلوبdetailsTEXTstatusTEXTمطلوبredirects6 عموداًidTEXTPKentity_typeTEXTمطلوبfrom_slugTEXTمطلوبto_entity_idTEXTreasonTEXTمطلوبcreated_atINTEGERمطلوب