Authors: Andrea Poltronieri, Jacopo de Berardinis
Part of: choco
Source: SPARQL endpoint
Export
{'sparql_endpoint': 'https://polifonia.disi.unibo.it/choco/sparql', 'template_mode': 'statistics', 'title': 'Chord Corpus Statistics', 'color_code': ['#39c6b4', '#17cf31'], 'section_name': 'choco', 'subtitle': 'Exploring Chord data from different genres and historic periods', 'curator': 'Andrea Poltronieri, Jacopo de Berardinis', 'description': 'Besides being one of the most studied subjects in music, harmony has attracted the interest of musicologists, computer scientists, and psychologists due to its multi-faceted and inter-disciplinary nature. The basic constituents of harmony are chords, groups of simultaneous notes, and their progressions, which convey notions of consonance (pleasant, euphonious) or dissonance (unpleasant, discordant) in music. The Chord Corpus (ChoCo) is a large-scale dataset that semantically integrates harmonic data from 18 different sources in various representations and formats (Harte, Leadsheet, Roman numerals, ABC). We leverage JAMS (JSON Annotated Music Specification), a popular data structure for annotations in Music Information Retrieval, to effectively represent a variety of chord-related information (chord, key, mode, etc.) in a uniform way. On top of it, we propose a novel ontology modelling music annotations and involved entities (artists, scores, etc.), build a 30M triple knowledge graph on chords, and find 3K links to other datasets (MIDI-LD, LED).', 'dynamic_elements': [{'position': 0, 'operations': [], 'type': 'count', 'count_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT (COUNT(DISTINCT ?s) AS ?count) WHERE {?s rdf:type core:Composer}', 'count_label': 'Composers', 'extra_queries': [], 'map_filters': []}, {'position': 1, 'operations': [], 'type': 'count', 'count_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT (COUNT(DISTINCT ?s) AS ?count) WHERE {?s rdf:type core:Performer}', 'count_label': 'Performers', 'extra_queries': [], 'map_filters': []}, {'position': 2, 'operations': [], 'type': 'count', 'count_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT (COUNT(DISTINCT ?s) AS ?count) WHERE {?s rdf:type jams:JAMSAnnotation}', 'count_label': 'Annotations', 'extra_queries': [], 'map_filters': []}, {'position': 3, 'operations': [], 'type': 'count', 'count_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT (COUNT(DISTINCT ?s) AS ?count) WHERE {?s rdf:type jams:JAMSScoreAnnotation}', 'count_label': 'Score annotations', 'extra_queries': [], 'map_filters': []}, {'position': 4, 'operations': [], 'type': 'count', 'count_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT (COUNT(DISTINCT ?s) AS ?count) WHERE {?s rdf:type jams:JAMSAudioAnnotation}', 'count_label': 'Audio annotations', 'extra_queries': [], 'map_filters': []}, {'position': 5, 'operations': [], 'type': 'chart', 'chart_type': 'barchart', 'chart_title': 'Annotation types', 'chart_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT distinct ?label (count(distinct ?s) as ?count) \r\nWHERE {?s rdf:type jams:JAMSAnnotation;\r\n\tjams:hasAnnotationType ?label} \r\nGROUP BY ?label \r\nORDER BY DESC(?count) LIMIT 10', 'chart_series': 'annotations', 'chart_legend': {'x': 'annotation type', 'y': 'count'}, 'extra_queries': [], 'map_filters': []}, {'position': 6, 'operations': [], 'type': 'count', 'count_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT (COUNT(DISTINCT ?s) AS ?count) WHERE {?s rdf:type jams:JAMSObservation}', 'count_label': 'Observations', 'extra_queries': [], 'map_filters': []}, {'position': 7, 'operations': [], 'type': 'text', 'text': '<h3>Original Datasets</h3>', 'extra_queries': [], 'map_filters': []}, {'position': 8, 'operations': [], 'type': 'chart', 'chart_type': 'barchart', 'chart_title': 'Source datasets', 'chart_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT distinct ?label (count(distinct ?s) as ?count) \r\nWHERE {?s ?p ?o ; \r\n prov:wasDerivedFrom ?label .} \r\nGROUP BY ?label \r\nORDER BY DESC(?count) LIMIT 9', 'chart_series': 'datasets', 'chart_legend': {'x': 'source', 'y': 'quantity'}, 'extra_queries': [], 'map_filters': []}, {'position': 9, 'operations': [], 'type': 'text', 'text': '<p>Annotator Types</p>', 'extra_queries': [], 'map_filters': []}, {'position': 10, 'operations': [], 'type': 'chart', 'chart_type': 'doughnutchart', 'chart_title': 'Annotator types', 'chart_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nSELECT distinct ?label (count(distinct ?s) as ?count) \r\nWHERE {?s ?p ?o ; \r\n jams:hasAnnotatorType ?raw_label .\r\n BIND (REPLACE(STR(?raw_label), "^.*/([^/]*)$", "$1") as ?label)\r\n} \r\nGROUP BY ?label \r\nORDER BY DESC(?count) LIMIT 9 ', 'chart_series': '', 'chart_legend': {'x': '', 'y': ''}, 'extra_queries': [], 'map_filters': []}, {'position': 11, 'operations': [], 'type': 'chart', 'chart_type': 'barchart', 'chart_title': 'Chord data', 'chart_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nPREFIX ja: <http://jena.hpl.hp.com/2005/11/Assembler#>\r\nSELECT distinct ?label (count(distinct ?s) as ?count) \r\nWHERE {?s rdf:type jams:JAMSAnnotation;\r\n jams:includesObservation ?observation.\r\n ?observation rdfs:label ?label .\r\n} \r\nGROUP BY ?label \r\nORDER BY DESC(?count) \r\nLIMIT 10', 'chart_series': 'chords', 'chart_legend': {'x': 'name', 'y': 'quantity'}, 'extra_queries': [], 'map_filters': []}, {'position': 12, 'operations': [], 'type': 'text', 'text': '<h3>Chord Data</h3>', 'extra_queries': [], 'map_filters': []}, {'position': 13, 'operations': [], 'type': 'chart', 'chart_type': 'barchart', 'chart_title': 'Most frequent Roman Numerals Chords', 'chart_query': 'PREFIX jams: <http://w3id.org/polifonia/ontology/jams/>\r\nPREFIX mf: <http://w3id.org/polifonia/ontology/musical-features/>\r\nPREFIX core: <http://w3id.org/polifonia/ontology/core/>\r\nPREFIX prov: <http://www.w3.org/ns/prov#>\r\nPREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>\r\nPREFIX xsd: <http://www.w3.org/2001/XMLSchema#>\r\nPREFIX ja: <http://jena.hpl.hp.com/2005/11/Assembler#>\r\nSELECT distinct ?label (count(distinct ?s) as ?count) \r\nWHERE {?s rdf:type jams:JAMSAnnotation;\r\n jams:hasAnnotationType "chord_roman" ;\r\n jams:includesObservation ?observation .\r\n ?observation rdfs:label ?label .\r\n} \r\nGROUP BY ?label \r\nORDER BY DESC(?count) \r\nLIMIT 10', 'chart_series': 'Chords', 'chart_legend': {'x': 'names', 'y': 'quantity'}, 'extra_queries': [], 'map_filters': []}]}
Besides being one of the most studied subjects in music, harmony has attracted the interest of musicologists, computer scientists, and psychologists due to its multi-faceted and inter-disciplinary nature. The basic constituents of harmony are chords, groups of simultaneous notes, and their progressions, which convey notions of consonance (pleasant, euphonious) or dissonance (unpleasant, discordant) in music. The Chord Corpus (ChoCo) is a large-scale dataset that semantically integrates harmonic data from 18 different sources in various representations and formats (Harte, Leadsheet, Roman numerals, ABC). We leverage JAMS (JSON Annotated Music Specification), a popular data structure for annotations in Music Information Retrieval, to effectively represent a variety of chord-related information (chord, key, mode, etc.) in a uniform way. On top of it, we propose a novel ontology modelling music annotations and involved entities (artists, scores, etc.), build a 30M triple knowledge graph on chords, and find 3K links to other datasets (MIDI-LD, LED).