Entity-Output Composition (correlation source)
Status & scope
- Module: composition via
lens/adapters/correlationsource (source-adapters), notlens/semantic/ - Status: Superseded by the two-engine model — reframed to composition (2026-06-03)
- Depends on: source-adapters, dev-env
SPEC-FUSION(the entity engine)
Two-engine boundary (why this spec changed)
prism is the cost-lens engine; the entity (semantic) lens is owned end-to-end by parallax
(the Fusion engine — dev-env SPEC-FUSION). prism does not run entity resolution. The earlier
design here — lens/semantic/adapter.py execute_semantic_lens() calling
athena.libs.fusion.pipeline.run_fusion() directly — is prism reaching into parallax's domain.
It is also dead: athena.libs.fusion is the pre-merger package name and is not installed
(prism's leaf contract forbids importing parallax). That adapter is to be removed.
The legitimate seam: compose on entity output, not execution
A cost lens may consume an entity lens's result as one of its input layers — the only sanctioned
cross-engine touchpoint. This is composition, not delegation: parallax runs the entity lens and
produces correlations/matches; prism's correlation source adapter (source-adapters) reads that
output and feeds it into a cost layer ("Engine-1 → Engine-2"). prism never executes the matching.
# a cost lens layer sourced from an entity-lens result
layers:
- name: identity_corroboration
source: correlation://<entity_lens_run> # parallax Fusion output, resolved by source-adapters
weight: 0.30
cost_model: linear_scale
What belongs where
| Concern | Engine | Spec |
|---|---|---|
| Entity lens: match contract, blocking, scoring, clustering | parallax | dev-env SPEC-FUSION, parallax SPEC-01.. |
| Consuming entity output as a cost-layer input | prism | SPEC-13 (correlation source adapter) |
DO NOT
- Run entity resolution inside prism — that is parallax's engine (
SPEC-FUSION). - Import the fusion pipeline into prism (
athena.libs.fusion/parallax.*) — leaf contract forbids it. - Reintroduce
execute_semantic_lens()— compose on entity output via thecorrelationsource instead.
Depends on: component.prism.evidence-model, component.prism.scoring-engine, component.prism.source-adapters, component.prism.universal-lens-parser
Required by: component.prism.lens-families