Workspace/Capstone studio
Loading progress
Capstone studio
RESEARCH AGENTS, CLAIM GRAPHS, AND TEMPORAL EVIDENCE RETRIEVAL · 6-WEEK BLUEPRINT

Living Evidence Observatory

A research monitor that preserves disagreement, provenance, and what was known at the time

The problem worth solving

Research summaries become unreliable when they silently merge different experimental conditions, count several mirrors of one study as independent support, or fail to update a conclusion after a correction. Build an observatory for a narrow nonclinical question family, such as whether retrieval strategies improve agent task completion under specified budgets. The assistant monitors a frozen source collection and replayed updates, links claims to exact evidence, preserves contradictory results, and explains how an evidence assessment changed between two dates.

What could make it stand out

Scientific claim verification, provenance modeling, and publication-update metadata already exist. This proposal combines them in a deliberately bounded longitudinal experiment. The distinctive output is an inspectable evidence-change record: which claim changed, which source or version caused it, whether two results truly share the same scope, and which conclusions remain unresolved. It treats a newer paper as a new piece of evidence rather than automatic truth. The contribution should be framed as a tested workflow for traceable updates, not a claim that an agent can determine scientific consensus autonomously.

YOUR FALSIFIABLE HYPOTHESIS

On a held-out replay of research updates, a provenance-aware and time-aware claim graph will reduce stale or overconfident evidence summaries by at least 35% relative to snapshot RAG, while retrieving the adjudicated supporting and conflicting evidence with at least 85% recall. The hypothesis fails if improvements depend on manually prelabeling the final answer, or if conflict detection largely mistakes differences in task, dataset, or budget for genuine contradiction.

System architecture

ComponentResponsibility
Source registry and snapshotterStore canonical identifiers, source URLs, version identifiers, observed time, publication time, license notes, and content hashes. Preserve metadata and permitted excerpts needed to reproduce retrieval without redistributing unlicensed full text.
Scoped claim extractorRepresent each claim with intervention, comparator, metric, dataset, model setting, and budget. Mark missing scope fields rather than assuming two similarly worded statements describe the same experiment.
Evidence and provenance graphLink claims to supporting, refuting, or insufficient evidence spans, and distinguish independent studies from mirrors and derivative summaries. Record correction and withdrawal relationships without deleting historical provenance.
Temporal update reducerReplay source arrivals and updates into an as-of evidence state. Separate when a result was published from when the observatory learned about it, and flag affected summaries for regeneration.
Research review assistantAnswer narrow questions with cited evidence and explicit unresolved conflicts. Present a before-and-after change log, scope comparisons, source lineage, and an analyst review queue for uncertain relations.

Data and reproducibility

Choose approximately 60 open research papers about agent evaluation or retrieval, then annotate 150 scoped claim-evidence pairs and create 40 replayed update scenarios. Use real source metadata and permitted evidence spans, while labeling synthetic corrections and contradictory additions conspicuously as simulation. SciFact informs the verification task; Crossref supplies metadata structure rather than guaranteed complete knowledge of every correction.

Start with a synthetic benchmark

Start with manually checked factual scope labels and source relationships. Build replay events for a duplicate mirror, a delayed paper, a changed version, an explicit correction, and a scope-mismatched apparent contradiction. Keep synthetic update content separate from genuine publication metadata. Split by claim family and paper lineage so different versions of one study cannot leak across development and test. Have a peer independently check a sample when available; otherwise report delayed self-review as self-consistency, not inter-rater agreement.

Baselines you must beat

  1. Snapshot RAG that indexes all available text without explicit publication or observation times.
  2. Latest-document retrieval that selects the newest source and generates a single summary, revealing the cost of treating recency as authority.
  3. A provenance graph without scope matching, isolating false contradiction detection caused by different experimental conditions.

Measure the claim

Targets below are proposed success criteria. No results have been achieved on your behalf.

MetricDefinition and target
Stale or overconfident summary rateFraction of summaries that cite superseded evidence as current, hide an adjudicated same-scope conflict, or assert support stronger than the available evidence labels justify.

Target, not achieved result: at least 35% relative reduction versus snapshot RAG on held-out update replays, with claim-level error counts.

Evidence recall and citation precisionRecall of adjudicated relevant supporting and conflicting sources, plus the fraction of citations whose identified span actually supports the attributed statement under matching scope.

Target, not achieved result: at least 85% evidence recall and 95% citation precision on the annotated test set.

Update localizationFraction of affected claim summaries refreshed after a source event and fraction of unaffected summaries unnecessarily regenerated; count duplicate mirrors as one study lineage.

Target, not achieved result: at least 95% affected-summary recall, with unnecessary regeneration below 15% in the replay suite.

Experiments and ablations

  1. Replay a sequence where early supporting evidence is followed by a conflicting study and then a correction. Compare what each system claims at the time of observation, not with hindsight from the complete event log.
  2. Add five mirrors or derivative articles for one source and verify that the evidence assessment does not count them as five independent studies. Remove lineage deduplication to quantify the resulting distortion.
  3. Present apparently contradictory results from different budgets or datasets. Test scope matching with and without structured claim fields and manually inspect all false conflict alerts.

Your execution plan

