20 Pipeline Families
Pipeline Families Registry
Section titled “Pipeline Families Registry”Status: SHARP REGISTRY. Capability ownership and shared slice grammar are decided; individual slice maturity remains visible in
00-index.md. Denoising state: sharp (noise -> rough -> sharp -> converged) Updated: 2026-07-23
Purpose
Section titled “Purpose”Register the product slices that make up the greenfield Data Gov replacement, define the shared slice expansion pattern, and summarize only the domain concepts and identity rules that recur across slices. Detailed domain modelling and entity resolution stay inside each slice doc, because the evidence and ambiguity are source-specific.
Shared Slice Grammar
Section titled “Shared Slice Grammar”Every slice expands through the same Dagster asset grammar defined in 04-dagster-asset-graph.md:
source snapshots -> normalized source records -> evidence claims + LLM/deterministic enrichments + provenance bundles -> resolution candidates + verifier artifacts -> canonical slice assets -> q_* SQL read models + reviewed curation overlays when agents/humans correct or suppress effective factsThis is intentionally asset-first, not job-first: Dagster assets represent durable objects such as tables/models and asset dependencies form the lineage graph (https://docs.dagster.io/guides/build/assets). Legacy Data Gov expressed the same intent as workflows, Thor tasks, admin review screens, and Scenic/API views; the greenfield system keeps the domain intent and rethinks the implementation as materializable assets with checks and SQL contracts. Legacy evidence: ../bioloupe-data-gov/app/workflows/, ../bioloupe-data-gov/lib/tasks/, ../bioloupe-data-gov/app/admin/, ../bioloupe-data-gov/db/views/, and ../bioloupe-data-gov/app/controllers/api/.
flowchart TD CT[Clinical trials] RA[Regulatory approvals] PUB[Publications] NEWS[News intelligence] SOC[Standard of care] ORG[Organisation intelligence] EPI[Epidemiology] COMM[Commercial intelligence] DEV[Development programs] SEARCH[Discovery / search] Q["Shared q_* SQL layer"] X[Cross-slice concepts and identity rules] CT --> X RA --> X PUB --> X NEWS --> X SOC --> X ORG --> X EPI --> X COMM --> X CT --> DEV RA --> DEV PUB --> DEV ORG --> DEV X --> DEV X --> Q DEV --> Q SEARCH -. SQL affordances .-> Q
Slice Registry
Section titled “Slice Registry”| Slice | Legacy intent evidence | Greenfield canonical output | Agent-facing SQL output |
|---|---|---|---|
| Clinical trials | docs/clinical-trials.md, app/workflows/clinical_trials_workflow.rb, app/workflows/clinical_trial_eligibilities_workflow.rb, lib/tasks/clinical_trials/ | trials, discovery candidates, interventions, arms, conditions, eligibility, endpoints, outcomes, safety, result groups, status history, sponsors, sites, references, participant flow, baseline | q_trials plus sixteen typed q_trial_* models listed in 21 |
| Regulatory approvals | docs/drug-approvals.md, lib/tasks/regulatory/, FDA/EMA/KEGG/CDE tasks | approvals, labels, designations, indication assertions, regulatory product protections, label-derived evidence | q_drug_approvals, q_approval_indications, q_label_evidence, q_regulatory_designations, q_companion_diagnostics, q_regulatory_product_protections |
| Publications and conference evidence | docs/publications-workflow.md, app/workflows/publications_workflow.rb, app/workflows/publication_disease_workflow.rb | publication records, trial links, intervention claims, subgroup/outcome evidence, adverse-event evidence | q_publications, q_publication_trial_links, q_publication_evidence, q_publication_outcomes, q_publication_subgroups, q_publication_adverse_events |
| News intelligence | docs/news-and-intel.md, app/workflows/news_llm_workflow.rb, app/workflows/news_disease_workflow.rb, lib/tasks/classify_news.thor, lib/tasks/searchful_news.thor | news articles, event claims, entity mentions, deal/regulatory/trial events | eight q_news_* / q_intelligence_events models listed in 24 |
| Standard of care | docs/standard-of-care.md, app/workflows/standard_of_care_workflow.rb, app/workflows/soc_audit_workflow.rb, lib/tasks/standard_of_care.thor | SOC assertions, non-SOC approved-use review candidates, treatment approaches, disease-context keys, label/trial evidence links | q_soc_review_candidates, q_standard_of_care_recommendations, q_soc_treatment_approaches, q_soc_evidence, q_soc_segments, q_soc_key_outcomes |
| Organisation intelligence | app/workflows/companies_workflow.rb, lib/tasks/sec_filings.thor, organisation cleanup/ownership tasks under lib/tasks/one_off/ | organisations, aliases, relationships, temporal ownership, durable deals, filings, financial attributes | q_organisations, q_organisation_aliases, q_organisation_relationships, q_organisation_deals, q_asset_ownerships, q_drug_ownership_current, q_organisation_filings, q_organisation_financials |
| Discovery/search | app/workflows/discovery_workflow.rb, lib/tasks/discovery/pipeline.thor, lib/tasks/search_validation.thor | No canonical domain output: terminal projections over owner identities, documents, chunks, mentions, and provenance | q_search_entities, q_search_evidence, q_discovery_content_items, q_discovery_chunks, q_discovery_mentions, q_discovery_facets, q_search_projection, q_query_recipes |
| Forecasting/TPP | docs/forecasting-cross-repo-contract.md, lib/tasks/forecasting_statistics.thor, lib/tasks/forecasting_pricing.thor, legacy /api/forecasting* controllers | downstream by default; SQL variable dictionary and readiness support only | q_forecasting_variable_dictionary, q_forecasting_readiness |
| Therapeutic development programs and landscapes | ../bioloupe-data-gov/db/views/drug_development_programs_v11.sql, ../bioloupe-data-gov/openspec/specs/development-phase-analytics/spec.md, ../bioloupe-data-gov/openspec/specs/tpp-reporting/spec.md, Aero entity tabs | contextual programs, evidence links, milestones, temporal state intervals | q_development_programs, q_development_program_state_history, q_development_program_milestones, q_development_program_evidence, q_emerging_clinical_evidence |
| Epidemiology and disease burden | legacy disease statistics and forecasting-variable intent; disease overview consumers | metric definitions, full-grain observations, comparable series | q_epidemiology_observations, q_epidemiology_series, q_disease_epidemiology_summary |
| Commercial intelligence | legacy brand_sales, SEC tasks, Aero drug/organisation sales tabs | product sales observations, FX receipts, summary-selection overlays | q_product_sales, q_product_commercial_summary |
Shared Slice Documentation Pattern
Section titled “Shared Slice Documentation Pattern”No domain slice is the template for the others. Each slice must be modelled at comparable depth from its own evidence, while sharing a common documentation grammar so builders can navigate the corpus consistently. Clinical trials, approvals, publications, SOC, news, organisations, discovery/search, development programs, epidemiology, commercial intelligence, forecasting support, and the identity spines all challenge and refine the shared grammar.
Each slice or foundational spine doc must eventually contain:
- Source inventory — concrete upstream systems, access method, source identifiers, cadence, and source-specific freshness expectations.
- Slice-local domain model — entities, relationships, grains, invariants, controlled-vocabulary anchors, and what makes this slice different.
- Slice-local entity resolution — names/terms to resolve, candidate entity types, matching basis categories, ambiguity cases, verifier gates, and identity-continuity rules.
- Evidence claim + provenance schemas — claim nouns, immutable source artifacts, source locators, extractor/model/prompt/schema versions, authority tiers, semantic
fact_paths, and provenance-bundle requirements. - Curation override subjects — what curator agents can propose and humans can review, override, suppress, supersede, or reopen after normal pipeline interpretation.
- Canonical assets — quality-passing slice state, plus reviewed curation overlays where applicable.
q_*read models — agent-facing SQL tables/views/materialized views, with grain, columns, examples, catalog metadata, and provenance rules.- Checks/tests/operations — blocking checks, warnings, partition/backfill policy, fixtures, and smoke tests.
LLM vs Curation Boundary Across Slices
Section titled “LLM vs Curation Boundary Across Slices”Every slice may use deterministic parsers and LLMs to structure/enrich source data. That is normal pipeline compute, not curation. The shared boundary is:
flowchart LR Source[Source artifact] Extract[Parser / LLM extraction] Evidence[Evidence claim] Resolve[Resolution candidates] Verify[Verifier artifact] Canonical[Canonical assertion] Curation[Reviewed curation overlay] Query[q_* row] Source --> Extract --> Evidence --> Resolve --> Verify --> Canonical --> Query Curation -. correction / suppression .-> Canonical
Slice docs should therefore describe two different subject lists when both exist:
| List | Purpose | Example |
|---|---|---|
| Resolution/verifier subjects | Normal pipeline acceptance of source terms, links, classifiers, and model-produced candidates. | publication_trial_link, trial_result_group_arm_link, approval_indication_disease_link. |
| Curation override subjects | Reviewed correction/suppression/supersession after pipeline output is wrong, ambiguous, or disputed. | publication_trial_link_override, trial_scope_override, organisation_merge_override. |
Do not describe routine LLM extraction as curation. Do not make humans the default extraction path. Humans review high-impact curation overlays and sampled audits.
Cross-Slice Domain Concept Registry
Section titled “Cross-Slice Domain Concept Registry”These concepts recur across slices and should remain consistently named. The registry is intentionally concise: all detailed attributes and edge cases live in the slice docs that introduce the evidence.
| Concept | Meaning | Primary pressure slices |
|---|---|---|
| Drug / therapeutic product / intervention | A source-named therapy term resolved through the drug identity spine: active substance, brand/product, combination/regimen, or non-drug NCIt concept. Downstream slices use resolved_drug_key(s) from 29-slice-drug-identity.md and must not mint drug identity locally. | clinical trials, approvals, publications, SOC, news, organisations, forecasting |
| Disease / indication | Disease context, tumor type, line/setting, biomarker segment, and regulatory indication language. Downstream slices use resolved_disease_key(s), resolved_biomarker_key(s), segment_key, and treatment_line_key from 30-slice-disease-biomarker-identity.md; regulatory approved-use contexts use approval/indication keys from 22, not a new generic indication_key. | clinical trials, approvals, SOC, publications, news, forecasting support |
| Organisation | Company, sponsor, collaborator, academic institution, regulator, acquirer/licensor, or owner with temporal identity. Downstream slices use resolved_org_key(s) from 26-slice-organisation-intelligence.md (a sponsor/holder/participant is an org key in a role, not a separate identity) and must not mint organisation identity locally. | trials, approvals, news, organisation intelligence |
| Therapeutic Development Program | A stable resolved therapy + disease effort whose population contexts, milestones, clinical activity, phase, regulatory state, and temporal relationships are owned by 33-slice-development-landscapes.md. Development state is not drug identity. | trials, approvals, publications, organisations, targets/technologies, commercial intelligence |
| Program Context | An evidence-supported patient segment, biomarker, treatment-line, setting, intent, or geography context within a development program. Missing context remains unknown and is never defaulted. | trials, approvals, publications, SOC, development landscapes |
| Development Landscape | A query-time grouping of programs by disease, target, technology, organisation, line, or state using an explicit count key. It is not a canonical entity or duplicate truth table. | development programs, discovery/search, Aero consumers |
| Epidemiology Observation | One source-reported disease-burden statistic with metric, geography, population, period, method, denominator, unit, and provenance intact. | disease profiles, forecasting support |
| Commercial Observation | One source-reported product metric tied to product, reporting organisation, geography, reporting period, currency, and exact filing/report evidence. | drug profiles, organisation intelligence, forecasting support |
| Curation decision | Append-only agent-proposed/human-reviewed correction, override, suppression, or supersession event that changes effective state after normal extraction/resolution. | all slices |
| Canonical assertion | The effective, quality-passing, provenance-complete fact used by downstream canonical and q_* assets; may include a reviewed curation overlay. | all slices |
| Provenance bundle | A stable explanation handle (provenance_key) that expands through q_provenance into source artifact, extraction run, evidence claim, resolution/verifier receipt, canonical assertion, and curation overlay only when applicable. | all slices |
| Semantic fact path | A stable business path for the specific fact being explained, e.g. trial.status or approval_indication:...:attr=label_text; not a brittle JSON array path. | trials, approvals, publications, SOC, organisation intelligence |
| Treatment approach | A regimen/context pair such as monotherapy, combination, line of therapy, maintenance, induction, or biomarker-defined use. | approvals, SOC, clinical trials, publications |
| Target / mechanism / technology | A molecular target, drug-target action/mechanism, payload/component, or therapeutic modality. Resolves through 31-slice-target-technology-identity.md; do not bury target/modality identity inside drug facts. | drugs, trials, publications, news, SOC, organisations, forecasting |
| Endpoint / adverse-event | A canonical clinical endpoint (OS/PFS/ORR), endpoint domain group, standardized adverse-event term, or CTCAE grade band. Resolves through 32-slice-endpoint-adverse-event-identity.md via canonical_endpoint_key/resolved_ae_term_key; result values and regulatory seriousness stay in the owning slice. | clinical trials, publications, SOC |
| Source-scoped external id | An identifier whose uniqueness and meaning are valid only inside a source namespace, such as NCT, ChiCTR, PMID, DOI, NDA/BLA, or source release id. | all slices |
| Evidence claim | A source-grounded assertion extracted from text/table/API payload before canonical promotion; canonical assertions are derived from accepted evidence/resolution/verifier state, never invented directly. | all slices |
| LLM task spec | Provider/model/prompt/schema/mode/cost-cap contract for one model-assisted extraction, classification, enrichment, or verifier task. | trials, approvals, publications, news, SOC, organisation intelligence |
| Source authority tier | The trust class of a source for a claim type: regulator label, registry, publication, press release, filing, third-party feed, or derived extraction. | approvals, publications, news, trials |
| Scope/discovery claim | A provenance-backed reason a source record belongs to a slice corpus, such as AACT disease keyword + MeSH + intervention filters for clinical trials. It selects candidates; it is not canonical domain truth. | clinical trials, discovery/search, publications |
| Immutable source artifact | A source document/payload whose exact version matters, such as label SPL, CDE PDF, publication abstract/full text, news article snapshot, or registry snapshot; it must have a source version/snapshot id, immutable URI, content hash, and locator model before high-impact claims publish. | approvals, publications, news, trials |
| Event | Time-bounded intelligence occurrence such as approval, trial readout, publication, deal, submission, name change, filing, or ownership change. | news, approvals, publications, organisation intelligence |
| SOC assertion | A disease/segment/line treatment-context assertion with evidence and source authority, distinct from approval, indication, trial, or guideline source rows. | SOC, approvals, publications, trials |
| Temporal relationship | A relation whose validity changes over time, such as organisation ownership, company rename, acquisition, drug ownership, or subsidiary relation. | organisation intelligence, news, approvals |
| Search document | A read/query projection used for discovery and retrieval; it accelerates finding facts but is not canonical truth. | discovery/search, all slices |
| Downstream support surface | A SQL read model that helps a downstream app/agent, without moving downstream app logic into the data repo. | forecasting/TPP, discovery/search |
Glossary rules:
- keep cross-slice concepts noun-like and evidence-bearing;
- do not promote a slice-specific table name into this registry unless at least two slices need the same concept;
- do not use generic terms such as
record,object,item, orentitywhen a sharper concept exists; - when a concept has source-specific ambiguity, name the shared concept here and leave the ambiguity mechanics in the owning slice docs.
Comparative Therapeutic-Fact Model: Trials, Labels, Publications
Section titled “Comparative Therapeutic-Fact Model: Trials, Labels, Publications”The first comparative denoising pass across 21, 22, and 23 shows that clinical trial outcomes, regulatory indications, and publication outcomes are not the same entity, but they share a fact anatomy. The shared model is PICO-plus-provenance: population/context, intervention/product, comparator/control where applicable, outcome/claim target, measure/statistic or assertion value, time/validity, and evidence authority. PICO is the conventional evidence-extraction frame for population/intervention/comparator/outcome in biomedical literature, while ClinicalTrials.gov/AACT and FDA labeling add registry-result and approved-indication grains that are not identical to publication abstracts (ClinicalTrials.gov outcome fields and AACT result tables: https://clinicaltrials.gov/data-api/about-api/study-data-structure and https://aact.ctti-clinicaltrials.org/schema; FDA indication labeling guidance: https://www.fda.gov/media/114443/download; PubMed XML/E-utilities: https://www.nlm.nih.gov/bsd/licensee/data_elements_doc.html and https://www.ncbi.nlm.nih.gov/home/develop/api/).
flowchart LR Population[Population / disease / biomarker / line] Intervention[Drug spine key / regimen / product] Comparator[Comparator / arm / control] Target[Outcome or claim target] Value[Statistic or assertion value] Authority[Source authority + provenance bundle] Query[q_* fact row] Population --> Query Intervention --> Query Comparator --> Query Target --> Query Value --> Query Authority --> Query
Shared fact anatomy
Section titled “Shared fact anatomy”| Axis | Meaning | Trial outcome | Regulatory indication | Publication outcome |
|---|---|---|---|---|
| Subject | The thing the fact is about. | trial + endpoint + result group | approval/product + label indication | publication + linked trial/context |
| Population/context | Disease, biomarker, treatment line, subgroup, inclusion constraints. | registry population, arm/result-group population, eligibility context | approved patient population and qualifiers from label Section 1 / indication text | subgroup/cohort text from abstract/full text/table |
| Intervention/product | Therapy or regimen being evaluated/approved/reported. Identity resolves through 29-slice-drug-identity.md; source-local facts stay in the owning slice. | design-arm intervention components; may link to result group | approved product/drug/ingredient and route/form where relevant | arm/intervention mention; may link to trial arm or drug |
| Comparator | Control/reference group when the source provides one. | result group or design arm comparator | usually absent; comparator appears only inside label clinical-study evidence, not the approved indication itself | publication control/placebo/comparator arm if reported |
| Target | What is asserted or measured. | endpoint/outcome measure such as ORR, PFS, OS, or a reported adverse-event term | treatment/prevention/diagnosis indication, safety warning, designation, CDx relation | endpoint/result, subgroup outcome, AE, or trial-link evidence |
| Value | Numeric/statistical value or categorical assertion. | value/unit/dispersion/CI/p-value/time frame, or AE subjects_affected / subjects_at_risk / event_count | approved/withdrawn/conditional status, label text, indication qualifiers | HR/OR/RR/ORR/PFS/OS/p-value/CI/n, or explicit non-numeric claim |
| Authority | Whether the source is authoritative for this fact type. | registry/AACT strong for registry-reported results; publications can support/contradict | regulator label/source is strong for approved indication text | publication is strong for reported result evidence, not for final regulatory truth |
| Provenance grain | How receipts attach. | usually bundle, sometimes field for high-impact values | bundle for indication assertions; field for approval status/date/label text | bundle for outcome rows; field for extracted statistics when table/text-derived |
Canonical contract from the comparison
Section titled “Canonical contract from the comparison”- Do not make one universal
outcometable. Trial outcomes, publication outcomes, and label indications have different authority and grain. Use shared vocabulary and fact-path conventions, not one collapsed table. - Use source-native grains before synthesis. AACT result groups, SPL label sections, and PubMed/PMC abstract/full-text spans remain source/evidence facts until checks, resolution, and verifier policy promote them; curation is only the reviewed override path.
- Promote facts through canonical assertions. Cross-slice synthesis may compare a label indication, registry result, and publication result, but the published comparison must point back to each slice’s provenance bundle.
- Keep endpoint/indication controlled vocabulary as anchors. ORR/PFS/OS endpoint normalization and disease/biomarker indication decomposition are curated links; source text remains evidence.
- Treat authority as claim-specific. An FDA label is authoritative for approved indication text; a publication is authoritative for what it reports; a registry is authoritative for the submitted registry/result record. None is universally authoritative for every downstream interpretation.
Shared fact-path prefixes
Section titled “Shared fact-path prefixes”These prefixes are promoted; suffixes remain slice-local until repeated examples prove stable.
| Prefix | Owning slice | Example |
|---|---|---|
trial_outcome: | 21-slice-clinical-trials.md | trial_outcome:trial=NCT01234567:endpoint=orr:group=experimental:attr=p_value |
approval_indication: | 22-slice-regulatory-approvals.md | approval_indication:approval=fda-nda-123:disease=nsclc:attr=label_text |
publication_outcome: | 23-slice-publications.md | publication_outcome:pmid=123:endpoint=pfs:arm=control:attr=hazard_ratio |
evidence_link: | cross-slice | evidence_link:publication=pmid-123:trial=NCT01234567:attr=basis |
Cross-Slice Identity-Rule Registry
Section titled “Cross-Slice Identity-Rule Registry”Identity rules are not generic fuzzy matching. Each accepted link must record what was matched, why it is trustworthy, and which deterministic/LLM verifier or exact-basis gate accepted it; curation is reserved for reviewed corrections/overrides.
| Rule family | Shared rule | Slice-local refinement |
|---|---|---|
| Resolve before write | Curation overrides point at stable subject_keys rather than ephemeral source-row ids, so re-extraction cannot orphan reviewed corrections. | Each slice defines the subject key shape for its assertions. |
| Provenance basis is discrete | Use named basis categories (exact, cross_reference, context_verified, fuzzy_llm, reviewed_curation_override) rather than opaque confidence scores. | Slices define which basis categories are publishable without human escalation. |
| Ambiguity is a first-class output | Multiple plausible candidates produce resolution candidates and curation/conflict records, not silent auto-accept. | Clinical trials likely stresses this first for intervention and disease names. |
| Reviewed override outranks pipeline inference | Human-approved curation overlays outrank agent-only curation proposals and normal verifier output, but humans are reviewers of changes rather than the default extraction path. | Slice docs define which high-impact curation override subjects require human review. |
| Time matters for organisations and ownership | Organisation identity and relationships may be valid only over a period. | Organisation intelligence owns the detailed temporal model; other slices reference it. |
| External identifiers are source-scoped | NCT, ChiCTR, NDA/BLA, PubMed, DOI, ticker, regulator application numbers, and source release ids are not interchangeable global ids. | Slices specify external id uniqueness, namespace, and source authority. |
| Protocol design and reported results are separate grains | Planned arms/interventions and reported result groups/outcomes must not be collapsed unless the source gives an exact link, verifier accepts the link, or reviewed curation overrides it. | Clinical trials owns the first detailed case; publications and SOC reuse this when matching reported evidence back to trials/labels. |
| Evidence precedes assertion | A source text/table/API row becomes an evidence claim first, then resolution/verifier state, then a canonical assertion; curation overlays only correct/suppress effective assertions. | Every slice defines its evidence claim schemas before canonical assets. |
| Announcement is not confirmation | Press releases/news may assert that an event was announced; authoritative regulatory/registry/publication sources may be needed before claiming final clinical/regulatory truth. | News owns the first detailed case; regulatory/publication/trials define confirmation paths. |
| Immutable source artifact is part of provenance | Label, registry, publication, filing, article, and API-payload claims must preserve source version/snapshot, immutable URI, content hash, and source locator used for extraction. | Slices define source-specific version keys, hash rules, and locators. |
| Source authority is claim-specific | A source can be authoritative for one claim type and weak for another. | FDA label is strong for approved indication text; press release is strong for announcement existence but weaker for final approval truth. |
| Temporal validity is explicit | Ownership, organisation relationships, aliases, and some SOC/approval facts carry valid-from/valid-to or observed-at semantics instead of destructive overwrites. | Organisation intelligence owns the first detailed case; other slices preserve source timestamps and effective dates. |
| Search is not source of truth | Search/helper projections must link back to canonical/query rows and provenance receipts; they never become authoritative fact tables. | Discovery/search owns the first detailed case. |
| Downstream boundary is guarded | Forecasting/TPP support can expose SQL readiness/read models, but app state, engines, saved models, and HTTP contracts do not belong in core data docs unless explicitly re-scoped. | Forecasting/TPP owns the boundary contract. |
Query-Layer Rollup
Section titled “Query-Layer Rollup”Every slice owns its q_* read models, but all read models obey 07-sql-query-layer.md:
- consumers are
SELECT-only; - generated
q_catalogexposes every published table/column/comment/contract; q_provenancemaps each provenance-required agent-visible row/fact back to where/why receipts: immutable source artifacts, extraction runs, evidence claims, resolution/verifier receipts, canonical assertion ids, and curation overlays when applicable;- slice-local provenance views are allowed only as filters/projections over the global
q_provenance; - search affordances are SQL-native (
pg_trgm,tsvector,pgvector) rather than a separate API/service; - breaking schema drift fails contract checks.
Query-family documentation pattern
Section titled “Query-family documentation pattern”Every slice’s q_* section should use the same miniature catalog so agents and builders learn one shape:
| Field | Required content |
|---|---|
| Purpose | Agent question answered by the model. |
| Grain | One row per what. |
| Stable row key | Key expression used by q_provenance.q_row_key where provenance is required. |
| Required columns | Column names, types, nullability, and semantic definitions. |
| Search affordances | Filters, full-text/trigram/vector/facet behavior promised to agents. |
| Provenance rule | Which rows/facts require source/evidence/resolution/verifier/canonical receipts in q_provenance, plus curation receipts only for reviewed overlays; include provenance_grain and any semantic fact_path conventions. |
| Refresh/materialization | View/materialized view/table and refresh trigger. |
| Blocking checks | Gate ids from 08-contracts-and-quality.md. |
Ownership Synthesis
Section titled “Ownership Synthesis”Use this table to prevent future work from collapsing distinct grains.
| Layer of meaning | Owned by | Not allowed to masquerade as | Why it matters |
|---|---|---|---|
| Source artifact | source/provenance layer in each slice | canonical truth | labels, abstracts, registry rows, filings, API payloads, and articles must retain exact immutable URI, hash, version, and locator. |
| Evidence claim | evidence layer in each slice | canonical assertion | extraction can be rerun, challenged, superseded, or rejected without rewriting source snapshots. |
| Resolution candidate | resolution layer | accepted identity | fuzzy/semantic/name matches must not silently publish. |
| Curation decision | curation layer | source fact | decisions are reviewed operational overlays with actor/rationale/provenance; they alter effective assertions without mutating source/evidence history. |
| Canonical assertion | canonical layer | query contract | canonical assets may evolve; q_* read models are the stable consumer contract. |
| Contextual synthesis | canonical layer with several canonical owner dependencies | identity or source truth | development state and comparable series are replayable interpretations over accepted facts; they retain owner keys, temporal semantics, derivation revision, and provenance. |
| Search projection | discovery/search slice | canonical source of truth | search accelerates retrieval and must point back to query rows and provenance receipts. |
| Downstream support surface | query layer | downstream app behavior | forecasting/TPP support may expose readiness facts, but app engines/saved models stay outside core data. |
Cross-Slice Source Authority Matrix
Section titled “Cross-Slice Source Authority Matrix”| Claim type | Stronger source families | Weaker / contextual source families | Gate implication |
|---|---|---|---|
| Approved indication text | regulator label / approval source | press release, publication mention | publish only with regulatory provenance or explicit lower-authority marker. |
| Trial design | registry / protocol source | publication summary, news mention | publication/news can support but not silently replace registry design. |
| Reported efficacy/safety | publication full text/abstract, registry results, label clinical studies | news readout summary | preserve source family and confirmation state; CTGov/AACT reported_events are trial safety facts, not AE-term identity. |
| Company event | SEC filing, authoritative company release | third-party news aggregation | preserve announcement-vs-confirmed status and temporal validity. |
| Organisation identity | SEC/ticker/legal sources, curated aliases | free-text mentions | high-impact merges require curation. |
| Development phase/activity | trial registry protocol/status history | press release, drug-level summary | keep phase, activity, historical maximum, and regulatory state separate; derive contextual state from accepted milestones. |
| Disease burden statistic | official statistics release/registry or exact peer-reviewed table | unsourced summary, legacy selected value | preserve metric, population, geography, period, denominator, method, and observed/estimated/projected basis. |
| Reported product sales | filed report/XBRL or exact issuer report table | news summary, analyst estimate | preserve reporting organisation, product, geography, period, reported currency, restatement, and exact locator. |
| Forecasting readiness | curated SQL input/readiness models | downstream saved scenario state | data repo exposes current readiness; downstream handles stale saved models. |
Expansion Policy
Section titled “Expansion Policy”- Controlled vocabularies become hard dependencies only where an owner spine has an implemented capture, semantic acceptance rule, and replayable release; otherwise they remain reference anchors.
- Discovery/search is terminal SQL projection over owner assets. It has no canonical domain tables and may add vectors only after a measured retrieval need and explicit model/version migration contract.
- New source families extend an owning slice through the shared grammar; they do not create parallel identity or query namespaces.