Primärcontent importieren - Technisches

Der Importprozess läuft normalerweise automatisiert

Anmerkung:

Import (initial und fortlaufend)

Das XQuery-Skript ESVRS-Update.xq importiert Entscheidungen, die in einer bestimmten Form an einem Quellort bereitgestellt werden.

Voraussetzungen:

  • Eine XML-Datei, welche die Pfade zu den Dateien beinhaltet ($sourcefile)
  • Die Dateien müssen als Zip vorliegen
  • Die XSLT-Konvertierung muss zur Verfügung stehen ($xslt_*)
  • Die Liste der normierten Gerichte (Verlinker) muss zur Verfügung stehen für die Konvertierung ($verlinker_gerichte_db)

Die XML-Datei ($sourcefile) hat folgende Syntax:


<rss>
   <file source="bund">./zip/bund/BGH/KORE622452018.zip</file>
</rss>

Der Wert im Attribut @source steuert die verwendete Konvertierung und die Behandlung des Zip-Archivs.

Der Wert im Element <file> ist der zu $basepath relative Pfad zum Zip.

Bei der Konvertierung werden Fundstellen generiert; dafür wird der höchste Wert des Elements <es.fundstellen/publikation/seite> ermittelt und hochgezählt. Dabei kann es wegen nachfolgenden Konvertierungsfehlern zu ausgelassenen Werten kommen, was aber kein Hindernis darstellt. Wichtig ist, dass bereits in der Datenbank vorhandene Fundstellen niemals verändert werden dürfen und persistent sein müssen.

Es wird in das Default-Temp-Verzeichnis entzippt, damit mögliche Probleme beim Handling von Nicht-UTF-8-Dateien umgangen werden (beim Entzippen im Speicher ohne Serialisierung können Probleme auftreten).

Das XQuery-Skript bildet eine eindeutige ID aus den Metadaten Gericht, Aktenzeichen und Datum sowie aus einem Zählwert der vorhandenen Elemente, da diese drei Elemente nicht 100% eindeutig sein müssen (z.B. kann es eine Eindeutigkeit noch eine Angabe des Urteilstyps erfordern). Diese Methode ist sicherer, als den Urteilstyp zu parsen (falls überhaupt in den Daten korrekt vorhanden).

Die Bilder sowie ihre Referenzen müssen ebenfalls mit dieser ID versehen werden, da in den Daten oft gleiche Benennungen in unterschiedlichen Entscheidungen verwendet werden. Letztere zu übernehmen ist nicht möglich, da wir nur einen Ordner abbildungen im Werk vorgesehen haben.

Um nur einen validen Datenbestand zu haben, werden möglicherweise auftretende Probleme bei der Konvertierung wie folgt behandelt:

  • Dateien, welche nach der Konvertierung invalide sind, werden im Originalformat im Datenbankpfad _VALIDATION-ERROR gespeichert
  • Dateien, welche bei der Konvertierung einen expliziten Fehler ausgeben, werden im Datenbankpfad _XSLT-ERROR gespeichert

Zur weiteren Analyse und Debuggen dieser gescheiterten Dateien können sie in der Datenbank recherchiert werden oder auch separat mit dem XQuery-Skript exvrs-export-error-files.xq exportiert werden.

Re-Import (nach Datenanreicherung, z.B. durch Verlinker)

Der normale Import überschreibt nie bereits vorhandene Dateien. Um Dateien zu aktualisieren, ist folgendes Vorgehen erforderlich.

  • zu re-importierende Dateien flach in einem Ordner sammeln $dir
  • XQuery-Abfrage basex-pfade-ausgeben.xq ausführen, Ergebnis als XML speichern. Erforderlich, um die Datenbank-Pfadnamen zuordnen zu können.
  • XQuery import/xq/ESVRS-Reimport.xq ausführen, dabei Variablen anpassen: $dir, $basex-pfade-als-xml

Der Re-Import-Prozess prüft auf Validität und importiert nur valide Dateien. Invalide Dateien werden protokolliert.

Die Ausgabedatei von basex-pfade-ausgeben.xq dient dabei als Mapping eines Dateinamens zum tatsächlichen Datenbankpfad. Die eindeutige ID ist hier der Dateiname.