Von der FALLBACK Rule! Macht aber alles irgendwie keinen Sinn, dann warum wird diese Regel nicht als eigene angewendet, sondern mit einer weiteren kombiniert?
Da war es wieder, mein altes Problem und Wunsch (zumindest als Option): Wenn eine Regel zutrifft, sollten die anderen nicht mehr greifen.
Das Entfernen meiner "FALLBACK"-Regel normalisierte das Verhalten wieder:
synOCR verhält sich nun wieder wie auch mit der 1.3.0 Version. Ich habe offenbar zwischen dem letzten OCR-Lauf und dem Update auf 1.3.1 noch eine weitere Regel (FALLBACK) eingebaut, die das ungewollte Verhalten erklärt.
Nur, ich versteh' nach wie vor nicht, warum
tagname von zwei Regeln gemerged wird. Es ist definitiv so, dass diese beiden Regeln, weil sie konkret auf das aktuelle Dokument zutreffen, diese Zieldateien erzeugen.
YAML:
RIESTER_3:
tagname: "§yocr4-§mocr-§docr Renteninformation"
tagname_RegEx:
targetfolder: "/Riester/"
condition: all
subrules:
- searchstring: "Renteninformation"
searchtyp: is
isRegEx: false
source: content
casesensitive: true
AAAA_FALLBACK:
tagname: "§yocr4-§mocr-§docr"
tagname_RegEx:
targetfolder: "/"
condition: all
subrules:
- searchstring: ".*"
searchtyp: is
isRegEx: true
source: content
casesensitive: true
Dummerweise wird dabei nicht nur der Dateiname zerhacktstückt, nein, es werden zudem auch gleich noch zwei Dateien in unterschiedlichen Verzeichnissen erstellt. Deren Zielordner aus den beiden angewendeten Regeln besteht, siehe Bild unten.
Es wird tagname "§yocr4-§mocr-§doc" vor den tagname "§yocr4-§mocr-§docr Renteninformation" gestellt:
Zum Thema Regelprioritäten: Ich habe im Changelog gelesen, dass die Regeln jetzt auch alphabetisch abgearbeitet werden. Dies stimmt soweit, allerdings nicht, wie erwartet, von A -> Z sondern von Z -> A.
Hab's gerade nochmal geprüft. Meine Fallback-Regel wurde bisher, aufgrund des Namens und dem Anfangsbuchstaben "F", zwischen allen anderen Regeln ausgeführt.
Nach dem Umbenennen in "ZZZZ_FALBACK" nahm ich an, dass diese am Schluss bearbeitet wird, wurde sie aber nicht, sondern als erste Regel überhaupt. Nach dem Umbenennen in "AAAA_FALLBACK" erfolgte die Ausführung am Ende aller Regeln.
Irgendwie unlogisch, aber gut, wenn man's weiß auch kein Problem.
Nichtsdestotrotz, wäre in der YAML-Datei, bei jeder Regel, ein Schlüsselwort sinnvoll, welches quasi eine erfüllte Regel als final erklärt und keine weiteren Regeln mehr ausführt (
stop) oder die Erkennung fortführt (
continue)
Sowas in der Art:
behavior: [continue|stop]
Code:
RIESTER_3:
tagname: "§yocr4-§mocr-§docr Renteninformation"
tagname_RegEx:
targetfolder: "/Riester/"
condition: all
behavior: [continue|stop]
subrules:
- searchstring: "Renteninformation"
searchtyp: is
isRegEx: false
source: content
casesensitive: true