Home

Awesome

GerDraCor

Corpus Description

This is the German Drama Corpus (GerDraCor), a collection of TEI P5-encoded German-language plays from the 1500s 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:

We started to build the corpus by extracting all plays from TextGrid Repository (TGRep). The source for the versions in TGRep was zeno.org's text collection. However, TGRep's conversion from zeno.org'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 dracor.org 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 https://github.com/dracor-org/gerdracor/trunk/tei

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 labelDirected/UndirectedDescription
parent_ofdirectedOne character is a parent of the other
lover_ofdirectedFor lovers
related_withdirectedOther family relations (e.g., uncles)
associated_withdirectedFor clearly associated characters (e.g., butlers)
siblingsundirectedCharacters that have at least one parent in common
spousesundirectedCharacters in marriage (or engaged)
friendsundirectedCharacters 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:

<relation name="parent_of" active="#odoardo_galotti" passive="#emilia" />

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

<relation name="spouses" mutual="#baerbel #adam"/>

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

API

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 'https://dracor.org/api/corpora/ger' | jq -r ".dramas[] .name"`; do
    wget -O "$play".csv https://dracor.org/api/corpora/ger/play/"$play"/networkdata/csv
done

The API info page is at https://dracor.org/api/info. It also tells you which version of eXist-db we're running on dracor.org.

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:

library(data.table)
library(ggplot2)
gerdracor <- fread("https://dracor.org/api/corpora/ger/metadata/csv")
ggplot(gerdracor[], aes(x = yearNormalized, y = numOfSpeakers)) + geom_point()

Result:

number of speakers per play over time

Here is a barplot showing the number of plays per decade (outdated, not containing most recent changes):

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 21, 2022.)