next up previous

Appendix G CLIPS Error Messages

CLIPS typically will display two kinds of error messages: those associated with executing constructs and those associated with loading constructs. This appendix describes some of the more common error messages and what they mean. Each message begins with a unique identifier enclosed in brackets; the messages are listed here in alphabetic order according to the identifier.[AGENDA1] Salience value must be an integer value.

Salience requires a integer argument and will otherwise result in this error message.

Example:

CLIPS> (defrule error (declare (salience a)) =>)[AGENDA2]
Salience value out of range <min> to <max>

The range of allowed salience has an explicit limit; this error message will result if the value is out of that range.

Example:

CLIPS> (defrule error (declare (salience 20000)) =>)[AGENDA3]
This error occurred while evaluating the salience [for rule <name>]

When an error results from evaluating a salience value for a rule, this error message is given.[ANALYSIS1] Duplicate patternaddress <variable name> found in CE <CE number>.

This message occurs when two facts or instances are bound to the same patternaddress variable.

Example:

CLIPS> (defrule error ?f <- (a) ?f <- (b) =>)[ANALYSIS2]
Patternaddress <variable name> used in CE #2 was previously
bound within a pattern CE.

A variable first bound within a pattern cannot be later bound to a factaddress.

Example:

CLIPS> (defrule error (a ?f) ?f <- (b) =>)[ANALYSIS3]
Variable <variable name> is used as both a single and multifield
variable.

Variables on the LHS of a rule cannot be bound to both single and multifield variables.

Example:

CLIPS> (defrule error (a ?x $?x) =>)
 [ANALYSIS4] Variable <variable name> [found in the expression
<expression>]was referenced in CE <CE number> <field
or slot identifier> before being defined

A variable cannot be referenced before it is defined and, thus, results in this error message.

Example:

CLIPS> (defrule foo (a ~?x) =>)[ARGACCES1] Function <name>
expected at least <minimum> and no more than <maximum>
argument(s)

This error occurs when a function receives less than the minimum number or more than the maximum number of argument(s) expected.[ARGACCES2] Function <functionname> was unable to open file <filename>

This error occurs when the specified function cannot open a file.[ARGACCES3] Function <name1> received a request from function <name2> for argument #<number> which is nonexistent

This error occurs when a function is passed fewer arguments than were expected.[ARGACCES4] Function <name> expected exactly <number> argument(s)

This error occurs when a function that expects a precise number of argument(s) receives an incorrect number of arguments.[ARGACCES4] Function <name> expected at least <number> argument(s)

This error occurs when a function does not receive the minimum number of argument(s) that it expected.[ARGACCES4] Function <name> expected no more than <number> argument(s)

This error occurs when a function receives more than the maximum number of argument(s) expected.[ARGACCES5] Function <name> expected argument #<number> to be of type <datatype>

This error occurs when a function is passed the wrong type of argument.[ARGACCES6] Function <name1> received a request from function <name2> for argument #<number> which is not of type <datatype>

This error occurs when a function requests from another function the wrong type of argument, typically a string or symbol, when expecting a number or vice versa.[BLOAD1] Cannot load <construct type> construct with binary load in effect.

If the bload command was used to load in a binary image, then the named construct cannot be entered until a clear command has been performed to remove the binary image.[BLOAD2] File <filename> is not a binary construct file

This error occurs when the bload command is used to load a file that was not created with the bsave command.[BLOAD3] File <filename> is an incompatible binary construct file

This error occurs when the bload command is used to load a file that was created with the bsave command using a different version of CLIPS.[BLOAD4] The CLIPS environment could not be cleared.Binary load cannot continue.

A binary load cannot be performed unless the current CLIPS environment can be cleared.[BLOAD5] Some constructs are still in use by the current binary image:
<constructname 1>
<constructname 2>
...
<constructname N>Binary <operation> cannot continue.

This error occurs when the current binary image cannot be cleared because some constructs are still being used. The <operation> in progress may either be a binary load or a binary clear.[BLOAD6] The following undefined functions are referenced by this binary image:
<functionname 1>
<functionname 2>
...
<functionname N>

This error occurs when a binary image is loaded that calls functions which were available in the CLIPS executable that originally created the binary image, but which are not available in the CLIPS executable that is loading the binary image.[BSAVE1] Cannot perform a binary save while a binary load is in effect.

The bsave command does not work when a binary image is loaded.[CLASSEXM1] Inherited slot <slotname> from class <slotname> is not valid for function slotpublicp

This error message occurs when the function slotpublicp is given an inherited slot. This function can only be used on slots defined in the given class.

Example:

CLIPS>
(defclass FOO (is-a USER)
  (slot woz (visibility private)))
CLIPS>
(defclass BAR (is-a FOO))
CLIPS> (slot-publicp BAR woz)[CLASSFUN1] Unable to find class
<class name> in function <function name>.

This error message occurs when a function is given a nonexistent class name.

Example:

CLIPS> (class-slots FOO)[CLASSFUN2] Maximum number of simultaneous
class hierarchy traversals exceeded <number>.

This error is usually caused by too many simultaneously active instanceset queries, e.g., doforallinstances. The direct or indirect nesting of instanceset query functions is limited in the following way:

Ci is the number of members in an instanceset for the ith nested instanceset query function.

N is the number of nested instanceset query functions.


         <= 128 (the default upper limit)


Example:

CLIPS>
(deffunction my-func ()
  (do-for-instance ((?a USER) (?b USER) (?c USER)) TRUE
     (printout t ?a " " ?b " " ?c crlf))
; The sum here is C1 = 3 which is OK.
CLIPS>
(do-for-all-instances ((?a OBJECT) (?b OBJECT)) TRUE
   (my-func))
; The sum here is C1 + C2 = 2 + 3 = 5 which is OK.

The default upper limit of 128 should be sufficient for most if not all applications. However, the limit may be increased by editing the header file OBJECT.H and recompiling CLIPS.[CLASSPSR1] An abstract class cannot be reactive.

Only concrete classes can be reactive.

Example:

CLIPS>
(defclass FOO (is-a USER)
              (role abstract)
              (pattern-match reactive))[CLASSPSR2] Cannot redefine
a predefined system class.

Predefined system classes cannot be modified by the user.

Example:

CLIPS> (defclass STRING (is-a NUMBER))[CLASSPSR3] <name>
class cannot be redefined while outstanding references to it still
exist.

This error occurs when an attempt to redefine a class is made under one or both of the following two circumstances:

1) The class (or any of its subclasses) has instances.

2) The class (or any of its subclasses) appear in the parameter restrictions of any generic function method.

Before the class can be redefined, all such instances and methods must be deleted.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (defmethod foo ((?a A LEXEME)))
CLIPS> (defclass A (is-a OBJECT)))[CLASSPSR4] Class <attribute>
already declared.

Only one specification of a class attribute is allowed.

Example:

