
Installation (Linux)
--------------------

Öffnen Sie ein Terminal und gehen Sie zu dem Versanalyse-Verzeichnis.

Erzeugen Sie eine virtuelle Python-Umgebung mit dem Befehl:
> python -m venv venv/

Aktivieren Sie die virtuelle Python-Umgebung:
> source venv/bin/activate

Installieren Sie alle benötigten Python-Pakete:
> python -m pip install -r requirements.txt
(Dieser Schritt dauert längere Zeit.)

Deaktivieren Sie am Schluss die virtuelle Python-Umgebung 
> deactivate


Installation (Windows)
----------------------

Installieren Sie die Programmiersprache Python.

Starten Sie im Versanalyse-Ordner die Eingabeaufforderung.
> cmd

Erzeugen Sie eine virtuelle Python-Umgebung mit dem Befehl:
> python -m venv venv/

Aktivieren Sie die virtuelle Python-Umgebung :
> venv\Scripts\activate

Installieren Sie alle benötigten Python-Pakete:
> python -m pip install -r requirements.txt
(Dieser Schritt dauert längere Zeit.)

Deaktivieren Sie am Schluss die virtuelle Python-Umgebung:
> deactivate


Verwendung
----------

Öffnen Sie ein Terminal oder die Powershell unter Windows und wechseln
Sie in das Versanalyse-Verzeichnis.

Aktivieren Sie die virtuelle Python-Umgebung :
> source venv/bin/activate

Verszeilen einzeln analysieren mit Ausgabe im Spaltenformat
> python versanalyse.py verse.txt

Verszeilen einzeln analysieren mit detaillierter Ausgabe
> python versanalyse.py -v verse.txt

Verse als Reimpaare analysieren
> python versanalyse.py -t reimpaare -k lib/kosten-reimpaare.txt Hartmann-Iwein.txt

Verse als Strophen analysieren
> python versanalyse.py -t strophen MinnesangII-Morungen.txt

voranalysierte (freie) Verse analysieren
> python versanalyse.py -t frei Walter_Leich_C.txt

Spezialprogramm für die Analyse der Kudrunverse:
> python kudrun-analyse.py kudrun.txt
auch auf die Nibelungenverse anwendbar
> python kudrun-analyse.py nibelungenlied.txt

Sie Strophenformel kann auch vorgegeben werden:
> python kudrun-analyse.py -f '4k 3m 4k 3m 4k 3m 4k 4m' nibelungenlied.txt


Eingabeformat
-------------

Jeder Vers steht auf einer separaten Zeile.
Auf jede Strophe folgt eine Leerzeile.

Bei voranalysierten Versen werden reimende Zeilen durch einen Index
(eine Zahl) am Zeilenanfang identifiziert, auf den ein Tabulator und
die Verszeile folgen. Waisenzeilen erhalten einen leeren String als
Index.  Zeilen mit demselben Index sind keine Reimzeilen, falls sich
dazwischen eine Leerzeile befindet. Leerzeilen sollten überall dort
eingefügt werden, wo es möglich ist, ohne zueinander gehörende Reime
voneinander zu trennen.

Langzeilen sollten in separate Zeilen aufgespalten werden.  Wenn es
sich nicht um Strophen handelt, müssen anschließend reimende Halbverse
durch Indizes identifiziert werden und als voranalysierte Verse
analysiert werden.


Anpassungen
-----------

Durch Ändern der Kosten in der Datei lib/kosten.txt können Analysen
mit bestimmten Eigenschaften mehr oder weniger "bestraft" werden.
Dies beeinflusst, welche Analysen als optimal ausgewählt werden.

Bedeutung der Silbenzeichen

   Zeichen in der Analyseeingabe
   L lange betonte Silbe
   l lange unbetonte Silbe
   λ lange unbetonte Silbe mit Schwa-Laut
   K kurze betonte Silbe
   k kurze unbetonte Silbe
   κ kurze unbetonte Silbe mit Schwa-Laut
   f einsilbiges Funktionswort
   I einsilbiges Inhaltswort

   Zeichen in der Analyseausgabe
   H Hebung
   s Senkung
   . durch Schwa-Elision gelöschte Silbe
   ' ' Leerzeichen zur Markierung von Wortgrenzen


