Holon mechanism

From Organic Design wiki
Revision as of 19:39, 23 October 2024 by Nad (talk | contribs) (Scaling to a network: general issues)
UnderConstruction.svg Work in Progress: This article is still in the developmental stage. Please do not base any work on this content, any aspect of it may undergo change or be removed at any time without notice.


The holarchy is just an academic curiosity if we can't represent it with a clearly definable "nuts and bolts" mechanism. In other words what data structure is involved at a program level? How does the code operate on it to actually represent the two holon behaviours that lead to the harmoniously evolving and diversifying society of self-organisations?

This article is dedicated to clearly answering these questions, but it does require a software development background to read it. The holarchy article is aimed at a more general audience, but it is also required reading for putting the context and terminology in place for understanding this article, so if you are not familiar with it, please start with that first.

Each of the four quadrants of the model are represented by actual scopes, state and process in a running holon. The run-time environment within which holons execute and progress must provide this basic means of execution itself - each private instance scope is essentially a virtual machine node progressing a self-organisation structure.

The holon has three abstraction layers, the third layer is the actual holarchy society of organisations which is analogous to the "world" consisting of culture and society. The first two layers are what the holon mechanism has to provide.

The first abstraction layer of the mechanism defines execution which takes the form of production rules organised in an evolving class-instance network space. This layer essentially creates the potential for the four quadrants, by creating the distinction between, and usage of, the public and private scopes and the organisation of production rules and their executional performance.

The second layer of the mechanism executes in the context of the private instance scope. This is where the diagonal loops between opposite quadrants are defined. This layer essentially extends the basic class-instance environment to enable the collective aspects of resource flow and knowledge evolution and the individual characteristics of developmental and operational progression in time.

Layer one

In the Holarchy article we described the holon model as consisting of three abstraction layers involving four quadrants connected by two feedback loops. In that article we mainly went into detail about level two and three, but we skipped over layer one of the model, which defines the class-instance system and the basic scopes of operation for each of the four quadrant's behaviours.

In that article we summarised the class-instance by saying that classes are unique names that refer to specific packages of evolving knowledge and behaviour structure. And that they exist in the form of groups of instances throughout the holarchy, and their collective version is the totality of all instance's variations of it, and is maintained by those instances which are all structural representations of the class backed by real resource and in a state of in-flux development and operation.

So this article is focused on layer one of the system, which introduces a data structure and a process operating on it that implements the above name-cluster concept.

For the purposes of this discussion, we start with the assumption that we have a local hierarchical namespace functionality such as an associative array. This assumption is fine in the context of information technology, but in the context philosophy we must even define the mechanism of names and symbols which is an ongoing discussion in the four quadrant holon philosophy article.

What this foundation gives us in terms of the holarchy is the possibility to create graphs of holons that can contain arbitrary content and relationships to each other. Holons here are within a typical key:value pair space in which the keys are always class-names and values are always instances of that class. Note that we don't depend on the concepts of class and instance existing within our program environment, these concepts are provided by the four-quadrant holon mechanism extending the basic associative array functionality.

Two trees

In terms of data structure, class and instance are a pair of graphs that each relate the single set of holons together in two distinct, but complimentary, grouping strategies. We call these two structures trees, although technically only the instances are connected in the form of a one-to-many tree, the classes are connected as a "semantic network" that we call the unified ontology.

These trees are very much like what we see in traditional OOP where there is a structure of live actualised instances and an ecosystem of classes from which instances are instantiated and which determines how they operate.

The instance-tree in the holarchy system is easily understood because it's much like a runtime structure of object instances in any traditional running OO program. Instances control a set of "child siblings" as a parent context itself being a sibling performing a function in the next layer of abstraction higher.

As discussed above, the class aspect of the system as a semantic network or ontology, which is formed from all the many local instances of each class. This aspect of connectivity is not so intuitive, because in traditional OOP there is no inherent connection between instances by virtue of them being of the same class.

The class tree is created by a global process of merging all variations of the class across all the instances of it in the tree. The class tree does not define how variations can arise, just how to integrate them into a global whole if they were to arise somehow. The class tree defines the structure of classes, and as a whole defines the shared unified ontology of classes.

The merging of variations essentially means that the parent-child relationships in this tree are not black and white, but rather each relationship is itself a tree of optional relevant variations.

Instances take on the form defined by their respective classes, and the classes are the collective product of their instances. So the class-instance relationship is in the form of a co-evolving feedback loop.

The two-tree process is a way of permitting a tree to extend itself within subjectively. This leads to two separate graphs of one set of nodes, each having an inside-outside perspective of scope that together constitute the subjective world of meaning within. From here the four quadrants can be actualised by allowing mergeable process execution within the context of each scope-pair.

