Rules are FSAs
- A rule is of the form:
expression => action
- If you used a standard rule based system, like clips, the
expression and the action would largely be facts.
- So fact1 fact2 => (assert fact3) (retract fact2)
- Facts are just binary CAs. They're true if they are firing.
- In the above example (and in clips) expressions are implicitly
conjoined (and-ed), as are the actions.
- So, if the fact1 CA and fact2 CA are firing, you can apply the
rule.
- This is done by an FSA that uses fact1 and fact2 to turn on
a state, which then turns on the new fact3 and turns off fact2.
- Each fact based rule is implementable by a CA.
- So, the system (in python) translates any given rule based system
into an FSA.
- It does need to know the initial facts, so it knows which fact CAs
to use as the basis of FSAs.
- The system then trots the FSA out to its neural topology, which can
then be run in NEST or on SpiNNaker (neuromorphic hardware).