فريل

Fril هي لغة برمجة لحساب المسند من الدرجة الأولى . وهي تتضمن دلالات لغة Prolog كمجموعة فرعية، ولكنها تأخذ تركيبها النحوي من لغة micro-PROLOG الخاصة بـ Logic Programming Associates وتضيف دعمًا للمجموعات الضبابية ومنطق الدعم والبرمجة الوصفية .

تم تطوير Fril في الأصل بواسطة تريفور مارتن وجيم بالدوين في جامعة بريستول حوالي عام 1980. وفي عام 1986، تم تبنيها وتطويرها بشكل أكبر بواسطة Equipu AI Research، والتي أصبحت فيما بعد Fril Systems Ltd. وكان اسم Fril في الأصل اختصارًا لـ Fuzzy Relational Inference Language (لغة الاستدلال العلائقي الضبابي) .

مقارنة بين برولوج وفريل

بصرف النظر عن ميزات إدارة عدم اليقين في Fril، هناك بعض الاختلافات الطفيفة في تطبيق Fril لميزات Prolog القياسية.

الأنواع

تتشابه الأنواع الأساسية في لغة فريل مع تلك الموجودة في لغة برولوج ، باستثناء واحد هام: نوع البيانات المركب في برولوج هو المصطلح ، حيث تُعرَّف القوائم كمصطلحات متداخلة باستخدام .الدالة؛ أما في فريل، فالنوع المركب هو القائمة نفسها، والتي تُشكِّل أساس معظم البنى. يتم تمييز المتغيرات بمعرفات تحتوي على أحرف كبيرة وشرطات سفلية فقط (بينما تتطلب برولوج أن يكون الحرف الأول كبيرًا فقط). وكما هو الحال في برولوج، فإن الاسم _محجوز ليعني "أي قيمة"، مع استبدال أي _تكرار له بمتغيرات مميزة.

بناء الجملة

تتميز لغة برولوج ببنية نحوية تتضمن عددًا نموذجيًا من علامات الترقيم، بينما تتميز لغة فريل ببنية نحوية بسيطة للغاية تشبه بنية لغة ليسب . العبارة (القضوية) هي قائمة تتكون من مسند متبوعًا بمعاملاته (إن وجدت). ومن بين أنواع البنى العليا القواعد وأوامر الوضع المباشر.

قاعدة

القاعدة عبارة عن قائمة تتكون من استنتاج متبوعًا بالفرضيات ( الأهداف ). وتكون الصيغ العامة على النحو التالي:

( حقيقة ) ( النتيجة الهدف_1 ... الهدف_ن )

هذه تعادل تركيبات لغة برولوج المقابلة:

الحقيقة . الاستنتاج : الهدف_1 ، ...، الهدف_ن .

على سبيل المثال، لننظر إلى memberالمسند في لغة برولوج:

عضو ( E ، [ E | _ ]). عضو ( E ، [ _ | T ]) :- عضو ( E ، T ).

في لغة فريل، يصبح هذا كالتالي:

((عضو E (E|_))) ((عضو E (_|T)) (عضو ET))

العلاقة

يمكن تمثيل بعض البيانات في صورة علاقات . العلاقة مكافئة لمجموعة من الحقائق التي تحمل نفس اسم المسند ولها عدد ثابت من المعاملات، باستثناء أنه لا يمكن حذف أي من الحقائق (إلا بحذف killالعلاقة)؛ ويستهلك هذا التمثيل ذاكرة أقل داخليًا. تُكتب العلاقة حرفيًا كقائمة تتكون من اسم المسند متبوعًا بصف واحد أو أكثر من صفوف العلاقة (جميع وسائط الحقيقة المكافئة بدون اسم المسند). يمكن أيضًا تعريف المسند كعلاقة باستدعاء المسند def_rel؛ وهذا يعمل فقط إذا لم يكن الاسم المقترح موجودًا بالفعل في قاعدة المعرفة . بمجرد أن يصبح المسند علاقة، فإن أي شيء يضيف قاعدة عادةً (ولا يخالف قيود العلاقات) يضيف تلقائيًا صفًا إلى العلاقة بدلًا من ذلك.

إليكم مثالاً. مجموعة الحقائق التالية:

((أقل من 2 3)) ((my-less-than 8 23)) ((أقل من 42 69))

