Idea: Reduct for hypergraphs
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
- ConceptNode : PredicateNode
- InheritanceLink : ImplicationLink
- SimilarityLink : EquivalenceLink
- etc. etc.
- 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.