Modules

Module ermöglichen eine Erweiterung der bestehenden Applikation durch das Hinzufügen von zusätzlichen Funktionen. Erweiterungen zielen immer auf den Textinhalt der Dokumente ab und können entweder die Metadaten („Title“, „DocumentDatum“, „KeyWords“) beeinflussen oder einzelne Fragmente aus dem Textinhalt erzeugen. Module werden als einzelnes JAR File bereitgestellt und können mittels File-Upload ins System geladen werden.

Die Listendarstellung von Modulen liefert folgende Informationen.

NummerSpalteBeschreibung
1NAAuswahlmöglichkeit/Selektion für Massenänderungen
2ClassnameClassname des Moduls
3NASteuerung der einzelnen Module (Start, Stop, Synchronize , Test). Ob gestartete oder nicht, hat derzeit noch keinen Einfluss auf die Nutzung von Modulen innerhalb der Applikation oder bei Import-Prozessen.
4Jar-FileDas Upload-Jar File
5TypeUm welchen Type handelt es sich bei dem Modul. Wird Entitäten vom Modul oder Fragmente bereitgestellt.
6VersionVersionsnummer zusammengesetzt aus Major und Minor
7AutorAutor des Moduls
8BeschreibungKommentar
9NAFalls das Modul Tag(s) beinhaltet, werden diese visuelle dargestellt.
Wichtig! Beim Upload erfolgt bereits die Erkennung und Zuweisung von Tags.

Die Steuerungsleiste (Buttons) bietet folgende Möglichkeiten:

ButtonFunktionBeschreibung
Alle markierenMarkiert alle Zeilen auf der aktuell angezeigten Seite.
Markierung aufhebenHebt die Markierung der Liste wieder auf.
Neues Modul hinzufügenStartet den File-Upload Dialog. Eine Mehrfachauswahl ist möglich. Beim Import wird bereits überprüft, ob es sich um ein von biffo nutzbares Modul handelt.
Server löschenLöscht die markierten Module.
AktualisierenFührt einen Refresh der Liste durch.
Markierte Module startenStartet die markierten Module
Markierte Module stoppenStoppt die markierten Module

Ein Klick auf den „Classname“ öffnet den Dialog für das einzelne Modul.

Modul bearbeiten

In der Modulbearbeitung kann nur eine einzige Option gesetzt werden. Die Option „Nur erste Seite“ legt fest, ob bei Verwendung alle Seiten des Dokuments, oder nur die erste Seite berücksichtigt werden soll.

ButtonFunktionBeschreibung
AbbrechenAbbruch (Rückgängig falls Edit-Modus) ansonsten Edit-Modus verlassen.
Module speichern und schließenSpeichert das Modul und kehrt zu dem vorherigen Fenster zurück.
Module speichernSpeichert das Modul
Module editierenWechselt in den Edit-Modus
Module überprüfenTestet ob das Modul geladen werden konnte.
Module Bearbeitung – Buttons

Innerhalb der Listendarstellung, kann das jeweilige Modul auf ein vorhandenes Dokumente getestet werden. Die Steuerungsleiste bietet hierzu folgende Funktionen:

ButtonFunktionBeschreibung
Test ModuleWechselt in den jeweiligen Test-Dialog. Hier kann entweder mittels Copy&Paste ein Text eingegeben oder ein bestehendes Dokument geladen werden.
Synchronize ModuleFührt eine Synchronisierung des Moduls durch. Dieses kann notwendig sein, sollte ein bestehendes Modul mit einer neueren Version ersetzt worden sein.
Load ModuleLaden und starten des Moduls
Unload ModuleStoppt und entfernt das Modul aus dem Hauptspeicher.

Beispiel IBAN Modul hinzufügen

Mittels „Neues Modul hinzufügen“ startet der File-Upload Dialog vom Browser.

Nach erfolgreichem hinzufügen (keine Fehler), kann das Modul über die Buttons „Load Module“ und „Test Module“ gestartet werden. Das Fenster „Module Test“ wird geöffnet.

