This site is based on software which processes the networks to generate formats, to generate webpages, and to perform calculations on the networks. It is suited only for this project and does not carry much that could be transferred to analyze other works of art. Following the open approach of this project, I license the software for usage by others and publish the code. I strongly doubt, however, that there are real applications of it for any other purpose. Perhaps, it might serve some educational purposes.
We mainly use the language Perl for programming. Perl is known to be rather unreadable and hard to understand. It is kind of an intellectual challenge to program with it, but this raises the level of satisfaction, whenever something works as it should be. Please excuse my bad programming skills, my lack of knowledge on how to write good Perl programs, and the choice of Perl in the first place. To push even further, some software is written in XSLT which is even more unreadable but come with declarative elegance. For visualizations, I chose d3.js as a JavaScript framework, which also is not easy to grasp. But somehow all this fits good together.
So, without being too sorry about this, here are the scripts that I wrote and use.
- Generation of network formats
- normalizexgmml.xslt strips a Cytoscape-generated xgmml to a minimum of nodes
- xgmml2graphml.xslt generates a GraphML representation from an xgmml file
- xgmml2json.xslt generates a JSON representation from an xgmml file
- Generation of Web pages for the site and necessary data structures. We compute sets of webpages by processing the networks in advance. Sometimes we cheat concerning the layout and pages seem to come from WordPress but they just imitate the layout.
- works.pl generates the “homepages” for the digitized drawings performing various calculations on the networks.
- actorid.pl generates the “homepages” for actors from the drawings.
- works-table.pl generates the table in our page Networks.
- cast.pl generates the list of all actors from all networks in the page Actors analysis.
- lombardinet.js is the JavaScript file that draws networks in the browser using d3.js
- Calculations over the networks resulting in csv files:
- measure.pl does calculations on the networks and outputs mostly csv.
- neighbors.pl takes every node in all drawings and produces a small list with their direct neighbors.
- Miscellaneous stuff for the software
- helper.pl is our small library of stuff used in all other Perl scripts.
- copyright.pl puts the cc-by-sa-nc-4.0 notice in a suited way into files of various types.
- CytoscapeLombardi.xml is a style for Cytoscape
All of this is work in progress.