Meta Type Talk (Hyperon) language description online, w/ talk coming Fri at AGI-21

188 views
Skip to first unread message

Ben Goertzel

unread,
Oct 14, 2021, 3:19:11 PM10/14/21
to opencog, AGI
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

Ivan V.

unread,
Oct 15, 2021, 5:05:17 AM10/15/21
to opencog
Hello,

I skimmed over explanatory docs, but didn't find some functionalities of my interest. Specifically, I'm interested in manual controlling of (1) finding expressions by stating patterns and (2) substituting found expressions; in both (1) forward and (2) backward chaining directions. It seems that these are somehow automated now, but I'd like to have full control over these at the meta level. As the current AtomSpace has atoms representing these functionalities, I wonder will there be some equivalents in MeTTa?

Otherwise, I welcome the idea of MeTTa being a human-use-intended language and introduction of gradual types. I especially like opting out for minimal core features (`:`, `->`, `=`) of which all other functionalities would be composed.

All best,
Ivan


--
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 opencog+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CACYTDBcPcUt7UR4KTgkB7asFqOEu4VG7Hkot0tTb4O2%3DuZ_USA%40mail.gmail.com.

Ben Goertzel

unread,
Oct 15, 2021, 11:34:06 AM10/15/21
to opencog
Hmm, well you could code your own custom pattern matching /
substituting functions in MeTTa for sure, but there will also be some
"hard coded" functions for static pattern matching in the MeTTa
interpreter (as implemented in Rust), which are tuned for efficient
interoperation with Distributed Atomspace ...
> To view this discussion on the web visit https://groups.google.com/d/msgid/opencog/CAB5%3Dj6W4s%3Dhvi%3Dcr%3DTN2Te4W92fsGzQ2A7gdDs%2B8DvNQ1M_J%3Dw%40mail.gmail.com.
Reply all
Reply to author
Forward
0 new messages