لكي يكون مشروعكم قابلًا للتحول فعليًا إلى Knowledge Graph، يجب ألا تجمعوا “معلومات كثيرة” فقط، بل تجمعوا معلومات قابلة للتمثيل ككيانات وعلاقات وادعاءات موثقة.
المفتاح هنا هو هذا:
لا تخزنوا النص فقط، بل خزنوا: من هو الشيء؟ ما نوعه؟ ما علاقته بغيره؟ من أين جاءت المعلومة؟ وما درجة ثقتها؟
سأعطيك الهيكل الكامل بشكل عملي ومنظم، مع الحقول التي أنصح بها.
وسأقسمه إلى طبقات، لأن المشروع عندكم ليس مجرد أشخاص، بل:
- أشخاص
- جماعات
- علاقات
- أحداث
- مصادر
- أسماء بديلة
- دعاوى/ادعاءات
- زمن
- مكان
- ثقة
- ملاحظات تحريرية
1) الفكرة الأساسية قبل الحقول
لكي يتحول المشروع إلى Knowledge Graph، يجب أن تبنوه على هذه الوحدات الأساسية:
الكيانات الرئيسية
- Person
- Group / Clan / Tribe
- Marriage / Union
- Parent-Child Relation
- Source
- Citation / Passage
- Place
- Event
- Name Variant
- Claim / Assertion
العلاقات الرئيسية
- father_of
- mother_of
- spouse_of
- child_of
- member_of
- branch_of
- mentioned_in
- occurred_in
- lived_in
- died_in
- narrated_from
- same_as
- disputed_with
- asserted_by
يعني من البداية لا تفكروا فقط في “صفحة شخص”، بل في طبقات بيانات.
2) أهم شيء: فصل “الشخص” عن “المعلومة عنه”
هذا مهم جدًا.
لا تجعلوا السجل يقول فقط:
- فلان أمه فلانة
بل الأفضل أن يكون عندكم:
- شخص: فلان
- شخص: فلانة
- ادعاء/علاقة: فلانة هي أم فلان
- المصدر: كتاب كذا
- الموضع: ج1 ص45
- درجة الثقة: عالية
- ملاحظة: مختلف فيها أو ناقصة
هذا الفصل هو ما يجعل المشروع قابلًا لأن يكون graph علميًا، لا مجرد قاعدة أسماء.
3) الحقول المطلوبة للكيان: Person
هذا هو أهم كيان في المشروع.
الحقول الأساسية
person_idcanonical_name_arcanonical_name_en
إن كنتم ستدعمون الإنجليزيةgenderperson_type
مثل: رجل / امرأة / مجهول / مولى / أم ولد / شخصية محتملةis_historical_person
نعم / لا / غير مؤكدshort_labeldisplay_name
الحقول الاسمية
ism
الاسمnasab_full_ar
النسب الكامل كما يعتمد في العرضkunyalaqabnisbatribal_affiliation_textname_normalizedname_sort_key
الحقول التعريفية
father_knownmother_knownlineage_status
مثل: له عقب / لا عقب / انقرض / انقرض إلا من البنات / غير معروفsocial_status
حر / أمة / أم ولد / مولى / حليف / غير محددreligious_period
مثل: جاهلي / مخضرم / صحابي / تابعي / أموي مبكر… حسب مشروعكمnotes_summary
الحقول الزمنية
birth_year_hijri_estbirth_year_ce_estdeath_year_hijri_estdeath_year_ce_estgeneration_indexchronology_noteperiod_start_estperiod_end_est
الحقول الجغرافية
birth_place_iddeath_place_idmain_region_idmobility_note
الحقول العلمية/السياقية
هذه ليست ضرورية من أول يوم، لكنها مفيدة جدًا:
is_narratornarrator_rankappears_in_biographical_sourcesappears_in_hadith_sourceshistorical_importance_scoredata_completeness_score
الحقول الإدارية
record_status
مسودة / مراجعة / معتمدcreated_atupdated_ateditor_notepublic_visibility
4) كيان الأسماء البديلة: NameVariant
هذا كيان مهم جدًا، لأنه بدون الأسماء البديلة سيتحول المشروع إلى حفلة تنكرية.
الحقول
name_variant_idperson_idname_text_arname_text_envariant_type
اسم / كنية / لقب / نسبة / اختصار / تصحيف / صيغة أخرىis_preferrednormalization_formsource_idcitation_idconfidencenote
هذا يسمح لكم بتخزين:
- الاسم الكامل
- الاختصار
- الكنية
- شكل آخر في مصدر آخر
- شكل محرف أو مشكوك
5) كيان الجماعات: Group / Clan / Tribe
لأن المشروع ليس أشخاصًا فقط.
الحقول
group_idgroup_name_argroup_name_engroup_type
قبيلة / بطن / فخذ / بيت / فرع / حلفparent_group_idroot_group_idlineage_chain_textdescriptionperiod_notemain_region_idnotesrecord_status
لماذا مهم؟
لكي تستطيعوا تمثيل:
- قريش
- بني هاشم
- بني أمية
- بني مخزوم
- بيت فلان داخل بطن فلان
6) علاقة الانتماء: Membership
بدل أن تضعوا في الشخص مجرد نص “من بني أمية”، الأفضل جعلها علاقة مستقلة.
الحقول
membership_idperson_idgroup_idmembership_type
نسب / ولاء / حلف / انتساب من جهة الأم / انتساب مختلف فيهstart_period_estend_period_estsource_idcitation_idconfidencenote
هذا مهم جدًا لأن الانتماء قد لا يكون دائمًا بسيطًا أو أحاديًا.
7) علاقة الأبوة/الأمومة: ParentChildRelation
هذه من أهم الجداول أو الكيانات في المشروع.
الحقول
relation_idparent_idchild_idrelation_type
أب / أم / أب محتمل / أم محتملة / رضاع إن احتجتم لاحقًاbiological_statuscertainty_levelsource_idcitation_idsupporting_text_excerptnoteis_primary_assertion
حقول إضافية ذكية
mother_status_context
زوجة حرة / أم ولد / أمة / مجهولةlineage_legitimacy_noteordering_among_siblings
8) علاقة الزواج/الاتحاد: Marriage / Union
لا تجعلوا الزواج مجرد حقل نصي داخل الشخص.
الحقول
union_idpartner1_idpartner2_idunion_type
زواج / أم ولد / سرية / علاقة محتملة / خطبة إن احتجتم نادرًاstart_period_estend_period_estmarriage_order
إن أمكنchildren_count_knownunion_statussource_idcitation_idconfidencenote
حقول مهمة جدًا
partner2_status_at_union
حرة / أمة / أم ولد / مجهولةis_endogamous_within_qurayshis_politically_significantunion_summary
هذا لاحقًا كنز في التحليل الشبكي.
9) علاقة الإخوة
يمكن اشتقاقها من الأب والأم، لكن أحيانًا يفيد تخزينها مباشرة إذا وردت نصًا.
الحقول
sibling_relation_idperson1_idperson2_idsibling_type
شقيق / لأب / لأم / غير محددsource_idcitation_idconfidencenote
10) كيان الأماكن: Place
مشروعكم سيقوى كثيرًا إذا لم تتركوا المكان مجرد نص.
الحقول
place_idplace_name_arplace_name_enplace_type
مدينة / إقليم / وادٍ / موضع / قبيلة-منطقةparent_place_idlatitudelongitudehistorical_notemodern_equivalentperiod_note
علاقات ممكنة مع الأشخاص
- ولد في
- مات في
- سكن في
- ارتبط بـ
- انتقل إلى
11) كيان الأحداث: Event
هذا ليس ضروريًا في النسخة الأولى، لكنه مهم إذا أردتم مشروعًا قويًا بحق.
الحقول
event_idevent_name_arevent_name_enevent_type
ولادة / وفاة / زواج / معركة / هجرة / ولاية / خلافة / انتقالstart_date_estend_date_estplace_iddescriptionhistorical_significancesource_idcitation_id
ثم جدول ربط الأشخاص بالأحداث
event_participation_idevent_idperson_idrole_in_eventsource_idcitation_idconfidencenote
12) كيان المصادر: Source
هذا حاسم جدًا.
الحقول
source_idtitle_artitle_enauthor_arauthor_enauthor_death_hijriauthor_death_cesource_type
نسب / رجال / تاريخ / طبقات / حديث / دراسة حديثةedition_infoeditorpublisherpublication_yearvolume_infodigital_urlbibliographic_notepriority_levelis_core_source
لماذا؟
لكي يكون المشروع قابلًا للمراجعة والوزن العلمي.
13) كيان الموضع النصي: Citation / Passage
هذا أهم من المصدر نفسه.
الحقول
citation_idsource_idvolumepage_startpage_endsection_titleentry_titleline_refquoted_text_arquoted_text_normalizedtranslation_enexcerpt_type
نسب / زواج / أمومة / وفاة / وصف / رواية / مكانnote
هذا يسمح بربط كل معلومة بموضعها الحقيقي.
14) كيان الادعاء: Claim / Assertion
هذا هو القلب العلمي الحقيقي للمشروع إذا أردتم Graph ناضجًا.
بدل أن تكون كل معلومة “حقيقة مطلقة”، تكون ادعاءً مصدره نص.
الحقول
claim_idsubject_entity_typesubject_entity_idpredicateobject_entity_typeobject_entity_idobject_literal_textclaim_type
نسب / زواج / أمومة / انتماء / لقب / وفاة / مكان / تقدير زمنيsource_idcitation_idconfidence_scorecertainty_label
مؤكد / راجح / محتمل / ضعيف / مختلف فيهis_disputededitorial_decisionpreferred_for_displaynote
لماذا هذا مهم جدًا؟
لأن الـ Knowledge Graph الحقيقي لا يقول فقط:
- X هو أب Y
بل يمكنه أن يقول:
- المصدر 1 يدعي أن X أب Y
- المصدر 2 يسكت
- المصدر 3 يخالف
- المحرر اعتمد هذا الادعاء بدرجة عالية
وهنا يدخل المشروع منطقة الكبار.
15) كيان الخلاف: Dispute / Alternative Assertion
يمكن تمثيله داخل Claim، لكن أحيانًا يفيد فصله.
الحقول
dispute_idtopic_typeentity_idclaim_id_1claim_id_2dispute_reasoneditorial_summarypreferred_resolutionnote
16) الحقول الخاصة بالنساء والأمهات
هذا باب يجب أن يكون قويًا عندكم لأن كثيرًا من المشاريع تظلم هذا القسم.
حقول إضافية مهمة في Person أو Claims
mother_named_explicitlymother_free_or_slave_statusis_umm_waladmaternal_line_knownmaternal_group_idfemale_visibility_leveldaughter_named_or_unnamedwomen_count_note
لماذا؟
لأن النصوص كثيرًا ما تقول:
- “وأمه أم ولد”
- “وله نسوة”
- “انقرض إلا من البنات”
- “بنت فلان”
وهذه تحتاج تمثيلًا خاصًا، لا مجرد فراغات.
17) الحقول الخاصة بحالة النسل
هذا باب مهم جدًا في الأنساب.
الحقول
offspring_status- له عقب
- لا عقب
- انقرض
- انقرض إلا من البنات
- غير معروف
male_line_continuityfemale_line_continuitydescendance_notedescendance_source_iddescendance_citation_id
18) الحقول الزمنية التقديرية
لأنكم غالبًا لن تملكون تاريخًا دقيقًا دائمًا.
الحقول
date_precision- exact
- approximate
- generation-based
- relative
relative_to_person_idrelative_to_event_idbefore_after_labelchronological_bandgeneration_distance_from_qusayestimated_active_period
هذه الحقول ممتازة جدًا لمشروعكم.
19) الحقول الخاصة بالربط مع كتب الرجال والإسناد
حتى لو لم تستخدموها الآن، ضعوا مكانًا لها.
الحقول في Person
rijal_presencerijal_primary_entry_namehadith_activity_levelnarration_roleteachers_count_eststudents_count_esthadith_corpus_note
جدول مستقل إن أحببتم
PersonHadithProfile
profile_idperson_idis_narratorappears_in_bukhariappears_in_muslimappears_in_rijal_sourcesnarration_notessource_idcitation_id
20) الحقول الخاصة بالجودة والمراجعة
هذه لا تبدو مثيرة، لكنها ما يجعل المشروع قابلًا للنمو بدل الانفجار.
الحقول
quality_scoreverification_statusreviewed_byreview_dateneeds_manual_checkduplication_riskambiguity_flagmerge_candidate_idsdata_origineditorial_comments
21) ما أقل مجموعة حقول يجب أن تبدأوا بها؟
لو أردتم بداية ذكية، لا تبدأوا بكل شيء مرة واحدة.
ابدؤوا بالحد الأدنى الذي يسمح لاحقًا بالتحول إلى Graph.
الحد الأدنى الضروري جدًا
للأشخاص
- person_id
- canonical_name_ar
- gender
- short_label
- lineage_status
- notes_summary
للأسماء البديلة
- person_id
- name_text_ar
- variant_type
- is_preferred
للعلاقات
- relation_id
- subject_id
- predicate
- object_id
- source_id
- citation_id
- confidence
للمصادر
- source_id
- title_ar
- author_ar
- source_type
للمواضع
- citation_id
- source_id
- volume
- page_start
- quoted_text_ar
للجماعات
- group_id
- group_name_ar
- group_type
- parent_group_id
هذا يكفي كبداية قوية.
22) ما البنية المثالية على مستوى الجداول؟
لو أردت شكلًا شبه نهائي:
جداول أساسية
personsperson_name_variantsgroupsperson_group_membershipsparent_child_relationsunionsplaceseventsevent_participantssourcescitationsclaimsdisputesperson_hadith_profileseditorial_logs
23) كيف يتحول هذا فعليًا إلى Knowledge Graph؟
عندما يكون عندكم:
عقد Nodes
- Person
- Group
- Place
- Event
- Source
روابط Edges
- father_of
- mother_of
- spouse_of
- member_of
- lived_in
- died_in
- mentioned_in
- asserted_by
- same_as
خصائص Properties
- confidence
- date_estimate
- source_ref
- certainty
- status
فيمكن تصديره بسهولة إلى:
- Neo4j
- RDF
- JSON-LD
- APIs graph-ready
24) الحقول التي كثير من الناس ينسونها وهي حاسمة
هذه بالذات لا أنصح بإهمالها:
أ) confidence / certainty
بدونها ستضطرون لاحقًا لتقديم كل شيء كأنه يقين.
ب) citation granularity
لا يكفي “المصدر: نسب قريش”.
لازم موضع أدق.
ج) name variants
بدونها ستضيع نصف حياتكم في من هو هذا.
د) editorial notes
لأن بعض القرارات ستكون بشرية وتأويلية.
هـ) claim layer
هذه أهم نقطة تجعل المشروع بالغًا علميًا.
25) الترتيب المنهجي الذي أنصح به لكم
ابدؤوا بهذا التسلسل:
المرحلة الأولى
- Persons
- Groups
- Parent-child
- Unions
- Sources
- Citations
المرحلة الثانية
- Name variants
- Confidence
- Lineage status
- Maternal details
- Places
المرحلة الثالثة
- Claims
- Disputes
- Events
- Hadith/rijal linkage
- Analytical scores
هذا أفضل من محاولة حمل الفيل من أذنه في أول يوم.
26) الخلاصة المكثفة
لكي يكون مشروعكم قابلًا للتحول إلى Knowledge Graph، لا بد أن يحتوي على الحقول التي تسمح لكم بتخزين:
من هو الشخص؟
بأي أسماء يُعرف؟
إلى أي جماعة ينتمي؟
من أبوه وأمه وزوجه وأولاده؟
ما طبيعة كل علاقة؟
من أين جاءت المعلومة؟
أين وردت بالنص؟
ما درجة الثقة فيها؟
هل هي محل خلاف؟
ما زمنها التقريبي؟
ما مكانها؟
وما القرار التحريري المعتمد بشأنها؟
إذا وفّرتم هذه الطبقات، فأنتم لا تبنون قاعدة بيانات فقط، بل تبنون بنية معرفية قابلة للتحليل، والعرض، والربط، والتوسع، والبيع، والترخيص، والبحث الأكاديمي.
الخطوة المنطقية التالية الآن هي أن أحوّل هذا كله إلى Schema عملي نهائي لمشروعكم على شكل:
- الجداول
- الحقول
- أنواع القيم
- والعلاقات الأساسية بين الجداول.
اترك تعليقاً