docling-graph vs ontocast
Documents to validated knowledge graphs: Docling parses, an LLM or VLM fills Pydantic schemas, and you get a directed NetworkX graph with provenance, Cypher/CSV export and HTML views. — versus — Agentic ontology-assisted RDF extraction: co-evolves domain ontologies and fact graphs in a map/reduce pipeline with RDF 1.2 provenance, entity disambiguation and SHACL autofix.
Both turn documents into validated graphs with an LLM in the loop; docling-graph fills Pydantic schemas you define up front, ontocast co-evolves the ontology alongside the facts as it reads. Fixed schema vs emergent one.
| docling-graph | ontocast | |
|---|---|---|
| Stars | 800 | 228 |
| Forks | 84 | 27 |
| Language | Python | Python |
| License | MIT | Apache-2.0 |
| Last activity | 5 days ago | 14 days ago |
| Topics | knowledge-graphs, ocr | knowledge-graphs |
| Curated connections | 5 | 5 |
docling-graph — the curator's take
Built for the domains where an approximate embedding is worthless — chemistry, finance, legal — because what you need is the exact edge between a compound and a reaction or an instrument and its dependency. Pydantic schemas make extraction validated rather than hopeful, template generation bootstraps those schemas from example documents or an OWL/RDFS ontology, the provenance ledger carries bounding-box geometry with no extra LLM calls, and graph fusion merges multiple graphs deterministically. Under the Linux Foundation AI & Data umbrella with the Docling project's engineering behind it. Caveats: you own the schema design, which is the actual work; VLM extraction needs the heavy `vlm` extra plus local GPU or a served model; and the output is a NetworkX graph you export, not a queryable graph database.
ontocast — the curator's take
The extractor to pick when ontology drift is the thing that has burned you: schema and instances evolve in one loop, GraphUpdate insert/delete patches replace whole-graph regeneration, and SHACL validation repairs machine-fixable violations without another LLM pass. Runs as a REST service, a batch CLI, or a LangGraph node, with pyoxigraph in memory by default and Fuseki when you need persistence. Realities: it's research-grade (Zenodo DOI, 228 stars) with a configuration surface to match — 202 environment variables, and the docs sensibly ship a 47-variable minimal file plus playbooks. The LLM critic is off at the default `MAX_VISITS_PER_NODE=1`, so quality out of the box is one render pass.