DianShi-RxnDB is an automated pipeline that turns ~1.58M USPTO and EPO patents into ~24M single-step reaction records (14.8M passing automated checks) with participant roles, conditions, yields, procedures, and paragraph-level provenance, served through a web UI and an MCP (Model Context Protocol) endpoint for AI agents.
Suppose you’re building a retrosynthesis agent or a reaction-condition predictor. You need a corpus of real experiments: what went into the flask, in what amounts, at what temperature, for how long, and what came out. That information exists, but it’s scattered across the prose, tables, and drawn schemes of chemistry patents, where a single “experiment” may span several paragraphs and reference a general procedure defined elsewhere in the document.
Today, the go-to open source is Daniel Lowe’s Lowe USPTO reactions extraction, and the go-to commercial source is Pistachio, a paid dataset from NextMove Software. Open datasets tend to be narrow in field coverage and provenance; commercial ones are gated behind subscriptions and have restrictions on machine access and batch use. Neither offers a first-class interface for an LLM agent that wants to call retrieval as a tool. DianShi-RxnDB is trying to fill both gaps at once: bigger and more structured than the open baselines, and directly callable by agents.
The pipeline reads each patent’s text plus any embedded chemical images and reaction schemes, finds the experimental sections, and extracts one structured record per single-step reaction. Text is processed primarily by DeepSeek-V3-0324 running on Huawei Ascend 910C processors; images and drawn schemes are parsed by MinerU.Chem. The paper describes this only at the capability level and says a separate technical report will cover implementation.
Each output record (called a Reaction Instance) stores reactants, products, reagents, solvents, catalysts, quantities, temperature, time, yield, and a step-by-step procedure normalized against a fixed vocabulary of 38 operations (Add, Stir, Filter, Quench, etc.). It links back to a specific paragraph in the source patent so a human can verify.
After extraction, every instance is run through an automated qualification check: RXNMapper generates atom mappings, and the system verifies atom conservation and other rules. Instances that fail are kept in the database but flagged. Related instances sharing the same reactant\u2013product pair are grouped into a Reaction Group without merging their conditions, so you can compare how different labs ran the same transformation.
On top of this, DianShi-RxnDB exposes an MCP (Model Context Protocol) service with four tool categories: substance lookup, reaction-group lookup, instance retrieval, and reference lookup. An agent chains them:
# Reaction-precedent search via MCP
groups = find_reaction_groups(product="CC(=O)Oc1ccccc1C(=O)O")
target = pick_group(groups, reactants=["salicylic acid", "acetic anhydride"])
instances = get_instances(target.id, filters={...})
refs = [get_reference(i.patent_id) for i in instances]
return organize(instances, refs) # IDs stay stable for later Web verification
Scale and qualification rate. The pipeline produced ~24M Reaction Instances from 1,580,939 patents; 14.8M (61.7%) passed automated qualification. 608,309 patents contributed at least one retained instance.
Manual field accuracy on qualified instances. Reviewers sampled 1,300 qualified records and judged five fields (yield, reactant, reagent, catalyst, solvent) against the source patent, giving 6,500 judgments. The pooled micro-averaged accuracy was 92.95%. Catalyst was highest at 97.31%; reagent lowest at 84.62%. Common error modes: workup/purification materials mislabeled as reagents or solvents, role confusion when a substance appears multiple times, missed solvents in compact parenthetical notation, and multi-step procedures collapsed into one record. Note: this estimates only the qualified population, only these five fields, and doesn’t measure recall.
Comparison against Pistachio (2025Q2). On a matched sample of 100 US patents, both datasets were deduplicated with the same reactant\u2013product rule. DianShi kept 4,093 records; Pistachio kept 2,992, a 1.368\u00d7 ratio in DianShi’s favor. Much of Pistachio’s shrinkage came from 434 text\u2013image channel overlaps where the same reaction appeared in both its text and image extraction streams.
Field-level exact agreement against source-grounded references. On 660 reaction pairs from 58 patents where both datasets extracted from identical source paragraphs, GPT-5.6-sol performed semantic adjudication under fixed field definitions. DianShi scored numerically higher on all six evaluated fields. The gap was largest on Yield, partly a representation-policy difference: DianShi records explicit percentages from source text, while Pistachio may back-compute yields from mass and stoichiometry, which don’t count as “explicit percentage” under this exactness rule.
An aspirin case study walks through both interfaces: 84 instances with aspirin as product, narrowed to a 53-instance Reaction Group for the salicylic-acid + acetic-anhydride route, then compared across patents (one instance uses a swellable modified-silica catalyst, another uses concentrated sulfuric acid at 50\u00b0C for 20 minutes).
Free access is available for non-commercial use at the Web workbench and the MCP endpoint; commercial use needs a separate license. The paper doesn’t mention a bulk data dump.
•
Building a chemistry agent. The MCP service is the most directly usable piece: it’s one of the few reaction databases with a native agent interface, so if you’re prototyping a retrosynthesis or condition-lookup agent, this is worth wiring up before spending time on custom retrieval over patent PDFs. Object IDs returned by MCP are stable and let a human follow up in the web UI.
•
Training data for reaction models. If you’re training a reaction-outcome or condition-prediction model, the qualified subset (~14.8M instances) with normalized procedures and role labels is richer than what open corpora typically provide. Worth testing whether the extra structure (per-substance amounts, stepwise operations) improves downstream models over Lowe-style extractions; the paper doesn’t run that experiment.
•
Provenance-critical workflows. Because every record links to a specific patent paragraph, this is more defensible than an opaque extraction when a human chemist needs to double-check before running an experiment.
•
What not to do. Don’t treat these records as recommended conditions. They’re reported conditions from patents, with the extraction errors described above. For safety-, regulatory-, or production-relevant decisions, verify against the linked source and involve a qualified chemist.
•
The 92.95% accuracy applies only to five fields on qualified instances. Non-qualified instances (~9M records, ~38% of the total) are kept in the database but weren’t evaluated, and recall (missed reactions per patent) isn’t measured at all.
•
Coverage is USPTO + EPO patents, 1976\u20132025. Journal articles, non-US/EP patents, and lab notebooks are out of scope.
•
The Pistachio comparison uses a 100-patent matched sample and 660 paired reactions from 58 patents. The 1.368\u00d7 record ratio and the field-agreement gaps are descriptive of these samples and aren’t extrapolated to the full corpora. Pistachio is treated as a comparator, not ground truth.
•
The representation-granularity comparison is based on a single inspected shared reaction from one patent, not a systematic field inventory across Pistachio.
•
The paper describes the extraction pipeline only at the capability level. Model prompts, training data for MinerU.Chem, normalization rules, and the specific atom-conservation checks aren’t detailed; a follow-up technical report is promised.