CIRCUIT COMPONENTS

input

image

A gateway component that receives data from the circuit’s function interface, optionally encoding it through a plugin.

Details and properties

  • Circuits may have multiple input nodes, each representing one block of data.
  • Supports encoder plugins, mapping external data representations to sets.
  • Transparently handles multisets and inhibitory signals.
  • Sends data downstream without delay.


Property Default Description
send required [integer] representing a single output slot
plugin encoder plugin

Use standard style options to customize the component’s appearance in circuit schematics.

Basic input and output

This is the simplest possible circuit, routing signals directly from the input node to the output node. Multiset or inhibitory inputs are reduced to sets along the pathway.

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "output", "receive": [1]}
  ]}

image

Multiple inputs

Each input node represents a disjoint partition (or block) of the overall input signal.

This merges the signals from two input nodes into a single output node. Note that the list notation in the receive parameter denotes merging.

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "input", "send": [2]},
    {"component": "output", "receive": [[1, 2]]}
  ]}

image

Multisets

This circuit routes multisets from the input to the output.

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "output", 
        "receive": [{"slot": 1, "tags": ["multiset"]}]}
  ]}

image

Inhibitory multisets

The following circuit transports multiset data including inhibitory signals. Note that inhibitory pathways implicitly carry multisets.

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "send": [1]},
    {"component": "output", 
        "receive": [{"slot": 1, "tags": ["inhibit"]}]}
  ]}

image

Encoding input data

The input component supports encoder plugins that convert external data to sets.

The following circuit uses the codec plugin which encodes symbolic tokens as random Sparse Holographic Representations (SHRs). Here, the output component uses the same plugin instance to decode the SHRs, exactly reversing the mapping.

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "plugin": "codec", "send": [1]},
    {"component": "output", "plugin": "codec", "receive": [1]}
  ]}

image

This uses the flyhash encoder:

{ "hyperparameters": {"default": [1000, 10]},
  "dataflow": [
    {"component": "input", "plugin": "flyhash", "send": [1]},
    {"component": "output", "receive": [1]}
  ]}

image