240 likes | 613 Views
Logic Programming with Prolog. Swi -prolog. - ملفات البرولوغ دائما تكون بامتداد pl. او pro.
E N D
Swi-prolog - ملفات البرولوغ دائما تكون بامتداد pl. اوpro. - مكونات لغة البرولوغ :- 1:- declaring :- بعض الحقائق عن المواضيع(العوامل ) والعلاقات بينها . 2:- defining :- تعريف القواعد والشروط بين المواضيع والعلاقات بينها .3:- asking :- أسئلة عن هذه المواضيع وعن العلاقات بينها . مكونات الجمل كما اشرنا لها سابقا :-Fact - الحقائق والمعارف . Rule - العلاقات والقواعد بينها وتشبه عمل الFunction في لغات البرمجة الأخرى مثل الجافا والسي ++ وتحتوي على If/then .Queries - الأسئلة والاستعلامات في المترجم والتي يتم العبور بهاإلى الحقائق والقواعد ومن ثم بداية البرامج التي قمنا بها .بكل بساطه لغة البرولوغ تجعل جهاز الحاسوب يستخدم كمستودع للحقائق والعلاقات بينها , وتوفر سبل للوصول للاستنتاجات .
Facts :::: • الحقائق في لغة البرولوغ تعبر عن العلاقات بين المواضيع ( العوامل) من خلال المعطى الذي يمثل المعرفة . Live(monkey,forest) وهنا في الجملة السابقة Live تمثل العلاقة بين monkey forest ... أي أن القرد يعيش في الغابة .والجملة كاملة بكل محتوياها تسمى clause يطلق على المواضيع ( العوامل ) بــــarguments ويطلق على العلاقات بينها بـــــpredicate
Rules ::: • تحتوي على جزئيين هما :- 1:- جزء الشرط ----------> body of clause 2:- جزء الهدف ----------> head of clause
Queries ::: • الاستعلام أو الأسئلة حيث تكتب في المترجم فيقوم المحرك engineبتتبع الهدف من خلال الحقائق والقواعد الموجودة في قاعدة المعرفة ( ملاحظه مجموعة الحقائق والقواعد في البرولوغ تسمى قاعدة المعارف ) .كيف يكون استخدام الأسئلة أو الاستعلام في البرولوغ ؟ عندما يتم طرح سؤال في البرولوغ , يصار إلى البحث في قاعدة البيانات والتي اشرنا أنها تمثل الحقائق والعلاقات بنها ( القواعد) , ومن ثم يبحث عن الحقائق التي تطابق الاستعلام في السؤال , لذا فإذا وجد هذه الحقائق التي تطابق فيكون الجواب بـــ " Yes " والعكس يكون "No " . • أمر مهم جدا :- أسماء المواضيع والعلاقات بينها يجب أن تبدأ بأحرف صغيره lowercase letterوالحقائق والجمل يجب أن تنتهي بــــ " . " مثال :- father(khaled, mohammad).
أين نكتب برنامج البرولوغ ؟ الحقائق والقواعد تخزن في ملفات تمثل ما يسمى قاعدة المعارف , ثم عندما نريد العمل عليها نقوم بتحميل هذه القاعدة من المعارف إلى المترجم , وعندما نغير أي معلومة في هذه الملفات فيصار إلى إعادة تحميلها مره أخرى إلى المترجم ( لكي يتم تفعيلها مره أخرى ) .----قراءة ملفات البرامج consult (filename).
1- atom … 1-The upper-case letters 2- The lower-case letters3- The digits4- The special characters e.g. +, -, *, /, <, >, =, :, ., &, ~, _ ولكن الشرط المهم هو انه عند كتابة الAtoms لا يجب ان تبدأ بـــupper-case letters او "_" . أمثلــــــــــــــــــــــة::: krrk, x15, x_, x___y, ahmad_khaled <---> , ==>, … , .:. , ::= ___________________________________________باستثناء هذا الرمز " :- " لأنه يمثل جزء من أدوات اللغة ( كما اشرنا سابقا من انه يفصل بين الشرط والهدف في القواعد ) .ممكن إن تكتب هكذا لكن بشرط وجود ' ' 'Mohammad' , 'Othman Khalid '
2- Numbers … أعداد صحيحة 100 ,20 ,-90, 0 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,أعداد حقيقية 3.99, -0.0001 , 10000.004
3- Variables … تتكون من أحرف وأرقام وأيضا " _ " , وتبدأ بــupper-case أو " _ " .ملاحظة :- عن استخدام " _ " بشكل فردي فلها معنى خاص حيث تسمى متغير مجهول . ونطاق عمل الـــVariables يكون في الـــclause متضمنهداخلها .. بمعنى آخر مثلا X16 يمثل متغير , وعندما يتواجد في 2 clause فهو يمثل متغيران اثنان مختلفان عن بعض , أما عندما يكون هنالك أكثر من X16 ولكن في نفس الــclause فكلها تمثل نفس المتغير وتعود له .
4- Structures date (3, jan, 1982) وتحتوي على أكثر من عامل , ويمكن أن تكون هذه العوامل متغيرات مثل :- date (Day, Jan, 1982) وهذا يعني إن اليوم أصبح متغير , وهذا يعطي أي يوم في شهر jan وفي سنة 1982 .
*note في حالة استدعاء المترجم تظهر إشارة |?- وهي تعني أن المترجم جاهز لأي استعلام وسؤال , وفي حال لم تكن موجودة ( أو انه تم مسح الشاشة ) قم بكتابة هذا الأمر على شاشة المترجم Sicstus.