#Personae - A Character-Visualisation Tool for Dramatic Texts
Submitted for the NVS Challenge, 2016 - July, 2016
The aim of these visualisations is to use the XML files from the New Variorum Shakespeare edition of The Comedy of Errors to create a resource for exploring patterns of speeches by and mentions of characters in Shakespeare’s work. Visualising the frequency, extent, and position of dialogue relating to a particular character presents users with a simple and immediate measure of that character’s prominence within the play. The tool enables users to select and visualise individual characters’ involvement, producing a novel means of exploring large-scale structural, narrative, or character-focused patterns within the text.
See a live demo and read about the development rationale at http://www.davidkelly.ie/projects/personae
The play-text XML is parsed using Python to extract a set of JSON files. These are used in a set of D3.js-based visualisations on the site's front-end.
Here are some instructions if you want to build the visualisations from scratch:
The default play to process is The Comedy of Errors - you can change this to The Winter's Tale by editing the
play_prefix variable at the top of the
python personae.py in
data-processing/ will output a set of JSON files to
frontend/app/data. It will also output a
.csv file to
data-processing/output containing a count of unique
<name></name>s found, should you wish to identify locations to geo-code (this isn't handled by the software).
The front-end of the site uses D3 (v4.1.1) for data visualisation, Leaflet.js for mapping, as well as Underscore and Bootstrap (v3.3.6) (LESS).
Assuming these are installed, to install the project requirements run:
npm install bower install
To build a production version of the front-end, run:
...this will output the production files to
To serve a preview of the front-end at http://localhost:9000/, run:
...this will automatically open the preview site in your browser.
##Issues or Contributions
Bug fixes or suggested improvements are welcome via the issues section, or as a pull-request.