Bases: BaseModel
A single searchable artifact entry with enriched author and affiliation data.
Source code in src/models/search_data.py
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 | class SearchEntry(BaseModel):
"""A single searchable artifact entry with enriched author and affiliation data."""
title: str = Field(description="Paper title.")
conference: str = Field(description="Conference abbreviation.")
category: Literal["systems", "security"] = Field(description="Research domain.")
year: int = Field(description="Publication year.")
badges: list[str] = Field(
description=(
"Artifact evaluation badges. Canonical values: 'available', "
"'functional', 'reproduced', 'reusable', 'replicated'."
),
)
artifact_urls: list[str] = Field(description="All artifact-related URLs (repositories, archives, DOIs).")
doi_url: str = Field(description="Paper DOI URL. Empty string if not available.")
authors: list[str] = Field(description="Author names (DBLP disambiguation suffixes removed).")
affiliations: list[str] = Field(description="Sorted unique institution affiliations of all authors.")
paper_url: str | None = Field(default=None, description="Paper DOI or direct link.")
appendix_url: str | None = Field(default=None, description="Supplementary materials URL.")
award: str | None = Field(default=None, description="Award designation, if any.")
model_config = {"extra": "forbid"}
|