IRIS — AI natural-language data query platform
An ontology-based NL→SQL platform for querying internal data in Korean — actual data is never sent to the LLM

Context
IRIS is an ontology-based NL→SQL platform for querying internal HR data in Korean, passing 65/65 tests while sending 0 records of actual data to the LLM. At a company with internal HR data, nontechnical HR staff and executives need to query data without SQL. Data containing actual personal information cannot be sent to an LLM, and the same question must always produce the same answer.
Problem
Converting natural language to SQL required bridging the gap between business terms such as "the department with the highest turnover rate" and the actual database schema. Sending schemas and data directly to an LLM also leads to increased costs, security vulnerabilities, and results that cannot be reproduced.
What we did
- Separated business concepts from the database schema through a YAML ontology so that changing domains would require only ontology changes.
- Organized query processing into a 3-stage Tier structure: golden query matching, embedding similarity, and LLM intent parsing and SQL generation.
- Sent only ontology concepts and parsing results to the LLM, without transmitting actual data, and returned only aggregate values with PII masking.
- Integrated a Microsoft Teams bot (Adaptive Card) so employees could ask questions directly in their existing channel.
- Implemented an ontology self-reinforcement loop, including alias approval and rejection, to accumulate vocabulary during operation.
Results
| Metric | Value | Notes |
|---|---|---|
| Tests passed | 65/65 | Phase A~D |
| Pipeline and features | Phase A~D complete | B-1~B-8, Teams bot, dashboard, Write-back workflow |
| Actual data sent to the LLM | 0 records | Only ontology concepts and aggregate values transmitted |
| Pilot duration | 4 weeks | As proposed |
Timeline · Scale · Stack
- Timeline: Pilot runtime verification in 2026-03 → Teams bot deployment (2026-03-11)
- Scale: Supabase PostgreSQL pilot, HR domain
- Stack: Next.js · TypeScript · Claude API · Supabase(PostgreSQL) · YAML ontology · React Flow · Recharts
What this case shows
The core of natural-language data querying is the ontology. With the ontology in place first, the LLM handles only the final 5%.
Project details
May 1, 2025
2 min read