Imagine having hundreds of books, reports, research papers, or internal documents containing information about places, but no structured dataset to analyze.
I wanted to see if RAG could find that information, extract it, and turn it into geographic data automatically, and then use Databricks to analyze and visualize the results.
For my experiment, I chose something I’m interested in: the history of AI.
I gave the system historical books and asked it to find where important AI breakthroughs happened.
In simple terms:
Books → RAG → structured data → Databricks → map
The result became the AI Breakthroughs Atlas — but the same approach could be applied to many other collections of unstructured documents.
Building the RAG pipeline
Giving an LLM entire books and asking it to find everything interesting isn’t a great approach.
Instead, I built a RAG pipeline.
The flow looked like this:
Books → Dense Embeddings → Vector Database → Classifier → Extractor → Location to Coordinates
First, I split the books into smaller chunks and converted them into dense embeddings — numerical representations of their meaning.
I stored those embeddings in a vector database, which allowed the system to retrieve passages based on meaning rather than exact keywords.
The retrieved passages then went through an AI classifier.
Its job was to answer a simple question: Does this passage actually describe an AI breakthrough worth keeping?
I experimented with different models for this step and tried Jev (TypeSafe's model) before switching to OpenAI's GPT Luna, which gave me better results for classification.
The passages that passed the classifier were sent to an extractor. It converted the text into structured fields such as the year, breakthrough, location, and supporting quote.
Finally, the location was converted into latitude and longitude using GeoNames.
At this point, hundreds of pages of unstructured text had become a dataset I could actually analyze.
From RAG to Databricks
For the final step, I loaded the extracted data into Databricks.
I used Databricks to explore the dataset, analyze the results, and plot the extracted AI breakthroughs geographically.
This became the AI Breakthroughs Atlas - a visual way to explore where breakthroughs mentioned across the books happened.
But the project also exposed something more interesting.
Getting an LLM to return structured data is relatively easy.
Getting reliable structured data is much harder.
A classifier can make the wrong decision. A location can be ambiguous. Geocoding can choose the wrong place. And perfectly valid JSON can still contain incorrect information.
That made evaluation and validation just as important as the RAG pipeline itself.
What I learned
I started this project thinking mostly about RAG.
I finished it thinking much more about data reliability.
LLMs are very good at finding structure inside information that was never designed to be structured.
They can turn books and documents into data that we can search, analyze in platforms like Databricks, and eventually visualize.
But extraction is only the first step.
The more interesting engineering question is:
How do we know which AI-generated data we can actually trust?
The map is the visible result.
The real engineering happens between “AI found something” and “we can trust it enough to use it.”
The full project, including the source code and implementation, is available on GitHub: https://github.com/dmytro-mikheiev/ai-breakthrough-atlas
👋 I’m Dima - AI Solutions Architect. I help teams turn their data into AI systems. You can see more of my work at mikheiev.com