Course: Bases de Données Spécialisées – Master 2 MIADS
University: Université Paris Cité
Academic Year: 2025-2026
Authors: Chris ESSOMBA, Ivan BANFOU
This project implements a knowledge graph focused on the NBA (players, teams, and games) as part of the "Knowledge Graphs et Raisonnement" assignment.
The goal is to demonstrate the full pipeline:
- Extraction and integration of heterogeneous open datasets
- Conversion to RDF
- Advanced SPARQL querying
- RDFS reasoning with inference
Two public datasets from Kaggle were used:
-
NBA Games – Nathan Lugan
Link: https://www.kaggle.com/datasets/nathanlauga/nba-games
Contains match details (date, teams, scores, season, etc.). -
NBA Players & Teams – Wyatt Walsh
Link: https://www.kaggle.com/datasets/wyattowalsh/basketball
Contains player information and current team assignments.
Common concept: team_id → used for integration.
.
├── data/
│ ├── Games.csv
│ └── Players.csv
├── turtles_files/
│ ├── nba_graph.ttl # Integrated RDF data
│ └── schema_rdfs_complet.ttl # RDFS ontology
├── notebook.ipynb # Complete workflow (extraction, RDF generation, queries, reasoning)
└── README.md # This file
- RDF Modeling: Unique URIs for players, teams, and games. Links via
playsFor,homeTeam,visitorTeam. - RDFS Schema: Hierarchical classes (
Player ⊑ Person,Team ⊑ Organization,Game ⊑ Event) and properties (involvesTeam,hasName,hasPoints) with subPropertyOf, domain/range. - 10 SPARQL Queries: Including federation (DBpedia), OPTIONAL, named graphs, aggregation, property paths, MINUS/FILTER NOT EXISTS.
- RDFS Reasoning: Using
owlrlto show inferences (subClassOf, subPropertyOf, domain/range).
- Install dependencies:
pip install -r requirements.txt