CLIPS>
(defclass A (is-a USER)
  (role abstract)
  (role concrete))[CLSLTPSR1] Duplicate slots not allowed.

Slots in a defclass must be unique.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo)
  (slot foo))[CLSLTPSR2] <name> facet already specified.

Only one occurrence of a facet per slot is allowed.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo (access read-only)
            (access read-write)))[CLSLTPSR3] Cardinality facet
can only be used with multifield slots

Singlefield slots by definition have a cardinality of one.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo (cardinality 3 5)))[CLSLTPSR4] readonly slots must
have a default value

Since slots cannot be unbound and readonly slots cannot be set after initial creation of the instance, readonly slots must have a default value.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo (access read-only)
            (default ?NONE)))[CLSLTPSR5] readonly slots cannot
have a write accessor

Since readonly slots cannot be changed after initializationof the instance, a write accessor (put messagehandler) is not allowed.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo (access read-only)
            (create-accessor write)))[CLSLTPSR6] noinherit slots
cannot also be public

noinherit slots are by definition not accessible to subclasses and thus only visible to the parent class.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo (propagation no-inherit)
            (visibility public)))[COMMLINE1] Expected a '(', constant,
or global variable

This message occurs when a toplevel command does not begin with a '(', constant, or global variable.

Example:

CLIPS> )
    [COMMLINE2] Expected a command.

This message occurs when a toplevel command is not a symbol.

Example:

CLIPS> ("facts"[CONSCOMP1] Invalid file name <fileName>
contains '.'

A '.' cannot be used in the file name prefix that is passed to the constructstoc command since this prefix is used to generate file names and some operating systems do not allow more than one '.' to appear in a file name.[CONSTRCT1] Some constructs are still in use. Clear cannot continue.

This error occurs when the clear command is issued when a construct is in use (such as a rule that is firing).[CSTRCPSR1] Expected the beginning of a construct.

This error occurs when the load command expects a left parenthesis followed a construct type and these token types are not found.[CSTRCPSR2] Missing name for <constructtype> construct

This error occurs when the name is missing for a construct that requires a name.

Example:

CLIPS> (defgeneric ())[CSTRCPSR3]  Cannot define <constructtype>
<constructname> because of an import/export conflict.

or[CSTRCPSR3] Cannot define defmodule <defmodulename> because of an import/export conflict cause by the <constructtype> <constructname>.

A construct cannot be defined if defining the construct would allow two different definitions of the same construct type and name to both be visible to any module.

Example:

CLIPS> (defmodule MAIN (export ?ALL))
CLIPS> (deftemplate MAIN::foo)
CLIPS> (defmodule BAR (import MAIN ?ALL))
CLIPS> (deftemplate BAR::foo (slot x))[CSTRCPSR4]  Cannot redefine
<constructtype> <constructname> while it is in use.

A construct cannot be redefined while it is being used by another construct or other data structure (such as a fact or instance).

Example:

CLIPS> (clear)
CLIPS> (deftemplate bar)
CLIPS> (assert (bar))
<Fact-0>
CLIPS> (deftemplate (bar (slot x)))[CSTRNCHK1] Message Varies

This error ID covers a range of messages indicating a type, value, range, or cardinality violation.

Example:

CLIPS> (deftemplate foo (slot x (type SYMBOL)))
CLIPS> (assert (foo (x 3)))[CSTRNPSR1]  The <first attribute
name> attribute conflicts with the <second attribute name>
attribute.

This error message occurs when two slot attributes conflict.

Example:

CLIPS> (deftemplate foo (slot x (type SYMBOL) (range 0 2)))[CSTRNPSR2]
 Minimum <attribute> value must be less thanor equal to
the maximum <attribute> value.

The minimum attribute value for the range and cardinality attributes must be less than or equal to the maximum attribute value for the attribute.

Example:

CLIPS> (deftemplate foo (slot x (range 8 1)))[CSTRNPSR3]  The
<first attribute name> attribute cannot be used in conjunction
with the <second attribute name> attribute.

The use of some slot attributes excludes the use of other slot attributes.

Example:

CLIPS> (deftemplate foo (slot x (allowed-values a)
                                (allowed-symbols b)))[CSTRNPSR4]
 Value does not match the expected type for the <attribute
name> attribute.

The arguments to an attribute must match the type expected for that attribute (e.g. integers must be used for the allowedintegers attribute).

Example:

CLIPS> (deftemplate example (slot x (allowed-integers 3.0)))[CSTRNPSR5]
 The cardinality attribute can only be used with multifield slots.

The cardinality attribute can only be used for slots defined with the multislot keyword.

Example:

CLIPS> (deftemplate foo (slot x (cardinality 1 1)))[DEFAULT1]
The default value for a single field slot must be a single field
value

This error occurs when the default or defaultdynamic attribute for a singlefield slot does not contain a single value or an expression returning a single value.

Example:

CLIPS> (deftemplate error (slot x (default)))[DFFNXPSR1] Deffunctions
are not allowed to replace constructs.

A deffunction cannot have the same name as any construct.

Example:

CLIPS> (deffunction defgeneric ())[DFFNXPSR2] Deffunctions
are not allowed to replace external functions.

A deffunction cannot have the same name as any system or userdefined external function.

Example:

CLIPS> (deffunction + ())[DFFNXPSR3] Deffunctions are not allowed
to replace generic functions.

A deffunction cannot have the same name as any generic function.

Example:

CLIPS> (defgeneric foo)
CLIPS> (deffunction foo ())[DFFNXPSR4] Deffunction <name>
may not be redefined while it is executing.

A deffunction can be loaded at any time except when a deffunction of the same name is already executing.

Example:

CLIPS>
(deffunction foo ()
  (build "(deffunction foo ())"))
CLIPS> (foo)

[DFFNXPSR5] Defgeneric <name> imported from module <module name> conflicts with this deffunction.

A deffunction cannot have the same name as any generic function imported from another module.

Example:

CLIPS> (defmodule MAIN (export ?ALL))
CLIPS> (defmethod foo ())
CLIPS> (defmodule FOO (import MAIN ?ALL))
CLIPS> (deffunction foo)[DRIVE1] This error occurred in the
join network   Problem resides in join #<patternnumber>
in rule(s):      <problemrules>+

This error pinpoints other evaluation errors associated with evaluating an expression within the join network. The specific pattern of the problem rules is identified.[EMATHFUN1] Domain error for <functionname> function

This error occurs when an argument passed to a math function is not in the domain of values for which a return value exists.[EMATHFUN2] Argument overflow for <functionname> function

This error occurs when an argument to an extended math function would cause a numeric overflow.[EMATHFUN3] Singularity at asymptote in <functionname> function

This error occurs when an argument to a trigonometric math function would cause a singularity.[EVALUATN1] Variable <name> is unbound

This error occurs when a local variable not set by a previous call to bind is accessed at the top level.

Example:

CLIPS> (progn ?error)[EVALUATN2] No function, generic function
or deffunction of name <name> exists for external call.
IThis error occurs only when an invalid function name is passed to the external C access routine CLIPSFunctionCall.[EXPRNPSR1]
A function name must be a symbol

In the following example, '~' is recognized by CLIPS as an operator, not a function:

Example:

CLIPS> (+ (~ 3 4) 4)[EXPRNPSR2] Expected a constant, variable,
or expression

In the following example, '~' is an operator and is illegal as an argument to a function call:

Example:

CLIPS> (<= ~ 4)[EXPRNPSR3] Missing function declaration
for <name>

CLIPS does not recognize <name> as a declared function and gives this error message.

Example:

CLIPS> (xyz)[EXPRNPSR4] $ Sequence operator not a valid argument
for <name>.

The sequence expansion operator cannot be used with certain functions.

Example:

CLIPS> (set-sequence-operator-recognition TRUE)
FALSE
CLIPS> (defrule foo (x $?y) => (assert (x1 $?y)))[FACTMCH1]
This error occurred in the pattern network   Currently active
fact: <newly assert fact>   Problem resides in slot <slot
name>      Of pattern #<patternnumber> in rule(s):
      <problemrules>+

This error pinpoints other evaluation errors associated with evaluating an expression within the pattern network. The specific pattern and field of the problem rules are identified.[FACTMNGR1] Facts may not be retracted during patternmatching

or[FACTMNGR2] Facts may not be retracted during patternmatching

Functions used on the LHS of a rule should not have side effects (such as the creation of a new instance or fact).

Example:

CLIPS>
(defrule error
  (test (assert (blah)))
=>)
CLIPS> (reset)[FACTRHS1] Template <name> does not exist
for assert.

This error occurs when an assert is attempted for a deftemplate which does not exist in a runtime or active bload image. In other situations, CLIPS will create an implied deftemplate if one does not already exist.

Example:

CLIPS> (clear)
CLIPS> (bsave error.bin)
TRUE
CLIPS> (bload error.bin)
TRUE
CLIPS> (assert (error))[GENRCCOM1] No such generic function
<name> in function undefmethod.

This error occurs when the generic function name passed to the undefmethod function does not exist.

Example:

CLIPS> (clear)
CLIPS> (undefmethod yak 3)[GENRCCOM2] Expected a valid method
index in function undefmethod.

This error occurs when an invalid method index is passed to undefmethod (e.g. a negative integer or a symbol other than *).

Example:

CLIPS> (defmethod foo ())
CLIPS> (undefmethod foo a))[GENRCCOM3] Incomplete method specification
for deletion.

It is illegal to specify a nonwildcard method index when a wildcard is given for the generic function in the function undefmethod.

Example:

CLIPS> (undefmethod * 1)[GENRCCOM4] Cannot remove implicit
system function method for generic function <name>.

A method corresponding to a system defined function cannot be deleted.

Example:

CLIPS> (defmethod integer ((?x SYMBOL)) 0)
CLIPS> (list-defmethods integer)
integer #SYS1  (NUMBER)
integer #2  (SYMBOL)
For a total of 2 methods.
CLIPS> (undefmethod integer 1)[GENRCEXE1] No applicable methods
for <name>.

The generic function call arguments do not satisfy any methodís parameter restrictions.

Example:

CLIPS> (defmethod foo ())
CLIPS> (foo 1 2)[GENRCEXE2] Shadowed methods not applicable
in current context.

No shadowed method is available when the function callnextmethod is called.

Example:

CLIPS> (call-next-method)[GENRCEXE3] Unable to determine class
of <value> in generic function <name>.

The class or type of a generic function argument could not be determined for comparison to a method type restriction.

Example:

CLIPS> (defmethod foo ((?a INTEGER)))
CLIPS> (foo [bogus-instance])[GENRCEXE4] Generic function <name>
method #<index> is not applicable to the given arguments.

This error occurs when callspecificmethod is called with an inappropriate set of arguments for the specified method.

Example:

CLIPS> (defmethod foo ())
CLIPS> (call-specific-method foo 1 abc)[GENRCFUN1] Defgeneric
<name> cannot be modified while one of its methods is executing.

Defgenerics canít be redefined while one of their methods is currently executing.

Example:

CLIPS> (defgeneric foo)
CLIPS> (defmethod foo () (build "(defgeneric foo)"))
CLIPS> (foo)[GENRCFUN2] Unable to find method <name>
#<index> in function <name>.

No generic function method of the specified index could be found by the named function.

Example:

CLIPS> (defmethod foo 1 ())
CLIPS> (ppdefmethod foo 2)[GENRCFUN3] Unable to find generic
function <name> in function <name>.

No generic function method of the specified index could be found by the named function.

Example:

CLIPS> (preview-generic balh)[GENRCPSR1] Expected ')' to complete
defgeneric.

A right parenthesis completes the definition of a generic function header.

Example:

CLIPS> (defgeneric foo ())[GENRCPSR2] New method #<index1>
would be indistinguishable from method #<index2>.

An explicit index has been specified for a new method that does not match that of an older method which has identical parameter restrictions.

Example:

CLIPS> (defmethod foo 1 ((?a INTEGER)))
CLIPS> (defmethod foo 2 ((?a INTEGER)))[GENRCPSR3] Defgenerics
are not allowed to replace constructs.

A generic function cannot have the same name as any construct.

[GENRCPSR4] Deffunction <name> imported from module <module name> conflicts with this defgeneric.

A deffunction cannot have the same name as any generic function imported from another module.

Example:

CLIPS> (defmodule MAIN (export ?ALL))
CLIPS> (deffunction foo ())
CLIPS> (defmodule FOO (import MAIN ?ALL))
CLIPS> (defmethod foo)[GENRCPSR5] Generic functions are not
allowed to replace deffunctions.

A generic function cannot have the same name as any deffunction.[GENRCPSR6] Method index out of range.

A method index cannot be greater than the maximum value of an integer or less than 1.

Example:

CLIPS> (defmethod foo 0 ())[GENRCPSR7] Expected a '(' to begin
method parameter restrictions.

A left parenthesis must begin a parameter restriction list for a method.

Example:

CLIPS> (defmethod foo)[GENRCPSR8] Expected a variable for parameter
specification.

A method parameter with restrictions must be a variable.

Example:

CLIPS> (defmethod foo ((abc)))[GENRCPSR9] Expected a variable
or '(' for parameter specification.

A method parameter must be a variable with or without restrictions.

Example:

CLIPS> (defmethod foo (abc))[GENRCPSR10] Query must be last
in parameter restriction.

A query parameter restriction must follow a type parameter restriction (if any).

Example:

CLIPS> (defmethod foo ((?a (< ?a 1) INTEGER)))[GENRCPSR11]
Duplicate classes/types not allowed in parameter restriction.

