كمثال تطبيقي على لغة البرولوغ :
هي سهلة لأنها تفريعاتها قليلة جداً مقارنة مع اللغات المتقدمة ولكن تحتاج إلى تركيز لأن منطق التعامل معها مختلف كليا
لأنها ليست بمفهوم البرمجة الحالية مثل OOP أو البرمجة الشرطية والحلقات
يعني يمكن تقريب الأمر بمثال كما تقارن بين لغة برمجة متقدمة وبين لغة الاستفسارات SQL
ستجد في لغة SQL أنك تقدم في البداية مجموعة جداول من المعطيات تربطها علاقات ومن ثم تطبق استفسارات لتحصل على نتائج
بنفس المفهوم تقريبا هي لغة برولوغ
ولكن هنا ليس جداول وأعمدة وأسطر و بيانات وإنما حقائق وعلاقات وقواعد
سنضرب مثال عملي :
1- أحمد ذكر
2- خالد ذكر
3- فاطمة انثى
4- أحمد ابن خالد
5- فاطمة أم أحمد
6- س ابن ع => ع أب س | ع ذكر
7- س أم ع => س ابن ع
8- س ابن ع ، س ابن ص => ع ص زوجان | ع ذكر ، ص انثى ; ع انثى ، ص ذكر
9- زوجان ؟
10- خالد ، فاطمة
لنشرح المثال :
1 و 2 و 3 حقائق وهي ثلاث عناصر مع خاصية لكل منها
4 و 5 حقائق مع علاقة تربط بين العناصر السابقة
6 و 7 و 8 هي قواعد عامة استنتاجية
9 قمنا بالاستفسار والذي يقول : من هم العناصر التي تتحقق فيهما علاقة الزوجان
10 هو الجواب مع أننا لم نذكر أنهما زوجان صراحة
لأن حسب القاعدة الأولى لدينا أحمد ابن خالد وخالد ذكر إذا خالد أب أحمد
وبحسب القاعدة الثانية لدينا فاطمة أم أحمد إذا أحمد ابن فاطمة
وبحسب القاعدة الثالثة إذا كان لدينا عنصرين أحدهما ذكر والآخر انثى و كان هناك عنصر واحد هو ابن لكل منهما إذا هذين العنصرين هما زوجان
مع أننا ضمن التعريفات لم نذكر أن خالد وفاطمة زوجان وإنما قامت اللغة باستنتاجهما من خلال الحقائق والقواعد الموجودة مقدما.
طبعا هذا مثال بسيط ولكن تخيل لديك آلاف الأشخاص وآلاف العلاقات و من ثم تريد أن تستفسر عن مجموعة تحقق علاقة قرابة معينة
الأمر ينطبق على مبدأ الحصر والاحتمالات المستهدم في صيانة الحاسب أو السيارة أو أي شيء
بمعنى أنه إذا كان لدينا الحالة كذا وكذا فهذا يعني أن العطل محصور في الجزء الفلاني وإذا كانت حالة أخرى فهذا يعني أن العطل أصبح في مكان كذا
التعليقات