Idea: Reduct for hypergraphs

From OpenCog

Idea: generalize the current notion of reduct for combo trees into a general graph-re-writing system that can compile hypergraphs down to a simpler 'normal form'. This is needed for several different projects.

Reduct for PLN

One important place where even a very rudimentary reduct could be used is for avoiding the excessive representational richness in PLN. By reducing graphs to a simpler normal form, PLN could be made smaller, simpler and faster.

this email thread kicks it off:

There's an obvious redundancy/symmetry in PLN between
The inference formulas are the same for both sides of the : ...
Mathematically there is a difference between the two sides, e.g.
-- ConceptNode corresponds to a set
-- PredicateNode corresponds to a (fuzzy) indicator function of a set

and so on. A set of reduct rules could convert the one form into the other, as desired.

One way to think of this reduct is as a 'byte-code compiler': it would reduce incoming hypergraphs to a smaller, simpler set. As a result, PLN could be smaller and simpler, and could run faster.

Reduct for MOSES

Currently, reduct works only on combo programs. If/when MOSES is ported to run on top of the atomspace, then we'd need a reduct that worked there.