A method type parameter restriction may have only a single occurrence of a particular class.

Example:

CLIPS> (defmethod foo ((?a INTEGER INTEGER)))[GENRCPSR12] Binds
are not allowed in query expressions.

Binding new variables in a method query parameter restriction is illegal.

Example:

CLIPS> (defmethod foo ((?a (bind ?b 1))))[GENRCPSR13] Expected
a valid class/type name or query.

Method parameter restrictions consist of zero or more class names and an optional query expression.

Example:

CLIPS> (defmethod foo ((?a 34)))[GENRCPSR14] Unknown class/type
in method.

Classes in method type parameter restrictions must already be defined.

Example:

CLIPS> (defmethod foo ((?a bogus-class)))[GENRCPSR15] <name>
class is redundant.

All classes in a method type parameter restriction should be unrelated.

Example:

CLIPS> (defmethod foo ((?a INTEGER NUMBER)))[GENRCPSR16] The
system function <name> cannot be overloaded.

Some system functions canot be overloaded.

Example:

CLIPS> (defmethod if ())[GENRCPSR17] Cannot replace the implicit
system method #<integer>.

A system function can not be overloaded with a method that has the exact number and types of arguments.

Example:

CLIPS> (defmethod integer ((?x NUMBER)) (* 2 ?x))[GLOBLDEF1]
Global variable <variable name> is unbound.

A global variable must be defined before it can be accessed at the command prompt or elsewhere.

Example:

CLIPS> (clear)
CLIPS> ?*x*[GLOBLPSR1] Global variable <variable name>
was referenced, but is not defined.

A global variable must be defined before it can be accessed at the command prompt or elsewhere.

Example:

CLIPS> (clear)
CLIPS> ?*x*[INCRRSET1] The incremental reset behavior cannot
be changed with rules loaded.

The incremental reset behaviour can only be changed when there are no currently defined rules.[INHERPSR1] A class may not have itself as a superclass.

A class may not inherit from itself.

Example:

CLIPS> (defclass A (is-a A))[INHERPSR2] A class may inherit
from a superclass only once.

All direct superclasses of a class must be unique.

Example:

CLIPS> (defclass A (is-a USER USER))[INHERPSR3] A class must
be defined after all its superclasses.

Subclasses must be defined last.

Example:

CLIPS> (defclass B (is-a A))[INHERPSR4] Must have at least
one superclass.

All userdefined classes must have at least one direct superclass.

Example:

CLIPS> (defclass A (is-a))[INHERPSR5] Partial precedence list
formed: <classa> <classb> … <classc>Precedence
loop in superclasses: <class1> <class2> … <classn>
<class1>

No class precedence list satisfies the rules specified in section 9.3.1.1 for the given direct superclass list. The message shows a conflict for <class1> because the precedence implies that <class1> must both precede and succeed <class2> through <classn>. The full loop can be used to help identify which particular classes are causing the problem. This loop is not necessarily the only loop in the precedence list; it is the first one detected. The part of the precedence list which was successfully formed is also listed.

Example:

CLIPS> (defclass A (is-a MULTIFIELD FLOAT SYMBOL))
CLIPS> (defclass B (is-a SYMBOL FLOAT))
CLIPS> (defclass C (is-a A B))[INHERPSR6] A userdefined class
cannot be a subclass of <name>.

The INSTANCE, INSTANCENAME, and INSTANCEADDRESS classes cannot have any subclasses.

Example:

CLIPS> (defclass A (is-a INSTANCE))[INSCOM1] Undefined type
in function <name>.

The evaluation of an expression yielded something other than a recognized class or primitive type.[INSFILE1] Function <functionname> could not completely process file <name>.

This error occurs when an instance definition is improperly formed in the input file for the loadinstances, restoreinstances, or bloadinstances command.

Example:

CLIPS> (load-instances bogus.txt)[INSFILE2] <filename>
file is not a binary instances file.

or[INSFILE3] <filename> file is not a compatible binary instances file.

This error occurs when bloadinstances attempts to load a file that was not created with bsaveinstances or when the file being loaded was created by a different version of CLIPS.

Example:

CLIPS> (reset)
CLIPS> (save-instances foo.ins)
1
CLIPS> (bload-instances foo.ins)[INSFILE4] Function bloadinstances
unable to load instance <instancename>.

This error occurs when an instance specification in the input file for the bloadinstances command could not be created.

Example:

CLIPS> (defclass A (is-a USER) (role concrete))
CLIPS> (make-instance of A)
[gen1]
CLIPS> (bsave-instances foo.bin)
1
CLIPS> (clear)
CLIPS> (defclass A (is-a USER))
CLIPS> (bload-instances foo.bin)[INSFUN1] Expected a valid
instance in function <name>.

The named function expected an instancename or address as an argument.

Example:

CLIPS> (initialize-instance 34)[INSFUN2] No such instance <name>
in function <name>.

This error occurs when the named function cannot find the specified instance.

Example:

CLIPS> (instance-address [bogus-instance])
 [INSFUN3] No such slot <name> in function <name>.

This error occurs when the named function cannot find the specified slot in an instance or class.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (slot-writablep A b)[INSFUN4] Invalid instanceaddress
in function <name>.

This error occurs when an attempt is made to use the address of a deleted instance.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (make-instance a of A)
[a]
CLIPS> (defglobal ?*x* = (instance-address a))
CLIPS> (make-instance a of A)
[a]
CLIPS> (class ?*x*)[INSFUN5] Cannot modify reactive instance
slots while patternmatching is in process.

CLIPS does not allow reactive instance slots to be changed while patternmatching is taking place. Functions used on the LHS of a rule should not have side effects (such as the changing slot values).

Example:

CLIPS>
(defclass FOO (is-a USER)
              (role concrete)
              (pattern-match reactive)
              (slot x (create-accessor read-write)))
CLIPS> (make-instance x of FOO)
[x]
CLIPS> (defrule BAR (x) (test (send [x] put-x 3)) =>)
CLIPS> (assert (x))[INSFUN6] Unable to patternmatch on shared
slot <name> in class <name>.

This error occurs when the number of simultaneous class hierarchy traversals is exceeded while patternmatching on a shared slot. See the related error message [CLASSFUN2] for more details.[INSFUN7] <multifieldvalue> illegal for singlefield slot <name> of instance <name> found in <functioncall or messagehandler>.

Singlefield slots in an instance can hold only one atomic value.

Example:

CLIPS> (set-static-constraint-checking FALSE)
TRUE
CLIPS>
(defclass FOO (is-a USER)
  (role concrete)
  (slot foo))
CLIPS>
(defmessage-handler FOO error ()
  (bind ?self:foo 1 2 3))
CLIPS> (make-instance foo of FOO)
[foo]
CLIPS> (send [foo] error)[INSFUN8] Void function illegal value
for slot <name> of instance <name> found in <functioncall
or messagehandler>.

