Skip to content

Ana-Maria-C/DAVI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

DAVI - WADe MovieLens API

An intelligent semantic web application for exploring MovieLens data using ontology-based reasoning and SPARQL!

contributors last update forks stars open issues license


📔 Table of Contents

🌟 About the Project

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 (using 3D Force Graph).

📷 Screenshots

DAVI Dashboard

Main Dashboard - Explore movies with smart filters


3D Graph Visualization

3D Force-Directed Graph - Visualizing relationships between Movies, Genres, and Tags


Statistics Dashboard

Analytics - Real-time statistics and distribution charts


Movie Comparison

Movie Comparison - Side-by-side analysis of attributes

👾 Tech Stack

Client
Server
Database
DevOps

🎯 Features

  • Semantic Querying: Advanced SPARQL integration for deep data retrieval.
  • Interactive Visualization: Explore the movie knowledge graph in 3D using force-directed graphs.
  • Ontology Awareness: Fully compliant with a custom schema.ttl for strict data structuring.
  • Smart Filtering: Filter movies by Genre, Year, and Rating using semantic queries.
  • Data Analysis: Visual analytics of movie distribution and trends.
  • RESTful Architecture: Clean, documented API endpoints via FastAPI.

🧰 Getting Started

‼️ Prerequisites

This project uses Docker, Python, and Node.js.

  • Docker
    docker --version
  • Python
    python --version
  • Node.js & npm (for Frontend)
    node --version
    npm --version

⚙️ Installation

  1. Clone the project
  git clone https://github.com/Ana-Maria-C/DAVI.git
  cd DAVI
  1. Install Backend Dependencies
  cd backend
  python -m venv .venv
  # Windows
  .venv\Scripts\activate
  # Linux/Mac
  source .venv/bin/activate
  
  pip install -r requirements.txt
  1. Install Frontend Dependencies
  cd ../frontend
  npm install

🏃 Run Locally

  1. Start the Database (Fuseki)
  # In the root directory
  docker-compose up -d
  1. Initialize Data (First time only)
  # Ensure Python venv is active
  python data/upload_to_fuseki.py
  1. Start the Backend Server
  cd backend
  python -m uvicorn app.main:app --reload

The server will run at http://localhost:8000.

  1. Start the Frontend Application
  cd frontend
  npm start

The application will run at http://localhost:4200.

🚩 Deployment

To deploy the entire stack using Docker Compose:

  docker-compose up -d --build

👀 Usage

  • Web Interface: Go to http://localhost:4200 to browse movies, visualize the graph, and analyze data.
  • API Docs: Visit http://localhost:8000/docs to interact with the Swagger UI.
  • SPARQL Endpoint: Query the Fuseki server directly at http://localhost:3030/movielens/sparql.

🧭 Roadmap

  • Basic Ontology Design
  • FastAPI Service Skeleton
  • Fuseki Integration
  • Angular Frontend Implementation
  • 3D Graph Visualization

👋 Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

❔ FAQ

  • How do I reset the database?

    • Delete the data/fuseki_data folder and restart the Docker container, then run python data/upload_to_fuseki.py again.
  • Where is the ontology file?

    • It is located in ontology/schema.ttl.

⚠️ License

Distributed under the MIT License.

📦 Deliverables

Here you can find all the resources and documentation related to the DAVI project.

Source Code

The complete source code is hosted on GitHub:

Documentation

Demo

References

💎 Acknowledgements

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •