Hey hey, Some more stuff to share on the MeTTa language that's at the core of the Hyperon design ( https://wiki.opencog.org/w/Hyperon )
I made a brief summary of key MeTTa features https://docs.google.com/document/d/1iSbZtooDj4HuJayj0nhm_KRqqdCJBJ9P5LfjKzJBEnA/edit# (Consistent with Alexey's prior MeTTa spec document, https://wiki.opencog.org/w/File:MeTTa_Specification.pdf ) And also a rough sketch of how one would implement MeTTa as a collection of metagraph rewrite rules https://docs.google.com/document/d/13EPXlddLJAFBXfgmxduwxkMHAXdeCCf5i3VKr0XYy-I/edit (I will make a more rigorous version of this at time permits) I also note that this paper from Wolfram's group https://arxiv.org/pdf/2111.03460.pdf while written in a different context, seems to be applicable to what we're doing. Extending their hypergraph results to metagraphs seems straightforward. A "multiway metagraph" in (a generalization to metagraphs of) their terminology would basically be an execution trace of a MeTTa program on a metagraph... which of course can also be expressed as a metagraph. Given nondeterminism of execution, a given program can lead to a number of multiway metagraphs. Metagraph homomorphisms between execution traces, are then the homotopies btw derivations referenced in HoTT ... so one naturally builds up to the n-groupoid and as the limit the infinity-groupoid ... One gets a different infinity-groupoid for each MeTTa program , so the space one gets from execution traces of the full scope of MeTTa programs is an infinity-category of infinity-groupoids, aka the (infinity,1)-topos So all this basically follows if one represents MeTTa programs as collections of metagraph rewrite rules. The Verigraph work https://link.springer.com/chapter/10.1007%2F978-3-319-75396-6_9 https://github.com/Verites/verigraph shows that pattern-matching search heuristics can be elegantly expressed in terms of the categorial rewrite rule formalism (they work w/ graph rewrite rules but it should also work for metagraphs). It seems a sound approach for the MeTTa interpreter implementation will likely be to implement the simplest PM heuristic in Rust, with a pluggable search policy ... and then express the pluggable search policies in MeTTa using appropriate abstractions that are based on modeling MeTTa in MeTTa as a collection of metagraph rewrite rules. These pluggable search policies will end the end need to use ML for PM search guidance All "high class plumbing" (from an AGI perspective) but fun stuff nevertheless! ;) All this uber plumbing, when it's done, should make experimentation w/ synergetic use of logic systems, program learning systems and neural systems a lot more concise and efficient ! ben -- Ben Goertzel, PhD [email protected] "My humanity is a constant self-overcoming" -- Friedrich Nietzsche -- You received this message because you are subscribed to the Google Groups "opencog" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CACYTDBfeiwNnKYCd_OXE4A1udsv8C9iRUqUgoQHxqhPQj2fWXQ%40mail.gmail.com.