Only functions which have a return value can be used to generate values for an instance slot.

Example:

CLIPS> (set-static-constraint-checking FALSE)
TRUE
CLIPS>
(defclass FOO (is-a USER)
  (role concrete)
  (slot foo))
CLIPS>
(defmessage-handler FOO error ()
  (bind ?self:foo (instances)))
CLIPS> (make-instance foo of FOO)
[foo]
CLIPS> (send [foo] error)[INSMNGR1] Expected a valid name for
new instance.

makeinstance expects a symbol or an instancename for the name of a new instance.

Example:

CLIPS> (make-instance 34 of A)[INSMNGR2] Expected a valid class
name for new instance.

makeinstance expects a symbol for the class of a new instance.

Example:

CLIPS> (make-instance a of 34)[INSMNGR3] Cannot create instances
of abstract class <name>.

Direct instances of abstract classes, such as the predefined system classes, are illegal.

Example:

CLIPS> (make-instance [foo] of USER)
 [INSMGNR4] The instance <name> has a slotvalue which depends
on the instance definition.

The initialization of an instance is recursive in that a slotoverride or defaultvalue tries to create or reinitialize the same instance.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo))
CLIPS>
(make-instance a of A (foo (make-instance a of A)))[INSMNGR5]
Unable to delete old instance <name>.

makeinstance will attempt to delete an old instance of the same name if it exists. This error occurs if that deletion fails.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS>
(defmessage-handler A delete around ()
  (if (neq (instance-name ?self) [a]) then
    (call-next-handler)))
CLIPS> (make-instance a of A)
CLIPS> (make-instance a of A)[INSMNGR6] Cannot delete instance
<name> during initialization.

The evaluation of a slotoverride in makeinstance or initializeinstance attempted to delete the instance.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo))
CLIPS>
(defmessage-handler A put-foo after ($?any)
  (delete-instance))
CLIPS> (make-instance a of A (foo 2))[INSMNGR7] Instance <name>
is already being initialized.

An instance cannot be reinitialized during initialization.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (make-instance a of A)
CLIPS>
(defmessage-handler A init after ()
   (initialize-instance ?self))
CLIPS> (initialize-instance a)
CLIPS> (send [a] try)[INSMNGR8] An error occurred during the
initialization of instance <name>.

This message is displayed when an evaluation error occurs while the init message is executing for an instance.[INSMNGR9] Expected a valid slot name for slotoverride.

makeinstance and initializeinstance expect symbols for slot names.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (make-instance a of A (34 override-value))[INSMNGR10]
Cannot create instances of reactive classes while patternmatching
is in process.

CLIPS does not allow instances of reactive classes to be created while patternmatching is taking place. Functions used on the LHS of a rule should not have side effects (such as the creation of a new instance or fact).

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete) (pattern-match reactive))
CLIPS> (defrule BAR (x) (test (make-instance of FOO)) =>)
CLIPS> (assert (x))[INSMNGR11] Invalid module specifier in
new instance name.

This error occurs when the module specifier in the instancename is illegal (such as an undefined module name).

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete))
CLIPS> (make-instance BOGUS::x of FOO)[INSMNGR12] Cannot delete
instances of reactive classes while patternmatching is in process.

CLIPS does not allow instances of reactive classes to be deleted while patternmatching is taking place. Functions used on the LHS of a rule should not have side effects (such as the deletion of a new instance or the retraction of a fact).

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete) (pattern-match reactive))
CLIPS> (make-instance x of FOO)
[x]
CLIPS> (defrule BAR (x) (test (send [x] delete)) =>)
CLIPS> (assert (x))[INSMNGR13] Slot <slotname> does not
exist in instance <instancename>.

This error occurs when the slot name of a slot override does not correspond to any of the valid slot names for an instance.

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete))
CLIPS> (make-instance of FOO (x 3))[INSMNGR14] Override required
for slot <slotname> in instance <instancename>.

If the ?NONE keyword was specified with the default attribute for a slot, then a slot override must be provided when an instance containing that slot is created.

Example:

CLIPS> (defclass FOO (is-a USER)
                     (role concrete)
                     (slot x (default ?NONE)))
CLIPS> (make-instance of FOO)[INSMNGR15] initslots not valid
in this context.

The special function initslots (for initializing slots of an instance to the class default values) can only be called during the dispatch of an init message for an instance, i.e., in an init messagehandler.

Example:

CLIPS>
(defmessage-handler INITIAL-OBJECT error ()
  (init-slots))
CLIPS> (reset)
CLIPS> (send [initial-object] error)

[INSMODDP1] Direct/messagemodify message valid only in modifyinstance.

The directmodify and messagemodify messagehandlers attached to the class USER can only be called as a result of the appropriate message being sent.by the modifyinstance or messagemodifyinstance functions. Additional handlers may be defined, but the message can only be sent in this context.

Example:

CLIPS> (reset)
CLIPS> (send [initial-object] direct-modify 0)[INSMODDP2] Direct/messageduplicate
message valid only in duplicateinstance.

The directduplicate and messageduplicate messagehandlers attached to the class USER can only be called as a result of the appropriate message being sent.by the duplicateinstance or messageduplicateinstance functions. Additional handlers may be defined, but the message can only be sent in this context.

Example:

CLIPS> (reset)
CLIPS> (send [initial-object] direct-duplicate 0 0)[INSMODDP3]
Instance copy must have a different name in duplicateinstance.

If an instancename is specified for the new instance in the call to duplicateinstance, it must be different from the source instanceís name.

Example:

CLIPS> (reset)
CLIPS> (duplicate-instance initial-object to initial-object)[INSMULT1]
Function <name> cannot be used on singlefield slot <name>
in instance <name>.

The functions described in section 12.13.4.12, such as slotinsert$, can only operate on multifield slots.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo))
CLIPS> (make-instance a of A)
[a]
CLIPS> (slot-insert$ a foo 1 abc def)[INSQYPSR1] Duplicate
instanceset member variable name in function <name>.

Instanceset member variables in an instanceset query function must be unique.

Example:

CLIPS> (any-instancep ((?a OBJECT) (?a OBJECT)) TRUE)[INSQYPSR2]
Binds are not allowed in instanceset query in function <name>.

An instanceset query cannot bind variables.

Example:

CLIPS>
(any-instancep ((?a OBJECT) (?b OBJECT))
  (bind ?c 1))[INSQYPSR3] Cannot rebind instanceset member variable
<name> in function <name>.

Instanceset member variables cannot be changed within the actions of an instanceset query function.

Example:

CLIPS>
(do-for-all-instances ((?a USER))
  (if (slot-existp ?a age) then
     (> ?a:age 30))
  (bind ?a (send ?a get-brother)))[IOFUN1] Illegal logical name
used for <function name> function.

