Skip to main content

Research & Data

A methods section can read the same after a dataset is re-exported; the files themselves do not say which cleaned table produced a figure.

ALX Protocol represents each stage of a research workflow as a Block: a source dataset, a cleaning step, an analysis run, a published result. Declared parents replace a methods paragraph as the primary record of which stages produced which outputs. Anyone holding every Block in a result's graph can revalidate the declared lineage instead of reconstructing it from prose. For how identities are computed, see Software Provenance and Block Identity. ALX verifies deterministic identity, declared lineage, and graph structure. Applications remain responsible for content semantics, permissions, trust decisions, ownership, governance, and storage.

The Problem

A published result is the end of a chain. An instrument export or survey extract is cleaned, exclusions are applied, a model is run, and a figure is generated. That chain is often recorded in prose: a methods section, a README, or a changelog entry. The files themselves say nothing about which inputs produced them.

When a dataset is re-exported or a cleaning script is corrected, the prose may read the same, so a reader cannot tell which version of the cleaned table produced a figure. Identity is equally ambiguous: two exports can share a filename and contain different data, and one cleaned table may appear in two studies with different histories.

How ALX Applies

Each stage becomes one Block. Its content payload is whatever the application records about that stage, such as dataset metadata, cleaning parameters, a code revision reference, or a result summary. Every direct dependency between stages becomes a parent relationship: the cleaned dataset Block declares the raw dataset, the analysis result Block declares the cleaned dataset and the analysis code, and the figure Block declares the analysis result. The figure Block does not also declare the raw dataset, because earlier ancestors stay reachable through the graph.

Because blockHash covers the normalized parent set as well as content, a second study that records a cleaned table with the same content but different parents produces a Block with the same contentHash and a different blockHash.

The example below is the content payload of an analysis result Block, not a complete Block.

{
"type": "analysis-result",
"study": "soil-carbon-flux-2026",
"script": "analysis/flux-model.R",
"codeRevision": "d41c8a2",
"producedAt": "2026-04-12T09:15:00Z"
}

ALX hashes the content payload, not the files it describes. This payload carries no digest of the analysis output, so a changed output recorded with the same fields yields the same contentHash. To make Block identity track a dataset's bytes, an application records a digest of that dataset inside content.

Before relying on a chain, an application recomputes each Block identity with Block validation. Graph validation then rejects self-references, duplicate parents, and cycles, and it reports parent references that do not resolve. Over a validated graph, an attribution trace returns the selected Block and its reachable ancestors, depths, path counts, and cycle status. Given the same root Block and graph, the trace always produces the same result.

Key Concepts

  • Stage Blocks turn each research step into a verifiable unit so lineage is not only a methods paragraph.
  • parentHashes declare direct stage dependencies after normalization; parent order does not affect Block identity.
  • Derivation Graph is the directed structure parent relationships form. A Block can be valid on its own while its graph is not, which is why validateGraph() runs separately from Block validation.
  • Attribution Trace is the structural walk that traceAttribution() performs from a chosen Block through its reachable ancestors.
  • Content digests belong in application content when identity must track underlying file bytes; ALX does not hash those files by default.

What ALX Does Not Do

ALX does not store, index, host, or transport research data. It defines no storage format, no availability guarantee, no transport or API protocol, and no dependency ordering beyond an unordered parent set. Indexing, search, and the Block Explorer belong to XNDR Network, a separate product that observes ALX.

ALX does not observe the analysis. The application that creates a Block declares its parents, so graph validation confirms that the declared relationships are structurally valid, not that they name the inputs the analysis actually used. An application that loads only part of a graph should treat the result as incomplete lineage rather than assuming the missing Blocks do not exist.

A valid Block proves only that the recorded content and parent set reproduce the stored identities. It does not establish factual accuracy, ownership, authorship, authorization, policy compliance, legal validity, safety, or continued availability of the underlying files. An attribution trace implies nothing about credit, licensing, or payouts. Ethical review and embargo policy stay outside the protocol. Consult Trust Boundary and Known Limitations before presenting a verification result as broader evidence.