قاب (به انگلیسی: Frame) یا فریم نوعی ساختمان داده در هوش مصنوعی است، که از آن برای تقسیم دانش به زیرساختارها از طریق نمایش «وضعیت تفکر قالبی (stereotype)» استفاده میشود.[۱]
مفهوم قاب اولین بار در مقاله «یک چهارچوب برای نمایش دانش» توسط ماروین مینسکی در سال ۱۹۷۴ مطرح شد.[۱]
ارجاع به نوام چامسکی و دستور زایشی او که در سال ۱۹۵۰ مطرح شد، در نشریات مینسکی وجود ندارد، اما قدرت معنایی «فریم» براساس مفهوم دستور زایشی است.[۱]
یک فریم شامل اطلاعاتی دربارهٔ «چگونگی استفاده از قاب»، «در آینده چه مورد انتظار است»، «اگر این انتظارها برآورده نشود باید چه کرد» هستند.[۱]
بخشی از اطلاعات در قاب معمولاً تغییر نمیکنند در حالیکه اطلاعات دیگر که در «پایانه» (terminal) ذخیره شدهاند، معمولاً تغییر میکنند. ترمینالها را میتوان به صورت متغیر درنظر گرفت.[۱]
قابهای سطح بالا اطلاعاتی را منتقل میکنند که همیشه دربارهٔ مسئله صحیح هستند، اما پایانهها نیاز نیست که همیشه درست باشند. مقدار پایانهها میتواند با اطلاعات جدیدی که به آن برخورد میکنیم تغییر کند. قابهای مختلف میتوانند پایانهٔ مشترکی داشته باشند.[۱]
هر قطعه اطلاعات دربارهٔ یک قاب بخصوص در یک شکاف (به انگلیسی: slot) نگهداری میشود. اطلاعات میتواند شامل:
پیشتر پایانههای یک قاب توسط مقادیر پیشفرض پر شدهاند، این مقادیر پیشفرض بر اساس آن هستند که «چگونه ذهن انسان کار میکند». برای مثال، اگر کسی بگوید «پسری توپی را شوت کرد»، بیشتر مردم یک توپ بخصوص را تصور میکنند (مثل یک توپ فوتبال) و نه آنکه یک توپ انتزاعی بدون ویژگی را تصور کنند.[۱]
یک مزیت بخصوص برای نمایش دانش مبتنی بر قاب، آن است که برخلاف شبکههای معنایی، آنها امکان وجود استثنا برای نمونههای خاص را میدهند. این موضوع به قابها امکان مقداری انعطافپذیری میدهد، که این موضوع امکان نمایش پدیدههای جهان واقعی را به صورتی دقیقتر میدهد.[۱]
مشابه شبکههای معنایی، قابها میتوانند توسط فعالسازی گسترش(spreading activation)، پرسمان (query) گردند. با پیروی از قواعد ارثبری، هر مقداری که به یک شکاف داده شود، که آن مقدار توسط زیرقابها به ارث برده میشود به شکاف متناظر در زیرقاب روزرسانی میگردد (IF-ADDED) و هر نمونه جدید از یک قاب خاص، به آن مقدار جدید به صورت پیش فرض نگاه میکند.[۱]
به دلیل آنکه قابها بر اساس ساختار هستند، امکان تولید شبکههای معنایی با استفاده از مجموعهای از قابها وجود دارد، حتی اگر فاقد یالهای صریح باشد.[۱]
ساختار سادهشده قابها امکان استنتاج مقایسهای ساده را میدهد که یک ویژگی بسیار باارزش در هر عامل هوشمند است.[۱]
پیوستهای رویهای ایجاد شده توسط قابها امکان درجهای از انعطافپذیری را میدهد، که موجب میشود قاب یک نمایش واقعیتر را تولید میکند، همچنین قاب، یک قابلیت طبیعی مناسب برای برنامههای کاربردی ایجاد میکند.[۱]
آنچه در ادامه میآید، استنتاج قیاسی ساده (مقایسه) است، که میتوان بین یک پسر و یک میمون، فقط با داشتن شکافهای دارای نام مشابه انجام داد.[۱]
توجه کنید که آلکس (Alex)، یک نمونه از پسر، مقادیر پیشفرض مثل «جنس» را از شیی والد عمومیتر Boy به ارث میبرد، اما boy میتواند مقادیر نمونهای متقاوتی در شکل استثنا داشته باشد (مثل تعداد پا).[۱]
Slot | Value | Type |
---|---|---|
ALEX | _ | (This Frame) |
NAME | Alex | (key value) |
ISA | Boy | (parent frame) |
SEX | Male | (inheritance value) |
AGE | IF-NEEDED: Subtract(current,BIRTHDATE); | (procedural attachment) |
HOME | 100 Main St. | (instance value) |
BIRTHDATE | 8/4/2000 | (instance value) |
FAVORITE_FOOD | Spaghetti | (instance value) |
CLIMBS | Trees | (instance value) |
BODY_TYPE | Wiry | (instance value) |
NUM_LEGS | 1 | (exception) |
Slot | Value | Type |
---|---|---|
BOY | _ | (This Frame) |
ISA | Person | (parent frame) |
SEX | Male | (instance value) |
AGE | Under 12 yrs. | (procedural attachment - sets constraint) |
HOME | A Place | (frame) |
NUM_LEGS | Default = 2 | (default, inherited from Person frame) |
Slot | Value | Type |
---|---|---|
MONKEY | _ | (This Frame) |
ISA | Primate | (parent frame) |
SEX | OneOf(Male,Female) | (procedural attachment) |
AGE | an integer | (procedural attachment - sets constraint) |
HABITAT | Default = Jungle | (default) |
FAVORITE_FOOD | Default = Bananas | (default) |
CLIMBS | Trees | _ |
BODY_TYPE | Default = Wiry | (default) |
NUM_LEGS | Default = 2 | (default) |