Multiplexing

The two trees are created, maintained and related by a simple process called time-division multiplexing.[1] This is a process by which a continuous flow of executional focus is quantised into arbitrary[2] units which cyclically iterate the entire instance-tree structure.[3]

This iteration process is a movement of executional focus from one node to another. When focus enters a node it's akin to the calling of a function (sub-routine) in a program, because it's moving "down" into a more specific context that is deeper within the structure. Conversely the leaving of focus after completion corresponds to the returning from the function back up the "call-tree" to the "caller" above. The movement downward is a process of division of focus, and the movement upward is a process of information integration, aggregation and propagation "upward", "outward" or "beyond".

As with traditional OOP, or indeed with organisational structure in general, this vertical directionality gives rise to a structured scope system where there is an outer public side and an inner private side to every node. These correspond to the outward-facing and inward-facing concepts in Koestler's holon model, to the outside and inside of a biological cell, or to the public and private property contexts of organisation.

In the holon, the kind of time being multiplexed is executional focus (or agentic attention more generally). The multiplexing movement of focus throughout the structure is a repeating pattern determined by the structure itself. This pattern exhibits a continuous bidirectional flow of function-like calling and returning. This can be considered as a way of representing organisational structure in general.

The multiplexing pattern of focus moving amongst the scopes is what creates hierarchy and its return. Objectively it's just a flat graph, but the movement of focus over time creates the subjective perspective of hierarchy seen from within private scopes. The return flow makes possible the sharing of structure amongst these perspectives.

Multiplexing in this way can be considered as the "collectivised" version of function calling. The compliment of function-calling is to return the result of action, which taken to it's collectivised version is a scale-independent merging or aggregation operation.

Multiplexing is the mechanism behind our implementation of the blackboard pattern and its decoupled approach to private scope. We now have a system where the operation is decoupled both horizontally (blackboard and production-rules) and vertically as well via the "collectivised" function calling and returning model.

  • composability requires inherent organisation of executional focus within structure which MUX provides

Scale-independence

Multiplexing is a scale-independent process, which means that the same dividing process applies to arbitrary depth (and may be part of larger structure beyond), forming a hierarchy of threads from what is ultimately just a single thread. The width or depth of any local group of threads is all arbitrary in the sense that the multiplexing mechanism itself is content agnostic.

The cycle of top-down and bottom-up movement is used to create the class-tree. Since the process is responsible for dividing the executional focus throughout the whole instance tree cyclically, it also has the option of using a portion of that focus unconditionally for maintaining the class-tree.[4]

Classes are not associated with any specific time or location, which is why the class-tree is called abstract and non-local.

The two trees define the different scopes of operation within the holarchy system. The class-tree defines non-local scope which groups all instances of the same class together regardless of their whereabouts in the holarchy.

The non-local connection of an instance to its class-group does not occur instantaneously, it only appears so from the local POV since it happens between successive quanta of focus at that level. The instance-tree defines public scope (public is not necessarily actually public, it simply means not encapsulated) and private scope which correspond to a specific locations and times.

The general structure of the ontology is defined by what is established in usage. Which path variations are chosen locally becomes a non-local landscape of variation tied to the contextual conditions they're performed within. The ontology is thus a semantic network formed by established and evolving dependence and relevance.

  • subjective non-locality
  • decoupled operation (horizontally and vertically)
  • continuous-able - scale-independence is not only about size and depth, it's also discrete/continuous agnostic

Scaling to a network

Everything we've talked about so far is in the context of what we call the "simple local holarchy", which is that we're considering the entire holarchy to be a single local data structure. But in reality many holons will be separate entities in a network connected by arbitrarily slow transport media including "sneaker net" or "carrier pidgin".

Instance trees are the framework of resource allocation, and this forms the skeleton of communication permitting the class tree to synchronise. In a sparse network, we don't know how long aggregation of class information may take at any level of the instance tree.

The kind of information being aggregated is class metrics which are always idempotent, meaning that multicast and best-effort paradigms are able to be used for this process. In other words class-synchronisation is "p2p friendly".

Layer zero

Layer one is usually thought of as the class-instance system as a whole, but it can be broken up into two layers itself which we call layer zero and layer one. Layer zero is the top-down process of public/private scope differentiation, and layer one is the corresponding bottom-up process of joining the relative names into the class-group (ontology). In our model, these are the vertical instance axis and the horizontal class axis respectively.

