Some of you may be aware that Holochain is really just one component in a much broader concept and vision called Ceptr. Ceptr is pretty ambitious and mind-blowing, a bio-inspired approach to computing which deals with the constitution of meaning from the ground up and is meant to serve as a framework for sense-making at scale, a technological extension/prosthesis which aims to make us more aware of wtf's actually going on & condition complex adaptive systems from our catastrophically fragile and messy socio-technical systems as they currently are.

"Meaning comes from having a social context in which symbols are applied to embodied forms (structures!)" — Eric Harris-Braun

So, one really neat idea/tool (among many others) is this thing called Semtrex (SEMantic Tree Regular EXpressions) — a semantic tree regular expression matcher. Basically like regex (regular expressions, matcher for one-dimensional strings), but dealing with semantics and meaning. Semantic trees incorporate meaning (semantics), so Semtrex (C/C# code can be found here) matches on the semantics of the data as well as literal values, whereas Regex, having no concept of the semantics on which it is matching, can match only on the literal values.

Semantic trees in Ceptr. A "run tree" is a self-consuming tree that reduces itself to its result.

First though, let's clarify what are semantic trees. In Ceptr, semantic trees are considered to be the base data unit. Ceptr is built from receptors — fractally composable lightweight virtual machines, themselves made up of semantic trees. These receptor VMs, instead of operating on 32 or 64 bit strings/words are designed to instead operate on semantic trees. The intention being to build meaning in the lowest possible level in the computing stack. This radically different re-design and re-imagining of computation opens up whole new dimensions of what is technically possible and the kinds of affordances conditioned and the kinds of embodied knowledge within such design.

This webinar below goes in much more detail regarding the technical specifications and implementation:

Here's the code and API documentation of Semtrex. The idea is that data has both structural and meaningful aspects — you create a symbolic tree and define the values of its structural components.