FRAMES (and FRL)
Frames - an AI programming technique
Major features
-
A Representation structure
-
Inheritance -
information can come from the current frames or from frames
higher up in the hierarchy
-
Combined Code and Data -
facet values can be triggers (code).
Triggers can be executed based on changes of values or testing for a value.
The FRL language
- Frame - largest named structure
- Slot - name items within a frame
- Facet - lowest level of structure
two basic types
- $value - actual value
- trigger - code to be executed under special conditions
Basic FRL Commands
Triggers
-
$if-needed - invoked when fneed called for frame and slot
-
$if-added - invoked after item added to slot
-
$if-deleted - invoded after item deleted from slot
(fassert someframe
(use ($if-needed ((ask_for frame- slot-))))
)
(defun ask_for (f s)
(print `(enter value for ,f ,s)) (terpri)
(fput f s '$value (read))
)
(fneed 'someframe 'use)
==>(enter value for someframe use)
==>next
(frame 'someframe)
The original papers on FRL are:
The FRL Primer
AIM-408
and
The FRL Manual
AIM-409.