Visual Prolog Version 5.x
رول :
به قوانینی که شما می توانید از واقعیت های موجود(فاکت ها) استنباطهایی را انجام دهید رول می گویند.
کد:
Cindy likes everything that bill likes.
Caitlin likes everything that is green.
شما بر اساس واقعیت های مثال بالا می توانید استنباط کنید که Cindy و Caitlin چه چیزهایی را دوست دارند.
برای مثال گفته شده است که cindy دوست دارد هر چیزی را که bill دوست دارد،در واقع می توان استنباط نمود که cindy هم به سگ ها علاقه مند است و یا مثال دیگر caitlin هر چیزی را که سبز باشد دوست دارد پس caitlin درختان را نیز دوست دارد.
اگر بخواهیم جملات بالا را به گرامر زبان پرولوگ تبدیل کنیم باید بصورت زیر بنویسیم:
کد:
likes(cindy, Something):- likes(bill, Something).
likes(caitlin, Something):- green(Something).
پرسش ها:
ما پرسش های متفاوتی را از فاکت های داده شده می توانیم بپرسیم،برای مثال می توان پرسید آیا Bill ،Cindy را دوست دارد،در صورتی که بخواهیم این سوال را به زبان پرولوگ تبدیل کنیم باید بصورت زیر بنویسیم:
کد:
likes(bill,cindy).
جوابی که پرولوگ به این پرسش می دهد مثبت است.
پرسش دیگری را در نظر بگیرید،bill چه چیزهایی را دوست دارد، نحوه نوشتن این پرسش در پرولوگ بصورت زیر است:
کد:
likes(bill,What).
در مثال های بالا به استفاده از حروف کوچک و بزرگ دقت کنید.What یک متغیر است.در واقع bill یک ثابت است.متغیر ها همیشه با حروف بزرگ شروع می شوند.
پرولوگ همیشه در پیدا کردن پاسخ به سوالات مطرح شده از ساختار بالا به پایین استفاده می کند.
برای سوال مطرح شدهbill چه چیز هایی را دوست دارد؟
کد:
likes(bill,What)
پاسخ های زیر ارائه خواهد شد.
کد:
What=cindy
What=dogs
2 Solutions
دلیل ارایه شدن این جواب هم در این است که ما صریحا در واقعیت های موجود اعلام کرده ایم که bill ،cindy را دوست دارد و باز صریحا اعلام کرده ایم که bill ،سگ ها را نیز دوست دارد.
حال فرض بگیرید سوالی به این صورت مطرح شود:
Cindy چه چیز هایی را دوست دارد؟
کد:
likes(cindy,What).
|