Prolog dialects usually already have built-in fact partitioning in their indexing together of the facts with the same predicate name. But frames usually work differently: they group facts with the same argument values. So these facts
argument frame, a different "reverse" predicate name is used. For instance, for a_kind_of(X,Y), a_generalization_of(Y,X) is the reverse; for part_of(X,Y), contains(Y,X) is the reverse.
Frames and slots
Slots qualifying other slots
Slots may have more than a value attached to them: they can have information that explains or qualifies that value. Slots with numeric values can have associated information about the units of measurement and its accuracy. Slots with nonnumeric values can have a format (a formal description of what the values look like). Slots representing real-world data can have an associated location, time, and observer. Slots can have default or "usual" values. Slots may have associated sets of permissible values, given by a list if the number of such values is finite, or by a range if values are numeric. Slots may also have sets of