← Tutti i progetti
Università 📅 2025 GitHub

MELODY — Grafi Semantici per la Musica

Progetto universitario del corso di Graph Databases: un database a grafi con l'ontologia del dominio musicale, popolato con dati di canzoni popolari dal 1958 a oggi, interrogabile con SPARQL e validato con SHACL.

✦ Ontologia progettata a mano con Protégé✦ Validazione SHACL dei dati✦ Query SPARQL di esempio

Contesto

Progetto di gruppo per il corso di Graph Databases (A.A. 2024/2025, Università di Padova — hub IIIA). Obiettivo: creare un database a grafi con le informazioni sulle canzoni più popolari settimanalmente dal 1958 a oggi, partendo da dataset eterogenei.

Con queste informazioni è possibile fare valutazioni su durata delle canzoni, tonalità usate, generi nel tempo, e incroci con i Grammy.

Cosa ho fatto io

Il progetto è di gruppo (con Ludovico Di Martino e Manuel Rigobello): ho contribuito alla modellazione dell’ontologia, alla popolazione del database e alle query di esempio.

Come è costruito

flowchart LR
  G["Dataset Grammy<br/>(Kaggle)"] --> P["Popolamento RDF<br/>(notebook Python)"]
  M["Dataset MusicOSet<br/>(Spotify features)"] --> P
  O["Ontologia<br/>Protégé (TBox)"] --> P
  P --> D[("GraphDB<br/>ABox popolata")]
  D --> Q["Query SPARQL"]
  D --> S["Validazione SHACL"]

Dai dataset eterogenei all'ontologia popolata e validata

  1. Ontologia (TBox). Progettata in Protégé: classi per canzoni, artisti, settimane di classifica, generi, categorie Grammy e proprietà (durata, tonalità, posizione in classifica, …). Diagramma incluso nel repository.

Diagramma dell'ontologia MELODY

  1. Popolamento (ABox). Notebook Python che trasformano i dataset CSV (Grammy da Kaggle, MusicOSet con le feature musicali di Spotify) in file RDF/Turtle, importati in GraphDB.

  2. Query SPARQL. Esempi di interrogazioni semantiche: andamento dei generi nel tempo, durata media per decade, relazioni tra canzoni vincitrici ai Grammy e classifiche, etc.

  3. Validazione SHACL. Shapes per vincolare i dati: tipi, cardinalità e proprietà obbligatorie — importabili in GraphDB con la validazione attiva.

Scelte progettuali

  • Ontologia prima dei dati: il TBox (scheletro) è disegnato a mano in Protégé prima di popolare, così il modello semantico è pulito e i dati vi si adattano.
  • Riuso di dataset esistenti invece di scraping: Grammy (Kaggle) e MusicOSet (con features audio reali da Spotify) — fonti affidabili e citate.
  • SHACL come rete di sicurezza: la validazione garantisce che dati provenienti da fonti diverse rispettino lo schema, anche dopo aggiunte future.

Risultati

Un database a grafi interrogabile con SPARQL, con ontologia documentata, dataset popolato e validazione SHACL funzionante — valutato per il corso di Graph Databases. Repository pubblico: FilippoGalli001/MELODY.

Link