Computer programs



Domain specific languages (DSL) are widespread in computer sciences, but seem to be underused in the Digital Humanities. While DSLs are sometimes introduced to Digital-Humanities-projects as practical adhoc-solution, these solutions are often somewhat "quick and dirty". In other words they are more of a hack than a technology. The purpose of DHParser is to introduce DSLs as a technology to the Digital Humanities. It is based on the well known technology of EBNF-based parser generators, but employs the more modern form called "parsing expression grammar" and parser combinators as a variant of the classical recursive descent parser. Find the source in the GitLab repository.

Schnelle Seite  

screenshot SchnelleSeite is a static site generator similar to Jekyll or Hugo. In contrast to a content management system a static site generator renders the complete website before it is transferred to the server. The server merely needs to deliver static pages, which makes the site faster and less vulnerable to security risks than a dynamic site, although it is not as flexible.

Different from most static site generators, SchnelleSeite does support multilingual sites (like this homepage) right from the start. Also it has some support for the needs of scientists, like literature databases such as bibtex. Here is the source code.

GWT Photo Album  

screenshot GWTPhotoAlbum is an internet photo gallery and slide show that has been realized with the google web toolkit. It requires only a passive server and can also be started locally from the file system. There is a small python script which allows to assemble an internet photo gallery. The images are stored in several different resolutions. GWTPhotoalbum picks the download resolution depending on the screen size of the client device and the connection speed. A visible caption can be added to the photos.

As an example, see the mountain photo gallery. Further details and the programm itself can be found on the project website.


screenshot CoopSim is a computer program for simulating a game theoretic model of cooperative behaviour that can be used in biology as well as social sciences. The model is the reiterated pairwise prisoners dilemma that has been made popular by Robert Axelrod and his book "The Evolution of Cooperation". The reiterated pairwise prisoners dilemma can be regarded as a formal description of some (but certainly not all!) cooperation dilemmas.

CoopSim follows the description in Axelrods book. Different strategies can be put against each other in a computer tournament. The user can select the strategies, adjust game parameters and inspect the outcome of single matches, the whole tournament and the ecological development over a sequence of tournaments.

CoopSim is open-source-software under the MIT License and can be downloaded from the GitHub-repository.


screenshot PyPlotter is a very lean Python package for plotting graphs and diagrams. It is compatible to Python 2 and 3 and can also be run under jython, the java version of python.

PyPlotter allows plotting on linear and logarithmic scales. Additionally, that it contains classes for plotting simplex diagrams, as they are used in game theory.

Through a minimal abstraction layer, PyPlotter can very easily be adjusted to different graphical toolkits. Presently, Tkinter, the Java AWT, wxWidgets, Qt 4 and 5, gtk 2 and Postscript are supported.

PyPlotter is open-source-software under the MIT License. Here, you find the PyPlotter source code and the manual.

Evolutionary Algorithms  

screenshot Evolutionary Algorithms form a special class of optimization algorithms where one tries to imitate the mechanisms of evolution in nature: reproduction, variation and selection, in order to solve optimization problems. In connection with a chapter on "Neuheit in evolutionären Algorithmen" (Novelty in evolutionary Algorithms) that I contributed to the book "Das Neue in Ökonomie und Management" (ed. Birger Priddat and Peter Seele, Gabler Verlag, Wiesbaden 2008) I wrote a small example program that demonstrates how evolutionary algorithms work on the classical problem of the "Traveling Sales Person".

Start the demonstration program using Java Web Start. (Java Runtime Version 1.6 required!) Or download the demonstration program (for Linux und Windows, 2.7 MB incl. Java-sourcecode). Or download the source code only.

cultaptation Engine  

screenshot In order to develop strategies for the cultaptation Social Learning Strategies Tournament I programmed a tournament engine that implements the rules of the tournament. Together with a group of students from Bayreuth we could then develop and analyze our strategies and select the best strategy to take part in that tournament.

Anyone interested in examining the cultaptation model can download the cultaptation engine. The installation is explained in the "read me"-file.