Modely založené na rámcích

Systémy založené na rámcích používají jako modelovací primitiva entity typu rámec a jejich vlastnosti. Centrálním modelovacím primitivem je rámec spolu se sloty. Tyto sloty jsou použitelné pouze pro rámce, pro které jsou definovány. Pro každý atribut lze definovat omezení hodnot (facety). Rámec poskytuje kontext pro modelování jednoho aspektu domény. Důležitou součástí jazyků založených na rámcích je možnost dědičnosti mezi rámci. Dědičnost umožňuje dědit atributy spolu s omezeními, která se k nim vztahují. Znalostní báze pak sestává z instancí (objektů) těchto rámců.

Příkladem použití modelu založeného na rámcích je Open Knowledge Base Connectivity (OKBC), které definuje API pro přístup k systémům reprezentace znalostí. Definuje většinu konceptů vyskytujících se v rámcových systémech, objektových databázích a relačních databázích. OKBC API je definováno nezávisle na konkrétním jazyce a existují implementace pro více programovacích jazyků. OKBC API poskytuje operace pro manipulaci se znalostmi vyjádřenými v implicitním formalismu reprezentace zvaném znalostní model OKBC. Konceptualizace ve znalostním modelu OKBC je založena na rámcích, slotech, facetech, instancích, typech a konstantách. Tento model znalostí podporuje objektově orientovanou reprezentaci znalostí a poskytuje množinu reprezentujících konstruktů, a může tedy sloužit jako interlingva pro sdílení a překlad znalostí. Znalostní model OKBC zahrnuje konstanty, rámce, sloty, facety, třídy, individua a znalostní báze. Pro přesný popis modelu se používá jazyk KIF (viz část o KIF).

Model znalostí OKBC předpokládá univerzum diskurzu skládající se ze všech entit, o nichž mají být znalosti vyjadřovány. V každé doméně diskurzu se předpokládá, že jsou vždy definovány všechny konstanty následujících základních typů: celá čísla, čísla s plovoucí desetinnou čárkou, řetězce, symboly, seznamy, třídy. Předpokládá se také, že v každé doméně diskurzu jsou zahrnuty logické konstanty true a false. Třídy jsou množiny entit a všechny množiny entit jsou považovány za třídy.

Rámec je primitivní objekt, který reprezentuje entitu v doméně diskurzu. Rámec se nazývá rámec třídy, pokud reprezentuje třídu, a rámec individua, pokud reprezentuje individuum. K rámci je přiřazena množina slotů, k nimž je přiřazena množina hodnot slotu. Ke slotu je přiřazena množina facet, které kladou určitá omezení na hodnoty slotu. Sloty i hodnoty slotů mohou být opět libovolné entity v doméně diskurzu, včetně rámců. Třída je množina entit, které jsou instancemi této třídy (jedna entita může být instancí více tříd). Třída je pro tyto entity typem. Entitám, které nejsou třídami, se říká individua. K rámcům tříd mohou být přiřazeny šablonové sloty a šablonové facety, které se považují za použitelné v instancích podtříd dané třídy. Mohou být definovány i výchozí hodnoty. Každý slot nebo faceta může obsahovat více hodnot. Existují tři kolekční typy: set, bag (neuspořádaný, s povolenými vícenásobnými výskyty) a list (uspořádaný bag). Znalostní báze (KB) je kolekce tříd, individuí, rámců, slotů, hodnot slotů, facet, hodnot facet, asociací rámec-slot a asociací rámec-slot-faceta. KB jsou považovány za entity univerza diskurzu a jsou reprezentovány rámci. Jsou definovány standardní třídy, facety a sloty se stanovenými názvy a sémantikou vyjadřující často používané entity.