Bedeutung der Kosten-Markierungen

Tonbeugungen:
   <l2L> <k2K> eine unbetonte Silbe wird zu einer Hebung
   <f2L> <f2K> ein einsilbiges Funktionswort wird Hebung
   <I2L> <I2K> ein einsilbiges Inhaltswort wird Hebung
   <K2L> kurze betonte Silbe wird zu langer betonter Silbe
   <f2kl> <I2kl> ein einsilbiges Wort wird Senkung
   <K2kl> kurze betonte Silbe wird Senkung
   <L2kl> lange betonte Silbe wird Senkung
   <k2L> kurze unbetonte Silbe statt langer betonter Silbe

Kadenzen:
   <1m> einsilbig männlich
   <2m> zweisilbig männlich
   <w>  weiblich
   <2k> zweisilbig klingend
   <3k> dreisilbig klingend
   <B>  Leerzeichen in der Kadenz

<elision2> Löschung eines unbetonten e am Wortende, wenn ein Vokal folgt
Nur wenn die Option -e angegeben wird:
   <elision1> Löschung eines unbetonten e am Ende eines der Wörter in lib/elisionen.txt
   <elision3> Löschung eines unbetonten e am Wortende, wenn ein Konsonant folgt
   <aphaerese1> Löschung eines unbetonten e am Anfang eines der Wörter in lib/aphaerese.txt
<1s> <2s> <3s> <4s>  Zahl der Silben im Versfuß
<2h> <3h> <4h> <5h> <6h> <7h> <8h>  Zahl der Hebungen im Vers
<A>  Auftaktsilbe (außer der ersten Auftaktsilbe)
<K>  Kadenzbeginn

Ein Stern (*) am Ende einer Analysezeile bedeutet, dass es für diese
Zeile noch eine Analyse mit geringeren Kosten gibt, die aber einen
anderen Verstyp hat als die damit reimenden Verse.

Durch Änderungen an den folgenden Dateien, kann weiteres linguistisches Wissen hinzugefügt werden:
   lib/betonte-wortarten.txt
   lib/unbetonte-wortarten.txt
   lib/unbetonte-präfixe.txt
   lib/unbetonte-adverbien.txt
   lib/Betonung-Silbe1.txt
   lib/Betonung-Silbe2.txt
   lib/verbpartikeln.txt
   lib/nomensuffixe.txt
   lib/adjektivsuffixe.txt
   lib/komposita.txt
Am Beginn jeder Datei steht ein kurzer Hinweis.

Diese Dateien sind nur relevant, wenn die Kommandozeilen-Option -e verwendet wird:
   lib/elisionen.txt
   lib/aphäresen.txt
   lib/normalisierungen.txt

Die Option -e:

Bei Wörtern wie "unde", "umbe" und "ime" kann der Schwa auch dann elidiert werden, wenn kein Vokal folgt.
Die meisten Editionen schreiben in solchen Fällen "und", "umb", "im".
Die Versanalyse kann vorhersagen, wann solche Schwa-Elisionen ohne nachfolgenden Vokal notwendig sind.
Auch andere Fälle von Elisionen wie bei schôn(e)sten, verlor(e)n, Mag(e)t können anhand des Kontextes
vorhergesagt werden.

Rufen Sie dazu versanalyse.py mit der Option -e auf. Damit ändert sich Folgendes:
- Wörter wie "und" oder "umb" und Aphäresen wie 'z werden zu "unde", "umb", "ez" normalisiert.
- Es werden weitere Schwa-Elisionen möglich als nur am Wortende vor einem nachfolgenden Vokal.

Probieren Sie es aus und vergleichen Sie, wo die Software die Schwa-Elisionen korrekt vorhersagt,
die in der Edition explizit (mit der Schreibung "und" etc.) kodiert wurde.
Meistens ist die Vorhersage korrekt.
