لِي عمّةٌ وأنا عمُّها!

حبيب سروري

(نُشِرَ جزء منه في الملحق الثقافي للعربي الجديد)

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

لكن سرعة تطور هذه اللغات، مثل سرعة تطور الكمبيوترات، خارقة. لا يتوقّف البحث العلمي خلاله عن تصميم لغاتٍ جديدةٍ آسرة، بمقدرات تعبيرية أرقى وأكثر جمالاً.

ثمّة لغات كمبيوتر ظهرت في منتصف القرن الماضي يعتبرها المبرمجون اليوم عتيقة، كلغات وادي الرافدين القديمة. وأخرى كثيرة اندثرت وصارت جزءاً من التراث. وهدف الباحثين اليوم في تصميم لغات جديدة هو البحث عن مزيدٍ من التعبيرية والفعالية، لتكون اللغة قادرة على صياغة ما نريد حلّه برمجيّاً بشكل شفافٍ سلسٍ لا يخلو من الأناقة والأرستقراطية: “تصريحيٍّ” كما يقال، أي: يكفي التصريح بما نريد أن ينجزه البرنامج الكمبيوتري، دون برمجة طريقة الحل، أو حتى معرفته من قبلنا أو إدراكه!

إذ ثمّة وراء كل لغةٍ كمبيوتريّةٍ تصريحية ماكينةٌ استنباطية (مؤسسة على علوم الرياضيات، لا سيّما: المنطق الرياضي، وعلوم الذكاء الاصطناعي) تقود لاكتشاف الحل واستنتاجه آليّاً، انطلاقاً من المعارف التي تمّ التصريح بها.

على العكس من ذلك، تجبرنا معظم لغات الكمبيوتر الأخرى على البحث عن حلٍّ تفصيليٍّ دقيقٍ قاطعٍ مانع للإشكالية التي نريد برمجة حلِّها، ثم على عطف ودعك و”فرعصة” أدمغتِنا وعجنِها، لأن قواعد هذه اللغات آليةٌ جدّاً، ضعيفةُ الملَكات التعبيرية، ترغمنا على كتابة إجراءتٍ برمجيةٍ حلزونية معقّدة.

أن تكون قادراً على حل إشكاليةٍ ما في العالم الافتراضي، وغير قادر على حلّها في الواقع اليومي، أصابني، في سنوات دراستي الجامعية، بالدوار ليلةً كاملة، ورمى بي في هاوية عشق علوم الكمبيوتر!

ثمّ توطّد هذا العشق لاحقاً عندما “هزمتُ والدي بعد وفاته بسنين”، ببرنامج كمبيوتر بلغة تصريحية ذكيّة، يحلُّ لغزاً أنهكني به في صغري، مفاده أن بإمكان الإنسان أن يكون عمّاً لعمّته، وخالاً لخالته؛ وذلك في أي مجتمعٍ كان، ودون أية علاقةٍ جنسيّةٍ محرّمة أو غير طبيعية!…

قبل أن أسرد لغز “لي عمّةٌ وأنا عمّها”، يلزمني التذكير بأن العرب القدامى أحبّوا دوماً ابتكار إشكاليات نظريّةٍ حسابيةٍ أو لغويّةٍ أو منطقيّة. لعلّ أسهلها ابتكاراً المسائل المرتبطة بعلم الفرائض وتوزيع الإرث، على غرار: “مات الميّت عن أمٍّ و٣ أبناء و٥ بنات و٤ زوجات وأخٍ من أب و٣ أخوانٍ من أم و٦ أعمام”، والتي تتطلب حساب أسهم كلِّ واحدٍ من الورثة في ظلِّ قواعد توزيع الإرث في الشريعة الإسلامية، والتي تؤدي غالباً لِحساب “القاسم المشترك الأعظم” لعديد من الأرقام المنطوية في كلِّ مسألة.

ثمّة أيضاً كثير من الألغاز والإشكاليات الإدراكية المرتبطة بقواعد اللغة العربية، كهذه المسرودة في كتاب “حياة الحيوان الكبرى” للدميري:

((كان بين شرف الدين بن عنين والملك المعظم عيسى ابن الملك العادل أبي بكر بن أيوب، صاحب دمشق، مؤانسة ومصاحبة. وكان يجري بينهما أمور تدل على حسن إدراك الملك المعظم، منها أن ابن عنين حصل له توعك فكتب إليه:

انظر إلي بعين مولى لم يزل    يولي الندى وتلاف قبل تلافي

أنا كالذي أحتاج ما يحتاجه     فاغنم ثنائي والثواب الوافي

فجاء إليه الملك بنفسه ومعه ثلاثمائة دينار، فقال: هذه الصلة وأنا العائد. وهذه لو وقعت من أكابر النحاة لاستعظمت منه، فضلا عن ملك.

قوله: هذه الصلة، وأنا العائد؛ لأن “الذي” اسم موصول (في قواعد اللغة العربية) يحتاج إلى “صلة” و”عائد”، فالصلة ما وصله به من المال، والعائد: أنا العائد لك بالصلة مرة بعد أخرى فطب نفسا.))

