Live webinar Nov 5: save your seatLive webinar Nov 5: Building Golden Records & Entity Resolution with Fluree. Save your seat
Fluree AI · Extract
Documents into governed graph facts.
Turn PDFs, Office files, HTML and scans into graph facts. Fluree finds the entities you already know, pulls out only the relationships your ontology allows, and lands every claim in the graph with the excerpt that proves it.
Most of what a company knows is written down, not filed in a table. Contracts, filings, research, field reports and email carry the facts that decide things, and until recently the only way to query them was to read them.
The usual fix, cutting documents into chunks and retrieving whatever sounds similar, throws away the two things that make a fact usable: what it refers to and where it came from. An agent acting on a chunk cannot say which supplier, which clause, or which page.
Fluree takes the other route. A deterministic parser keeps the structure and position of every element. Your own vocabulary finds the things you already know. Your ontology tells a language model what it may extract, and every claim keeps the sentence that justified it. The result lands in FlureeDB as ordinary triples, under the same identifiers, history and policy as the rest of your data.
Ten things a chunking pipeline can’t do.
The four levels, in depth- 01Structure firstA deterministic engine reads geometry, outline, fonts and rules into sections, lists and tables. No model, no GPU.
- 02Position survivesEvery element keeps its character offsets and, for PDFs, its page and bounding box, so a tag can point at the exact cell.
- 03Escalation, earnedA vision model reads only the pages and regions measured as unreadable, and its reading is arbitrated, never trusted outright.
- 04Known things stay knownA dictionary scan links every mention of your vocabulary to the IRI it already has. No tokens spent.
- 05Taxonomy roll-upAuto-Categorization tags a document with the topics it names and the broader ones they roll up to, scored apart.
- 06The ontology is the promptThe model may use only your classes and properties. A predicate that matches nothing is recorded as rejected.
- 07Evidence on every claimEach relation is stored with its excerpt, its verdict and its document. No excerpt, no fact.
- 08Resolution across sourcesExtracted entities reconcile to the identities you already hold, so document facts join CRM records without a mapping step.
- 09Review that teachesVerdicts train a small ranker, every rejection becomes a standing caution, and missed entities grow the vocabulary.
- 10One graph, same governanceMentions and relations are ordinary triples in FlureeDB. Time travel and policy apply to a fact from a scanned report as to a row.
Fast and effective.
On opendataloader-bench, 200 PDFs scored for layout fidelity against ground truth in October 2026, the deterministic engine alone scores 0.895 with no model. With vision escalation for the regions that need it, the cascade scores 0.934, the highest of the 17 engines scored. The corpus has no scanned PDFs, so read it as a measure of structure, not of reading pixels.
Method and per-document scores- 10,000+ documents, a global financial services firm. Tagging controlled by one reference graph replaced manual tagging in the publishing chain; the knowledge base grew tenfold. Case study
- 30 years of records, a government biodiversity department. Species, places and dates extracted from scanned reports into the same governed graph as 6M+ structured records; 60+ applications read from it. Case study
| Engine | Overall score | Score |
|---|---|---|
| Fluree cascade#1 | 0.934 | |
| OpenDataLoader hybrid | 0.907 | |
| Fluree deterministic | 0.895 | |
| Nutrient | 0.885 | |
| Docling | 0.882 | |
| Marker | 0.861 | |
| Unstructured hi_res | 0.841 | |
| EdgeParse | 0.837 | |
| MinerU | 0.831 |
Overall score on opendataloader-bench, 200 PDFs, 0 to 1, higher is better. Axis shown from 0.80. Fluree measured 7 October 2026 (github.com/fluree/fluree-doc-parse, docs/benchmarks); other engines as published on opendataloader.org on 24 September 2026.
Ingest. Search. Extract.
Document extraction ships inside the FlureeDB command line. Parse a folder into a ledger with no model at all, search it by words or by meaning, then add the entities you already know and the ontology that governs extraction.
Read the quickstart# the FlureeDB command line includes document extraction brew install fluree/tap/fluree # parse a folder into a ledger: structure, chunks, full-text index fluree doc ingest ./contracts -l contracts → 3 documents, 169 chunks indexed # search by words, or by meaning once embeddings are configured fluree doc search "termination notice period" -l contracts -n 3 # add the entities you know and the ontology that governs extraction fluree doc ingest ./contracts -l contracts \ --entities counterparties.ttl --model ./contracts-ontology.ttl
Local only
The CLI: deterministic parse, chunks and full-text search. No model, no GPU, nothing leaves the machine.
Local, your models
Point embeddings and extraction at any OpenAI-compatible endpoint: Ollama, vLLM or OpenAI.
With Fluree AI
Managed models through the gateway, and the hosted pipeline with the review loop that trains on your verdicts.
Put it on your documents.
Parse a folder and scan it against a vocabulary you already own today, with no tokens spent. Bring an ontology when you want relationships.
