Überführung von Stichworten (für ein Stichwortverzeichnis) aus einer Dokumentdatei in eine Konkordanzdatei

HowTos, komplexe Anleitungen und nützliche Dokumente

Moderator: Moderatoren

Forumsregeln
Hier bitte komplexere Anleitungen allgemeinem Interesses posten, sowie wichtige Dokumente zum Download.
Bitte hier (möglichst) keine Diskussionen führen. Für Fragen und Hinweise ein neues Thema im entsprechenden Unterforum eröffnen.
Antworten
quotsi
*****
Beiträge: 306
Registriert: Do, 14.11.2013 10:04

Überführung von Stichworten (für ein Stichwortverzeichnis) aus einer Dokumentdatei in eine Konkordanzdatei

Beitrag von quotsi » Do, 30.08.2018 14:57

Die Überführung von Stichworten für ein Stichwortverzeichnis aus einer Dokumentdatei in eine Konkordanzdatei

(0) Einleitung:
Prinzipiell gibt es unter LO|AOO zwei alternative Wege für ein Textdokument, Stichworte und Stichwortverzeichnis zu erstellen:
1) Auswahl der Stichworte (oder Formulierungen) im Text und im Nachgang die Erstellung eines Stichwortverzeichnisses. In diesem Falle verbleibt alles im Textdokument und kann wie immer gesichert werden.
2) Man sammelt die Stichworte oder Formulierungen (=Suchworte) in einer getrennten Datei, einer sogenannten Konkordanzdatei. Diese kann unabhängig bearbeitet werden, aber muß zur Erstellung des Stichwortverzeichnisses zur Verfügung stehen. Dokument- und Konkordanzdatei müssen nach jeweiligen Änderungen gesichert werden. Vorteilhaft ist die Möglichkeit, dass ein und dieselbe Konkordanzdatei für inhaltlich ähnliche Textdateien verwendet werden kann und Bearbeitungen der Stichworte an zentraler Stelle vorgenommen werden können.

Dieses Projekt beschäftigt sich mit dem Problem, wie man aus einer großen Dokumentdatei die Stichworte, die nach erster Methode erstellt wurden, in eine Konkordanzdatei überführen kann.

(1) Anmerkung:
• Diese Anleitung wurde unter LibreOffice 6.1.3.2 (X64) und AOO 4.1.5 getestet. Auf mögliche Unterschiede wird hingewiesen.
• Diskussionbeiträge und Fragen bitte nur über das writer-Forum oder über die Kontaktdaten (mail) !

(2) Grundsätzliches
Grundsätzlich sollte die Quell(-odt)-Datei zuerst gesichert werden, weil das Makro AlleStichworteTilgen die Stichworte mit den Einträgen im Stichwortverzeichnis unumkehrbar tilgt. Nur bei Stichwortverzeichnissen anhand einer Konkordanzdatei können Stichworte und Stichwortverzeichnis anhand jener problemlos wieder hergestellt werden.
Empfehlenswert sind grundlegende Kenntnis über die Struktur einer Konkordanzdatei: Es ist eine Tabelle, in deren erster Spalte die Stichworte oder Formulierungen wortgetreu stehen, wie sie im Text gefunden werden (sollen). In der zweiten Soalte stehen alternative Worte oder Fornulierungen, die anstelle der ersteren im Stichwortverzeichnis bzw. -register erscheinen. Danach sind zwei Spalten für Schlüsselworte oder -Bezeichnungen reserviert, die eine ordnende Gliederung im Verzeichnis ermöglichen. Die letzten beiden Spalten spezifizieren die Sucheigenschaften. Nämlich, ob nur ganze Worte oder bereits Teile davon zutreffend sind und schließlich, ob Groß- und Kleinschreibung unterschieden werden sollen oder nicht.

(3) Makros
Die oben verlinkte Musterdatei „Der Taucher mit Stichwortverzeichnis und Inhaltsverzeichnis“ zum Experimentieren enthält die notwenigen vier Makros, die in eine eigene Datei (oder sogar in das writer-Programm) kopiert werden können.
Man kann aber auch diese Musterdatei und seine eigene zugleich öffnen und auf jedes Makro zugreifen ohne es zu kopieren. Wird dann ein Makro zur Durchführung aufgerufen, wirkt es auf die zuletzt geöffnete (=aktive) Datei.