وثمّة ألغاز أخرى، مؤسسة على الألعاب اللفظية، مثل اللغز الشهير الذي يُلفظُ بهذا الشكل:

“يا قاضي تُها، إفتني وافتها، في امرأةٍ تزوّجتَها، هي أمّي وأنا ولدتُها!”

والذي يثير تساؤلات مقلقة حول غرابة العلاقة العائلية بين المتكلِّم وأمِّه. غير أن سرّه ينكشف بسهولة حال كتابته. إذ تُكتب كلمته الأخيرة: “ولد تُها!” وليس “ولدتُها!”، لِيبدو جليّاً أن اسم القاضي: تُها، وأن السائل ابنه، والأم زوجة القاضي!

يقع لغز “لي عمّة وأنا عمّها” (الذي عاد إلى ذهني في دراستي الجامعية وأنا أدرس بعض اللغات المنطقيّة التصريحية) في مصاف هذه الألغاز النظرية الذي طالما أحب العرب ابتكارها. لكنه منطقيٌّ خالص، لا يتأسس على ألعابٍ لفظية، أو معضلاتٍ نحويّة:

يقول اللغز:

لي عمّةٌ وأنا عمّها               ولي خالةٌ وأنا خالها

فأمّا التي أنا عمٌّ لها                     فإن أبي أمّهُ أمّها

أبوها أخي وأخوها أبي         ولي خالةٌ وكذا حكمها

جليٌّ هنا أن البيت الأول هو السؤال الذي يلزم تفسيره، وأن البيتين الأخيرين معطياتٌ لتسهيل حلِّ اللغز.

في لغات البرمجة التصريحية (الراقية جدّاً مثل Prolog) يكفي برمجة المعارف التقليدية عن العلاقات العائلية، مثل علاقة الأُخوَّة والعمومة، على هذا النحو:

أخ (س، ص) := أب (س، ش)، أب (ص، ش).

التي يمكن قراءتها: ص أخٌ لِــ س، إذا كان ش أبٌ لِكلٍّ من س و ص.

ويكفي تقديم المعلومات المسرودة بهذه الأبيات، مثل “أبوها أخي وأخوها أبي” على النحو نفسه (حيث ضمير المؤنث الغائب في أبوها مرموزٌ بِــ س، وضمير المتكلم بِــ أ):

أب (س، ب)، أخ (أ، ب)، أخ (س، خ)، أب (أ، خ).

ثم يكفي بعد ذلك توجيهُ هذا السؤال للماكينة الاستنباطية للغة برولوج:

عم (م، ن)، عمّة (ن، م)؟

أي: أيمكن أن يكون ن عمّاً لِـ م، و م عمّةً لِـ ن؟

وذلك بغيةَ معرفة إمكانية صحّة اللغز وتفسيره، في ضوء مجمل المعارف التي تمّ التصريح بها للبرنامج!

سيفاجؤ المبرمج بعد هذه التصريحات المعرفية أن الماكينة الاستنباطية لبرولوج ترفض صحة ذلك!

سيرتبك كثيراً وهو يعيد قراءة برمجته أكثر من مرّة، كما حصل معي، وسيظنُّ أن اللغزَ لعبةٌ لغوية على غرار “يا قاضي تُها”.

لكنه، بعد لحظة تجلٍّ مباغتة، سيكتشف أنه لم يبرمج تصريحيّاً معارفَ ضمنيةً (غير موجودة في الأبيات الثلاثة، ولا يعرف عنها الكمبيوتر شيئاً بالطبع) مثل إمكانية طلاق زوجين والزواج مرّة ثانية، أو كون تحقيق الإنجاب من قبل الذكر والأنثى مرتبطٌ بسنٍّ معيّن!

إذا ما بُرمِجَ ذلك كما يلزم، سيكون ردّ برولوج مفاجئاً مدهشا وسعيداً للمبرمِج الذي أتعبهُ والده في صباه بألغاز الفرائض واللغة والمنطق، وكأنه هكذا “ينتقم” من والدِه بشكلٍ ودّيٍّ خالص، وبمفعولٍ رجعي، بعد سنين من وفاته!

سيكون الرد:

تنجب السيدةُ ا (١٥ سنة) السيدَ ب، ثم تطلق زوجها.

بعد ١٥ عامٍ من ذلك: يتزوج السيد ب (١٥ سنة) السيدةَ ج (٣٠ سنة) (لها ولد من زواج سابق، اسمه السيد د (١٥ سنة))، وينجبان السيدة س.

وفي نفس هذا العام تتزوج السيدة ا  (٣٠ سنة) السيدَ د، وينجباني أنا ناطق هذه الأبيات: السيد ص.

إذن: السيدة س عمتي لأن أخوها السيد د أبي، وانا عمها لأن أبوها السيد ب أخي!

آه، كم كان العرب مبدعين وممتعين في ذلك الزمان الغابر المبارك!