One advantage of a frame based representation is that the (conceptual) objects related to a frame can be easily accessed by looking in a slot of the frame (there is no need, for example, to search the entire knowledge-base). We define an access path, in a network of frames, as a sequence of frames each directly accessible from (i.e. appearing in a slot of) its predecessor. A sequence of predicates defines an access path iff any variable appearing as the first argument to a predicate has appeared previously in the sequence. For example, ``John's parent's sister'' can be expressed in Algernon as the path:
(variables are represented in Algernon by Lisp atoms whose print names begin with `?'). The Algernon path ((parent John ?x) (sister ?x ?y)) is equivalent to the syntactically similar predicate calculus statement:
In predicate calculus this statement is equivalent to
However, the corresponding sequence of predicates:
is not an access path because a query of (sister ?x ?y) requires a search of every frame in the entire knowledge-base.