Die Überführung von Makros in eine eigene Datei xxx
Öffnen der Datei xxx, in die die Makros eingefügt werden sollen. Dann Menü Extras → Makros → Makros verwalten → (LO) LibreOffice Basic bzw. (AOO) OpenOffice Basic . Jetzt xxx aufklappen und auf Standard gehen, Menü Verwalten, auf Karteizunge Module verbleiben und Neu. Das neue Modul benennt man z.B. Stichworte. In dieses Modul fügt man alle 4 Makros wie folgt ein:
Hierzu öffnet man zusätzlich die Musterdatei “Der Taucher...” , Menü Extras → Makros → Makros verwalten → (LO) LibreOffice Basic bzw. (AOO) OpenOffice Basic , klappt “Der Taucher...” auf, dann auf Modul “Standard”. Jetzt sind die 4 Makros sichtbar, deren erstes man mit Verwalten öffnet, mit Strg+A komplett markiert und mit Strg+C in das Modul “Stichworte” der Zieldatei XXX mit Strg+V einfügt. Speichern und ggf. Standard zu- und wieder aufklappen. Man sieht sofort das eingefügte Makro. Nacheinander gleichartig verfährt man mit den anderen Makros, die man in derselben Maske anhand der unteren Karteizungen ausswählen kann. Man fügt sie jeweils am Ende des ersten Makros an. Die Makronamen erscheinen dann selbständig unter dem Modul "Stichworte" (bzw. wohin man eingefügt hat). Danach unbedingt alles sichern.

Damit die Makros wirken können, muß man (LO) unter Extras→ Optionen→ LibreOffice→ Sicherheit→ Makrosicherheit bzw. (AOO) Extras→ Einstellungen→ OpenOffice→ Sicherheit→ Makrosicherheit diese auf Mittel herabsetzen. Man muß vor der Ausführung eines Makros ohnehin noch zustimmen.

Das Makro AlleStichworteTilgen wurde aus http://www.ooowiki.de/KonkordanzDatei.html übernommen. Die anderen Makros habe ich selbst entwickelt.

Vor einer Löschung von Stichworten müssen alle Stichworte in eine vorläufige Konkordanzdatei exportiert werden, was mit dem eingebauten Makro „AlleStichworteInKonkordanzSDI“ erfolgt. Dieses Makro hat naturgemäß einige Schwächen:
• Es erkennt nur die mit Strg+F8 sichtbar gemachten, markierten Stichworte oder Passagen und überführt sie als Suchworte. Sind die Markierungen auf ein Leerzeichen vor dem Stichwort beschränkt, wird folglich kein Stichwort exportiert, sondern ein leeres Suchwort erzeugt. Solche Stichworte müssen entweder vorher verändert werden oder später nachgetragen werden, weshalb sich Notizen oder Zwischensicherungen als zweckmäßig erweisen. Die Alternativeinträge und Schlüssel 1. und 2. Ordnung werden hingegen korrekt exportiert.
• Auch die Merkmale Groß/Klein und Ganzes Wort können nicht erkannt werden und werden deshalb mit festen Werten für Groß/Klein 1 (=ja) und für Ganzes Wort 0 (=nein) versehen. Diese Merkmale müssen in der Konkordanzdatei entsprechend den eigenen Wünschen überarbeitet werden.

(4) Anzeige der Stichworte
Man kann sich vor der Löschung alle Stichworte nacheinander anzeigen lassen:
(4a) mit dem Makro „AlleStichworteZeigen“
Dieses Makro ruft man auf mit Extras→ Makros→ Makro ausführen und dann zur Bibliothek gleichen Namens („Der Taucher mit Stichwortverzeichnis und Inhaltsverzeichnis“) wie die Beispieldatei, dann zum Modul Standard und weiter zum Makro „AlleStichworteZeigen“Ausführen.
Gelistet werden alle Stichworte, wie sie vom Makro „AlleStichworteInKonkordanzSDI“ später exportiert werden.
Die angezeigten Nummern entsprechen nicht der Reihenfolge im Text, sondern des Eintrags als Stichwort. Auch springt der Cursor während der Anzeige nicht von Stichwort zu Stichwort.
(4b) mit dem Makro „NurLeereStichworteZeigen“
Dieses Makro ruft man auf mit Extras→ Makros→ Makro ausführen und dann zur Bibliothek gleichen Namens („Der Taucher mit Stichwortverzeichnis und Inhaltsverzeichnis“) wie die Beispieldatei, dann zum Modul Standard und weiter zum Makro „NurLeereStichworteZeigen“Ausführen.
Gelistet werden nur diejenigen Stichworte, die beim Export mit dem Makro „AlleStichworteInKonkordanzSDI“ leer bleiben werden, aber dennoch in ihrem korrekten Zusammenhang mit den alternativen Einträgen und Schlüsseln.
Die Nummern entsprechen nicht der Reihenfolge im Text, sondern des Eintrags als Stichwort.
Auch springt der Cursor während der Anzeige nicht von Stichwort zu Stichwort.
(4c) mit der im writer eingebaute Routine
Man setzt den Cursor unmittelbar vor das erste markierte Stichwort, dann Bearbeiten→ Verzeichniseintrag oder rechtes Mausmenü Verzeichniseintrag. In der dann sichtbaren Maske steuert man mit der unteren Pfeilreihe durch alle Stichworte. Durch einen Fehler im Programm (LO und AOO) werden keine oberen Pfeile angezeigt, wenn das Stichwort nur einen Treffer hat wie das erste Stichwort in unserer Beispieldatei. Setzt man den Cursor z.B. vor das zweite Stichwort, dann erscheinen die zwei Pfeilreihen und bleiben beim Durchsuchen (sogar rückwärts) erhalten.
Während der Anzeige springt der Zeiger im Text in richtger Reihenfolge von Stichwort zu Stichwort.
Deshalb ist diese Methode vielleicht günstiger, wenn man sich Notizen zu den Stichworten machen muß, die nur durch eine Marke vor dem Stichwort markiert sind und die durch das Raster des Export-Makros fallen werden, siehe (3) und (5).

