IMHO, Monty will need a convenient, logical, and neuroscience-grounded way to address messages to specific LMs, including input ports, message semantics, etc. (A rough biological equivalent of this, AIUI, is specifying a synapse for a dendrite type at a cortical level.)
In Monty, I’d expect an actor framework to handle addressing to the level of processes (e.g., LMs). Each LM would then perform pattern-based message dispatching, based on a variety of characteristics, e.g.:
- level within the cortical column
- transmission power and speed
- type of the receiving dendrite
- …
In Erlang and Elixir, the BEAM manages the details of message handling (e.g., addressing, transmission, routing, queuing, dispatching). In particular, addressing is based on “nodes” (BEAM instances) and process IDs (i.e., PIDs).
This works, for some value of “work”, but PIDs aren’t particularly self-documenting, let alone obvious or transparent. When I asked ChatGPT about this, it replied with a few suggestions, e.g.:
- slash-separated path names, akin to URI formats
(e.g., “region/column/level/port”). - key-value encoding for characteristics
- map-based data structures containing characteristics
The path name / URI approach offers familiarity, flexibility, and simplicity. However, it doesn’t deal well with location-independent characteristics such as sensitivity, speed, etc.
So, my suspicion is that we’ll want to use slash-separated path names for things like “region/column/level/port” and relegate location-independent characteristics to a routing data structure. Comment?