Browse Prior Art Database

Using Special Default Values to Improve Rete Semantics

IP.com Disclosure Number: IPCOM000100265D
Original Publication Date: 1990-Mar-01
Included in the Prior Art Database: 2005-Mar-15
Document File: 2 page(s) / 68K

Publishing Venue

IBM

Related People

Schor, MI: AUTHOR

Abstract

Two special values, true-when-tested and false-when-tested, are defined to have special processing within a Rete algorithm. This removes a requirement that predicates deal with uninitialized data, improves performance in some cases, and allows specification of data with "don't care" subparts, useful in backward chaining.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Using Special Default Values to Improve Rete Semantics

       Two special values, true-when-tested and
false-when-tested, are defined to have special processing within a
Rete algorithm.  This removes a requirement that predicates deal with
uninitialized data, improves performance in some cases, and allows
specification of data with "don't care" subparts, useful in backward
chaining.

      Rete algorithms are used in many pattern matchers, such as OPS5
production systems [*].  The matching algorithm calls various
predicates when data changes to retest the patterns with the new
data.  In OPS5, each predicate must be able to handle the case where
no data was yet available (no data is usually represented as a
special value, such as NIL or 0).  This placed a burden on every
predicate to check for this case, and return an appropriate value.

      In systems like OPS5, the number of pattern testing predicates
were limited (to tests, such as equal, not equal, greater than,
etc.).  In more general systems the predicates could be written by
users, and be any arbitrary function of two arguments, returning true
or false.  In these systems, having every predicate definition
include checking for the case of no data available creates a burden
on the writer of these predicates.

      In this disclosure, the value false-when-tested is used for the
case where data is not yet available.  The Rete algorithm is modified
such that before calling a predicate, the data arguments to that
predicate are checked for the special value false-when-tested.  If
any of the arguments are this value, then the modified Rete algorit...