(5) Kopie der Stichworte in eine Konkordanzdatei.sdi
Der Name „Konkordanzdatei(.sdi)“ und das Zielverzeichnis werden im Makro vorgeschlagen, können jedoch während des Ablaufs angepaßt werden.
Der Aufruf des Makros erfolgt mit Extras→ Makros→ Makro ausführen und dann z.B. zur Bibliothek „Der Taucher mit Stichwortverzeichnis und Inhaltsverzeichnis“, dann zum Modul Standard und weiter zum Makro „AlleStichworteInKonkordanzSDI“, dann ausführen.
Das Makro sortiert die Stichworte und liquidiert Duplikate. Alle Einträge, deren Stichwort im Text nur eine Markierung vor dem Stich"wort" im Text aufweisen, werden leer, aber mit ihren sogenannten Alternativeinträge und Schlüsseln exportiert. Hier muß gegenebenfalls nachgearbeitet werden.

(6) Löschung der Stichworte im Text
Jetzt kann man alle Stichworte mit dem Makro löschen. Man ruft das Makro auf mit Extras→ Makros→ Makro ausführen und dann zur Bibliothek gleichen Namens wie die Beispieldatei („Der Taucher mit Stichwortverzeichnis und Inhaltsverzeichnis“), dann Modul Standard und weiter zum Makro „AlleStichworteTilgen“ , dann ausführen
Mit erfolgreicher Tilgung leert sich auch das Stichwortverzeichnis und kann auf klassische Weise nicht mehr wiederhergestellt werden. Aber dafür kann man das Stichwortverzeichnis mithilfe der Konkordanzdatei umgehend neu erstellen.

(7) Die Überarbeitung der Konkordanzdatei.sdi
Man darf diese Datei durchaus umbenennen, aber die Endung .sdi muß man zwingend beibehalten.
Es gibt grundsätzlich zwei gleichwertige Wege. Entweder bearbeitet man die Konkordanzdatei selektiv extern (wie hier unter (7a und 7b) nachfolgend beschrieben) und setzt dann nach (8) fort oder man verbindet sie zuerst mit der Dokumentdatei nach (8) und bearbeitet erst danach die Konkordanzdatei intern nach (7c).

(7a) Aus dem (LibreOffice oder AOO) writer heraus kann man eine Konkordanzdatei jederzeit separat zum Bearbeiten öffnen!
(Durch Doppelklick im Windowsexplorer heraus gelingt dies so nicht, sondern die Konkordanzdatei wird dann in wordpad geöffnet, wo keine Sortierung ageboten wird.)
Nach einer Bearbeitung wird gesichert, man bestätigt in LO "Textformat" bzw. in AOO "Format beibehalten".

(7b) Eine Bearbeitung mit calc, wie im wiki http://www.ooowiki.de/KonkordanzDatei.html seinerzeit empfohlen, ist ebenso möglich. Sie bietet den Vorteil einer tabellarischen Übersicht.
Hierzu kopiert man den Inhalt der Konkordanz.sdi (mit Strg+C) und fügt ihn in eine leere calc-Tabelle (mit Strg+Umsch+V) ein, wobei man unformatierter Text und Semikolon als Feldtrenner bestätigt. Dann kann man die Tabelle bearbeiten, sortieren usw.
Nach der Bearbeitung speichert man[ i]unter Dateityp CSV[/i], ohne automatische Dateiendung, gibt den Namen ...sdi vor und Filtereinstellung bearbeiten[/i], dann Feldtrennzeichen ; und Zeichenkettentrennzeichen bleibt leer.

