Lineage and Attribution
ALX defines lineage through declared parent relationships between Blocks. Applications trace dependencies and inspect reachable ancestors by following parentHashes.
Lineage Model
Lineage is the declared Graph structure only. Equivalent Graph inputs produce equivalent structural results. Applications use lineage to inspect dependencies, reconstruct declared derivations, and build application-specific attribution or provenance records. See Lineage Graphs for Graph structure and verification rules.
Attribution Trace
traceAttribution(rootHash, graph) follows declared parents from a selected Block and returns an AttributionTrace. graph maps each blockHash to its parentHashes. The same root Block and Graph always produce the same Trace. A reachable cycle makes traceAttribution() fail with ALX_GRAPH_CYCLE, and no Trace is produced.
Trace Fields
The Attribution Trace schema defines the complete structure. pathCount is the exact number of distinct paths from root to the node. Implementations accumulate path counts with arbitrary-precision integers and encode each count as an ASCII decimal string with no sign and no zero padding. pathCount is a structural count and does not measure authorship, quality, ownership, or economic weight.
| Field | Description |
|---|---|
root | The normalized rootHash |
validationMode | closed-world or open-world |
complete | true when every reachable parent resolved |
nodes | Each reachable Block with hash, minDepth, maxDepth, pathCount, parentCount, and childCount |
edges | Child-to-parent relationships |
leaves | Reachable Blocks with no declared parents |
missingParents, externalParents | Unresolved parent hashes |
maxDepth | The longest path from root to any reachable Block |
Example
report declares analysis and source as parents, and analysis declares source. source is reachable directly and through analysis, so its two depths differ and its pathCount is "2". The Trace lists source in leaves, reports maxDepth 2, and sets complete to true. Without source in graph, the Trace sets complete to false and lists source in missingParents. The Trace contains these nodes:
| Node | minDepth | maxDepth | pathCount |
|---|---|---|---|
report | 0 | 0 | "1" |
analysis | 1 | 1 | "1" |
source | 1 | 2 | "2" |
Attribution Boundaries
Attribution Traces describe declared relationships, not verified real-world contributions. ALX does not establish authorship, ownership, legal rights, trust, credit, or economic value. Applications determine how traced relationships contribute to attribution, provenance, and governance decisions.