Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

  • IDN - Tabulator - neuer Feldinhalt (für neu Einfügen)
  • IDN - Tabulator - alter Feldinhalt - Tabulator - neuer Feldinhalt (für Ersetzungen)

Mögliche Aktionen:

  • Neu Einfügen:Im Feld "Feld, das bearbeitet werden soll", das neu zu erfassende Feld eingeben, Wiederholbarkeit je nach Fall angeben, "obengenanntes Feld mit neuem Inhalt aus Konkordanz neu einfügen" auswählen. Dann weiter mit "OK".
  • Ersetzen: Im Feld "Feld, das bearbeitet werden soll", das Feld eingeben, dessen Inhalt ersetzt werden soll, "obengenannten Feldinhalt ersetzen durch Feld und Inhalt der Konkordanz"  auswählen, bei Feld das neue Feld eingeben (kann ein neues oder das bisher verwendete Feld sein). Dann weiter mit "OK".

...

Suche-/Ersetzungsmöglichkeiten (Angaben zu den Feldern und Inhalten)

...

  • Standard: Hier wird die angegebene Feldbezeichung und der Inhalt einfach hintereinander geschrieben und dann gesucht/ersetzt. Dies hat zur Folge, dass der gesuchte Inhalt am Anfang des Feldes stehen muss, sonst wird er nicht gefunden und damit auch nicht ersetzt.
    • Beispiel: Angabe: Ausgangsfeld "008", Inhalt des Ausgangsfeldes "kio" ergibt Suche nach "008 kio"; wenn im Datensatz vorhanden : "008 kio;kiz" (Haken) Suche erfolgreich, Ersetzung kann stattfinden; aber: wenn im Datensatz vorhanden : "008 kiz;kio" (Fehler) Suche nicht erfolgreich, Ersetzung kann nicht stattfinden
  • Reguläre Ausdrücke: Auch die Verwendung von regulären Ausdrücken ist möglich. Hierzu bitte den entsprechenden Haken setzen
    • Alle Parameter, Zeichenklassen, Quantoren etc. der regulären Ausdrücke können verwendet werden. Die Suchbegriffe können hierdurch viel flexibler gestaltet werden.
      • Beispiel: Ausgangsfeld "008", Inhalt des Ausgangsfeldes ".*?kio.*?" findet sowohl "008 kio;kiz" als auch "008 kiz;kio"
      • Beispiel: Ausgangsfeld "548", Inhalt des Ausgangsfeldes "\d\.\d\.\d\d\d\d" findet "548 9.7.1974", "548 2.8.1822" etc.
      • Informationen über reguläre Ausdrücke
      • Für die Generierung spezieller regulärer Ausdrücke können Sie sich auch gerne an IT1.1 wenden
      • S.a. unten bei "Anwendungsbeispielen"
  • Auch in den Angaben in Konkordanzen können reguläre Ausdrücke genutzt werden
Auswahl der IDN-Liste bzw. der Konkordanz

Image RemovedImage Added

Das Skript bearbeitet Datensätze nach einer IDN-Liste, pro Zeile muss dabei eine IDN stehen. Für die Konkordanzen gelten die oben gemachten Angaben. Die IDN-Liste bzw. Konkordanz wird durch den üblichen Windows-Datei-Öffnen-Dialog ausgewählt.

  • Eine IDN-Liste kann aus einem Suchset durch die Funktion "ErstelleDNListe" im Menü "Datei" der WinIBW erstellt werden. Regulär werden dabei höchstens 1.000 IDNs in die Liste geschrieben. Wenn das Suchset mehr als 1.000 Datensätze umfasst, kann nach dem Laufen des DatensatzAendernAutomat-Skripts eine neue Suche durchgeführt werden und dann eine neue Liste mit den nächsten 1.000 IDNs erstellt werden (die vorherigen 1.000 IDNs wurden ja mittlerweile abgearbeitet und sollten nicht mehr im Suchset vorhanden sein). Die Einschränkung auf 1.000 hat auch seine Vorteile, weil die Laufzeit des Skriptes sonst sehr lang werden kann.
  • Wenn man durch eine WinIBW-Abfrage nicht die Datensätze selektieren kann, die automatisiert geändert werden soll (weil die Indizes es nicht hergeben), können Sie sich an IT1.1 wenden und dort um Unterstützung bitten.
  • Die IDN-Liste sollte möglichst in ein eigenes Verzeichnis gelegt werden, weil genau dorthin auch die Logdateien von DatensatzAendernAutomat geschrieben werden (s.u.) und man sich so schnellerorientieren schneller orientieren kann.
Logdateien

Das Skript schreibt verschiedene Logdateien, um die Ergebnisse des Laufes kontrollieren zu können. Der Name jeder Logdatei beginnt mit dem Feld, das man unter "1. Ausgangsfeld" angegeben hat. Sie werden in dem Verzeichnis abgelegt, in dem die abzuarbeitende IDN-Liste liegt.

