Represent a canonical, reusable, traceable scientific result extracted from one or more StructuredBlocks.
CanonicalEvidence exists to transform preserved scientific context into reusable evidence objects that can be retrieved, aggregated, ranked, compared, synthesized, and reasoned over across the Victus ecosystem.
CanonicalEvidence is a derived scientific artifact.
CanonicalEvidence replaces the legacy Claim contract concept. Victus does not
use Claim as a system contract.
CanonicalEvidence does not represent a paper, experiment, study summary,
document section, paragraph, table row, or downstream answer.
CanonicalEvidence represents a single explicit scientific result relation supported by source evidence.
canonical_evidence_idcanonical_evidence_id is globally unique inside Victus.canonical_evidence_id is immutable after creation.canonical_evidence_id is deterministic for the same source evidence,canonical_evidence_id.CanonicalEvidence identity is owned by victus-processing.
Downstream retrieval, ranking, synthesis, and reasoning systems may consume evidence but must not modify evidence identity.
{
"canonical_evidence_id": "string",
"paper_id": "string",
"study_id": "string",
"evidence_type": "between_group_result|within_group_change|dose_response|time_course|feasibility_result|specificity_or_selectivity_result|other|unclear",
"evidence_role_in_paper": "primary_result|secondary_result|subgroup_result|sensitivity_result|mechanistic_result|descriptive_result|adverse_event|limitation|method_detail|background_context|unclear",
"assertion_type": "causal_effect|comparative_effect|association|no_association|descriptive_comparison|mechanistic_link|methodological|safety_signal|unclear",
"evidence_text": "string",
"population": "string|null",
"subgroup": "string|null",
"organism": "human|animal|in_vitro|mixed|unclear|null",
"raw_exposure": "string|null",
"comparator": "string|null",
"raw_outcomes": [
"string"
],
"effect_direction": "increase|decrease|no_effect|mixed|not_applicable|unclear",
"timepoint": "string|null",
"duration": "string|null",
"dose": "string|null",
"measurement_method": "string|null",
"observations": [
{
"source_block_id": "string",
"source_quote": "string",
"observation_role": "primary_finding|quantitative_support|context_support|limitation_or_caution"
}
],
"quantitative_data": {
"summary": "string|null",
"values": [
{
"label": "string",
"value": "string",
"units": "string|null",
"source_block_id": "string"
}
]
},
"experiment_map_id": "string",
"experiment_scope_id": "string",
"source_block_ids": [
"string"
],
"canonical_evidence_status": "accepted|needs_review|rejected"
}
The LLM extractor must not emit identity or mapper-link fields. It returns the
same evidence fields except:
canonical_evidence_idpaper_idstudy_idexperiment_map_idexperiment_scope_idThe pipeline adds those fields deterministically after validation and before
writing canonical_evidence.json.
| Field | Type | Description |
|---|---|---|
canonical_evidence_id |
String | Canonical Victus identifier for the evidence object. |
paper_id |
String | Source paper identifier. |
study_id |
String | Study/scope identifier from ExperimentMap. |
evidence_type |
Enum | Scientific result pattern represented by the evidence. |
evidence_role_in_paper |
Enum | Role of this evidence in the source paper; not a quality score. |
assertion_type |
Enum | Kind of scientific assertion represented by the evidence. |
evidence_text |
String | Canonical description of the scientific result. |
population |
String | Null |
subgroup |
String | Null |
organism |
Enum | Organism or experimental model. |
raw_exposure |
String | Null |
comparator |
String | Null |
raw_outcomes |
Array[String] | Raw outcome terms directly measured or reported by the evidence. |
effect_direction |
Enum | Direction of the reported result. |
timepoint |
String | Null |
duration |
String | Null |
dose |
String | Null |
measurement_method |
String | Null |
observations |
Array | Traceable supporting observations. |
quantitative_data |
Object | Preserved quantitative information supporting the evidence. |
experiment_map_id |
String | ExperimentMap identifier used to generate this evidence. |
experiment_scope_id |
String | Experiment scope identifier used to generate this evidence. |
source_block_ids |
Array[String] | Source StructuredBlocks supporting the evidence. |
canonical_evidence_status |
Enum | Extraction status for this paper-level evidence object. |
CanonicalEvidence must:
study_idCanonicalEvidence must not store:
CanonicalEvidence must not infer findings that are not explicitly supported by source content.
CanonicalEvidence must not merge independent scientific result relations into a single evidence object.
canonical_evidence_id must be unique and immutable.canonical_evidence_id must be deterministic for the same source evidence,paper_id must reference an existing Paper.study_id must reference an ExperimentMap scope.experiment_map_id must reference an existing ExperimentMap.experiment_scope_id must reference an existing ExperimentMap scope.source_block_ids must reference existing StructuredBlocks.evidence_text must not be empty.raw_outcomes must be a list, even when empty.effect_direction must use the allowed enum.evidence_role_in_paper describes source-paper role, not evidence quality.assertion_type describes the scientific assertion type, not rank orCanonicalEvidence is created during evidence extraction from StructuredBlocks grouped through ExperimentMap.
Typical sources:
CanonicalEvidence may be regenerated when extraction logic, prompts, or contract
versions change.
Regenerated versions must coexist with prior versions unless an explicit
promotion or migration decision supersedes them.
CanonicalEvidence may be deleted when the source paper is removed or when regeneration supersedes the object.
CanonicalEvidence versions may be deprecated when replaced by a newer contract version.
PaperStructuredBlockExperimentMapExposureRegistryOutcomeRegistryEvidenceProjectionGeneralEvidenceCanonicalEvidence.paper_id -> Paper.paper_idCanonicalEvidence.study_id -> ExperimentMap.experiment_scopes[].study_idCanonicalEvidence.experiment_map_id -> ExperimentMap.experiment_map_idCanonicalEvidence.experiment_scope_id -> ExperimentMap.experiment_scopes[].experiment_scope_idCanonicalEvidence.source_block_ids[] -> StructuredBlock.block_idCanonicalEvidence is the extracted paper-level evidence unit used by downstream
derivation systems.
Evidence objects should remain reusable independently of specific retrieval architectures, ranking systems, vector stores, databases, or agent workflows.
Ranking, exposure/outcome IDs, RAG use, consensus, recommendation status, and
user-facing conclusions are computed after CanonicalEvidence, primarily in
EvidenceProjection and GeneralEvidence.
Legacy outputs may map intervention_or_exposure to raw_exposure, outcomes
to raw_outcomes, and direction to effect_direction during migration.
Multiple CanonicalEvidence objects may originate from the same experiment scope.
A single experiment scope may generate zero, one, or many CanonicalEvidence objects.
CanonicalEvidence regeneration must preserve traceability and scientific meaning while allowing extraction quality improvements across contract versions.
Victus downstream RAG should consume derived handoff payloads, not mutate
CanonicalEvidence.
Pipeline, parser, model, and prompt versions belong in a separate provenance
contract such as ProcessingProvenance or ExtractionRun, not in
CanonicalEvidence.
Documentation clarification or validation wording refinement.
Backward-compatible additions such as optional metadata fields or additional evidence classifications.
Breaking schema changes, identity changes, evidence semantics changes, field removals, or modifications to evidence boundary guarantees.