The defglobal statement allows you to create and assign global variables which are accessible from any rule or deffunction. Global variables may contains simple values, such as an integer or string, or the result of a function call, such as (time) which would set a global variable to the current time. Global variables which are set by a function call are only evaluated at their creation and possibly when the inference engine is Reset. The ResetGlobals property controls whether global variables are reset to their defaults and reevaluated when the inference engine is reset; the default is true.
Global variable names are always of the form "?*<name>*". The question mark designates something is a variable, the asterisks (*) say that it is a global variable. Local variables, by contrast, are of the form "?<name>".
See the DefGlobals definition for the syntax of a defglobal.