الأحد، 11 يناير 2015

الحصة الثانية : كيفية الإعلان عن الحقائق والسؤال عنها




الإعلان عن الحقائق في برنامج البرولوج يجب أولا تحديد الأشياء (Objects) والعلاقات التي تمثل تلك الحقائق .فمثلا إذا كانت هناك حقيقة تقول أن ( Ali Likes Mohammad ) فالأشياء في هذه الحقيقة هي الأسماء (Ali , Mohammad )أما العلاقة بينهما فهي (Linkes) وتسمى بالمسند (Predicate) أي الصفة التي تتعلق بشيء ما أو العلاقة التي تربط بين شيئين أو اكثر. ولتمثيل هذه الحقيقة في برنامج البرولوج تكتب كالآتي :
.(Likes ( ali , mohammad

لاحظ كتابة أسماء الأشياء والعلاقات بالحروف الصغيرة (Small Letters) وذلك لأن الأسماء التي تبدأ بالحروف الكبيرة (Capital Letters) أو بالحرف (Underscore (_) ) يعتبرها البرولوج متغيرات (Variable). وتختلف الحقيقة باختلاف ترتيب أسماء الأشياء بمعنى أن (ali , mohammad) likes تختلف عن (mohammad , ali)likes وينتهي الإعلان عن الحقيقة بوضع نقطة (.) في آخرها.

ويطلق على التعبير (Ali , Mohammad ) likes ) في لغة البرولوج لفظ العبارة ( Clause) ويمكن ترجمة اللغة المكتوبة بإحدى اللغات الطبيعية (الإنجليزية أو العربية ) إلى عبارة أو اكثر من عبارات البرولوج. ويتم ذلك بتحديد الأشياء التي يدور حولها موضوع الجملة وتحديد الصفات أو العلاقات التي تميزها, أو محمول الجملة.

كما يجب ملاحظة أن الاسم الذي يعبر عن صنف (Class ) معين من الأشياء يجب أن يختلف الاسم الذي يعبر عن عنصر محدد من ذلك الصنف ( Instance of the class) على سبيل المثال إذا أردنا كتابة برنامج خبير بواسطة لغة البرولوج ليستطيع تمييز سمكة معينة من أسماك القط ( Catfish ) وهي سمكة نشطة (Active) يجب إعلان حقيقتين هما:


.A catfish resembles an eal



.The catfish is extremely active

ففي هذه الحالة يجب إعطاء ( Catfish ) في الحقيقة الثانية إسما مختلفا عن الحقيقة الأولى أي كتابتها بالصورة التالية :



.(resemble ( catfish , eal



.(active ( catfish 1

وذلك لان الاسم في البرولوج له معنى واحد فقط وبهذه الطريقة يمكن تمثيل جميع الحقائق داخل برنامج البرولوج ومجموعة هذه الحقائق تسمى قاعدة المعرفة ( Knowledgebase).

وبمجرد تخزين الحقائق في قاعدة بيانات يمكن بعد ذلك الاستفسار ( Query ) عن أي أشياء والعلاقات التي تربط بينها فعلى سبيل المثال إذا أخذنا قاعدة المعرفة التي تمثل العلاقة بين ( Mohammad , Ali ) في المثال الأول فيمكن السؤال عن العلاقة بينهما بالسؤال التالي :

? ( likes( ali, mohammad 


وبناء على هذا السؤال يقوم البرولوج بالبحث في قاعدة المعرفة(Knowledgebase ) عن عبارة (Clause) تطابق العبارة الموجودة في السؤال ويحدث الاتفاق عندما يتفق كل من المسند في عبارة السؤال مثل (Like ) مع المسند في الحقيقة الموجودة في قاعدة المعرفة وأيضا عندما تتفق معاملات السؤال مع مثيلاتها من المعاملات الحقيقة.

وبما أن السؤال يتفق مع الحقيقة يقوم البرولوج بالرد بالإيجاب (Yes) على ذلك السؤال ولكن إذا تغير ترتيب المعاملات, مثل
.(Likes ( mohammad , ali

يكون الرد بالنفي (No).

وهذا يعني أن الحاسب (أو برنامج البرولوج) لا يعلم حقيقة تتفق مع هذا السؤال , أو بمعنى أدق لا توجد عبارة تمثل هذه الحقيقة في قاعدة المعرفة.

 


 

ليست هناك تعليقات:

اضافة تعليق

جميع الحقوق محفوظة © 2013 prolog