AAAI MAKE 2026 · San Francisco, April 7-9

Plato's Cave: A Human-Centered
Research Verification System

Matheus Kunzler Maldaner Raul Valle Junsung Kim Tonuka Sultan Pranav Bhargava Matthew Maloni John Courtney Hoang Nguyen Aamogh Sawant Kristian O'Connor Stephen Wormald Damon L. Woodard
University of Florida  ·  Georgia Institute of Technology
* Equal contribution
System overview of Plato's Cave showing the pipeline from paper input to DAG construction, web agent verification, and final scoring.
Overview. Plato's Cave extracts a directed acyclic graph (DAG) from a research paper, verifies each node with web agents, propagates trust through the graph, and produces an interpretable integrity score.

Abstract

The growing publication rate of research papers has created an urgent need for better ways to fact-check information, assess writing quality, and identify unverifiable claims. We present Plato's Cave as an open-source, human-centered research verification system that (i) creates a directed acyclic graph (DAG) from a document, (ii) leverages web agents to assign credibility scores to nodes and edges from the DAG, and (iii) gives a final score by interpreting and evaluating the paper's argumentative structure. We report the system implementation and results on a collected dataset of 104 research papers.

How It Works

Plato's Cave operates as a six-stage pipeline, transforming a raw PDF into an auditable integrity score.

1

Validate

Accepts a PDF upload or URL, extracts the full text from the document.

2

Decompose

Breaks the paper into atomic claims using an LLM, identifying each semantic unit for downstream analysis.

3

Build Knowledge Graph

Structures claims as a directed acyclic graph (DAG) with role-aware nodes (Hypothesis, Evidence, Method, Conclusion) and dependency edges.

4

Organize Agents

Dispatches browser-based AI agents running in Docker containers to independently verify each claim against external sources.

5

Compile Evidence

Aggregates agent findings, scoring each node on six dimensions: credibility, relevance, evidence strength, method rigor, reproducibility, and citation support.

6

Evaluate Integrity

Propagates trust through the graph using role-aware edge confidences and trust gating, producing a final integrity score.

System in Action

Screenshot of the deployed Plato's Cave interface showing a DAG visualization with verified nodes and an integrity score of 0.81.
Deployed interface. The interactive DAG visualization shows semantic roles (Hypothesis, Evidence, Claim, etc.), edge confidence scores, and a final Integrity Score. Reviewers can hover over nodes to inspect six verification metrics.

Results

Evaluated on a collected dataset of 104 papers spanning Economics, ML/Computing, and Psychology with coarse triage labels (Good / Neutral / Bad).

104
Papers Evaluated
97.4%
DAG Validation Rate
0.759
Good vs Bad AUROC
Histogram showing paper-level mean scores grouped by rating (Good, Neutral, Bad) under the calibrated setting.
Score distribution. Paper-level mean scores grouped by spreadsheet rating under the calibrated setting.

Calibration Performance

Search Stage Best AUROC Best Spearman
Dense search 0.7025 0.313
Refine search 0.7594 0.395
Sparse stage-3 0.7658 0.401

Architecture

System architecture diagram showing the Gatsby.js frontend, Python scoring backend, and Docker containers with browser-use agents.
System architecture. Gatsby.js + React frontend with ReactFlow DAG visualization, Python scoring backend, Docker containers for browser-use verification agents, and WebSocket connections for real-time progress.

Citation

@article{maldaner2026platoscave,
  title     = {Plato's Cave: A Human-Centered Research Verification System},
  author    = {Maldaner, Matheus Kunzler and Valle, Raul and Kim, Junsung
               and Sultan, Tonuka and Bhargava, Pranav and Maloni, Matthew
               and Courtney, John and Nguyen, Hoang and Sawant, Aamogh
               and O'Connor, Kristian and Wormald, Stephen and Woodard, Damon L.},
  year      = {2026},
  eprint    = {2603.23526},
  archivePrefix = {arXiv},
  url       = {https://arxiv.org/abs/2603.23526}
}