Use Cases¶
Aletheia includes several pre-built use cases that demonstrate GraphRAG capabilities across different domains. Each use case provides a complete implementation including data parser, episode builder, ontology, and evaluation questions.
Available Use Cases¶
| Use Case | Domain | Data Format | Description |
|---|---|---|---|
| Terrorist Organizations | Counter-terrorism | FTM JSON | Multi-jurisdiction terrorist organization designations |
| Aviation Safety | Aviation | Markdown | European aviation safety incidents |
What is a Use Case?¶
A use case in Aletheia is a self-contained data domain that includes everything needed to build and evaluate a knowledge graph:
use_cases/<name>/
├── __init__.py # Use case registration
├── parser.py # Transform source format to entities
├── episode_builder.py # Convert entities to rich text
├── ontology/ # Schema for graph-hybrid mode
│ └── *.ttl # OWL/TTL ontology files
├── data/ # Source data files
├── evaluation_questions.json # RAGAS evaluation questions
└── README.md # Documentation
Key Components¶
| Component | Purpose |
|---|---|
| Parser | Transforms source data format into structured records |
| Episode Builder | Converts records into markdown text for Graphiti ingestion |
| Ontology | Defines entity types and relationships for schema inference |
| Evaluation Questions | Gold-standard Q&A pairs for RAGAS evaluation |
Use Case Comparison¶
Terrorist Organizations¶
Domain: Counter-terrorism intelligence
Strengths: - Multi-jurisdiction analysis (US, UK, Australia) - Alias resolution and entity matching - Cross-reference analysis - FollowTheMoney data model
Best for demonstrating: - Cross-jurisdiction queries - Alias-based lookups - Organizational network tracing - Entity resolution across naming variants
Aviation Safety¶
Domain: Aviation incident investigation
Strengths: - Rich structured incident reports - Cause-and-effect relationships - Geographic and temporal analysis - ECCAIRS taxonomy support
Best for demonstrating: - Semantic search over narratives - Multi-hop relationship queries - Incident pattern analysis - Technical domain knowledge
Quick Start¶
1. Choose a Use Case¶
2. Build the Knowledge Graph¶
# Terrorist Organizations (FTM data)
aletheia build-knowledge-graph \
--use-case terrorist_orgs \
--knowledge-graph terrorist_orgs \
--schema-mode graph-hybrid \
--ontology-graph terrorist_orgs_ontology
# Aviation Safety (Markdown data)
aletheia build-knowledge-graph \
--use-case aviation_safety \
--knowledge-graph aviation_safety \
--schema-mode graph-hybrid \
--ontology-graph aviation_safety_ontology
3. Run Evaluation¶
# Evaluate retrieval quality
aletheia evaluate-ragas \
--knowledge-graph <graph_name> \
--questions use_cases/<name>/evaluation_questions_curated.json \
--grounding-mode strict
Creating Your Own Use Case¶
To create a new use case:
-
Create directory structure:
-
Implement the parser (
parser.py): -
Register the use case (
__init__.py):from .parser import MyParser from aletheia.core.ontology import GenericOntologyLoader from aletheia.core.episodes import register_episode_builder from .episode_builder import build_episode Parser = MyParser Ontology = GenericOntologyLoader register_episode_builder( "my_case", build_episode, source_description="My data source", ) -
Add ontology (
ontology/*.ttl): - Define entity types as OWL classes
- Define relationships as ObjectProperties
-
Use existing ontologies like FTM when applicable
-
Create evaluation questions (
evaluation_questions.json):
See the Developer Guide for detailed instructions.
Learn More¶
- Terrorist Organizations - Counter-terrorism intelligence
- Aviation Safety - Aviation incident analysis