A logical name must be either a symbol, string, instancename, float, or integer.

Example:

(printout (create$ a b c) x)[IOFUN2] Logical name <logical
name> already in use.

A logical name cannot be associated with two different files.

Example:

CLIPS> (open "foo.txt" foo "w")
TRUE
CLIPS> (open "foo2.txt" foo "w")[MEMORY1]
Out of memory

This error indicates insufficient memory exists to expand internal structures enough to allow continued operation (causing an exit to the operating system).[MEMORY2] Release error in genfree

This error indicates a problem in the memory management routines.[MEMORY3] Unable to allocate memory block > 32K

This error occurs when the bload function attempts to allocate a block of memory larger than 32K and the operating system does not permit blocks greater than 32K to be allocated. This will only occur on machines which have 2 byte integers (excluding the Macintosh and IBM PC which have machine dependent code provided so that they can allocate more than 32K). When this error occurs, CLIPS exits to the operating system.[MISCFUN1] expand$ must be used in the argument list of a function call.

The expand$ function may not be called unless it is within the argument list of another function.

Example:

CLIPS> (expand$ (create$ a b c))[MODULDEF1] Illegal use of
the module specifier.

The module specifier can only be used as part of a defined constructís name or as an argument to a function.

Example:

CLIPS> (deffunction y ())
CLIPS> (MAIN::y)[MODULPSR1] Module <module name> does
not export any constructs.

or[MODULPSR1] Module <module name> does not export any <construct type> constructs.

or[MODULPSR1] Module <module name> does not export the <construct type> <construct name>.

A construct cannot be imported from a module unless the defmodule exports that construct.

Example:

CLIPS> (clear)
CLIPS> (defmodule BAR)
CLIPS> (deftemplate BAR::bar)
CLIPS> (defmodule FOO (import BAR deftemplate bar)))[MSGCOM1]
Incomplete messagehandler specification for deletion.

It is illegal to specify a nonwildcard handler index when a wildcard is given for the class in the external C function UndefmessageHandler(). This error can only be generated when a userdefined external function linked with CLIPS calls this function incorrectly.[MSGCOM2] Unable to find messagehandler <name> <type> for class <name> in function <name>.

This error occurs when the named function cannot find the specified messagehandler.

Example:

CLIPS> (ppdefmessage-handler USER foo around)[MSGCOM3] Unable
to delete messagehandlers.

This error occurs when a messagehandler canít be deleted (such as when a binary image is loaded).

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete))
CLIPS> (defmessage-handler FOO bar ())
CLIPS> (bsave foo.bin)
TRUE
CLIPS> (bload foo.bin)
TRUE
CLIPS> (undefmessage-handler FOO bar)[MSGFUN1] No applicable
primary messagehandlers found for <message>.

No primary messagehandler attached to the objectís classes matched the name of the message.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (make-instance a of A)
[a]
CLIPS> (send [a] bogus-message)[MSGFUN2] Messagehandler <name>
<type> in class <name> expected exactly/at least <number>
argument(s).

The number of message arguments was inappropriate for one of the applicable messagehandlers.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (defmessage-handler USER foo (?a ?b))
CLIPS> (make-instance a of A)
[a]
CLIPS> (send [a] foo)[MSGFUN3] <name> slot in instance
<name>: write access denied.

This error occurs when an attempt is made to change the value of a readonly slot.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo (default 100)
            (read-only)))
CLIPS> (make-instance a of A)
[a]
CLIPS> (send [a] put-foo)[MSGFUN4] <function> may only
be called from within messagehandlers.

The named function operates on the active instance of a message and thus can only be called by messagehandlers.

Example:

CLIPS> (ppinstance)[MSGFUN5] <function> operates only
on instances.

The named function operates on the active instance of a message and can only handle instances of userdefined classes (not primitive type objects).

Example:

CLIPS>
(defmessage-handler INTEGER print ()
  (ppinstance))
CLIPS> (send 34 print)[MSGFUN6] Private slot <slotname>
of class <classname> cannot be accessed directly by handlers
attached to class <classname>

A subclass which inherits private slots from a superclass may not access those slots using the ?self variable. This error can also occur when a superclass tries to access via dynamicput or dynamicget a private slot in a subclass.

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete) (slot x))
CLIPS> (defclass BAR (is-a FOO))
CLIPS> (defmessage-handler BAR yak () ?self:x)[MSGFUN7] Unrecognized
messagehandler type in defmessagehandler.

Allowed messagehandler types include primary, before, after, and around.

Example:

CLIPS> (defmessage-handler USER foo behind ())[MSGFUN8] Unable
to delete messagehandler(s) from class <name>.

This error occurs when an attempt is made to delete a messagehandler attached to a class for which any of the messagehandlers are executing.

Example:

CLIPS> (reset)
CLIPS>
(defmessage-handler INITIAL-OBJECT error ()
  (undefmessage-handler INITIAL-OBJECT error primary))
CLIPS> (send [initial-object] error)[MSGPASS1] Shadowed messagehandlers
not applicable in current context.

No shadowed messagehandler is available when the function callnexthandler or overridenexthandler is called.

Example:

CLIPS> (call-next-handler)[MSGPASS2] No such instance <name>
in function <name>.

This error occurs when the named function cannot find the specified instance.

Example:

CLIPS> (instance-address [bogus-instance])[MSGPASS3] Static
reference to slot <name> of class <name> does not
apply to <instancename> of <classname>.

This error occurs when a static reference to a slot in a superclass by a messagehandler attached to that superclass is incorrectly applied to an instance of a subclass which redefines that slot. Static slot references always refer to the slot defined in the class to which the messagehandler is attached.

Example:

CLIPS>
(defclass A (is-a USER)
  (slot foo))
CLIPS>
(defclass B (is-a A)
  (role concrete)
  (slot foo))
CLIPS>
(defmessage-handler A access-foo ()
  ?self:foo)
CLIPS> (make-instance b of B)
[b]
CLIPS> (send [b] access-foo)[MSGPSR1] A class must be defined
before its messagehandlers.

A messagehandler can only be attached to an existing class.

Example:

CLIPS> (defmessage-handler bogus-class foo ())[MSGPSR2] Cannot
(re)define messagehandlers during execution of other messagehandlers
for the same class.

No messagehandlers for a class can be loaded while any current messagehandlers attached to the class are executing.

Example:

CLIPS> (defclass A (is-a USER))
CLIPS> (make-instance a of A)
[a]
CLIPS>
(defmessage-handler A build-new ()
  (build "(defmessage-handler A new ())"))
CLIPS> (send [a] build-new)[MSGPSR3] System messagehandlers
may not be modified.

There are three primary messagehandlers attached to the class USER which cannot be modified: init, delete and print.

Example:

CLIPS> (defmessage-handler USER init ())[MSGPSR4] Illegal slot
reference in parameter list.

Direct slot references are allowed only within messagehandler bodies.

