Define the classification record that describes how a scientific paper generates
knowledge before evidence extraction.
PaperClassification decides whether a processed paper is eligible for
canonical evidence extraction. It does not extract evidence, evaluate scientific
quality, judge conclusions, rank papers, or interpret whether the paper is
correct.
paper_id plus run_idpaper_id links the classification to Paper.run_id links the classification to PipelineRun.PaperClassification is owned by victus-processing.
{
"paper_id": "string",
"run_id": "string",
"paper_family": "primary_research|evidence_synthesis|methodological|case_based|opinion_or_theory|unknown",
"paper_type": "string",
"evidence_generation_mode": "generates_original_data|synthesizes_existing_evidence|proposes_method|reports_cases|argues_or_interprets|unclear",
"has_original_experiments": true,
"has_systematic_search": false,
"has_meta_analysis": false,
"classification_confidence": 0.95,
"quality_flags": [],
"risk_flags": [],
"routing_evidence": [],
"reasoning_summary": "Brief explanation supported by explicit evidence."
}
| Field | Type | Description |
|---|---|---|
paper_id |
String | Classified paper. |
run_id |
String | Pipeline run that produced the classification. |
paper_family |
Enum | High-level paper family used for evidence routing. |
paper_type |
String | More specific paper type label. |
evidence_generation_mode |
Enum | How the paper generates or handles evidence. |
has_original_experiments |
Boolean | Whether the paper reports original experiments. |
has_systematic_search |
Boolean | Whether the paper reports a systematic search. |
has_meta_analysis |
Boolean | Whether the paper reports a meta-analysis. |
classification_confidence |
Number | Confidence in the classification. |
quality_flags |
Array | Non-routing quality flags. |
risk_flags |
Array | Risk flags relevant to downstream handling. |
routing_evidence |
Array | Explicit source evidence supporting the route. |
reasoning_summary |
String | Brief explanation grounded in explicit evidence. |
PaperClassification must:
PaperClassification must not:
paper_id must reference an existing Paper.run_id must reference an existing PipelineRun.paper_family must use an allowed value.evidence_generation_mode must use an allowed value.classification_confidence must be numeric.quality_flags, risk_flags, and routing_evidence must be arrays.reasoning_summary must not be empty.primary_researchevidence_synthesismethodologicalcase_basedopinion_or_theoryunknowngenerates_original_datasynthesizes_existing_evidenceproposes_methodreports_casesargues_or_interpretsunclearCreated after validated structured paper data is classified.
Updated only through a new run or explicit migration. Existing classification
records should not be silently overwritten.
Not deleted under normal operation.
Deprecated when superseded by a newer classification contract or promoted run.
PaperStructuredBlockPipelineRunExperimentMapPipelineEventPaperClassification.paper_id -> Paper.paper_idPaperClassification.run_id -> PipelineRun.run_idPipelineEvent.paper_id -> PaperClassification.paper_idTarget canonical dataset output:
data/lake/paper_classifications.jsonl
Current runtime may still write:
paper.classifier_input.json
paper.classification.json
evidence_skipped.json
paper.classification.json is the current per-paper runtime representation of
PaperClassification. paper.classifier_input.json is debug/audit input.
evidence_skipped.json is a runtime routing output, not a canonical scientific
artifact. Its durable information belongs in PaperClassification and
PipelineEvent.
Documentation clarification or validation wording refinement.
Backward-compatible additions such as nullable fields, additional flags, or
additional non-breaking routing evidence.
Breaking schema changes, identity changes, routing semantics changes, field
removals, or allowed-value meaning changes.