31 Slice Target Technology Identity
Pipeline Slice: Target / Mechanism / Technology Identity Spine
Section titled “Pipeline Slice: Target / Mechanism / Technology Identity Spine”Status: SHARP. The deterministic source-to-query spine and optional default-off review-only missing-target task are implemented and fixture-replay verified. Real external-source smoke and paid semantic task evaluation remain activation gates, not modelling gaps. Denoising state: sharp (noise -> rough -> sharp -> converged) Updated: 2026-07-25
Purpose
Section titled “Purpose”Own the shared identities and relations that answer:
- what biological target does a drug act on;
- how does it act on that target;
- what therapeutic modality describes the drug;
- which payload component belongs to a drug.
This spine does not own drug identity (29), disease/biomarker identity (30), or publication facts (23). It references their stable keys and never mints replacements.
The implemented flow
Section titled “The implemented flow”flowchart LR Demand["accepted drug identity claims"] HGNC["HGNC complete catalog"] ChEML["ChEMBL molecule / mechanism / target"] Catalog["versioned technology + payload catalog"] Raw["immutable source artifacts + active pointers"] Norm["normalized source rows"] Evidence["typed evidence claims"] Resolve["deterministic candidates"] Canon["canonical target / relation / modality / payload"] Query["8 q_* views"] Publications["captured publication evidence"] Suggest["optional LLM candidate task"] Review["review queue"] Demand --> ChEML HGNC --> Raw ChEML --> Raw Catalog --> Raw Raw --> Norm --> Evidence --> Resolve --> Canon --> Query Publications --> Suggest --> Review Suggest -. "never automatic" .-> Canon
The solid path is deterministic and free. The dashed path creates review candidates only and is not upstream of canonical or query assets.
Source authority
Section titled “Source authority”| Source | Access and role | Captured grain |
|---|---|---|
| HGNC complete dataset | Free official authority for approved human gene symbols, names, aliases, and cross-references. The complete JSON is captured as one versioned artifact. | one complete-catalog artifact; one row per HGNC record |
| ChEMBL REST API | Free molecule, mechanism, and target records. Exact molecule lookup drives the mechanism demand generated from accepted drugs. | one artifact per normalized drug lookup; one row per mechanism |
| Checked-in technology catalog | Project-owned, reviewed modality hierarchy and exact source-label mappings. It is versioned content, not an external claim. | one catalog artifact; one row per technology/mapping |
| Checked-in payload catalog | Project-owned payload identities and explicit drug-payload assignments with reference URLs. | one catalog artifact; one row per payload/assignment |
The current implementation does not claim UniProt, GO, or NCIt as separately ingested authorities. ChEMBL target components may carry UniProt accessions; HGNC is the deterministic human gene grounding authority.
Source capture contract
Section titled “Source capture contract”target_authority_source owns the fixture/live choice. Assets never branch on environment flags.
fixture mode -> read checked-in HGNC, ChEMBL, and catalog artifacts
live mode -> fetch the HGNC complete catalog -> discover all pending accepted drug names -> call ChEMBL for the selected drug lookups -> read the same checked-in modality/payload catalogmax_live_records is only a live-call safety bound:
- unset: process every pending live drug lookup;
- positive integer: process only that many live lookups for a smoke run;
- fixture mode: ignored;
- zero or negative: rejected.
The full pending demand is computed before the bound, so metadata reports both observed and captured request counts.
Replay and active selection
Section titled “Replay and active selection”- Raw artifacts are append-only and content-addressed.
active_capture_artifactsselects the current artifact per(artifact_kind, scope_key).missing_onlyand bounded live captures merge new scopes into the active set.- A fixture capture or complete unbounded
refresh_allcapture may replace the active set. - Downstream assets read active artifacts only, so historical source rows cannot reappear as current claims.
- Replaying identical bytes is idempotent.
This separates immutable history from current source selection without deleting either.
Domain grains
Section titled “Domain grains”| Concept | Canonical table | Grain |
|---|---|---|
| Target | canonical.target | one HGNC-grounded target |
| Target alias | canonical.target_alias | one alias for one target |
| Target external id | canonical.target_external_id | one authority id for one target |
| Drug-target action | canonical.drug_target_action | one drug x target x action x mutation qualifier |
| Technology | canonical.technology | one modality/platform/format concept |
| Technology alias | canonical.technology_alias | one alias for one technology |
| Technology hierarchy | canonical.technology_hierarchy | one ancestor x descendant path |
| Drug technology | canonical.drug_technology | one drug x technology assignment |
| Payload | canonical.payload | one payload component |
| Payload alias | canonical.payload_alias | one alias for one payload |
| Drug payload | canonical.drug_payload | one drug x payload assignment |
There is deliberately no payload_target fact. Payload target meaning is contextual and can be derived through accepted drug-payload plus drug-target relations when justified; this spine does not invent a direct biological action for a payload.
Deterministic acceptance
Section titled “Deterministic acceptance”Target identity
Section titled “Target identity”One ChEMBL target is accepted only when its target component maps to exactly one active HGNC record. Missing or ambiguous grounding is quarantined/reviewed. A target and a biomarker may share a biological name but remain different contextual roles.
Drug-target action
Section titled “Drug-target action”A relation is accepted only when:
- the drug resolves exactly to the drug spine;
- the target resolves to one accepted HGNC target;
- the source action maps to the controlled action vocabulary.
The source action label, mechanism prose, binding site, and mutation qualifier are retained. Fuzzy matches never auto-link.
Technology and payload
Section titled “Technology and payload”Technology and payload identities come from the versioned project catalog. Assignments require an exact accepted drug plus an exact catalog mapping. Hierarchy self-loops are forbidden.
Optional missing-target inference
Section titled “Optional missing-target inference”Deterministic authority data is the publication path. The optional task exists for edge cases where:
- a drug is already canonical;
- it has no accepted deterministic drug-target action;
- captured publication evidence links exactly to that drug.
resolution.target_suggestion_inputs builds one current input per eligible drug with at most five captured publication documents. The LLM task uses direct structured output and must return:
- an explicit asset-identity status;
- exact identity quotes from named source artifacts, with the matched identity equal to one supplied canonical name or alias;
- direct drug-target candidates only;
- an exact supporting quote for every candidate.
Deterministic validation checks the schema, gate conditions, artifact ids, and literal quote containment. It does not prove biomedical truth. Every valid output therefore remains needs_review; candidates are appended to resolution.target_suggestions and resolution.review_queue. No suggestion is read by canonical assets.
resolution.target_candidate_suggestions is independently spend-gated: enabled=false by default,
max_inputs is constrained to 1..1000 and defaults to one under a retry-inclusive $2 ceiling;
resolved_drug_keys can name the exact edge-case cohort. The llm concurrency pool protects the
provider across runs. Direct asset selection without explicit enabling returns before reading inputs
or constructing the runtime.
Active task missing_target_candidate_suggestion@v4 requires declared-artifact citations, binds
each identity match to both its exact quote and the input’s known-name set, requires verbatim target
names, and explicitly excludes biomarkers, pathways, synthetic dependencies, uptake transporters,
metabolizing enzymes, diseases, endpoints, platform labels, and regimen components unless the
evidence states a direct drug-target action. Every valid result remains review-only.
Multi-model consensus and repeated sampling are deferred until provider-backed evaluations show that
they improve review yield enough to justify their cost. Those paid evaluations have not yet run.
Published query contract
Section titled “Published query contract”| Model | Grain |
|---|---|
q_targets | one canonical target |
q_target_aliases | one target alias |
q_drug_target_actions | one accepted drug-target-action relation |
q_technologies | one technology concept |
q_technology_hierarchy | one hierarchy path |
q_drug_technologies | one drug-technology assignment |
q_payloads | one payload component |
q_drug_payloads | one drug-payload assignment |
The target spine is the sole owner of q_drug_target_actions. The drug spine does not publish a transitional duplicate.
Stable keys are:
target:<slug>technology:<slug>payload:<slug>drug:<slug> # referenced from owner 29Every view has a checked-in schema contract, blocking schema/provenance checks, database comments, and a stable provenance row key.
Quality gates
Section titled “Quality gates”- target symbol/name maps to one HGNC-grounded identity;
- target and biomarker roles do not collapse;
- accepted relations reference existing canonical drugs and targets;
- source action and normalized action are both retained;
- mutation qualifiers remain part of relation identity;
- technology hierarchy has no self-loop;
- all query rows satisfy schema and provenance coverage;
- fixture and bounded-live tests use the same resource interface;
- replay keeps active row counts stable;
- a bounded
missing_onlycapture cannot erase previously selected scopes; - optional suggestions remain review state and have no canonical dependency.
Verification state
Section titled “Verification state”Automated tests cover fixture/live resource behavior with mocked HTTP, the live-call bound, active-cache merge semantics, resolution guards, contracts, LLM citation gates, and Dagster asset ownership. A local Postgres replay materializes the complete fixture vertical twice and validates all eight query schemas and provenance gates.
The remaining operator gate is a bounded live HGNC/ChEMBL capture against the external services. It must be run explicitly because definition loading and the default test suite make no network or paid-model calls.
Intent corrections
Section titled “Intent corrections”Legacy Data Gov established that targets, actions, technologies, and payloads are important product concepts. The greenfield design intentionally rejects its implementation accidents:
| Legacy tendency | Product intent | Greenfield correction |
|---|---|---|
| target fields mixed with drug forms and inferred enrichments | explain a direct biological action | separate target identity from the drug-target relation |
| manually accumulated target rows | retain useful hard-won coverage | use HGNC/ChEMBL as current authority and review unsupported gaps |
| payload-target shortcuts | navigate ADC composition and mechanism | model drug-payload and drug-target grains separately |
| missing-target LLM output treated like enrichment | recover difficult edge cases | source-cited candidate only, always reviewed |
| global fixture/live branching in assets | deterministic development plus real capture | one configurable source resource with identical persistence |