1 / 13

Logic Programming with Prolog

Logic Programming with Prolog. Swi -prolog. - ملفات البرولوغ دائما تكون بامتداد pl. او pro. 

zandra
Download Presentation

Logic Programming with Prolog

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Logic Programmingwith Prolog

  2. Swi-prolog - ملفات البرولوغ دائما تكون بامتداد pl. اوpro.  - مكونات لغة البرولوغ :- 1:- declaring :- بعض الحقائق عن المواضيع(العوامل ) والعلاقات بينها . 2:- defining :- تعريف القواعد والشروط بين المواضيع والعلاقات بينها .3:- asking :- أسئلة عن هذه المواضيع وعن العلاقات بينها . مكونات الجمل كما اشرنا لها سابقا :-Fact - الحقائق والمعارف . Rule - العلاقات والقواعد بينها وتشبه عمل الFunction في لغات البرمجة الأخرى مثل الجافا والسي ++ وتحتوي على If/then .Queries - الأسئلة والاستعلامات في المترجم والتي يتم العبور بهاإلى الحقائق والقواعد ومن ثم بداية البرامج التي قمنا بها .بكل بساطه لغة البرولوغ تجعل جهاز الحاسوب يستخدم كمستودع للحقائق والعلاقات بينها , وتوفر سبل للوصول للاستنتاجات .

  3. Facts :::: • الحقائق في لغة البرولوغ تعبر عن العلاقات بين المواضيع ( العوامل) من خلال المعطى الذي يمثل المعرفة . Live(monkey,forest) وهنا في الجملة السابقة Live تمثل العلاقة بين monkey forest ... أي أن القرد يعيش في الغابة .والجملة كاملة بكل محتوياها تسمى clause يطلق على المواضيع ( العوامل ) بــــarguments ويطلق على العلاقات بينها بـــــpredicate

  4. Rules ::: • تحتوي على جزئيين هما :-  1:- جزء الشرط ----------> body of clause 2:- جزء الهدف ----------> head of clause

  5. Queries ::: • الاستعلام أو الأسئلة حيث تكتب في المترجم فيقوم المحرك engineبتتبع الهدف من خلال الحقائق والقواعد الموجودة في قاعدة المعرفة ( ملاحظه مجموعة الحقائق والقواعد في البرولوغ تسمى قاعدة المعارف ) .كيف يكون استخدام الأسئلة أو الاستعلام في البرولوغ ؟ عندما يتم طرح سؤال في البرولوغ , يصار إلى البحث في قاعدة البيانات والتي اشرنا أنها تمثل الحقائق والعلاقات بنها ( القواعد) , ومن ثم يبحث عن الحقائق التي تطابق الاستعلام في السؤال , لذا فإذا وجد هذه الحقائق التي تطابق فيكون الجواب بـــ " Yes " والعكس يكون "No " . • أمر مهم جدا :- أسماء المواضيع والعلاقات بينها يجب أن تبدأ بأحرف صغيره lowercase letterوالحقائق والجمل يجب أن تنتهي بــــ " . " مثال :-  father(khaled, mohammad).

  6. أين نكتب برنامج البرولوغ ؟ الحقائق والقواعد تخزن في ملفات تمثل ما يسمى قاعدة المعارف , ثم عندما نريد العمل عليها نقوم بتحميل هذه القاعدة من المعارف إلى المترجم , وعندما نغير أي معلومة في هذه الملفات فيصار إلى إعادة تحميلها مره أخرى إلى المترجم ( لكي يتم تفعيلها مره أخرى ) .----قراءة ملفات البرامج   consult (filename).

  7. Prolog syntax

  8. 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 '  

  9. 2- Numbers …  أعداد صحيحة  100 ,20 ,-90, 0 ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,أعداد حقيقية  3.99, -0.0001 , 10000.004

  10. 3- Variables … تتكون من أحرف وأرقام وأيضا " _ " , وتبدأ بــupper-case أو " _ " .ملاحظة :- عن استخدام " _ " بشكل فردي فلها معنى خاص حيث تسمى متغير مجهول . ونطاق عمل الـــVariables يكون في الـــclause متضمنهداخلها .. بمعنى آخر مثلا X16 يمثل متغير , وعندما يتواجد في 2 clause فهو يمثل متغيران اثنان مختلفان عن بعض , أما عندما يكون هنالك أكثر من X16 ولكن في نفس الــclause فكلها تمثل نفس المتغير وتعود له .

  11. 4- Structures   date (3, jan, 1982) وتحتوي على أكثر من عامل , ويمكن أن تكون هذه العوامل متغيرات مثل :-   date (Day, Jan, 1982) وهذا يعني إن اليوم أصبح متغير , وهذا يعطي أي يوم في شهر jan وفي سنة 1982 .

  12. *note في حالة استدعاء المترجم تظهر إشارة |?- وهي تعني أن المترجم جاهز لأي استعلام وسؤال , وفي حال لم تكن موجودة ( أو انه تم مسح الشاشة ) قم بكتابة هذا الأمر على شاشة المترجم  Sicstus.

  13. Open page 24

More Related