StackMap
Subscribe

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.

The curated verdict

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-graphontocast
Stars800228
Forks8427
LanguagePythonPython
LicenseMITApache-2.0
Last activity5 days ago14 days ago
Topicsknowledge-graphs, ocrknowledge-graphs
Curated connections55

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.