Experiments


Beethoven Through the Years

chdl-0002

A line chart correlating the number of Beethoven's works performed each year at Carnegie Hall with the number of events on which those works were performed.

read lab report return to experiments

lab report

EXPERIMENT LABEL/TITLE

How many works by Beethoven are performed at Carnegie Hall each year, on how many events?

TL;DR

Create a line chart that correlates the number of works by Beethoven performed each year at Carnegie Hall with the number of events on which they were presented.


Since 2020 is the 250th anniversary of Beethoven’s birth, we wanted to create some Beethoven-themed data visualizations from CH’s linked open data. The chart answers the question “how many works by Beethoven are performed each year at Carnegie Hall, on how many events?”

Rationale: a single concert might include performances of more than one Beethoven work, e.g. an “All-Beethoven” concert featuring several piano sonatas. The scope encompasses any work written by Beethoven (including portions of works, e.g. a performance of only one movement from a sonata) and all documented CH events from the first performances at the Hall in 1891 until July 1, 2019 (the most recent update of data on data.carnegiehall.org).

METHODS

We created a SPARQL query to 1) count the number of Beethoven works performed each year, and 2) count the total number of events on which they were performed:


              PREFIX chnames: <http://data.carnegiehall.org/names/>
              PREFIX dcterms: <http://purl.org/dc/terms/>
              PREFIX event: <http://purl.org/NET/c4dm/event.owl#>
              PREFIX foaf: <http://xmlns.com/foaf/0.1/>
              SELECT ?yearOfEvent (COUNT(DISTINCT ?workPerf) AS ?numberOfWorks) (COUNT(DISTINCT ?event) AS ?numberOfEvents)
              WHERE {
                ?work dcterms:creator chnames:1005833 .
                ?event dcterms:date ?date .
                BIND (str(YEAR(?date)) AS ?yearOfEvent)
                ?event event:product ?workPerf .
                ?workPerf event:product ?work
              }
              GROUP BY ?yearOfEvent
              ORDER BY ?yearOfEvent
            

We then created a Google Sheet using the query results, added a Smooth Line chart to visualize the data, and created an embed link for the chart to use on our Data Lab site.

CONCLUSIONS

what we learned

Google Charts are very easy to create, and with the embed option they provide an out-of-the-box tool to make nice data visualizations with no special development skills.

further investigation

Using Google Sheets/Charts for visualizations requires hosting the data in a personal Google Drive account. Ideally, we’d like to learn how to use a tool like D3.js to create chart visualizations on our own without having to host the data files externally.

Another option: we currently use Ontotext’s GraphDB for our RDF data. GraphDB’s Workbench user interface offers several data display options, including the ability to create a Google Chart .svg file directly from the UI. Adding the .svg file to our Data Lab site could provide a more direct method for visualization with a shallower learning curve than D3.js.


return to experiments