GapVis for Hellespont
GapVis Frontend with Hellespont specific modifications
History of GapVis
Because GapVis is Open Source software and because Hellespont in part has similar data (A text by Thucydides and annotated things inside the text) and similar visualization requirements, it was decided to use the GapVis code and modify it for Hellespont needs. A big difference is that Hellespont data is not based on automatically generated place references but on TEI files that were manually tagged. Not only places were tagged but also persons and organisations. Furthermore a Hellespont visualization needs to be able to show completely different data as well: linguistic trees, secondary literature and both historical and linguistic event data.
The first challenge was to create a backend to communicate with the Backbone.js based GapVis frontend. The original GapVis runs on static JSON files, but for Hellespont we wanted to use a dynamic API that could on the one hand be extended for all our data needs in the future and on the other be able to aggregate data from different sources. This API was then built based on the Java framework Spring. Because the Thucydides text was tagged with the Arachne entity URIs in the TEI files, it was easy to extract all information needed for visualization directly from the Arachne MySQL database, this includes a title, latitude and longitude coordinates, and corresponding URIs in other databases for each entity, for example the place URIs of the iDAI.gazetteer. Where it was necessary, all person records were assigned a birth place (at least where this information was known). This birth place could then be used in GapVis to visualize the persons on the map alongside with the annotated places. The Greek text of the individual chapters themselves comes directly from the TEI files which are transformed into HTML with the help of XSLT and then displayed in the text portion of the interface. The different kinds of entities can be distinguished by their corresponding colours. While like in the original GapVis there is always a complete chapter of Thucydides on display, the user has the possibility to select singular passages. When a passage is selected, the currently active CTS-URN changes along with it. In the event and secondary literature view the data displayed is always in sync with the current CTS-URN, there is also at every step a link back to the Thucydides passage in Perseus.
The Reading View always shows the currently active passage of the Pentecontaetia with annotated entities in different colors on the left hand side. The user can decide if he or she wants to concentrate on the entities themselves, the events, or the secondary literature for the current passage. There is also an English translation available for the Thucydides text.
Time Map View
The Time Map View shows a selected entity from the text on the map, along with an intratextual timeline of all entities mentioned throughout the chapters. There is the possibility to zoom into the map, to go to the Entity Detail View, or to jump to another chapter that also mentions the chosen entity.
Event List View
The Event List View shows all events for the currently active passage, manually created historical events as well as automatically generated linguistic events. It is possible to click on each event to go to the Event Detail View, for linguistic events there are also links to the Tree View in which the particular event node is then highlighted. To narrow down the list of events the user can also choose a subsection from the chapter on the left.
Secondary Literature View
For those text passages where there is extracted secondary literature, this information can also be visualized on the right side. There is a list of papers that mention this particular text passage and for each there is a link to the full text of the paper on JSTOR and an extendable list of other citations occurring in the paper. These citations are again connected to Perseus with CTS-URNs.
Entity Detail View
If an entity has been selected it can be viewed in the Entity Detail View. Here the user can find links to Arachne and the iDAI.gazetteer and also to other databases like Pleiades, DBpedia and dictionaries hosted on Perseus. There is also a list of co-referenced entities (this means entities that are frequently mentioned in the same chapters) with links and a visualization on the map. Additionally, there are sometimes pictures from Arachne and Flickr.
Event Detail View
The Event Detail View offers information about a singular event. This information is retrieved from the ThucDb and includes related events, actors, places and the secondary literature where this event has been documented.
The Tree View offers the currently active text passage without entity annotations on the left and two types of linguistic trees - syntactical and tectogrammatical - on the right. The images of the trees are based on SVG files created from Treebank data. The user can hover over each word or node to see it highlighted in both trees and the text passage. Clicking makes the selection more permanent, this is useful for moving around inside the trees without losing the highlighted node.
First: An EXist database and the Java backend (as a WAR file in the Tomcat) have to be up and running!
Check out the git repository into "/var/www":
sudo git clone https://github.com/karen-sch/gapvis.git
Go to folder /var/www/gapvis/lib and check out "backbone-spf" by Nick Rabinowitz:
sudo git clone https://github.com/nrabinowitz/backbone-spf.git
Before you build, you have to make sure that
Java SDK is installed (not just JRE). To install: `sudo apt-get install openjdk-6-jdkà
Apache Ant has to be installed, additionally you need a jar file with Ant-Contrib tasks: http://ant-contrib.sourceforge.net/
For this: go to "/usr/share/java" and download ant-contrib-1.0b3.jar, for example from here:
sudo wget http://mirrors.ibiblio.org/pub/mirrors/maven2/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar
Create a symlink in "usr/share/ant":
sudo cp -s /usr/share/java/ant-contrib-1.0b3.jar /usr/share/ant/lib/ant-contrib-1.0b3.jar
A new version of less (http://lesscss.org/) needs to be installed.
For this you need to have new versions of node.js and npm, the ones from apt-get might be too old. How to get them: http://stackoverflow.com/a/21715730
Then you can install less via npm:
sudo npm install -g less
Now the ant build can be executed:
- Go to "/var/www/gapvis"
- Type in
- The build should be successful!