Caution: graphs may be spicier than they appear

GraphSlop

A field guide to LLM graph extraction gone wrong — and the occasional redemption arc.

Slop patterns

These show up in the wild more often than anyone wants to admit. Names are half joke, half incident report. If you recognize your pipeline, we are not judging you — we are judging the graph.

Loading patterns…

If this never updates, open the site over HTTP(s) so data can load.

Slop of the day

One highlighted cautionary tale, rotated deterministically by calendar day (UTC). Same slop worldwide, same day — we’re inclusive like that.

Loading…

Curated examples

Placeholder sources for now — swap in real links in data/slop.json when you have them. Each card is a tiny morality play about extraction hygiene.

Loading…

What actually works

None of this is glamorous on a landing page, which is how you know it’s real engineering instead of keynote bait.

Structure first, triples second

Parse documents into logical units (sections, tables, lists) before you ask an LLM to assert relations. Locality in text matters; fake locality produces fake edges.

Entity resolution is not optional

Canonical IDs, blocking, pairwise scoring, and human review for long tails. Lowercasing strings is not a merge strategy.

Schema as a contract

Version your ontology, constrain predicates, and test extraction against gold sets. If the model drifts types every deploy, you don’t have a graph — you have seasonal décor.

Evaluation that hurts

Edge-level precision/recall, constraint violations, and retrieval quality beats “the graph looks big.” Big graphs full of slop are just high-entropy compost.

Provenance everywhere

Store source spans, document IDs, and extraction version. When someone asks “why is this edge here?” the answer should not be vibes.

Hybrid pipelines

Rules and dictionaries for stable relations; LLMs for fuzzy bits — with calibration and abstention when confidence is low.