How the diagonals are inherent in the mechanism

  • the diagonals have a mechanistic ("physical") origin as well, layer one sets up a dual dipole dynamic involving the scopes of the calling/returning dynamic and the meaningful points the agentic focus can appear in

The diagonal axes are also an inherent aspect of the mechanism we've described above that gives rise to the class-and-instance concept.

By default, the layer one dynamic that bought about the class-and-instance (the multiplexing and its complimentary aggregation process) are also present in the inner subjective scope too (because the scope is extending this dynamic). In the inner scope, we have one diagonal extending the class concept with the objective dynamic, and the other diagonal extending the instance concept with it. In this section, we'll first look at how the diagonals come about in this mechanism, and then go into the details of what they mean conceptually.

Deriving-diagonals.jpg

The diagonals come from the fact that there are only two ways of combining the horizontal and vertical axes. Conversely we can say that with each quadrant interacting only with its opposite partner, the two original dipoles can be embodied.[5]

The diagram to the right shows the two different ways of combining the original pair of axes. The ends of each axis have been assigned a letter so we can keep track of which are present in the combined results. Each way of combining the axes leads to a new axis connecting a combined pair of ends as shown by the green arrows. These green arrows can then overlaid on the original pair oriented orthogonally to each other, revealing that the green arrows connect the quadrants diagonally.

Executional focus appears in each of these four scope-compositions in order to create the first layer class-and-instance mechanism. Each of these sessions of focus can be extended with a second-level process which yields the two diagonal loops.

Revisiting first-class citizenry

  • the origin is private-scope and the concept of encapsulation
  • this means the child is responsible for its own actions, and for apprehending the conditions
  • encapsulation makes the system decoupled vertically, the essence of scale-independence
  • this is the self-assertive behaviour, the support of true autonomy by the collective, and the source of sovereignty and liberty

Mechanism conclusion

First we introduced the four quadrant system generally as a model and what it means from a real-world organisational perspective. We finished that discussion by tying the system in to it's overall alignment to scale-independent harmonious organisation.

Then we introduced a specific mechanism that represents this four-quadrant model. This mechanism is simple and symmetrical, and is entirely mechanical in the sense that all its interactions depend entirely on its own structure and state.

The first abstraction layer is just a pair of tree structures changing in accord with a process that operates in accord with the structure of those trees, yielding a self-organising tree-pair. The behaviour of each tree is simple and deterministic, but yet they're complimentary, and together they open up a second abstraction layer in which the class-instance concept is manifest and usable.

This second abstraction layer is the same dynamic again, but this time in the local private context of subjective value. This local scope takes the form of the two diagonals, the economic and evolutionary loops. Even though this second layer functionality involves high-level concepts, it's still entirely mechanical, extending the first layers dynamics recursively within with the same dynamic again.

This is an amazing conclusion which is hard to believe[6]. It's showing us that there's a class-instance concept inherently hidden within the simple process of multiplexing (combined with its complimentary aggregation process), which is itself amazing. But it goes further saying that when used within the context of itself, this same dynamic reveals the high-level feedback dynamics of evolution and economy. The multiplexing dynamic when connected back onto itself inherently manifests holarchy, the self-organising holarchy of self-organisations.[7]

Notes

  1. Multiplexación in Spanish.
  2. Different agency types will gravitate to different sizes for their average quanta, but consistency is maintained.
  3. This multiplexed instance-tree defines the fundamental meanings of space and time in our system. Space is the structure itself, including its ability to contain further structure or arbitrary content. Time is the continuous perspective that is represented by each node (holon) due to the regular cycle of focus it receives.
  4. The non-local aspect of the system does not occupy any subjective focus, in terms of agency it is literally unconscious behaviour.
  5. Processes that are mergeable (as discussed above regarding production rules) permit combination commutatively because the execution is not ordered (parallel, decoupled). Commutative combination of two dipoles is naturally modelled in the form of four quadrants which are each composed of one end of each dipole.
  6. So hard to believe in fact, that it seems like there must be a mistake somewhere. But until we find it, we'll keep refining the idea and attempting to build it.
  7. ChatGPT: In essence, this statement is drawing a parallel between a technical process (multiplexing) and broader concepts of organization, feedback, and emergence in complex systems. It suggests that even in technical or mechanical processes, we can find patterns and principles that reflect the fundamental ways in which the natural world and human-made systems organize and evolve. This perspective encourages a holistic view of technology and systems, seeing them not just in isolation but as part of the broader tapestry of the universe's organizational principles.

Related projects

  • holons.io - hierarchical payments
  • Coasys - an alternative holarchy built on holochain
  • We Collective - a holonic organisational social network

See also