Mittels Copy und Paste wird folgender Text das Input-Fenster eingetragen:

Neue Bankverbindung!
Bankverbindung: VR-Bank Metropolregion Nürnberg eG
IBAN: DE02 1203 0000 0000 2020 51 BIC: GENODEF1NEA
Für Rückfragen stehen wir Ihnen gern zur Verfügung

Nach einem Druck auf den Button „Module ausführen“ wird das Modul mit dem Text ausgeführt.

Der untere Bereich enthält die aus dem obigen Text extrahierten Fragmente mit dem vom Modul vergebenen Namen, dem erkannten Text (Wert), der ermittelten Prozentangabe und einem Symbol ob „Ok“ oder „Fehlerhaft“.

Neben dem manuellen einfügen von Texten, kann die Prüfung auch direkt auf ein Dokument bezogen werden. Hierzu wird einfach der Befehl „doc[<ID des Dokumentes>]“ eingetragen. Der Modulprozessor lädt umgehend das Dokument und liefert dann die entsp. Ergebnisse. Analog zur Prüfung auf die erste Seite, kann mittels dem Befehl „page[<ID>_<Seitennummer>]“ auch gezielt eine einzelne Seite geladen werden.

Angewendet auf eine importierte Rechnung meiner Müllgebühren mit der ID 180.

Lautet der Befehl im Textfenster doc[180].

In obigen Beispiel ist gut zu erkennen das zwar zwei IBAN-Nummer extrahiert, aber nur eine IBAN als korrekt geprüft wurde. Hintergrund ist das am Ende stehende Komma, welches zu der Quote von 79% führte. Die im Modul vorhandene IBAN Prüfroutine entfernt keine Texte aus dem String, daher sollte bei einer nächsten Code-Änderung ein RegEx für das entfernen nicht gewünschter Inhalte mit eingebaut werden.

Test Modul mit Entität’s-Bezug

Anmerkung. Die Idee für eine Implementierung von Modulen kam während einer Diskussion mit meiner Lebensgefährtin in Bezug auf biffo selbst. Ich präsentierte voller Stolz das bisher erreichte und erklärte wie ich gedenke mein Dokumentenchaos in den Griff zu bekommen. Als Test und zur Präsentation liegen mir unzählige Metro-Rechnungen vor. Diese wurde von meinem Dokumentenscanner alle ins System übertragen und ich ordnete per Hand das von mir erstellte „METRO“ Tag zu. Beim ersten Zeigen kam sofort die Frage „Das geht automatisch?“ meine Antwort „Nein“, darauf dann Ihre Antwort „Das ist aber doof!“. Zugegeben die Metro-Rechnungen haben zwar einen einheitlichen Aufbau, aber was bringt eine Rechnung wenn man per Hand auch noch das Datum eingeben und/oder den Name vergeben muss? Also war die Idee für die Module geboren. Ich suchte nach einer Gemeinsamkeit aller Rechnungen und fand in den jeweiligen Strukturen immer folgenden Aufbau „25.04.2020/048/0/0/0004/021615“. Dieses Fragment ist einheitlich über alle Metro-Rechnungen existent. Leider ist es mit einem regulären Ausdruck nicht getan, da die Ergebnisse stark von dem jeweiligen Scanner abhängen. Also wurden einzelne Rechnungen mittels OpenNLP trainiert und das Model mit in das JAR-File übernommen. biffo enthält bereits die Libs für NLP.

Im Vergleich zu dem IBAN-Modul liefert der „MetroTagger“ nur den Title, das DocumentDate, Keywords und einen Score zurück.

Als Test dient das Dokument mit der Nummer 176, welche über den Aufruf doc[176] im Text dann das Modul ausführt und die Ergebnisse darstellt.

Der hierbei gelieferte Score, bezieht sich auf den Wert welcher von Open-NLP berechnet wurde.