Browse Prior Art Database

Efficient Correlation of Multiple Premises

IP.com Disclosure Number: IPCOM000102583D
Original Publication Date: 1990-Dec-01
Included in the Prior Art Database: 2005-Mar-17
Document File: 4 page(s) / 147K

Publishing Venue

IBM

Related People

Campbell, RR: AUTHOR [+2]

Abstract

Described is an easy to implement inference engine adaptable to a wide variety of situations requiring a level of Artificial Intelligence (AI). It uses Boolean strings and expert system-like rules to quickly determine whether or not a specific set of conditions exists in a problem domain. The late binding of the rules with the problem domain allow for greatly simplified program code, reduced maintenance and good run-time performance.

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

Efficient Correlation of Multiple Premises

       Described is an easy to implement inference engine
adaptable to a wide variety of situations requiring a level of
Artificial Intelligence (AI).  It uses Boolean strings and expert
system-like rules to quickly determine whether or not a specific set
of conditions exists in a problem domain. The late binding of the
rules with the problem domain allow for greatly simplified program
code, reduced maintenance and good run-time performance.

      This is accomplished by an easily built, limited function
inference engine, a set of rules, and a bit string shared among
constituent programs.  These programs are known as the 'Low Level
Analyzers' (LLA) and the inference engine is known as the 'High Level
Analyzer' (HLA).  The set of rules specifies which set of premises
must exist or not exist (the rule's Left Hand Side (LHS)) and the
actions to be performed (specified in the rule's Right Hand Side
(RHS)).

      The rule's RHS can specify that an additional premise be
asserted, that a specific procedure be called, and/or that certain
premises can be treated as 'facts' for later processing.

      Each rule's LHS uses 'AND' and 'NOT' logical operators to
describe which premises must exist and not exist, respectively, for
the rule LHS to be 'true', thereby causing the RHS to be performed.
Since the LHSs are independent, a logical 'OR' is stated by
generating a rule for each desired 'OR' condition.  An Exclusive OR
(XOR) can be described by using the rule RHS to create a premise that
is used by the 'XOR' LHSs in a 'NOT' conditional.

      A basic component of this implementation is the use of a common
bit string that is shared among the programs and/or procedures.
There are two types of program and/or procedures that share this
string - the individual Low Level Analyzers and the High Level
Analyzer.  The role of the LLAs are to create premises independent of
other LLAs and to mark assigned areas in the common bit string that
are defined to correspond to each premise.  The HLA is responsible
for matching the rules against the common bit string and performing
the actions specified on the RHS.

      The common bit string is simply an ordered Boolean string which
is used to represent positionally which premises have been asserted
by each LLA.  That is, each premise is assigned a position in the
'ASSERTED' Boolean string that represents the presence of that
specific premise.  A value of '1' would indicate that a premise
associated with that position in the bit string has been asserted.

      The rule's LHS is specified as 2 Boolean strings of the same
length as above; these two strings are reused and initialized for
each rule. One of these strings is known as the 'AND' string and has
a bit value of '1' in each premise position specified as an 'AND'
component of this rules LHS. The other string is known as the 'NOT'
string and has a bit value of '1' in each premise posit...