Core concepts
← Relifold documentation

Spaces

Stable logical dataset names whose physical location can change from session to session.

A Space is the name a pipeline uses for a dataset. The name is part of the pipeline declaration; the physical source is a session binding. This separation lets the same version read an upload today, an S3 prefix tomorrow, or a dated partition on its next scheduled run.

Read rows through the API

page = workspace.space_rows(
    "scored-reviews",
    session_id="session-…",
    limit=200,
)
for item in page["rows"]:
    print(item["data"], item["sessions"])

The optional session filter returns occurrences produced or explicitly introduced by that execution. Use workspace.session_rows(...) when you need the exact supplied, consumed, or emitted ledger. Follow next_offset until it is null; do not derive a cursor from the number of returned rows.

Space names and bindings

# The version reads the logical Space "headlines".
SemTransform(
    input_spaces=("headlines",),
    output_space="sentiment",
    ...
)

# A run binds "headlines" to the selected dataset for this session.
sources = {"headlines": selected_dataset}

A literal Space name remains literal. Relifold does not attach timestamps or execution counters to it. If a run should read or write a dated path, resolve that path when creating the session and bind it to the same logical name.

Rows and primary keys

Rows are mappings of column names to values. A task's primary_key selects the field or fields that identify the semantic value being processed. Choose meaningful content, such as a headline or product-category name—not a URL, hash, or arbitrary integer—unless that identifier is itself the subject of the task.

When rows with the same primary key reach an operation, they represent one task value and produce one task result. This avoids paying repeatedly for the same semantic work, but it is not an implicit row-preservation operation. If every source ID, assignment, or membership must survive, first use a keyed Union with an explicit union merge policy for those identity-list fields, then map the semantic result back to the retained identities.

Read Primary and supporting keys for selection rules, two-sided tasks, and worked examples.

What Spaces do not do

Browse and inspect

The Spaces view lists registered logical datasets. Open a Space to inspect its schema, source binding, sample rows, producing versions, session membership, and reviewed quality where available.