يمكن إعادة كتابتها على النحو التالي:

(أقل مني) (2 3) (8 23) (42 69))

الوضع المباشر

يمكن استدعاء الدالة الشرطية باستخدام وسيط واحد فقط، وذلك باستخدام الصيغة التالية:

حجة المسند

يتم إرسال الاستعلامات باستخدام هذه الصيغة، مع كون الشرط? (أو أحد الشروط الأخرى المتعلقة بالاستعلام).

مجموعات ضبابية

يدعم Fril كلاً من المجموعات الضبابية المتصلة والمنفصلة، ​​ولكل منهما صيغها الخاصة. تُدرج المجموعة المنفصلة ( dtype ) القيم المنفصلة ودرجات انتمائها، وذلك باستخدام الصيغة التالية:

{ القيمة : dom القيمة : dom ... القيمة : dom }

القيمة عبارة عن ذرة أو رقم، و dom هي قيمة في الفترة [0، 1].

تُعرّف المجموعة المتصلة ( النوع المتصل ) بأنها قائمة بالأعداد الحقيقية ودرجات انتمائها؛ ودالة درجة الانتماء هي الاستيفاء الخطي لهذه الدوال. ويكون تركيبها كالتالي:

[ القيمة : قيمة dom القيمة : قيمة dom ... القيمة : قيمة dom ]

حيث يجب إعطاء القيم بترتيب تصاعدي.

يمكن تقييد كل نوع بيانات ونوع بيانات فرعي بمجموعة من القيم المسموح بها. يحتوي Fril على دوال منطقية لعمليات المجموعات الضبابية (لكنه لا يدعم التحكم المباشر من خلال المنطق الضبابي ). بل من الممكن دمج أنواع البيانات والأنواع الفرعية من خلال بعض العمليات، طالما أن أنواع البيانات تحتوي على أعداد حقيقية فقط.

أزواج الدعم

يمكن ربط أي قاعدة بفترة احتمالية (تُسمى زوج الدعم) عن طريق إضافة قيمة إليها، حيث يُمثل min و max الحد الأدنى والحد الأقصى للاحتمالات. يتضمن Fril دوالًا منطقية لحساب الدعم لاستعلام مُحدد.:(minmax)

الانفصال

بينما يستخدم Prolog علامات الترقيم - أي ;- للفصل داخل الجمل، فإن Fril بدلاً من ذلك لديه مسند مدمج orr.

الجدارة

لهذا التركيب النحوي المبسط مزايا وعيوب. فمن مزاياه أنه يُغني عن استخدام المسندات، مثل تلك الموجودة في لغة برولوج =..(التي تربط بين القوائم والعبارات)، لأن العبارة هي قائمة. ومن عيوبه أنه أكثر صعوبة في القراءة.

سلوك

تتشابه بيئة برمجة Fril المنطقية إلى حد كبير مع لغة Prolog. إليك بعض الاختلافات:

  • يحتوي كل من Prolog وFril على تطبيقات سطر الأوامر ، والتي تُعدّ الطريقة القياسية للتفاعل معهما. يقرأ Prolog الأوامر في وضعين: في وضع قراءة ملفات المصدر، يقبل التوجيهات والعبارات؛ وفي وضع تفاعل المستخدم، يقبل الاستعلامات فقط (مع أنه من الممكن توجيه Prolog لقراءة التوجيهات والعبارات من المدخلات القياسية باستخدام الأمر المناسب consult(user).). أما Fril فلا يُميّز بينهما: إذ يُمكن إدخال جميع أنواع الأوامر من ملفات المصدر أو من سطر الأوامر.
  • تقوم واجهة برمجة تطبيقات Prolog تلقائيًا بطباعة قيم جميع المتغيرات المُنشأة التي تظهر في الاستعلام، بالإضافة إلى إجابة بنعم أو لا . أما واجهة برمجة تطبيقات Fril فتُظهر الإجابة فقط؛ ويقع على عاتق المستخدم مسؤولية طباعة المتغيرات إذا رغب في ذلك.

مراجع

  • Fril - موارد قابلة للتنزيل ، الموقع الرسمي لتنزيل Fril
  • [مختبر البرمجة المنطقية (Fril) والذكاء الاصطناعي]، زينج تشانغ تشين