Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Corpus Description

This is the German Drama Corpus (GerDraCor), a collection of TEI P5-encoded German-language plays from 1650 to the 1940s. The corpus is released under the Creative Commons Zero copyright waiver (CC0).

If you want to cite the corpus, please use this publication:

  • Fischer, Frank, et al. (2019). Programmable Corpora: Introducing DraCor, an Infrastructure for the Research on European Drama. In Proceedings of DH2019: "Complexities", Utrecht University, doi:10.5281/zenodo.4284002.

We started to build the corpus by extracting all plays from TextGrid Repository (TGRep). The source for the versions in TGRep was's text collection. However, TGRep's conversion from's proprietary XML to TEI caused some bugs and inconsistencies which we fixed for GerDraCor in a longer process between 2017 and 2019. All our fixes including enhancements are documented on GerDraCor's Wiki. After this clean-up process, GerDraCor is now in a position to grow by taking on new plays from sources such as Deutsches Textarchiv, Project Gutenberg, Projekt Gutenberg-DE, Wikisource, or Google Books.

GerDraCor is an autonomous corpus and will be maintained independently. Yet it is also integrated into the website, the showcase for our newly introduced "Programmable Corpora" concept.

If you just want to download the corpus in its current state in XML-TEI, do this:

svn export

Character Relations

Character relations encode the information provided in the dramatis personae and make it machine-readable. This is mainly about family and power relations.

The following relations have been annotated (by Nathalie Wiedmer et al.):

Relation label Directed/Undirected Description
parent_of directed One character is a parent of the other
lover_of directed For lovers
related_with directed Other family relations (e.g., uncles)
associated_with directed For clearly associated characters (e.g., butlers)
siblings undirected Characters that have at least one parent in common
spouses undirected Characters in marriage (or engaged)
friends undirected Characters marked as being friends

All relations are marked in XML in the <listPerson> element within <listRelation>. Directed relations are encoded with an active and passive attribute where the active part is always the one in front of the relation, if expressed as a sentence. E.g., Odoardo is parent of Emilia translates to this:

Undirected relations use the mutual attribute to collect all IDs that are part of a relationship:

The label from the table above is contained in the name attribute.


An easy way to download the network data (instead of the actual TEI files) is to use our API (documentation here). If you have jq installed, it would work like this:

for play in `curl '' | jq -r ".dramas[] .name"`; do
    wget -O "$play".csv"$play"/networkdata/csv

The API info page is at It also tells you which version of eXist-db we're running on

Simple Visualisation with R

To take a first look at the distribution of the number of speakers per play over time, you could feed the metadata table into R:

gerdracor <- fread("")
ggplot(gerdracor[], aes(x = yearNormalized, y = numOfSpeakers)) + geom_point()


number of speakers per play over time

Here is a barplot showing the number of plays per decade:

number of plays per decade

A Bit of History

Until we rebuilt our working corpus under its new name GerDraCor, we've been working with an intermediary format to conduct our research. This format only held structural information, not the texts themselves. Back then, our research group called itself DLINA (digitally-enabled literary network analysis). Since our focus broadened, we stopped using this name. Our future endeavours will sail under the Programmable Corpora flag.

(README last updated on December 28, 2021.)


No releases published


No packages published