Reflective Metagraph Rewriting as a Foundation for an AGI "Language of Thought"

12/12/2021
by   Ben Goertzel, et al.
0

MeTTa (Meta Type Talk) is a novel programming language created for use in the OpenCog Hyperon AGI system. It is designed as a meta-language with very basic and general facilities for handling symbols, groundings, variables, types, substitutions and pattern matching. Primitives exist for creating new type systems and associated DSLs. IInformally, MeTTa is Hyperon's lowest-level "language of thought" – the meta-language in which algorithms for learning more particular knowledge representations, will operate, and in which these algorithms themselves may be represented. Here we explain how one might go about formalizing the MeTTa language as a system of metagraph rewrite rules, an approach that fits in naturally to the Hyperon framework given that the latter's core component is a distributed metagraph knowledge store (the Atomspace). The metagraph rewrite rules constituting MeTTa programs can also be represented as metagraphs, giving a natural model for MeTTa reflection and self-modifying code. Considering MeTTa programs that compute equivalences between execution traces of other MeTTa programs allows us to model spaces of MeTTa execution traces using Homotopy Type Theory. Considering the limit of MeTTa programs mapping between execution traces of MeTTa programs that map between execution traces of MeTTa programs that ..., we find that a given MeTTa codebase is effectively modeled as an infinity-groupoid, and the space of all MeTTa codebases as an (infinity,1)-topis This topos is basically the same as the so-called "Ruliad" previously derived from rewrite rules on hypergraphs, in a discrete physics context. The formalization of MeTTA as metagraph rewrite rules may also provide a useful framework for structuring the implementation of efficient methods for pattern matching and equality inference within the MeTTa interpreter.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset