Roadmap
This roadmap describes where Ontographia is heading. It is organized into phases with rough dependencies, not dates. Each workstream is tracked as an epic issue (label epic); concrete work lives in its sub-issues.
Ontographia's core principle stays fixed throughout: the LLM produces only Intent JSON; a deterministic, ontology-constrained pipeline in the Rust core validates it and emits parameter-bound Cypher. The LLM never writes Cypher.
Evaluation results referenced by this roadmap are published in evaluation.md. The roadmap itself makes no performance claims.
Overview
| Phase | Theme | Epics | Depends on |
|---|---|---|---|
| 0 | Foundations | #82, #83 | — |
| 1 | pip-installable and agent-ready | #84, #85 | Phase 0 |
| 2 | Familiar demos | #86 | Phase 0 (can run in parallel with Phase 1) |
| 3 | Reproducible public benchmarks | #87 | Phase 1 (Intent layer packaging) |
| 4 | Ecosystem integrations | #88 | Phase 1 |
| 5 | Constraints from existing ontologies | #89 | Phase 0 (any time after) |
flowchart LR
P0["Phase 0<br/>Foundations"] --> P1["Phase 1<br/>pip + MCP"]
P1 --> P3["Phase 3<br/>Public benchmarks"]
P1 --> P4["Phase 4<br/>Integrations"]
P0 --> P2["Phase 2<br/>Sample-graph demos"]
P0 --> P5["Phase 5<br/>OWL/SHACL constraints"]
Phase 0 — Foundations
Repo hygiene & public roadmap — #82
- Close evaluation issues that are already complete
- Publish this roadmap
- Use milestones and epics; attach existing issues as sub-issues
- Keep dependency updates moving; start a
CHANGELOG.md
Getting started quality — #83
- 5-minute quickstart:
pip install ontographia→ query the Movies graph - One-page explainer: why the LLM never writes Cypher
- Troubleshooting page and auto-generated API reference
- Fix outdated content in docs and README (Intent field names, sample outputs)
Phase 1 — pip-installable and agent-ready
Shipped in v0.1.6 (code merged in #93 and #94). Epics #84 and #85 stay open until that release is published.
Intent layer packaging (ontographia[llm]) — #84
- ~~Promote the Intent layer from
examples/llm/(ontology subset prompts with full-schema fallback, execution-feedback refinement, difficulty-adaptive spend) into an optional extra, e.g.pip install "ontographia[llm]"~~ (done in v0.1.6 / #93) - ~~Pluggable LLM backend (OpenAI-compatible endpoint via
openaiSDK; LiteLLM extra reserved, not implemented)~~ (done in v0.1.6 / #93) - ~~Move the related tests into the main test suite~~ (done in v0.1.6 / #93)
MCP server — #85
- ~~Tools:
intent_schema,build_cypher,execute(read-only),list_ontology~~ (done in v0.1.6 / #94) - ~~Neo4j connection settings; launch via
uvx; configuration examples for Claude Desktop and Cursor~~ (done in v0.1.6 / #94) - ~~Policy that rejects write queries; consistent with the existing Agent Skill~~ (done in v0.1.6 / #94)
Phase 2 — Familiar demos
Neo4j sample-graph quickstarts — #86
- Ontologies and gold questions for Movies, Northwind, and Recommendations (reusing the Track B schema→COM converter)
- Notebooks that connect directly to
demo.neo4jlabs.com, plus Colab versions - Sub-issues: #57 (public domain graph), #48 (generalize Intent repair beyond manufacturing heuristics)
Phase 3 — Reproducible public benchmarks
Reproducible public benchmark suite — #87
- Pin target databases and split of
neo4j/text2cypher-2025v1; one command to reproduce - Direct LLM→Cypher baseline under identical model settings (#56)
- Semantic-equivalence / soft execution matching for Cypher paraphrases (#73)
- Safety metrics first: invented vocabulary, unbound literals, write-query leakage
- Results page and regression checks in CI
Phase 4 — Ecosystem integrations
Framework integrations (LangChain / LlamaIndex / neo4j-graphrag) — #88
- LangChain Tool / Retriever
- LlamaIndex PropertyGraph retriever
- neo4j-graphrag retriever adapter
- An example and docs page for each; upstream docs listings where possible
Phase 5 — Constraints from existing ontologies
OWL/SHACL constraint enforcement — #89
- Enforce SHACL constraints (
minCount,maxCount,pattern,in) during Intent validation - Stricter OWL domain/range handling
- Generate Neo4j constraints from the ontology
- Import sample from a public ontology (e.g. a schema.org subset)
- Related: #48 (mapping-driven repair / semantic validation)
Contributing
Pick an open sub-issue under any epic, or open a new issue and reference the relevant epic. See AGENTS.md and the docs for repository conventions.