...

  1. in den Datensätzen einer IDN-Liste soll im Feld 008 der Entitätencode "kio" eingefügt werden, falls es noch keinen anderen Entitätencode gibt.
    1. Ausgangsfeld "008"
    2. Inhalt des Ausgangsfelds "kio"
    3. kein Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
    4. Aktion: Haken bei "oben genannten Feldinhalt neu einfügen"
    5. kein Trennzeichen angeben, da der Entitätencode nicht an einen eventuell bereits vorhanden angehängt werden soll
  2. in den Datensätzen einer IDN-Liste soll im Feld 008 der Entitätencode "kio" eingefügt werden. Falls es bereits einen anderen Entitätencode gibt, soll er hinzugefügt werden
    1. Ausgangsfeld "008"
    2. Inhalt des Ausgangsfelds "kio"
    3. kein Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
    4. Aktion: Haken bei "oben genannten Feldinhalt neu einfügen"
    5. als Trennzeichen ";" angeben, da der Entitätencode an einen eventuell bereits vorhanden angehängt werden soll. Laut Datenformat werden weitere Entitätencodes mit ";" angehängt.
  3. in den Datensätzen (GND) einer IDN-Liste sollen strukturell falsche exakte Lebensdaten im Feld 548 korrigiert werden. Korrekte Struktur: "DD.MM.JJJJ", in den Daten gibt es aber oft "D.M.JJJJ"
    1. für Geburtsdatum in $a
      1. Ausgangsfeld "548"
      2. Inhalt des Ausgangsfelds: "(\d\.)(\d\.)(\d\d\d\d.*\$4datx)"
      3. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
      4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch",
      5. Feld: "548"
      6. Feldinhalt: "0$10$2$3"
    2. für Sterbedatum in $b
      1. Ausgangsfeld "548"
      2. Inhalt des Ausgangsfelds: "(.*\$b)(\d\.)(\d\.)(\d\d\d\d.*\$4datx)"
      3. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck"
      4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch",
      5. Feld: "548"
      6. Feldinhalt: "$10$20$3$4"
  4. in den Datensätzen des Bonner Katalogs sollen in den Personenfeldern (30XY) die dort noch vorhandenen Strings durch Verknüpfungsnummern ersetzt werden. Eine Konkordanz "Name - IDN" liegt vor, so dass man für häufig vorkommenden Namen (Mozart, Verdi, Wagner...) das Skript verwenden kann. Beispiel Grundlage: IDN-Liste des Suchsets "f (per mozart, wolfgang amadeus or per egk, werner) and bbg maxl" (so hat man in einem Suchset zwei Namen und kann gleich beide in einem Lauf abarbeiten).
    1. Ausgangsfeld (1): "(30..)"
    2. Inhalt des Ausgangsfelds (1) "Mozart, Wolfgang Amadeus"
    3. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck" (1)
    4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch" (1)
    5. Feld: "$1" (1)
    6. Inhalt: "!118584596!" (1)
    7. Ausgangsfeld (2): "(30..)"
    8. Inhalt des Ausgangsfelds (2) "Egk, Werner"
    9. Haken bei "Feld ist wiederholbar" und "Regulärer Ausdruck" (2)
    10. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch" (2)
    11. Feld: "$1" (2)
    12. Inhalt: "!118529129!" (2)
      Bei diesem Beispiel muss beachtet werden, dass in jedem Datensatz der IDN-Liste nach beiden Namen gesucht wird, in den meisten Fälle aber nur einer gefunden wird. Daher wird fast jeder Datensatz in der Fehlerliste auftauchen, obwohl der jeweils andere Name korrigiert werden konnte, was in diesem Fall eigentlich kein Fehler wäre.
  5. in einigen Datensätzen gibt es im Feld 4060 einen spezifischen Tippfehler: "1 Schallackplatte" statt "1 Schellackplatte". IDN-Liste: "f ufa Schallackplatte"
    1. Ausgangsfeld: "4060"
    2. Inhalt des Ausgangsfelds: "1 Schallackplatte"
    3. kein Haken bei "Feld ist wiederholbar"und "Regulärer Ausdruck"
    4. Aktion: Haken bei "oben genannten Feldinhalt ersetzen durch"
    5. Feld: "4060" 
    6. Inhalt: "1 Schellackplatte"
      Wenn der falsche Inhalt auch "2 Schallackplatten" sein könnte oder ähnliches, könnte man dies mit regulären Ausdrücken abfangen: Inhalt des Ausgangsfelds dann : "(\d) Schallackplatte(n?)"; ersetzen durch "$1 Schellackplatte$2"
  6. Für eine IDN-Liste soll in Exemplardaten jeweils das Feld 8034 hinzugefügt werden, mit jeweils anderem Inhalt. Achtung: Bei Exemplardaten gelten besonderen Bedingungen, da hier die Feldzählung im Vergleich zu den bibliographischen Angaben nicht aufsteigend ist. Beispielsweise kann es nach dem einleitenden Feld 7001 ein Feld 4801 geben. Damit kommt das Skript nicht zurecht. Lösung: Immer ein Feld mit einer höheren Nummern als die Level0-Felder als Anker benutzen (z. B. 8100) und dieses Feld inkl. Inhalt durch sich selbst und das neue gewünschte Feld + Inhalt ersetzen.
    1. Anlegen einer Konkordanz "IDN" - Tabulator - alter Inhalt, am besten RegEx: "(.*)" - Tabulator - "neues Feld/Inhalt, inkl. Bezug auf den RegEx des Inhalt des alten Feldes, damit das wieder eingefügt wird: "$1\n<neues Feld> <neuer Inhalt"
    2. Reiter "Angabe einer Konkordanz" auswählen
    3. Ausgangsfeld: "8100"
    4. Regulärer Ausdruck anhaken
    5. "obengenannten Feldinhalt ersetzen durch ...": "8100"
    Ergebnis: Eintrag der Konkordanz 
    1054371873    (.*)    $1\n8034 Seitenzählung entspricht dem Original
    erzeugt im Datensatz aus
    8100 F-1914-296156485
    ->
    8100 F-1914-296156485
    8034 Seitenzählung entspricht dem Original


Historie

Datum

geändert von

Beschreibung

2012-10-04

Mujkic

neu erstellt

2014-01-20Grundausführliche Beschreibung
2016-04-01GrundBeschreibung der Konkordanz, Beispiel 6
Scriptdatei(en)

dnb_public.js