Here is a somewhat concise, not-maximally-didactic description of the
new language (MeTTa) we have designed for OpenCog Hyperon:
https://wiki.opencog.org/w/File:MeTTa_Specification.pdf
This is intended as a language for human developer use, and also as a
language for structuring the internals of the Hyperon Atomspace.
In Hyperon rather than doing like in OpenCog Classic and writing
Scheme / python / Haskell /C++ scripts for manipulating Atomspace, one
would write MeTTa scripts.
Reasoning, program learning and other Atomspace-based AI methods would
be conducted on MeTTA programs as well...
Note that the textual-for-humans language syntax is not yet
determined; the above document uses vaguely LISP-like syntax but we
might opt for Haskell or Idris like instead. Current implementation
work in Rust is working w the LISP-ish syntax, but we may add a whole
different syntactic-sugar layer.
Some requirements behind the MeTTa design are given here:
https://wiki.opencog.org/w/File:Basic_Atomese_Features_required.pdf
And some earlier related design thoughts are here:
https://wiki.opencog.org/w/Hyperon:Atomese
How to store and access MeTTa programs/expressions is a different
question not addressed in these documents. There have been some new
developments in the design and prototyping of a distributed Atomspace
on top of a combination of existing no-SQL databases which will be
covered in other documents. Complementing a distributed Atomspace
store there will need to be a local in-RAM Atomspace cache on each
machine running a MeTTa interpreter, and the design of this is still
in progress; but it's worth noting that here some serious deviations
from the current OpenCog Classic Atomspace are being considered; for
instance, it may be that the "atomic" element stored in this cache is
actually the "MeTTa expression" rather than the individual Atom
(though individual Atoms would still exist conceptually within MeTTa
expressions).
Alexey Potapov will give a talk on MeTTa in the Oct 15 workshop on
"Scaling up Neural-Symbolic and Integrative AGI Architectures" at
AGI-21, which will be mixed virtual/F2F and live-streamed on
SingularityNET YOuTube.
https://wiki.opencog.org/w/Workshop_on_Scaling_up_Neural-Symbolic_and_Integrative_AGI_Architectures
The name MeTTa is an acronym for Meta Type Talk (because the language
is gradually typed, allowing interoperation of multiple type systems
w/ their own type checkers, and is intended to foster runtime human
and AI creation of type systems including funky ones like
probabilistic dependent type systems etc.). Metta is also a Pali
word for lovingkindness, which has some AGI ethics resonance.
-- Ben
--
Ben Goertzel, PhD
b...@goertzel.org
"My humanity is a constant self-overcoming" -- Friedrich Nietzsche