(yes spark seems a bit overengineered for this. one clue is the several-second startup time necessary for running spark example tests, which involve only an in-memory database..)
here's an idea for debugging NARS but should apply in some way to genifer
constructing a graph of resulting "derivation patterns" of the "anonymized" form of logical terms as a tool to verify (hyper-)symmetries of and discover anomalies in the logical processes
https://github.com/opennars/opennars/blob/volatile1/nars_java/src/main/java/nars/logic/meta/Derivations.java(&&,<A --> (|,[B],C)>,<A --> [B]>,<A --> C>) (&&,<A --> (|,[B],C)>,<A --> [B]>,<A --> C>) C:
null
(&&,<D --> (|,[B],C)>,<D --> [B]>)
(&&,<A --> (|,[B],C)>,<A --> [B]>,<A --> C>) (&&,<A --> (|,[B],C)>,<A --> [B]>,<A --> C>) [B]:
null
(&&,<D --> (|,[B],C)>,<D --> C>)
(&&,<D --> (|,[B],C)>,<D --> [B]>)
graphing the term patterns in a vector space would show the presence or lack of symmetries (for debugging) and "holes" where additional reasoning rules might generate missing results. even a 2D vector space overview shows what i'm describing. code for mapping terms to N-dimensional vector spaces: