LLMs Propose. Humans Verify.
GiraffeGraph is an open-source knowledge graph engine that keeps a human in the loop — built to keep LLM extraction grounded in the source and the schema fixed to what you designed. That is the design goal, not a result yet. The project measures how well each check works.
Node Types
Relations
→ NARRATED_FROM
Narrator → Narrator
→ TRANSMITS
Narrator → Hadith
→ RECORDED_IN
Hadith → Collection
The Challenge
LLMs are fluent. That doesn't make them faithful.
- ✕Hallucination: plausible narrators and links that no source contains
- ✕Schema drift: ad-hoc types like HEARD_FROM, TOLD and narratedBy pile up across runs
- ✕Name variants silently merged — or the same person split in two
- ✕No trace of which sentence a fact came from, or who approved it
The Solution
Designed so every fact is grounded and approved.
- ✓Each extracted triple is tied to the source span it came from
- ✓The schema is locked — a type outside it is never written; it becomes a proposal for review
- ✓Entity merges are suggested by the model and decided by a human
- ✓Every change is versioned, so the graph stays auditable
How It Works
From raw input to living knowledge — in 6 steps
The model proposes. A human decides. The graph records how each fact was accepted.
Schema Design
Define your node types, relation types and properties. AI schema suggestions from your first documents are planned.
Ingest Sources
Load source texts — hadith collections, documents, transcripts. Each source is split into citable units.
AI Extraction
The LLM proposes entities and relations — constrained to your schema and linked to the exact source span.
Review & Validate
Every fact enters the graph either through a human decision or through an explicitly recorded policy — and the record says which. You accept, reject, edit or merge.
Graph Grows
Each approved batch lands as a versioned delta on top of the existing graph — never an overwrite.
Explore & Query
Walk chains visually, query relationships, and trace any fact back to its source.
What We're Building
Every layer of intelligence, fully in your hands
The core components of the first open-source release — from schema definition to graph exploration, every step reviewable and versioned.
Schema Studio
Drift GuardDefine node types, relations, properties and validation rules once. The schema is locked during extraction: when the model wants a type that doesn't exist, it is never written to the graph. It appears in the review queue as a proposal, and the schema changes only when you edit it. The panel below is a concept preview.
AI Extraction Engine
Schema-constrained extraction where every triple carries the source span it was read from.
{ "type": "Narrator", "name": "Sufyān b. ʿUyayna", "span": "ḥaddathanā Sufyān…", "confidence": 0.94, "relations": [ {"NARRATED_FROM": "Yaḥyā b. Saʿīd"} ] }
Human-in-the-Loop Review
The model proposes, you decide. Name variants are resolved by a human. A claim whose quote is missing from the source text goes to review with the reason shown. The queue below is an illustration.
Iterative Graph Growth
Every new source adds a delta. The graph grows — never overwrites, always expands.
Full Versioning
Schema versions, extraction runs, graph deltas — every change is tracked and auditable.
Any Domain
Isnad chains are the first case study. The schema-driven design is meant for any domain.
Case Study
Hadith Isnad Chains
An isnad is the chain of narrators through which a hadith was transmitted — a graph by nature, and a demanding test for LLM extraction.
- al-Bukhārīcollector
- al-ḤumaydīʿAbd Allāh b. al-Zubayr
- Sufyān b. ʿUyaynaalso written “Ibn ʿUyayna”
- Yaḥyā b. Saʿīd al-Anṣārīpivot of the chain
- Muḥammad b. Ibrāhīm al-Taymī
- ʿAlqama b. Waqqāṣ al-Laythī
- ʿUmar b. al-Khaṭṭābcompanion
- The Prophet ﷺ
Ground truth exists
Classical rijāl literature documents who narrated from whom, so extracted chains can be checked against scholarship.
Zero tolerance for errors
One invented or misplaced narrator changes how a hadith is graded. Hallucination is not a cosmetic problem here.
Names vary everywhere
The same narrator appears by kunya, nisba or laqab. Entity resolution needs a human expert in the loop.
Research
Built Alongside a Paper
A Human-in-the-Loop Knowledge Graph Generation Engine for Preventing Hallucination and Schema Drift in LLMs: An Application on Hadith Isnad Chains
Questions the paper will answer
- →How much does source-span grounding plus human review reduce hallucinated triples?
- →Does a locked schema with a proposal gate keep the graph consistent across extraction runs?
- →How much expert effort does the review loop cost per verified chain?
The preprint and the code will be linked here once they are published.
Frequently Asked Questions
Built in the open.
Follow along.
The first release and the paper are on the way. Watch the repositories to hear first.