0 of 12 deliverables checked. Tick a deliverable after recording evidence in your project repository.

WEEK 1

Bound the research question and annotation rules

WEEK 2

Build the source and replay corpus

WEEK 3

Establish retrieval baselines

WEEK 4

Implement temporal evidence changes

WEEK 5

Evaluate update reasoning

WEEK 6

Publish an evidence-backed project report

Working seed

Run this small, deterministic core first. It demonstrates the central mechanism. The complete system, experiments, and deployment are your capstone work.

main.py
python
"""Living Evidence: event replay with origin deduplication and withdrawal."""
from dataclasses import dataclass
import json


@dataclass(frozen=True)
class Event:
    observed_at: int
    kind: str
    origin: str
    claim: str
    stance: str = ""
    published_at: int = 0
    record_id: str = ""


def evidence_state(events, claim, as_of):
    # Stances are authored fixture labels, not automated scientific judgements.
    origins = {}
    withdrawals = set()
    lineage = {}
    for event in sorted(events, key=lambda e: (e.observed_at, e.record_id)):
        if event.observed_at > as_of or event.claim != claim:
            continue
        if event.published_at > as_of:
            continue
        lineage.setdefault(event.origin, set()).add(event.record_id)
        if event.kind == "withdraw":
            withdrawals.add(event.origin)
        elif event.kind == "evidence":
            if event.stance not in {"supports", "refutes"}:
                raise ValueError("Unknown stance")
            previous = origins.get(event.origin)
            if previous and previous != event.stance:
                raise ValueError("Conflicting same-origin labels need adjudication")
            origins[event.origin] = event.stance
    active = {origin: stance for origin, stance in origins.items() if origin not in withdrawals}
    labels = set(active.values())
    status = "insufficient_evidence"
    if labels == {"supports"}:
        status = "supporting_evidence_only"
    elif labels == {"refutes"}:
        status = "refuting_evidence_only"
    elif len(labels) == 2:
        status = "contested_evidence"
    return {"as_of": as_of, "status": status, "active_origins": sorted(active),
            "withdrawn_origins": sorted(withdrawals),
            "lineage": {k: sorted(v) for k, v in sorted(lineage.items())}}


def main():
    events = [
        Event(1, "evidence", "study_a", "cache_reduces_latency", "supports", 1, "paper_a"),
        Event(2, "evidence", "study_a", "cache_reduces_latency", "supports", 1, "mirror_a"),
        Event(3, "evidence", "study_b", "cache_reduces_latency", "refutes", 2, "paper_b"),
        Event(4, "withdraw", "study_b", "cache_reduces_latency", "", 4, "notice_b"),
    ]
    states = [evidence_state(events, "cache_reduces_latency", t) for t in (1, 2, 3, 4)]
    assert states[0]["status"] == "supporting_evidence_only"
    assert len(states[1]["active_origins"]) == 1
    assert states[2]["status"] == "contested_evidence"
    assert states[3]["withdrawn_origins"] == ["study_b"]
    assert evidence_state(list(reversed(events)), "cache_reduces_latency", 3) == states[2]
    print(json.dumps(states, sort_keys=True, indent=2))


if __name__ == "__main__":
    main()

Failure modes to investigate

  • Similar wording can conceal different study conditions. Compare metric, dataset, intervention, and budget before assigning a contradiction relation, and send unresolved cases to review.
  • Metadata services may lack an update or expose it after a delay. Preserve both publication and observed timestamps and describe source coverage without claiming completeness.
  • A graph can make weak evidence look authoritative. Keep evidence spans inspectable, separate study independence from citation count, and avoid translating an evidence status directly into a truth guarantee.

Your demo, moment by moment

  1. Ask a tightly scoped research question and open the evidence spans supporting the current assessment.
  2. Replay a conflicting paper with the same experimental scope. Show the summary becoming contested and compare the two studies' conditions.
  3. Add several mirrors of one paper, then a clearly labeled simulated correction. Show source deduplication and the specific summaries invalidated by the update.
  4. Move the as-of date backward and recover the assessment justified by evidence available then, followed by the held-out evaluation and a false-conflict example.

Write the resume bullet after the experiment

Measured [actual result] improvement in temporal evidence-summary accuracy across [actual replay count] research-update scenarios; built scoped claim extraction, provenance deduplication, citation verification, and an as-of evidence graph.

Replace every placeholder with your actual measurements. Keep the dataset size, baseline, and evaluation conditions available for interview questions.

A research extension

After the replay study, add opt-in periodic metadata refreshes for the chosen corpus and measure real detection delay without claiming comprehensive coverage. A research extension studies analyst attention: rank changes by the number and importance of downstream claims affected, then compare review effort with a chronological update feed. Preserve a frozen offline replay so live source changes do not erase reproducibility.

Related work to challenge your idea

Introduces scientific claim verification with evidence and rationales. This proposal adds temporal update replay, scope checks, and lineage-aware monitoring for a chosen nonclinical topic.

Documents relationships among publication updates, corrections, and retractions. The project uses such metadata as evidence of an update, not as an exhaustive guarantee about every paper.

Provides provenance concepts for linking sources and derived artifacts. The capstone tests whether explicit lineage improves update handling and avoids duplicate-study counting.