(7c) Das Bearbeiten der Konkordanzdatei kann auch intern im writer mit der geöffneten Dokumentdatei (.odt) erfolgen, sofern man zuvor die Verbindung zur Konkordanzdatei nach (8) herstellte.
Man geht auf die Überschrift Stichwortverzeichnis, dann rechtes Mausmenü Verzeichnis bearbeiten → Knopf Datei → Bearbeiten.
Es öffnet sich die Konkordanzdatei in tabellarischer Ansicht. Den Kommentar zum ersten Stichwort läßt man unbedingt unberührt (damit die Struktur bei externe Bearbeitung (nach 7a und 7b) erkennbar bleibt). Nach Speichern und Schließen sind die Änderungen in der Konkordanz.sdi (oder anders benannten Konkordanzdatei) bleibend eingetragen.

Was muß ich in der Konkordanzdatei ändern:
• Bei leeren Stichworten (= 1. Position in jeder Zeile), aber vorhandenen Alternativeinträgen für das Stichwortverzeichnis (= 2. Position in jeder Zeile) und intakten Schlüsseln (= 3. und 4. Position in jeder Zeile) müssen die Stichworte anhand der Notizen nachgetragen werden.
(im Beispiel: in erster Zeile Knapp vor Knapp, Knappe) / in der zweiten Zeile Knecht vor Knecht)
Groß- oder Kleinschreibung zu unterscheiden wurde im Makro grundsätzlich bejaht. Auch dies muß ggf. korrigiert werden (Vorletzte Zeilenposition von 1 auf 0 setzen).
• Das Makro hat die ausschließliche Erfassung ganzer Stichworte grundsätzlich verneint. Hier kann man ebenfalls noch ändern (letzte Zeilenposition von 0 auf 1 setzen).
(im Beispiel: Ring → 1, sonst würde "bringt" auch als Treffer gewertet)

Sogenannte Haupteinträge, die dann im Verzeichnis mit fetten Seitennummern erscheinen, kann man nicht in der Konkordanzdatei festlegen, sondern müssen nachträglich im Dokument-Text über das Menü Bearbeiten->Verzeichniseintrag individuell überarbeitet werden.

(8) Erstellung eines neuen Stichwortverzeichnisses mithilfe der Konkordanzdatei.sdi
Dazu geht man auf die Überschrift Stichwortverzeichnis, dann rechtes Mausmenü Verzeichnis bearbeiten.
In der Maske wird Konkordanzdatei bejaht und unter Datei → öffnen (nicht neu!) die Konkordanzdatei.sdi (beziehungsweise die umbenannte) gesucht und bestätigt. Sofort nach Bestätigung werden alle Stichworte automatisch markiert und das Stichwortverzeichnis neu aufgebaut.
Jetzt kann man die Konkordanzdatei beliebig ergänzen oder bearbeiten. Sollte eine Stichwortlöschung in der Konkordanzdatei erforderlich sein, muß man eventuell alle Stichworte wieder mit dem Makro löschen und das Stichwortverzeichnis anhand der überarbeiteten Konkordanzdatei aktualisieren. Das kann mehrfach ohne Probleme erfolgen.

(9) Epilog
Das natürliche Bedürfnis nach schneller Korrektur von Stichworteinträgen läßt den Wunsch nach einer zentralen Instanz, wo die Stichworte bearbeitbar gespeichert werden, aufkommen. Die gibt es im Dokument aber nicht. Deshalb erscheint die externe Speicherung in einer Konkordanzdatei naheliegend. Bei näherem Hinsehen erkennt man aber Unterschiede. So ist bereits der Vermerk Haupteintrag nicht in der Konkordanzdatei erfaßbar. Das hätte aber auch keinen Sinn, da die Konkordanzdatei eine neue Stichwortsuche und -markierung im Dokument anstößt und folglich allen passenden Stichwort-Treffern dieses Merkmal verpaßt hätte, was der Grundidee widerspricht.
Das Makro „AlleStichworteInKonkordanzSDI“ erforscht derzeit nur das Stichwortverzeichnis, d.h. nur alle dort enthaltenen Informationen können ausgelesen werden. Wenn also ein vom Stichwort abweichender Registereintrag gewünscht wurde, dann ging bei der klassischen Erzeugung des Stichworteintrags bereits das Stichwort verloren und kann folglich auch mit keinem Makro aus dem Verzeichnis extrahiert werden. Die bei einer Stichwort-Suche notwendigen Informationen, so z.B. ob eine Unterscheidung von großer und kleiner Schreibung wichtig ist und ob nur ganze Worte ausgewählt werden sollen, wurden naturgemäß auch nicht im Stichwortverzeichnis festgehalten und können folglich mit dem derzeitigen Makro nicht ermittelt werden. Diese Unterschiede zwischen klassischem Stichworteintrag und Stichworteintrag und -verzeichnis durch Konkordanzdatei sind also bereits im Konzept begründet und können bei der Umformung ohne manuelle Bearbeitung nicht umgangen werden.
win7prof - Avira - LO 6.1.3.2 (x64) - AOO 4.1.5

Antworten