فریم یا قاب

از ویکی جامع پردیس دانشگاهی دانشگاه قم
پرش به: ناوبری، جستجو
سیستم های خبره
مقاله بعدی:قاعده یا قانون
مقاله قبلی:منطق

اگر به شبکه‌های معنا مفاهیم رویه‌ها(Procedure) اضافه شود٬ تشکیل فریم یا چهارچوب(Frame) می‌دهد.

Semantic Network + Procedure = Frame

فریم هم توصیفی است هم رویه‌ای.

مفهوم فریم ٬ مشابه مفهوم Object (شی) است.

Object = Data (Properties) + Procedure

شی.JPG

فریم: فریم ساختمان داده‌ای برای بازنمایی دانش کلیشه‌ای مشابه مفهوم یا شی می‌باشد.

Object در مهندسی نرم‌افزار همان فریم در سیستم خبره است.

تفاوت فریم با شبکه‌های معنا: فریم‌ها علاوه بر مفاهیم دارای پروسیجرها هم هستند.

CRC: خیلی از مفاهیم شی را توسط فرم‌ها و کارت‌ها نمایش می‌دهند که به این کارت‌ها CRC گویند. مثال زیر بیانگر کارتی در مورد دانشجوهاست.

سی آر سی.JPG

مثال بالا کارنامه‌ای است که در آن نام و آدرس دانشجو و نام دروس ترم جاری و نمرات آنها را نمایش می‌دهد.

ساختار کلی قاب

در شکل زیر یک ساختار کلی فریم نمایش داده شده است:

ساختار کلی قاب.JPG

در یک کارت CRC می‌بایست نام فریم‌ ٬ کلاس ٬ ویژگی‌ها و مقادیر آن ویژگی‌ها آورده شود. فیلد class یک فیلد اختیاری در قاب می‌باشد که مقدار آن obj2 نام قاب دیگر مرتبط با obj1 است. این رابطه معمولا از نوع Is-A می باشد.

Obj1 Is-A Obj2

Obj1 اطلاعاتی از Obj2 به ارث می‌برد.

قاب کلاس Class Frame

به طور مثال CRC زیر یک فریم در مورد یک پرنده است.

پس نام فریم پرنده است و ویژگی‌های آن رنگ ٬ نوع خوراک ٬ تعداد بال‌ها ٬ قابلیت پرواز ٬ گرسنگی و فعالیت پرنده است.

در این نوع مسائل مشاهده می‌شود که ویژگی‌ها دو حالت پویا و غیرپویا (استاتیک و دینامیک) دارند:

  • ایستا:رنگ ٬ تعداد بال
  • پویا:گرسنگی و فعالیت

قاب کلاس.JPG

چون فریم توسعه‌یافته روش Semantic Network است ویژگی وراثت را حتما دارد.

رفتارهای ارثی Inheriting Behavior

در کنار ارث‌بری اطلاعات شروع از کلاس ٬ یک نمونه می‌تواند رفتارهای مهم را نیز به رث ببرد. برای این منظور در قاب کلاس یک پروسیجر یا متد ٬ اعمالی که بایستی قاب انجام دهد ٬ تعریف می‌شود مثلا متدی که بگوید اگر پرنده گرسنه باشد چه کاری بایستی انجام شود.

وجوه Facets

Facet کنترلی روی مقادیر ویژگی هاست به بیانی می‌توان گفت Facet نوعی محدودیت و قیدگذاری است به طور مثال می‌توان مقدار عددی را به رنج خاص محدود نمود یا تنها قادر به پذیرفتن مقادیری خاص باشد.

Facet به دو نوع تقسیم می‌شود:

1. IF Needed در صورت نیاز

2.IF Change در صورت تغییر

اگر Facet ما برای دستور دادن ٬ به این منظور که یک ویژگی چگونه یک مقداری بگیردIF Needed است و اگر به منظور این باشد که عملیات مشخصی را در صورت تغییر مقدار تعیین نماید ٬ یعنی تعیین کنند چه کاری انجام دهد اگر مقدار آن تغییر یابد IF Change نامیده می شود.

IF Needed

If Tweety has less than two wings

THEN Tweety can't fly

اگر Tweety کمتر از دو بال داشته باشد قادر به پرواز نیست. به صورت Default در نظر گرفته شده است هر پرنده‌ای قادر به پرواز است حالا اگر در نمونه‌ای مشاهده شد که کمتر از دو بال دارد پس مقدار Can not می‌شود. در IF Needed فقط مقداری عوض می‌شود به طور مثال اینجا Fly به not fly تبدیل شد.

IF Change

IF self : Hungry = True

THEN self : Activity = Eating #self = Eats

اگر ویژگی گرسنگی مثبت باشد ‌٬ فعالیت صورت گرفته خوردن خواهد بود . در IF Change با توجه به ویژگی خاص عمل خاصی صورت خواهد گرفت یعنی به ازای مثبت یا منفی شدن ویژگی خاصی عمل خاصی صورت خواهد گرفت. selfهای قبل از ویژگی‌ها مشابه کلمه THIS در برنامه‌نویسی شی گراست.