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).