Domänenspezifische Sprachen sind in der Softwareentwicklung weit verbreitet, aber sie scheinen in den Digitalen Geisteswissenschaften bisher wenig gebräuchlich zu sein. Während domänenspezifische Sprachen (DSL) in den Digitalen Geisteswissenschaften zuweilen als praktische ad-hoc-Lösungen eingführt werden, bleiben diese Lösungen oft recht provisorisch. Mit anderen Worten, es handelt sich eher um einen "Hack" als um eine Technologie. Die Zielsetzung von DHParser besteht darin, DSLs als eine Technologie in die digitalen Geisteswissenschaften einzuführen. DHParser basiert auf der wohlbekannten Technologie EBNF-basierter Parsergeneratoren, verwendet aber die etwas jüngere, "parsing expression grammar" genannte Weiterentwicklung und Parser-Kombinatoren als Variante des klassischen rekursiven Parsers. Der Quellcode steht im GitLab-Repositorium.
SchnelleSeite ist ein statischer Webseitengenerator, ähnlich wie
Jekyll oder Hugo. Im Gegensatz
zu Content-Management-Systemen wird bei statischen Seitengeneratoren die
Website komplett gefertigt, bevor sie auf den Server kommt. Der Server muss
dann nur noch statische Seiten ausliefern, was schneller geht und weniger
Sicherheitsrisiken birgt als dynamische Internetseiten, allerdings auch nicht
ganz so flexibel ist.
Anders als die meisten statischen Seitengeneratoren ist SchnelleSeite von vornherein konsequent auf mehrsprachige Websites (wie diese Homepage) ausgerichtet. Außerdem ist es an die Bedürfnisse von Wissenschaftlern angepasst und unterstützt etwa das Auslesen von Literatureinträgen aus einer bibtex-Datei. Hier geht's zum Quelltext.
GWTPhotoAlbum ist eine Internet-Fotogalerie und Diashow, die mit dem
Google Web Toolkit realisiert ist. Sie setzt
lediglich einen passiven Server voraus und kann auch lokal vom Dateisystem
gestartet werden. Dazu gibt es ein kleines
Python-Skript
mit dem man eigene Internet-Fotoalben erstellen kann. Die Bilder werden in
mehreren Auflösungen abgelegt. GWTPhotoalbum wählt die Auflösung der
heruntergeladenen Bilder je nach Bildschrimgröße des Zielgeräts und Übertragungsgeschwindigkeit
aus. Die Bilder können mit Bildunterschriften versehen werden.
Als Beispiel gibt es hier eine Alpenfoto-Galerie. Weiteres dazu und das Programm selbst gibt es auf der Projektseite.
CoopSim ist ein Programm
zur Simulation eines spieltheoretischen Modells von kooperativem
Verhalten, das sowohl in der Biologie als auch in den Sozialwissenschaften
Anwendung findet. Bei dem Modell handelt es sich um das durch Robert
Axelrods Buch "Die Evolution der Kooperation" populär gemachte
wiederholte Gefangenendilemma, mit dem sich bestimmte (aber keineswegs alle!)
Kooperationsprobleme formal beschreiben lassen.
CoopSim lehnt sich an die Beschreibung in Axelrods Buch an und erlaubt
es, beliebige Strategien (einschließlich vom Benutzer selbst
programmierter Strategien) in einem Computerturnier im paarweisen
wiederholten Gefangenendilemma gegen einander antreten zu lassen. Dabei
können die einzelnen Spielverläufe, das Turnierergebnis sowie die
evolutionäre Entwicklung eingesehen werden. Durch eine Reihe von
einstellbaren Parametern lassen sich unterschiedliche Rahmenbedingungen
simulieren.
CoopSim ist Open-Source-Software unter der MIT Lizenz und kann aus dem GitHub-Verzeichnis heruntergeladen werden.
PyPlotter ist ein sehr
schlankes Python Paket zur Darstellung von
Graphen und Diagrammen. Es ist kompatibel zu Python 2 und 3 und läuft
auch unter jython, der Java-Version von
Python.
PyPlotter erlaubt die Darstellung von Graphen in einem cartesischen Koordinatensystem sowie auf einer logarithmischen Skala. Dazu enthält es Klassen zur Darstellung zweidimensionaler Simplexdiagramme, wie sie in der Spieltheorie üblich sind.
PyPlotter kann über eine minimale Abstraktionsschicht sehr leicht an unterschiedliche Grafikausgabesystem angepasst werden. Zur Zeit wird Tkinter, das Java AWT, wxWidgets, Qt 4 und 5, gtk 2 und Postscript unterstützt.
PyPlotter ist Open-Source-Software unter der MIT Lizenz. Hier geht es zum PyPlotter-Quellcode und zur Dokumentation.
Evolutionäre Algorithmen sind eine besondere Klasse von Optimierungsalgorithmen,
bei denen man den auf Reproduktion, Variation und Selektion beruhenden
Evolutionsprozess in der Natur nachzubilden versucht, um beliebige
Optimierungsprobleme zu lösen. Im Zusammenhang mit meinem Beitrag "Neuheit in
evolutionären Algorithmen" in dem von Birger Priddat und Peter Seele
herausgegebenen Sammelband "Neuheit in Ökonomie und Management. Grundlagen,
Methoden, Beispiele" (Gabler Verlag, Wiesbaden 2008) habe ich ein kleines
Beispielprogramm geschrieben, dass mehrere Varianten eines evolutionären
Algorithmus am Beispiel des klassischen "Problems des Handlungsreisenden"
vorführt.
Start des Beispielprogramms mit Java Web Start. (Setzt Java Runtime Version 1.6 voraus!) Herunterladen des Beispielprogramms zu evolutionären Algorithmen. (MB inkl. Java-Quellcode). Nur den Quellcode herunterladen.
Um Strategien für das
cultaptation Social Learning Strategies Tournament
zu entwickeln, habe ich ein Computerprogramm geschrieben, das die Regeln des
Turniers umsetzt. Zusammen mit einer Gruppe von Bayreuther Studenten konnten
wir dann eigene Strategien entwickeln, analysieren und die beste Strategie
für die Teilnahme am Turnier auswählen.
Wer mit dem cultaptation-Modell (der ersten Runde) "experimentieren" will, kann sich hier mein cultaptation Programm herunterladen. Die Installation wird in der "Lies mich"-Datei erklärt.