entrelacs

The Entrelacs Paradigm

Introduction

The way current computer systems manage information is shaped by the Box/Value paradigm, which consists of representing information as graphs of boxed values.

versus

The Entrelacs Manifesto proposes to build a brand-new computing stack based on a radically different paradigm introduced hereafter: the Entrelacs Paradigm.

At a glance

An Arrow

arrows

An arrow …

is a Pair

An arrow is basically a pair of arrows. Arrow ends are not nodes but other arrows. Graph theoryW doesn’t cover arrow-made constructs.

is Oriented

The pair (A, B) is distinct from (B, A).

Note that one may dismiss this requirement and build back oriented pairs by combining non-oriented pairs.

is Unique

Unique, canonical, normed, hashed.

An arrow-based system stores only one physical representation of the arrow (A, B) from A to B, when A and B are two known arrows.

Self-referring sets of arrows - that is, entrelacs as introduced hereafter - are also uniquely identified.

is Immutable

An arrow is to be considered as a pure mathematical object. And in the same way that one can’t “modify” a natural number like 2, one can’t modify an arrow within a system.

The system dynamic goes by assimilating new arrows and forgetting old ones.

is Connected

Connected, Content-Indexed

Inside a given system, a certain arrow may be connected to many children arrows, that is, arrows whose one of both ends are the considered arrow.

The system must be able to efficiently browse all these children as it forms emerging information. It’s the basis of a new kind of system ability.

Wordlist

arrow1

Each arrow is an oriented pair of arrows.

Entrelacs

An entrelacs is a set of intricated arrows forming a unique discrete connected construct. It means that any arrow from the set is the descendant/ancestor of all the other arrows of the set.

Definition

A set of arrows E forms an entrelacs if and only if:

One characterizes an entrelacs according to its topology, that is, how many arrows it contains and how these arrows are connected together. One considers that entrelacs which are isomorphic are identical.

Examples: eve composed1
  OrobourosW, which has no ancestor but itself Two entrelacs linked by a regular arrow

Entrelacs-Atoms Bijection (mapping)

Entrelacs act as atomic pieces of information.

To conclude, entrelacs are assimilable in all respects to atoms like those found in S-expressionW.

Practical considerations

Assimilation process = Hashing

All system inputs (network events, user actions, …) must be assimilated into arrows before being processed by the system.

This “assimilation” process also occurs when low-level processes produce new data, e.g., numbers obtained by mathematical operations.

Arrows’ uniqueness is enforced during assimilation by checking that no previous representation of each arrow exists in the storage space before adding one to it.

Rooting

In cybernetic, a computer displays a behavior function that can modify itself through introspection (observation of its own state/behavior) and intercession (modification of its own mechanisms or state).

Within an Entrelacs System, the whole knowledge might be defined as a single arrow S that would typically represent the system’s behavior function.

S would be the only variable to change over time from an arrow to another. S would be a super complex arrow based on all the arrows the system knows of at a given time.

But, for practicability, one will rather consider the system’s knowledge at any time as a subset of all mathematically definable arrows, namely the rooted arrows.

A rooted arrow is an arrow which is considered “true” in the top-level context of the considered system.

On a drawing, rooted arrows might be identified with a root mark. rooted1
some rooted arrow.
(check out the mark notation)

Arrow uniqueness induces that an arrow may often be simultaneously rooted and an ancestor of rooted arrows.

Thus, a system-level garbage collector may periodically reclaim storage space by removing arrows which are neither a rooted arrow nor some ancestor of a rooted arrow.

Handling of complex objects

From a theoretical perspective, arrows are the only fundational building blocks needed to represent information.

However, a realistic system should handle raw data - like binary strings - as well.

Thanks to the Entrelacs-Atoms One-To-One Correspondence, this doesn’t deny the initial paradigm as data eventually correspond to arrows.

bin1

More generally, an arrow-based system may be extended to take into consideration advanced building blocks like tuples or bags as long as these complex objects are handled exactly in the same way as their equivalent arrow constructs, especially in terms of uniqueness, immutability, and connectivity.

For instance, when assimilating the “hello world” character string, an arrow-based system must ensure that:

Orthogonal persistence

A practical arrow-based system should ensure the orthogonal persistenceW of arrows. It means that neither programs nor users are concerned with information persistence. The management of RAM or disks, including caching, paging, and garbage collection, should be totally transparent.

Knowledge representation with arrows

To build useful information structures with arrows, classical meta-models may be adapted, especially trees and lists. However, new meta-models may be explored. See ArrowModeling for further readings.

Credits where it’s due

Arrows as Hons

Arrows are similar to cons cellsW, especially “hons” obtained by hash consingW. A definition of “hons” is given by the documentation of the ACL2 system.

All in all, the Entrelacs manifesto proposal simply consists of performing hash consing at the operating system level, combined with orthogonal persistence and systematic connectivity index building.

Arrows as equations

An Arrow might be seen as a set of equations, and an entrelac as an unreductible set of equations.

For example, the equation { x = x.x } is “Orobouros” and the equations system { x = y.y ; y = x.x ; x ≠ y } is “Yin-Yang”.

Despite these equations having no meaning, they may still be used in bigger systems to define more complex arrows, like the compound arrow from “Orobouros” to “Yin-Yang”. In other words, they may act as atoms to build up dictionaries and represent any form of knowledge.

A store of lambda Calculus expressions with no free variable

The Arrows paradigm may also be seen as the systematic hashing and storage of untyped “lambda calculus” terms exempt of free variables.

The paradigm doesn’t define how computation takes place if any. But alpha-equivalence is used as an equivalence relation to identify recognizable lambda expressions - that is, entrelacs - and use them as constants to build more complex structures of knowledge.

So classes of alpha-equivalent expressions without free terms are stored as building blocks to build up more complex expressions, and no atom is needed. It aims to make information fully homogeneous.

Notation

A way to avoid the use of parentheses when writing atom-based arrows is to use prefix notation, so that ((a → ( b → c )) → d) is written → → a → b c d.

By using characters like slash as → and dot as the atom separator, one may serialize an arrow as a string.

See Arrow Notation for more details.