Filmograph'IF
A semantic web explorer that maps the collaborations between actors and directors, querying DBpedia with SPARQL and using a locally hosted LLM.
- Python
- FastAPI
Context
Filmograph'IF was a five-person team project built around a single question: how do you make the semantic web usable by someone who has never written a query? DBpedia holds a vast, structured description of cinema (films, actors, directors) but reaching it means writing SPARQL, and reading the answer means parsing raw result tables.
Our goal was to sit an interface on top of that, so the user can give the name of an actor or a director, and get back a picture of their career and the people they have worked with, without ever seeing a query.
What I built
We built an API with FastAPI. The user enters the name of an actor or a director, and the application queries DBpedia in SPARQL to retrieve their filmography along with their collaborators, meaning the actors a director has worked with, or the directors an actor has worked for. The results are then presented in three complementary ways:
- Summary card : A structured view listing the person's films and the actors or directors they have collaborated with.
- Collaboration graph : An interactive graph rendering the links between actors, films and directors, which makes recurring partnerships visible at a glance in a way a list cannot.
- LLM-generated synthesis : An optional step that hands the SPARQL results to an LLM, which turns them into a written summary highlighting notable films and the people this person has worked with most often. The model is llama3:70b, hosted on the LIRIS laboratory's servers, which we called through the OpenAI Python library by pointing it at the OpenAI-compatible endpoint the server exposes.
Outcome
This was the first project where I integrated AI into a real application. I learned that structuring the data you feed the mode and phrasing the instruction precisely, are what determine the quality of the result, far more than the model itself.
It was also my first real contact with the semantic web. Writing SPARQL against DBpedia meant learning to think in terms of triples and ontologies rather than tables and joins, and dealing with the reality of open knowledge bases (inconsistent labels, missing properties, and entities that exist under several forms).
Working as a team of five on a short project meant splitting the work along clear boundaries, like querying, visualization, AI synthesis and interface. We had to agree on the data structures that connected them early, so the pieces would fit together at the end.