trueagi-io / hyperon-experimental

MeTTa programming language implementation
https://metta-lang.dev
MIT License
153 stars 50 forks source link

Find another name for Atom metatype #611

Open ngeiswei opened 9 months ago

ngeiswei commented 9 months ago

What is your problem?

I challenge the fact that the notion of Atom, as it existed in OpenCog Classic, should be verbatimly translated to MeTTa.

What is the usual definition of atom?

In general, atom means something indivisible. In logic, an atomic proposition is an indivisible proposition such as True, False, p or even p(t) (where t is a term, not a proposition).

What is the history of Atom in OpenCog Classic?

In the context of OpenCog Classic, as I understand it, an atom meant a node or a link, an indivisible unit of knowledge. Since it's hard to talk about a link in a vaccum, that notion of link progressively got conflated with the notion of subgraph, and since a link is an atom, the notion of atom got conflated with the notion of subgraph as well.

What is the current use of Atom in MeTTa?

In MeTTa, Atom is the metatype that is the sum of Symbol, Variable, Grounded and Expression, therefore it is not indivisible, because Expression can itself be decomposed into sub-expressions.

What should it be called then?

I suggest to replace Atom by Term, but I'm open to other suggestions.