Bases: BaseModel
A unique paper associated with tracked conferences.
Each paper is stored once in the index; authors reference papers by ID.
Source code in src/models/paper_index.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 | class Paper(BaseModel):
"""A unique paper associated with tracked conferences.
Each paper is stored once in the index; authors reference papers by ID.
"""
id: int = Field(ge=1, description="Stable integer ID for this paper. Preserved across pipeline runs.")
title: str = Field(description="Original paper title as found in DBLP.")
normalized_title: str = Field(
description="Lowercased title with punctuation removed, used for deduplication matching.",
)
conference: str = Field(description="Conference abbreviation.")
year: int | None = Field(default=None, ge=2017, le=2030, description="Publication year.")
category: str = Field(default="", description="Research domain category.")
badges: list[str] = Field(default_factory=list, description="Artifact evaluation badges for this paper.")
artifact_citations: int = Field(ge=0, default=0, description="Number of citations to this paper's artifact.")
has_artifact: bool = Field(
default=True,
description="Whether this paper has an associated artifact (false for papers_without_artifacts).",
)
model_config = {"extra": "forbid"}
|