Frames were a knowledge representation format proposed by Marvin Minsky in his 1974 paper A Framework for Representing Knowledge .


Tk's frame widget


Briefly, a frame has a name and a set of attribute-value pairs (known as slots). These slots can be filled by data, methods, or (references to) other frames, and can have event listeners attached to them (much like variables in Tcl's namespaces).

While the concept was quite popular originally, it seems to have lost out to Semantic Networks and, particularly, object-Oriented Programming. Prototype-based object orientation, e.g. Self seems to come quite close to frames.

Cris Fugate developed an implementation of frames for Tcl in 1999 called Framesets.

Frame systems seem to still have some popularity in the knowledge representation community, and the Semantic Web efforts. For instance, the Protégé ontology editor [L1 ] uses a frame system by default (although it can also use OWL).