Notation:Also, the teletype font, font, is used for terminals (i.e., strings which actually occur in Algernon code).
- x
- denotes zero or more repetitions of x.
- x
- denotes one or more repetitions of x.
path = (form )rule = (form <- form )
(form -> form )
form = predicate
(:rules term rule )
(:srules term rule )
(:del-rule term rule)
(:del-srule term rule)
(:del-rules term slot)
(:del-srules term slot)
(:contra-positive form )
(:wo-contra-positive form )
(:in-own-partition form)
(:no-completion form)
(:the variable form )
(:the (variable ) form )
(:forc variable form )
(:forc (variable ) form )
(:unp form )
(:all-paths path path)
(:assume predicate)
(:retrieve predicate)
(:ask predicate)
(:create variable atom )
(:show term)
(:delete predicate)
(:clear-slot term slot)
(:decl-slots (slot number) )
(:slot atom (term ) descriptor )
(:test expression)
(:lisp expression)
(:bind variable expression)
(:bind-to-values variable term slot)
(:branch-on-values variable expression)
(:apply function expression)
(:neq term term)
(:taxonomy set-descriptor)
predicate = (slot term term ) (not predicate)
term = variable
frame
(slot term)
(:slot slot)
(:quote expression)
descriptor = T
:cardinality number :partition term
:backlink slot
:inverse slot
:comment string
set-descriptor = (term set-descriptor term )
frame = Any Lisp atom which is a name of a frame in the knowledge-base.
slot = Any Lisp atom declared as a slot in the knowledge-base.
variable = Any Lisp atom whose print name begins with a '?'.
number = Any number.
string = Any Lisp string.
expression = Any Lisp expression.
atom = Any Lisp atom.
function = Any Lisp function (in a form suitable to be passed to the Lisp function apply).