Notation: The italic font is used for non-terminals and the teletype font is used for terminals, (i.e., strings that actually occur in Algernon code).
atomic-formula = (sterm fterm vterm)
(not (sterm fterm vterm
))
fterm = variable
frame
(sterm fterm)
(:slot slot)
sterm = variable
slot
vterm = fterm
number
string
(:quote expression)
(quote expression)
domain = E
frame :number
:string
:symbol
:list
path = (form
) plus access path restriction on variables.
rule = (form
<- form
)
![]()
(form
-> form
)
vars = E
variable (variable
)
form = E
atomic-formula ![]()
(:taxonomy set-descriptor)
(:slot symbol (domain
) slot-descriptor
)
![]()
(:rules fterm rule
)
![]()
(:srules fterm rule
)
![]()
(:eval expression)
![]()
(:test expression)
![]()
(:boundp variable)
![]()
(:unboundp variable)
![]()
(:bind variable expression)
![]()
(:branch variable expression)
![]()
(:funcall function expression
)
![]()
(:a vars . path)
![]()
(:forc vars . path)
![]()
(:the vars . path)
![]()
(:any . path)
![]()
(:cut . path)
![]()
(:db atomic-formula)
![]()
(:retrieve atomic-formula)
![]()
(:unp . path)
![]()
(:fail . path)
![]()
(:assume atomic-formula)
![]()
(:neq fterm fterm)
![]()
(:or path
)
![]()
(:all-paths path path)
![]()
(:delete atomic-formula)
![]()
(:clear-slot fterm slot)
![]()
(:del-rule fterm rule)
![]()
(:del-srule fterm rule)
![]()
(:del-rules fterm slot)
![]()
(:del-srules fterm slot)
![]()
(:ask atomic-formula)
![]()
(:show fterm)
![]()
(:w-contra-positive . path)
![]()
(:wo-contra-positive . path)
![]()
(:no-completion form)
slot-descriptor = T
:cardinality number ![]()
:backlink slot
![]()
:inverse slot
![]()
:comment string
set-descriptor = (fterm set-descriptor
fterm
)
expression = Any Lisp expression
![]()
(:values frame slot)
![]()
(:non-values frame slot)
variable = a Lisp symbol whose print name begins with ``?''.
frame = a Lisp symbol that represents a frame in the knowledge-base.
slot = a Lisp symbol declared as a slot in the knowledge-base.
number = a Lisp number.
string = a Lisp string.
symbol = a Lisp symbol.
function = a Lisp function (in a form suitable to be passed to the Lisp function funcall).