Example:

CLIPS> (defmessage-handler USER foo (?self:bar))[MSGPSR5] Active
instance parameter cannot be changed.

?self is a reserved parameter for the active instance.

Example:

CLIPS>
(defmessage-handler USER foo ()
  (bind ?self 1))[MSGPSR6] No such slot <name> in class
<name> for ?self reference.

The symbol following the ?self: reference must be a valid slot for the class.

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete) (slot x))
CLIPS> (defmessage-handler FOO bar () ?self:y)[MSGPSR7] Illegal
value for ?self reference.

The symbol following the ?self: reference must be a symbol.

Example:

CLIPS> (defclass FOO (is-a USER) (role concrete) (slot x))
CLIPS> (defmessage-handler FOO bar () ?self:7)[MSGPSR8] Messagehandlers
cannot be attached to the class <name>.

Messagehandlers cannot be attached to the INSTANCE, INSTANCEADDRESS, or INSTANCENAME classes.

Example:

CLIPS> (defmessage-handler INSTANCE foo ())[MULTIFUN1] Multifield
index <index> out of range 1..<end range> in function
<name>

or[MULTIFUN1] Multifield index range <start>...<end> out of range 1..<end range> in function <name>

This error occurs when a multifield manipulation function is passed a single index or range of indices that does not fall within the specified range of allowed indices.

Example:

CLIPS> (delete$ (create$ a b c) 4 4)[MULTIFUN2] Cannot rebind
field variable in function progn$.

The field variable (if specified) cannot be rebound within the body of the progn$ function.

Example:

CLIPS> (progn$ (?field (create$ a)) (bind ?field 3))[OBJRTBLD1]
No objects of existing classes can satisfy pattern.

No objects of existing classes could possibly satisfy the pattern. This error usually occurs when a restriction placed on the isa attribute is incompatible with slot restrictions before it in the pattern.

Example:

CLIPS> (defclass A (is-a INITIAL-OBJECT) (slot foo))
CLIPS> (defrule error (object (foo ?) (is-a ~A)) =>)[OBJRTBLD2]
No objects of existing classes can satisfy <attributename>
restriction in object pattern.

The restrictions on <attribute> are such that no objects of existing classes (which also satisfy preceding restrictions) could possibly satisfy the pattern.

Example:

CLIPS> (defrule error (object (bad-slot ?)) =>)[OBJRTBLD3]
No objects of existing classes can satisfy pattern #<patternnum>.

No objects of existing classes could possibly satisfy the pattern. This error occurs when the constraints for a slot as given in the defclass(es) are incompatible with the constraints imposed by the pattern.

Example:

CLIPS>
(defclass FOO (is-a INITIAL-OBJECT)
  (slot bar (type INTEGER)))
CLIPS>
(defclass BAR (is-a INITIAL-OBJECT)
  (slot bar (type SYMBOL))
  (slot woz))
CLIPS>
(defrule error
  (x abc)
  (object (bar 100) (woz ?))
  (y def)
=>)[OBJRTBLD4] Multiple restrictions on attribute <attributename>
not allowed.

Only one restriction per attribute is allowed per object pattern.

Example:

CLIPS> (defrule error (object (is-a ?) (is-a ?)) =>)[OBJRTBLD5]
Undefined class in object pattern.

Object patterns are applicable only to classes of objects which are already defined.

Example:

CLIPS> (defrule error (object (is-a BOGUS)) =>)[OBJRTMCH1]
This error occurred in the object pattern network   Currently
active instance: <instancename>   Problem resides in slot
<slot name> field #<fieldindex>      Of pattern #<patternnumber>
in rule(s):         <problemrules>+

This error pinpoints other evaluation errors associated with evaluating an expression within the object pattern network. The specific pattern and field of the problem rules are identified.[PATTERN1] The symbol <symbol name> has special meaning and may not be used as a <use name>.

Certain keywords have special meaning to CLIPS and may not be used in situations that would cause an ambiguity.

Example:

CLIPS> (deftemplate exists (slot x))[PATTERN2] Single and multifield
constraints cannot be mixed in a field constraint

Single and multifield variable constraints cannot be mixed in a field constraint (this restriction does not include variables passed to functions with the predicate or return value constraints).

Example:

CLIPS> (defrule foo (a ?x $?y ?x&~$?y) =>)[PRCCODE1]
Attempted to call a <construct> which does not exist.

In a CLIPS configuration without deffunctions and/or generic functions, an attempt was made to call a deffunction or generic function from a binary image generated by the bsave command.[PRCCODE2] Functions without a return value are illegal as <construct> arguments.

An evaluation error occurred while examining the arguments for a deffunction, generic function or message.

Example:

CLIPS> (defmethod foo (?a))
CLIPS> (foo (instances))[PRCCODE3] Undefined variable <name>
referenced in <where>.

Local variables in the actions of a deffunction, method, messagehandler, or defrule must reference parameters, variables bound within the actions with the bind function, or variables bound on the LHS of a rule.

Example:

CLIPS> (defrule foo => (+ ?a 3))[PRCCODE4] Execution halted
during the actions of <construct> <name>.

This error occurs when the actions of a rule, deffunction, generic function method or messagehandler are prematurely aborted due to an error.[PRCCODE5] Variable <name> unbound [in <construct> <name>].

This error occurs when local variables in the actions of a deffunction, method, messagehandler, or defrule becomes unbound during execution as a result of calling the bind function with no arguments.

Example:

CLIPS> (deffunction foo () (bind ?a) ?a)
CLIPS> (foo)[PRCCODE6] This error occurred while evaluating
arguments for the <construct> <name>.

An evaluation error occurred while examining the arguments for a deffunction, generic function method or messagehandler.

Example:

CLIPS> (deffunction foo (?a))
CLIPS> (foo (+ (eval "(gensym)") 2))[PRCCODE7] Duplicate
parameter names not allowed.

Deffunction, method or messagehandler parameter names must be unique.

Example:

CLIPS> (defmethod foo ((?x INTEGER) (?x FLOAT)))[PRCCODE8]
No parameters allowed after wildcard parameter.

A wildcard parameter for a deffunction, method or messagehandler must be the last parameter.

Example:

CLIPS> (defmethod foo (($?x INTEGER) (?y SYMBOL)))[PRCDRPSR1]
Cannot rebind count variable in function loopforcount.

The special variable ?count cannot be rebound within the body of the loopforcount function.

Example:

CLIPS> (loop-for-count (?count 10) (bind ?count 3))[PRCDRPSR2]
The return function is not valid in this context.

or[PRCDRPSR2] The break function is not valid in this context.

The return and break functions can only be used within certain contexts (e.g. the break function can only be used within a while loop and certain instance set query functions).

Example:

CLIPS> (return 3)[PRCDRPSR3] Duplicate case found in switch
function.

A case may be specified only once in a switch statement.

