Skip to main content
Model lineage tracks the ancestry of every model in EMEP. It records which parent models were combined, how they were merged, and what experiments produced the result. This page specifies the lineage data model, graph structure, and query interface.

Lineage Graph Example

Lineage Edge Metadata

Every parent-to-child edge includes:

Data Model

Lineage is stored as a directed acyclic graph. Cycles are impossible by construction: a child cannot be a parent of its own ancestor. The ModelRegistry enforces this at merge time.

Query Interface

Visualization

The lineage graph can be exported for visualization. Supported formats:
  • Mermaid (for documentation)
  • GraphViz DOT
  • Cytoscape JSON
  • NetworkX (for Python analysis)

Use Cases

Provenance Verification Trace any model back to its original base model and all intermediate merges. Verify that each step used approved parents and methods. Impact Analysis If a parent model is found to have a defect, identify all descendants that may be affected. This enables targeted re-evaluation or deprecation. Experiment Reproduction Reconstruct the exact sequence of merges and parameters that produced a model. Combined with the experiment record, this enables full reproduction. Release Audit Before releasing a model, review its lineage to ensure all ancestors meet quality and license requirements.

Integration

Lineage edges are immutable. If a merge is reverted or a model is deprecated, the lineage record remains. A deprecation event is appended as a new edge type, not as a deletion.