Core Data Models (reanimator.models)#

All data models in REANIMATOR-VLM are JSON-serializable dataclasses supporting to_dict() and from_dict().


Document#

Top-level container representing a processed document.

class Document(
    doc_id: str,
    doi: Optional[str] = None,
    url: Optional[str] = None,
    pdf_path: Optional[str] = None,
    text: Optional[str] = None,
    markdown_pages: List[str] = field(default_factory=list),
    tables: List[Table] = field(default_factory=list),
    figures: List[Figure] = field(default_factory=list),
    formulas: List[Formula] = field(default_factory=list),
    chunks: List[Chunk] = field(default_factory=list),
    metadata: Dict = field(default_factory=dict),
)

Methods#

Document.load(path: Union[str, Path]) -> Document#

Load a Document instance from a saved .json file artifact on disk.

doc = Document.load("parsed_docs/2504.07584.json")

Document.save(path: Union[str, Path]) -> None#

Save a Document instance to a .json file artifact on disk.

doc.save("parsed_docs/2504.07584.json")

Document.summary() -> str#

Return a formatted summary string of extracted tables, figures, formulas, and pages.


Table#

Represents a single table extracted from a document.

class Table(
    id: str,
    content: pandas.DataFrame,
    caption: Optional[str] = None,
    name: Optional[str] = None,
    references: Optional[List[str]] = None,
    raw_markdown: Optional[str] = None,
    pos_page: Optional[int] = None,
    pos_top: Optional[float] = None,
    pos_left: Optional[float] = None,
    pos_right: Optional[float] = None,
    pos_bottom: Optional[float] = None,
    metadata: Dict = field(default_factory=dict),
)

Attributes#

  • content (pandas.DataFrame): Parsed tabular data.

  • caption (str): Full table caption text.

  • references (List[str]): In-text sentences referencing this table by number.

  • pos_left, pos_top, pos_right, pos_bottom (float): Bounding box coordinates normalized to $[0.0, 1.0]$.


Figure#

Represents an extracted figure or diagram.

class Figure(
    id: str,
    caption: Optional[str] = None,
    name: Optional[str] = None,
    references: Optional[List[str]] = None,
    image_path: Optional[str] = None,
    raw_markdown: Optional[str] = None,
    pos_page: Optional[int] = None,
    pos_top: Optional[float] = None,
    pos_left: Optional[float] = None,
    pos_right: Optional[float] = None,
    pos_bottom: Optional[float] = None,
    metadata: Dict = field(default_factory=dict),
)

Formula#

Represents an extracted math formula or equation.

class Formula(
    id: str,
    latex: Optional[str] = None,
    raw_markdown: Optional[str] = None,
    name: Optional[str] = None,
    references: List[str] = field(default_factory=list),
    pos_page: Optional[int] = None,
    metadata: Dict = field(default_factory=dict),
)

Topic#

Represents an information retrieval query/topic.

class Topic(
    query_id: str,
    query_text: str,
    context: Optional[Dict] = field(default_factory=dict),
    rewritten_texts: List[str] = field(default_factory=list),
    metadata: Dict = field(default_factory=dict),
)

Judgement#

Represents a synthetic relevance judgment.

class Judgement(
    query_id: str,
    doc_id: str,
    score: int,
    source: str,
    chunk_id: Optional[str] = None,
    resource_id: Optional[str] = None,
    modality: str = "chunk",
    reasoning: Optional[str] = None,
    metadata: Dict = field(default_factory=dict),
)

Properties#

  • binary_score (int): Returns 1 if score >= 2 else 0.