Represent the canonical scientific publication identity used throughout Victus.
Paper provides a stable, traceable, reusable reference to a scientific
publication independently of processing pipelines, storage systems, extraction
stages, retrieval systems, or downstream evidence generation.
Paper is the root scientific artifact from which all other scientific objects
originate.
paper_idpaper_id is globally unique inside Victus.paper_id is immutable after creation.paper_id is deterministic for the same canonical publication identity.Paper through paper_id.paper_id.Paper.paper_id values.Paper is owned by the metadata ingestion layer.
Metadata enrichment workflows may update bibliographic fields, but must not
change the identity of the object.
{
"paper_id": "string",
"title": "string",
"publication_year": "integer | null",
"doi": "string | null",
"pmid": "string | null",
"pmcid": "string | null",
"arxiv_id": "string | null",
"source_url": "string | null",
"authors": [
{
"name": "string"
}
],
"journal": "string | null",
"language": "string | null",
"created_at": "timestamp",
"updated_at": "timestamp"
}
| Field | Type | Description |
|---|---|---|
paper_id |
String | Canonical Victus identifier for the publication. |
title |
String | Canonical publication title. |
publication_year |
Integer / Null | Publication year when available. |
doi |
String / Null | Digital Object Identifier when available. |
pmid |
String / Null | PubMed identifier when available. |
pmcid |
String / Null | PubMed Central identifier when available. |
arxiv_id |
String / Null | arXiv identifier when available. |
source_url |
String / Null | External source URL or publication landing page. |
authors |
List of Objects | Ordered list of publication authors. |
authors.name |
String | Author display name from the metadata source. |
journal |
String / Null | Journal, conference, publisher, or publication venue. |
language |
String / Null | Detected or declared publication language. |
created_at |
Timestamp | Object creation timestamp inside Victus. |
updated_at |
Timestamp | Last object update timestamp. |
Paper must:
document_id, to canonical paper_idPaper must not store:
Paper must not infer scientific meaning.
paper_id, title, authors, created_at, and updated_at are required.paper_id must be unique and immutable.paper_id must be deterministic for the same canonical publication identity.title must not be empty.authors must always be a list.null.null.created_at must be set once.updated_at must change when the object is modified.Created after successful metadata ingestion or extraction.
Typical sources:
Updated only when bibliographic metadata is enriched or corrected.
Not deleted under normal operation.
Deprecated only when confirmed as a duplicate of another canonical Paper.
None.
Paper is a root contract.
StructuredBlockExperimentMapCanonicalEvidenceEmbeddingStructuredBlock.paper_id -> Paper.paper_idExperimentMap.paper_id -> Paper.paper_idCanonicalEvidence.paper_id -> Paper.paper_idEmbedding.paper_id -> Paper.paper_idPaper should be small, stable, frequently reused, and inexpensive to load.
Paper is suitable for PostgreSQL storage as a canonical metadata table.
Object storage paths may reference paper_id, but must not define publication
identity.
Downstream artifacts may be regenerated without modifying Paper.
paper.md, paper.processed.json, and paper.final.json are operational
pipeline artifacts. structured_papers.payload is the persisted processed-paper
handoff; trimmed blocks are derived from that payload for evidence mapping.
These artifacts are not canonical Paper identity contracts.
Pipeline, parser, model, and prompt versions belong in a separate provenance
contract such as ProcessingProvenance or ExtractionRun, not in Paper.
Documentation clarification or validation wording refinement.
Additive nullable fields or additive external identifiers.
Breaking schema changes, identity changes, field removals, or semantic meaning
changes.