Ramowa reprezentacja wiedzy

Ramy lub ramki (frames) jako formalizm reprezentacji wiedzy zostały wprowadzone do informatyki przez Marvina Minsky’ego w 1975 roku. Są jedną z ontologicznych metod reprezentacji wiedzy.

Minsky badając zachowanie się człowieka znajdującego się w nowej dla niego sytuacji i w nowym otoczeniu, ale mającego o tej dziedzinie już pewne wcześniejsze wyobrażenia, zauważył, że człowiek wydobywa wówczas z pamięci określoną strukturę i konfrontuje tę wiedzę z wiedzą zawartą w tej ramie. Struktura ta to rama uwzględniająca typowe i oczekiwane informacje o elemencie, a także przypuszczenia jego dotyczące. Z kolei, gdy człowiek zetknie się z całkowicie nowym obiektem, wówczas jego pierwszą reakcją będzie próba zapamiętania i wprowadzenia jego nazwy. Jest to równoważne wykreowaniu nowej ramy.

Najważniejsze ramki to klasy. W istocie są one odpowiednikiem pojęć (concepts). Każda klasa zawiera klatki (slots), które reprezentują jej właściwości. W rzeczywistości klatki są zagnieżdżonymi ramkami. Dodatkowo można do nich przypisać tzw. fasety (facets), które reprezentują właściwości klatek i zwykle nakładają ograniczenia na klatki.

Ramka może posiadać dwa rodzaje klatek: własne (own) albo szablonowe (template). Klatki własne należą do danej ramki, a ich wartości są prywatne dla danej ramki.  Klatki szablonowe służą do tworzenia innych ramek. Obowiązuje tutaj zasada, że klatki szablonowe danej klasy stają się klatkami własnymi wszystkich jej wystąpień. Klasy mogą dziedziczyć od siebie zarówno klatki własne, jak i szablonowe. Ramka, która nie posiada klatek szablonowych, jest obiektem.

Wśród wad ramek Minsky’ego można wymienić zbyt dużą ogólność, niejednoznaczność, a także brak formalnej definicji. Z tych powodów komputerowe przetwarzanie i wnioskowanie jest skomplikowane. Pomimo tych niedoskonałości ramki stały się podstawą standardowego interfejsu OKBC (Open Knowledge Base Con-nectivity), przeznaczonego do jednolitej reprezentacji wiedzy i dostępu do ontologicznych baz wiedzy. Ponadto idea ramek jako elementów świata, rozszerzona o aspekty behawioralne, znalazła zastosowanie w obiektowych metodykach inżynierii oprogramowania.