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.
Nummer | Spalte | Beschreibung |
1 | NA | Auswahlmöglichkeit/Selektion für Massenänderungen |
2 | Classname | Classname des Moduls |
3 | NA | Steuerung 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. |
4 | Jar-File | Das Upload-Jar File |
5 | Type | Um welchen Type handelt es sich bei dem Modul. Wird Entitäten vom Modul oder Fragmente bereitgestellt. |
6 | Version | Versionsnummer zusammengesetzt aus Major und Minor |
7 | Autor | Autor des Moduls |
8 | Beschreibung | Kommentar |
9 | NA | Falls 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:
Button | Funktion | Beschreibung |
Alle markieren | Markiert alle Zeilen auf der aktuell angezeigten Seite. | |
Markierung aufheben | Hebt die Markierung der Liste wieder auf. | |
Neues Modul hinzufügen | Startet 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öschen | Löscht die markierten Module. | |
Aktualisieren | Führt einen Refresh der Liste durch. | |
Markierte Module starten | Startet die markierten Module | |
Markierte Module stoppen | Stoppt 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.
Button | Funktion | Beschreibung |
Abbrechen | Abbruch (Rückgängig falls Edit-Modus) ansonsten Edit-Modus verlassen. | |
Module speichern und schließen | Speichert das Modul und kehrt zu dem vorherigen Fenster zurück. | |
Module speichern | Speichert das Modul | |
Module editieren | Wechselt in den Edit-Modus | |
Module überprüfen | Testet ob das Modul geladen werden konnte. |
Innerhalb der Listendarstellung, kann das jeweilige Modul auf ein vorhandenes Dokumente getestet werden. Die Steuerungsleiste bietet hierzu folgende Funktionen:
Button | Funktion | Beschreibung |
Test Module | Wechselt in den jeweiligen Test-Dialog. Hier kann entweder mittels Copy&Paste ein Text eingegeben oder ein bestehendes Dokument geladen werden. | |
Synchronize Module | Führt eine Synchronisierung des Moduls durch. Dieses kann notwendig sein, sollte ein bestehendes Modul mit einer neueren Version ersetzt worden sein. | |
Load Module | Laden und starten des Moduls | |
Unload Module | Stoppt 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.
Wichtig! Module arbeiten auf Textebene und können von Außen in das System mittels Upload eingebunden werden. Somit können Module auch ein gewisses Sicherheitsrisiko z.B. Datenabfluss darstellen. Bitte installieren Sie nur Module die a) aus gesicherten Quellen inkl. Source-Code stammen oder b) Sie selbst umgesetzt haben. Der Autor übernimmt keinerlei Haftung.