An intelligent semantic web application for exploring MovieLens data using ontology-based reasoning and SPARQL!
DAVI is a robust semantic web platform engineered to interface with the MovieLens dataset. It uses a custom ontology to structure data and Apache Jena Fuseki to provide a powerful SPARQL endpoint. The project aims to facilitate complex semantic queries, intelligent filtering based on inferred relationships, and dynamic data visualization.
Client
Server
Database
DevOps
- Semantic Querying: Advanced SPARQL integration for deep data retrieval.
- Ontology Awareness: Fully compliant with a custom
schema.ttlfor strict data structuring. - RESTful Architecture: Clean, documented API endpoints via FastAPI.
- Intelligent Reasoning: Infers new connections between movies, genres, and users.
- Resource Abstraction: Simplifies complex RDF data into consumable JSON resources.
| Color | Hex |
|---|---|
| Primary Color | |
| Secondary Color | |
| Accent Color | |
| Text Color |
To run this project, you will need to add the following environment variables to your .env file
PROJECT_NAME
FUSEKI_URL
DATASET_NAME
ADMIN_PASSWORD
This project uses Docker and Python.
- Docker
docker --version
- Python
python --version
Clone the project
git clone https://github.com/Ana-Maria-C/DAVI.gitGo to the project directory
cd DAVIInstall Backend Dependencies
cd backend
pip install -r requirements.txtTo run tests, run the following command
Start the Database (Fuseki)
docker-compose up -dStart the Server
cd backend
python -m app.mainTo deploy this project run
docker-compose up -d --buildUse the Swagger UI to interact with the API endpoints.
Visit: http://localhost:8000/docs
Or query the Fuseki server directly at: http://localhost:3030/movielens/sparql
- Basic Ontology Design
- FastAPI Service Skeleton
- Fuseki Integration
- Advanced Reasoning / Intelligent Filtering
- Frontend Application implementation
Contributions are always welcome!
See contributing.md for ways to get started.
Please read the Code of Conduct
-
How do I reset the database?
- Delete the
data/fuseki_datafolder and restart the Docker container.
- Delete the
-
Where is the ontology file?
- It is located in
ontology/schema.ttl.
- It is located in
Distributed under the MIT License. See LICENSE.txt for more information.
Mihai - Project Lead
Project Link: https://github.com/Ana-Maria-C/DAVI
Use this section to mention useful resources and libraries that you have used in your projects.