Skip to content

A music web-app which gathers and relates info from multiple APIs using XML and RDF. Project made for EDC (Engenharia de Dados e Conhecimento) course of DETI-UA.

Notifications You must be signed in to change notification settings

cristianovagos/xpand-music

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

xPand Music

A project made for EDC (Engenharia de Dados e Conhecimento) course of MIECT, at DETI-UA (University of Aveiro). The same subject and project was used for two parts, using two distinct data representations: XML and RDF.

First part

Our main goal for this project is to put in practise the subjects learned throughout the first part of this course, mainly the use of Django and of XML and XML related tools and XML' derivated technologies such as XML Schema, XSLT, XPath, XQuery and XUpdate as well as the use of a XML database (in our case we chose BaseX) to store and retrieve data from a XML document.

Final commit to first part: https://github.com/cristianovagos/xpand-music/commit/280aa473fa85eee3ea042b14cee52642dcdae030

Second part

In the second part, we switched the main data to RDF, and added more features related to RDF, such as inferences and other stuff that relate data to the data stored. For storage we used the triplestore GraphDB, and for URIs we used a dummy URI created for this purpose.

So, xPand Music (as we agreed to call this project, a way of Expanding Music knowledge) uses the Last.fm XML API to fetch data from artists, tracks, albums and charts to collect data, transforms the XML fetched to our structure using XSLT, validates it according to our XML Schema to make sure it has the structure we want, and then stores the data collected on the BaseX database.

The data is fetched from API only when the data itself is not present within the database. When it fetches and adds the data, the app will then display the data in a pretty way using also Bootstrap in the web design for Artists, Albums, Tags and Charts.

NOTE: This project may be incomplete and it surely needs more attention and features, but that's what we could do for the deadline provided of the course.

Grades

First part grade: 19/20

Second part grade: 20/20

Developers and collaborators:

Installation (First part)

Install Python 3.6, BaseX and Django:

$ sudo apt-get install python3.6 basex python3-lxml
$ pip3.6 install Django

Install GraphDB

Installation (Second part)

Install GraphDB (via http://graphdb.ontotext.com) Install Python 3.6, Django:

$ sudo apt-get install python3.6 python3-lxml
$ pip3.6 install Django rdflib Wikidata s4api

How to run (First part specific)

Initialize the BaseX Server:

$ basexserver

How to run (Second part specific)

Run GraphDB, create 'xpand-music' graph.

Run Django server on project folder:

$ python3.6 manage.py runserver

Click on URL provided upon the last command execution, default is "127.0.0.1:8000"

About

A music web-app which gathers and relates info from multiple APIs using XML and RDF. Project made for EDC (Engenharia de Dados e Conhecimento) course of DETI-UA.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published