Towards a Graph-Oriented Perspective for Querying Music Scores
Une approche orientée graphe pour l'interrogation de partitions musicales
Résumé
Depuis plusieurs siècles, la diffusion de la musique occidentale est assurée par la représentation des oeuvres sous forme de partitions musicales. Ces partitions peuvent aujourd'hui être encodées dans des formats numériques offrant une représentation fine de leur contenu, ouvrant ainsi la voie à de nouvelles fonctionnalités. La notation musicale, même numérisée, reste cependant extrêmement complexe, notamment en raison de l'imbrication des aspects relatifs au contenu et de ceux qui décrivent la mise en forme de ce contenu. Dans cet article, nous proposons une modélisation formelle, sous forme de données graphe, du contenu purement musical des partitions numérisées. Cette modélisation vise à s'abstraire des aléas liés aux choix d'encodage et à la surchage consécutive aux informations de mise en forme. Nous discutons ensuite des fonctionnalités d'interrogation offertes par cette représentation. Nous fournissons également une réalisation concrète de ce cadre formel, sous la forme d'une implémentation dans le système Neo4j permettant l'interrogation des données via le langage de requête Cypher.
Sheet music scores have been the traditional way to preserve and disseminate Western classical music works for centuries. Nowadays, their content can be encoded in digital formats that yield a very detailed representation of music content expressed in the language of music notation. These encoded (digital) scores constitute an invaluable asset for digital library services such as search, analysis, clustering, and recommendations. In this paper, we propose a model of the musical content of digital score as graph data, which can be stored in a graph database management system. We then discuss the querying of such data through graph pattern queries. We also describe a proof-of-concept of the approach that allows uploading music scores in a Neo4j database, and expressing searches and analyses through graph pattern queries with the query language Cypher.