Producers
ChunkProducers are write builders that create and persist chunks in the substrate. Each producer encapsulates the logic for constructing a specific type of chunk.
ClusterUpdater) without creating new ones. In those cases, Produce returns the updated chunk rather than a newly created one.
Producer Options
Producer options are additional information supplied to producer constructor to tweak behavior.
# `note` indiciates additional note for the new terminal chunk.
memory.new_terminal("d", "p", note="annotation")
# `semantic_indexing` indicates we need to index the semantic code
# (on top of the id vector).
memory.from_set_members("d", "p", members, semantic_indexing=True)
Concrete Producers
NewTerminal
Creates a chunk whose code equals its identity (a bare Sparkle). Useful for registering atoms/symbols.
with storage.new_mutable_view() as view:
memory.mem_set(view, memory.new_terminal("fruits", "apple", note="an apple"))
NewLearner
Creates a fresh Learner chunk for online learning.
with storage.new_mutable_view() as view:
memory.mem_set(view, memory.new_learner("learners", "my_learner", note="a learner"))
FromSetMembers
Creates a Set from stored members.
with storage.new_mutable_view() as view:
memory.mem_set(
view,
memory.from_set_members(
"sets",
"fruit_set",
memory.by_item_domain("fruits"),
))
FromSequenceMembers
Creates a Sequence from stored members with positional encoding.
with storage.new_mutable_view() as view:
memory.mem_set(
view,
memory.from_sequence_members(
"seqs",
"greeting",
memory.joiner(
memory.by_item_key("words", "hello"),
memory.by_item_key("words", "world"),
),
start=0),
)
FromKeyValues
Creates an Octopus (key-value composite) from keys and value selectors.
with storage.new_mutable_view() as view:
memory.mem_set(
view,
memory.from_key_values(
"records",
"obj1",
keys=["color", "shape"],
values=memory.joiner(
memory.by_item_key("colors", "red"),
memory.by_item_key("shapes", "circle"),
),
))
ClusterUpdater
Feeds an observed chunk into an existing Learner, updating its accumulated code via bundling.
with storage.new_mutable_view() as view:
memory.mem_set(view,
memory.cluster_updater(
learner=memory.by_item_key("learners", "my_learner"),
observed=memory.by_item_key("fruits", "apple"),
multiple=1,
))