Example:

CLIPS> (switch a (case a then 8) (case a then 9))[PRNTUTIL1]
Unable to find <item> <itemname>

This error occurs when CLIPS cannot find the named item (check for typos).[PRNTUTIL2] Syntax Error: Check appropriate syntax for <item>

This error occurs when the appropriate syntax is not used.

Example:

CLIPS> (if (> 3 4))[PRNTUTIL3]*** CLIPS SYSTEM ERROR ***ID
= <errorid>CLIPS data structures are in an inconsistent
or corrupted state.This error may have occurred from errors in
user defined code.**************************

This error indicates an internal problem within CLIPS (which may have been caused by user defined functions or other user code). If the problem cannot be located within user defined code, then the <errorid> should be reported.[PRNTUTIL4] Unable to delete <item> <itemname>

This error occurs when CLIPS cannot delete the named item (e.g. a construct might be in use). One example which will cause this error is an attempt to delete a deffunction or generic function which is used in another construct (such as the RHS of a defrule or a defaultdynamic facet of a defclass slot).[PRNTUTIL5] The <item> has already been parsed.

This error occurs when CLIPS has already parsed an attribute or declaration.[PRNTUTIL6] Local variables cannot be accessed by <function or construct>.

This error occurs when a local variable is used by a function or construct that cannot use global variables.

Example:

CLIPS> (deffacts info (fact ?x))[PRNTUTIL7] Attempt to divide
by zero in <functionname> function.

This error occurs when a function attempts to divide by zero.

Example:

CLIPS> (/ 3 0)[ROUTER1] Logical name <logical_name> was
not recognized by any routers

This error results because "Hello" is not recognized as a valid router name.

Example:

CLIPS> (printout "Hello" crlf)[RULECSTR1] Variable
<variable name> in CE #<integer> slot <slot name>has
constraint conflicts which make the pattern unmatchable.

or[RULECSTR1] Variable <variable name> in CE #<integer> field #<integer>has constraint conflicts which make the pattern unmatchable.

or[RULECSTR1] CE #<integer> slot <slot name>has constraint conflicts which make the pattern unmatchable.

or[RULECSTR1] CE #<integer> field #<integer>has constraint conflicts which make the pattern unmatchable.

This error occurs when slot value constraints (such as allowed types) prevents any value from matching the slot constraint for a pattern.

Example:

CLIPS> (deftemplate foo (slot x (type SYMBOL)))
CLIPS> (deftemplate bar (slot x (type FLOAT)))
CLIPS> (defrule yak (foo (x ?x)) (bar (x ?x)) =>)[RULECSTR2]
Previous variable bindings of <variable name> caused the
type restrictionsfor argument #<integer> of the expression
<expression>found in CE#<integer> slot <slot name>
to be violated.

This error occurs when previous variable bindings and constraints prevent a variable from containing a value which satisfies the type constraints for one of a functionís parameters.

Example:

CLIPS> (deftemplate foo (slot x (type SYMBOL)))
CLIPS> (defrule bar (foo (x ?x&:(> ?x 3))) =>)[RULECSTR3]
Previous variable bindings of <variable name> caused the
type restrictionsfor argument #<integer> of the expression
<expression>found in the rule's RHS to be violated.

This error occurs when previous variable bindings and constraints prevent a variable from containing a value which satisfies the type constraints for one of a functionís parameters.

Example:

CLIPS> (deftemplate foo (slot x (type SYMBOL)))
CLIPS> (defrule bar (foo (x ?x)) => (printout t (+ ?x 1) crlf))[RULELHS1]
The logical CE cannot be used with a not/exists/forall CE.

Logical CEs can be placed outside, but not inside, a not/exists/forall CE.

Example:

CLIPS> (defrule error (not (logical (x))) =>)[RULELHS2]
A pattern CE cannot be bound to a patternaddress within a not
CE

This is an illegal operation and results in an error message.

Example:

CLIPS> (defrule error (not ?f <- (fact)) =>)[RULEPSR1]
Logical CEs must be placed first in a rule

If logical CEs are used, then the first CE must be a logical CE.

Example:

CLIPS> (defrule error (a) (logical (b)) =>)[RULEPSR2] Gaps
may not exist between logical CEs

Logical CEs found within a rule must be contiguous.

Example:

CLIPS> (defrule error (logical (a)) (b) (logical (c)) =>)
   [STRNGFUN1] Function build does not work in run time modules.

or[STRNGFUN1] Function eval does not work in run time modules.

The build and eval functions do not work in run time modules because the code required for parsing is not available.[STRNGFUN2] Some variables could not be accessed by the eval function.

Local variables cannot be accessed by the eval function.

Example:

CLIPS> (eval "?x")[SYSDEP1] No file found for f option

This message occurs if the f option is used when executing CLIPS, but no arguments are provided.

Example:

clips -f[TEXTPRO1] Unable to access help file.

This error occurs when the external textprocessing system cannot open the specified help file, e.g., the file cannot be found or the CLIPS process does not have sufficient privileges to read the file.

Example:

CLIPS> (help-path ìbogus.txtî)
CLIPS. (help)[TEXTPRO2] Unable to load file. <Explanatory text>.

This error occurs when the external textprocessing system command fetch encounters an error when loading a file.

Example:

CLIPS> (fetch ìbogus.txtî)[TMPLTDEF1] Invalid
slot <slot name> not defined in corresponding deftemplate
<deftemplate name>

The slot name supplied does not correspond to a slot name defined in the corresponding deftemplate

Example:

CLIPS> (deftemplate example (slot x))
CLIPS> (defrule error (example (z 3)) =>)[TMPLTDEF2] The
single field slot <slot name> can only contain a single
field value.

If a slot definition is specified in a template pattern or fact, the contents of the slot must be capable of matching against or evaluating to a single value.

Example:

CLIPS> (deftemplate example (slot x))
CLIPS> (assert (example (x)))[TMPLTFUN1] Factindexes can only
be used by <command name> as a top level command.

Fact indexes may only be used with the modify and duplicate commands when the command is issued from the toplevel command prompt.

Example:

CLIPS> (defrule foo => (modify 1 (x 3))[TMPLTFUN2] Attempted
to assert a multifield value into the single field slot <slot
name> of deftemplate <deftemplate name>.

A multifield value cannot be stored in a single field slot.

Example:

CLIPS> (deftemplate foo (slot x))
CLIPS>
(defrule foo
   =>
   (bind ?x (create$ a b))
   (assert (foo (x ?x))))
CLIPS> (reset)
CLIPS> (run)[TMPLTRHS1] Slot <slot name> requires a value
because of its (default ?NONE) attribute.

The (default ?NONE) attribute requires that a slot value be supplied whenever a new fact is created.

Example:

CLIPS> (deftemplate foo (slot x (default ?NONE)))
CLIPS> (assert (foo))



next up previous