WordPerfect 5.1-Datei PostScript-Datei

allegro-C Logo

allegro news Nr. 41

Ausgabe 96/1, 15. Apr. 1996

Universitätsbibliothek der Technischen Universität Braunschweig, Universitätsplatz 1, D-38106 Braunschweig, Tel. (0531)/391-5011, -5026, FAX -5836

Remember all that's worth a thought,
recall just what we need.
Find out
about
what's useful yet,
the rest - forget!

Das organisierte Vergessen


Kann es das geben: eine Funktion für intelligentes Vergessen, die automatisch genau den Ballast, aber nur diesen, verschwinden läßt? Nach längerem Betrieb einer ständig wachsenden Datenbank (wie nach längerem Aufbau eines Bibliotheksbestandes) beginnen Zweifel zu nagen, ob alle angesammelten Daten (bzw. Dokumente) aufbewahrungswürdig sind "für alle Zeit". Gewiß, man ist konservativ, d.h. man will und soll bewahren, nicht wegwerfen, und niemand kann alle Fragen voraussehen, die an eine Datenbank (oder einen Bestand) später einmal gestellt werden mögen. Andererseits sollte man vielleicht auch bedenken, daß man diverse Angaben, die für eine Suche einmal interessant sein könnten, gar nicht erfaßt hat (Benutzer interessieren sich nun mal nicht ausschließlich für RAK- und RSWK-Kriterien), und erst recht, daß man nur einen kleinen Teil aller relevanten Dokumente überhaupt besitzt. Voreiliges Löschen von Daten kann sich auch als fatal herausstellen. So gab es etwa Fälle, wo alle Personennamen per Programm auf RAK-WB-Form zurechtgestutzt wurden (zweiter Vorname auf Initiale gekürzt, weitere Vornamen beseitigt). Nachdem die umstrittene Regel abgeschafft wurde, war diese Aktion nicht rückgängig zu machen. Solcherlei abschreckende Erfahrungen und die niedrigen Preise für Plattenspeicher scheinen es nahezulegen, lieber alles unbesehen aufzubewahren, was einmal gespeichert ist. Jedes ordentliche Datenbanksystem ermöglicht jederzeit eine zweckmäßige Datenausgabe, die nur das jeweils Wichtige zeigt und das Überflüssige unterdrückt, ob es nun das fünfte Schlagwort oder der zweite Vorname ist. Die Platten sind gewiß nicht mehr das Problem, das sie einmal waren, zumal nicht mit dem speichersparsamen allegro. Magazinraum für die physische Aufbewahrung von Dokumenten ist da weitaus teurer. Gleichwohl und wie auch immer - es kommt doch nicht selten der Moment, wo man Dateien, Datensätze oder Datenfelder aus guten Gründen löschen will. Weil derzeit noch alle künstliche Intelligenz der Welt nicht ausreicht, um Befehle wie "Lösche alles, was nicht mehr nützlich ist!" auszuführen, muß man die Methoden kennen, wie man als unnütz erkannte Daten loswird. Da gibt es im allegro-System eine ganze Reihe von Methoden für die unterschiedlichsten Zwecke. Einige gab es schon immer, andere sind noch recht neu. Um Übersicht zu schaffen, wurde eine hoffentlich vollständige, vor allem aber sehr detaillierte Zusammenstellung erarbeitet, die Sie auf den nachfolgenden sechs Seiten finden. Sie können natürlich auch bei Bedarf im Register des Handbuches unter "Löschen" nachsehen. Es ist aber anzunehmen, daß diese geschlossene Darstellung den einen oder anderen Anwender auf bestimmte Möglichkeiten überhaupt erst aufmerksam macht. Zudem ist im Handbuch manches arg knapp beschrieben. Die Übersicht enthält dagegen eine Menge Hintergrundinformation, die auch dazu dienen kann und soll, die Arbeitsweise einer allegro-Datenbank besser zu verstehen. Denn die Erfahrung zeigt, daß ungern gelöscht wird, wenn man nicht recht weiß, was dann wirklich passiert. Es wird deshalb auch behandelt, ob und wie man unbeabsichtigtes Löschen verhindern und vesehentliches rückgängig machen kann.

"Denken, Lernen, Vergessen" war der Titel eines Buches von Frederic Vester (ca. 1985). Im Denken und Lernen kommen Computer heute in gewissen Teilbereichen zu achtbaren Leistungen, aber wenn es an's Vergessen geht, ist das menschliche Gehirn noch unübertroffen. Zwar wird das Vergessen gelegentlich als ärgerliche Schwäche des humanen Zentralnervensystems empfunden, in Wahrheit ist diese selbsttätige Befreiung von Ballast aber eine höchst bemerkenswerte Leistung, zumal sie ohne bewußte Anstrengung abläuft. Im Gegenteil: wenn das Bewußtsein sich möglichst selten mit der zu vergessenden Sache befaßt, fördert dies sogar den Prozeß. (Und schrieb nicht auch mal jemand: "Erinnerungen verschönen das Leben, aber das Vergessen macht es erträglich."?) Das ist eine wichtige Beobachtung, denn sie liefert einen Ansatzpunkt für ein automatisiertes Verfahren des Vergessens: wenn die Software protokollieren könnte, wie oft und wann zuletzt ein Datensatz das letzte Mal betrachtet wurde, und zwar länger als, sagen wir, fünf Sekunden, dann hätte man ein Kriterium mit gewisser Aussagekraft. Ist der OPAC mit einem Ausleihsystemgekoppelt, kommt natürlich die Ausleihhäufigkeit hinzu. (Nachschlagewerke im Präsenzbestand, die keiner über den Katalog aufsucht, fallen dabei aber z.B. aus!) Die zuerst genannte Protokollfunktion hat nach unserer Kenntnis noch kein System. Was aber würde man sinnvollerweise tun, wenn man sie hätte? Nur ungern würde man wohl schwach genutzte Daten unbesehen löschen. Bei einem großen Bestand müßte man einige Jahre protokollieren, es würden aber wohl dennoch sehr viele Titel übrigbleiben, die nicht oder sehr selten ausführlich betrachtet wurden. Immerhin KÖNNTE man dann eine Liste drucken, und zwar in Signaturreihenfolge, die als Grundlage für eine Aussonderungsaktion geeignet wäre. So etwas war mit konventionellen Systemen nie möglich, und auch das tatsächliche Ausarbeiten oder Auslagern (wenn es denn dazu kommt), würde viel weniger aufwendig, weil das Löschen oder Ändern der Katalogdatensätze im Vergleich zum Ziehen, Bearbeiten und Wiedereinordnen von Katalogzetteln ein sehr geringer Arbeitsaufwand ist. Eine andere Möglichkeit wäre es, die wenig genutzten Datensätze nicht komplett zu löschen, sondern nur "abzuspecken", d.h. nur diejenigen Kategorien darin zu belassen, die für ein Auffinden und Identifizieren unbedingt erforderlich sind, etwa die Haupteintragungskategorie, den Sachtitel ohne Zusatz, das Erscheinungsjahr, ISBN und Signatur. Der Index würde entlastet, der vollständige Satz könnte in eine Reserve-Datenbank überführt und bei Bedarf reaktiviert werden. Auch das menschliche Gedächtnis enthält ja oft noch Spuren von Erinnerungen, die sich wieder auffrischen lassen. Ohne die genannte Protokollfunktion ist das "organisierte Vergessen" aber leider noch Utopie. Deshalb brauchen wir bis auf weiteres umfassende Kenntnisse über die Möglichkeiten, Daten zu löschen. Heben Sie deshalb diese news-Ausgabe für den Bedarfsfall gut auf.

Weil aber das Löschen erst dann zum Thema wird, wenn man schon viel erfaßt hat, finden Sie als Zugabe einen kompakten Überblick Erfassen und Bearbeiten - auch für Einsteiger zum Einarbeiten geeignet.

Löschen, Tilgen, Vergessen

... alles, was Sie darüber schon immer wissen wollten

Diese drei Wörter werden in der allegro-Dokumentation als Synonyme für dieselbe Sache benutzt: für das Beseitigen gespeicherter Daten. Im folgenden ist zusammengestellt, welche Verfahren zum Löschen von Datenelementen, Datensätzen und Dateien es gibt. Auf der rechten Seite sind jeweils die Stellen in Handbuch (H), Lehrbuch (L) oder news (n) angegeben, wo man nachschlagen kann, wenn es noch Verständnisprobleme oder noch mehr Informationsbedarf gibt. Die jeweils ausführlichere Stelle ist durch Unterstreichung gekennzeichnet.) Es wird bei allen Beispielen angenommen, daß man mit der Konfiguration A.CFG arbeitet. Wer dies nicht tut, braucht nur immer das A durch seinen Buchstaben zu ersetzen, etwa in den Dateitypen .ALG und .API.

1. Einzelne Zeichen oder Zeichenkombinationen bei Export und Import


Einzelne Zeichen lassen sich beim Editieren auf die übliche Art mit den Tasten [Entf] und [Backspace] beseitigen, darauf brauchen wir nicht eigens einzugehen. Beim Export oder Import kann man unerwünschte Zeichen automatisch beseitigen lassen:

Export
a) einzelne Zeichen

[H10.2.4.1, L9.4.4]

Wenn das Zeichen x nicht mit ausgegeben werden soll, schreibt man in die Exportparameter diese Befehle:
p x 1
q x 1
        

zuständig für Befehlszeilen mit '!' am Anfang

Die q-Befehle können entfallen, wenn keine Exportbefehle mit '!' am Anfang vorkommen.

Es gibt noch zwei weitere Möglichkeiten:
p x 2    bzw.    p x 3
q x 2        q x 3

Dann wird Zeichen x beseitigt, jedoch immer zusammen mit dem darauf folgenden Zeichen. Dies kann zum Einsatz kommen, wenn man die Teilfeldcodes ($a, $b, ...) ersatzlos beseitigen will. Wenn man den Wert 3 benutzt, wird statt der zwei Zeichen ein einzelnes Leerzeichen eingesetzt.

Wenn es sich um Anzeigeparameter handelt, muß man dx=1 setzen, damit die p- und q-Befehle für die Bildschirmanzeige wirksam werden.

b) Einschränkung auf einzelne Kategorie

[H10.2.6.3.1, L10.2]

Soll die Beseitigung nur in einem bestimmten Feld erfolgen, z.B. in #90, muß der Exportbefehl so aussehen:
#90 ,"_x__"

lokale Ersetzung bei Ausgabe von #90

oder aber, wenn man mit Pauschalexport arbeitet (d.h. Befehl ## ) :
*#90_x__
globale Ersetzung mit Einschränkung auf #90

c) Zeichenkombinationen

[H10.2.4.5, L10.3]

Bis auf den Sonderfall der Zwei-Zeichen-Kombinationen, der unter a) genannt wurde, muß man dafür einen globalen oder lokalen Ersetzungsbefehl benutzen. Wenn z.B. die Kombination xyz aus dem gesamten Datensatz beseitigt werden soll, schreibt man eine globale Ersetzung:
_xyz__             

(zwei Unterstriche hinter xyz!)

Wenn dagegen dasselbe nur in Kategorie #81 passieren soll, entweder globale Ersetzung:
*#81 _xyz__         

(zwei Unterstriche hinter xyz!)

oder aber innerhalb der Befehlszeile, wo die #81 exportiert wird:
#81 ,"_xyz__" ...
(INNERHALB "..." kann statt '_' auch ',' als Befehlszeichen verwendet werden, VOR "..." muß ',' stehen)

Anmerkung: Jede Zeile, die mit '_' oder '*' anfängt, wird als Globaler Ersetzungsbefehl behandelt. Es ist egal, wo innerhalb der Exportparameter solch ein Befehl steht! (Ganz anders beim Import, wo die entsprechenden Befehle außerdem aus je zwei Zeilen bestehen.) Die Befehle werden also NICHT an der Stelle ausgeführt, wo sie stehen, sondern alle hintereinander (wenn es mehrere gibt) VOR dem Beginn der Abarbeitung der Kategorieliste.

Import

[H11.2.2.1, L13.4]

Hier sieht der Befehl für ein einzelnes Zeichen so aus:
y x 256
Die y-Befehle werden schon beim Einlesen der Fremddaten ausgeführt. Das bedeutet, daß in dem eingelesenen Fremddatensatz dann das Zeichen x schon nicht mehr vorkommt, was bei Positionierungs-, Such- und Vergleichsbefehlen zu beachten ist.

Vorsicht: Bei Fremdformaten mit directory-Struktur (MARC) darf man diesen Befehl nicht einsetzen, sonst gerät alles durcheinander, weil dann die Feldlängen nicht mehr stimmen. Man muß dann mit lokaler Ersetzung arbeiten oder die Ersetzung in den Exportparametern vornehmen (siehe Handbuch Kap.5.0).

Eine globale Ersetzung ist ebenfalls möglich: (Achtung: 2 Zeilen, beim Export nur eine!)

[H11.2.2.2, L14.4]

_ "x"    
Solche Befehle wirken global, wenn sie oberhalb aller Importparagraphen stehen!

_ ""
kostet aber mehr Zeit. Spürbar wird das nur, wenn man eine gewisse Anzahl solcher Befehle hat.

Eine lokale Ersetzung würde genauso aussehen, aber als Teil eines Paragraphen (unterhalb einer '#'-Zeile):
#71

[H11.2.3.4, L13.7]

s 0 "250 "
_ "x"    bzw.     % "x"    
wenn nur das erste 'x' beseitigt werden soll

_ ""

Löschungen von Zeichenkombinationen sehen genauso aus, nur mit der Kombination anstelle von x.

2. Phrasen

[H3.3.#p]

Wenn Phrase x nicht mehr gebraucht wird, kann man sie so löschen: man gibt im Editor

#x [Esc] [Esc]

und erhält die Kontrollmeldung, daß Phrase x gelöscht wurde.

Außerhalb des Programms kann man aber eine Phrase auch löschen, damit sie bei der nächsten Sitzung nicht mehr vorhanden ist: die Phrasen werden in der Datei PHRASE.APH gespeichert, und zwar je Phrase zwei Zeilen, z.B.:

116                        ASCII-Code Buchstabe t (dezimal)
Technische Universität        Phrasentext

Man muß also, z.B. per x-Editor, nur die zwei Zeilen herausnehmen, die zu der betreffenden Phrase gehören. Ebenso kann man, nebenbei bemerkt, außerhalb des Programms neue Phrasen definieren, die dann ab der nächsten Sitzung benutzbar sind: man fügt einfach nur neue Zeilen nach diesem Muster ein, die Reihenfolge ist dabei unwichtig.

Anmerkung: Im Netz wird die Datei PHRASE.APH immer auf dem Aufrufverzeichnis gespeichert. Wenn also mehrere Mitarbeiter vom selben Verzeichnis starten, löschen sie sich gegenseitig unbeabsichtigt die Phrasendaten!

3. Datenfelder


a) im Editor

[H3.3.#v, L5.3.4.3]

Mit Leertaste oder [Entf] oder [Backspace] (wie bei Textprogrammen) bekommt man ein Datenfeld nicht weg. Soll z.B. #501 gelöscht werden, muß man
#v501
eingeben (dieses 'v' steht tatsächlich für "vergessen").

Rückgängig kann man den Befehl nur machen, solange man noch keinen anderen Datensatz bearbeitet hat. Man gibt
#t501 oder #.501
dann ist die Kategorie wieder da (aus dem Hintergrundspeicher hervorgeholt).

Sonderfall: man hat bei einer Kategorie das Leerzeichen hinter der Nummer vergessen, also z.B. #41Meyer, Fritz eingegeben statt #41 Meyer, Fritz. Der Befehl
#v41M
beseitigt dann diese falsche Kategorie. (Das Programm nimmt nämlich an, daß hier eine Kategorie #41 mit Wiederholungszeichen M eingegeben wurde.) Vorher kann man den Cursor auf das 'M' setzen und [Einfg] [Enter] drücken, um die korrekte Kategorie zu erzeugen.

b) mit Globaler Änderung

[H3.3.#X, L5.6.4]

Soll z.B. die Kategorie #91a aus mehreren oder sehr vielen Datensätzen entfernt werden, gibt man zuerst im Editor diesen Befehl: (es spielt keine Rolle, welches gerade der aktuelle Datensatz ist)
#X_#91a__ [Enter]
(zweimal '_' hinter #91a , das bedeutet: "ersetze #91a durch nichts" - d.h. lösche es!)

Man bildet sodann die Ergebnismenge, in der die Änderung auszuführen ist, und drückt dann auf dem ANZEIGE-Bildschirm die Kombination [Strg]+F10. Dies kann bis zum Ende der Sitzung beliebig oft anwenden, d.h. mehrere Ergebnismengen oder einzelne Datensätze damit behandeln.

Es können mehrere (bis zu 10) solche Befehle gleichzeitig erledigt werden: man gibt sie dann im Editor einfach hintereinander ein. Um den oder die Löschbefehle für andere Aktionen (während derselben Sitzung) durch einen oder mehrere neue zu ersetzen, muß man zuerst
#X_
eingeben, dann den oder die neuen Befehle. Zur Kontrolle kann man sich die momentan eingestellten Ersetzungsbefehle zeigen lassen: man gibt #p [Enter] a e, dann erscheinen sie (zusammen mit anderen Angaben).

Globale Änderungen kann man nur mit Berechtigung -a3 ausführen.

c) mit Globaler Manipulation

[H1.5.4, L14.3]

Dieses Verfahren bietet sich an, wenn eine Kategorie nur unter bestimmten Nebenbedingungen gelöscht werden soll. Nehmen wir z.B. an, #91a soll nur dann gelöscht werden, wenn #95 belegt ist (oder nicht belegt ist).

Man legt zunächst eine Parameterdatei G-LFELD.APR an, die dieses enthält:

nur wenn #95 belegt:
#-#
#95 +A e0
#+-
#-A
#91a p"#91a" e4 M
nur wenn #95 nicht belegt:
#-#
#95 +- e0
#91a p"#91a" e4 M

Der Manipulationsbefehl M hat den Effekt, den Arbeitstext in den aktuellen Datensatz als Kategorie einzuordnen. Dieser Arbeitstext besteht aber nur aus #91a , also einer Kategorie ohne Inhalt. Dann beseitigt das Programm diese Kategorie völlig. Diese Sonderfunktion wurde erst mit V14 eingeführt (news 36, S.3/4).

Danach startet man PRESTO mit den Optionen -eG-LFELD/nul -a3 (bei UNIX: -eg-lfeld=/dev/null -a3).

Man bildet die Ergebnismenge (oder sucht die zu behandelnden Datensätze einzeln auf) und drueckt [Strg]+F10 (bei UNIX: [Ctrl]+c 0).
Um den Index muß man sich in keinem Fall Gedanken machen: das Programm merkt selbst, ob irgendwelche Änderungen am Index (einschl. Kurzanzeige) notwendig werden und führt diese selbsttätig aus.

d) beim Export

[H10.2.6.1]

Eine Kategorie, die in einer Exportdatei nicht erwünscht ist, wird halt einfach nicht in die Exportparameter hineingeschrieben, dann kommt sie auch nicht heraus - das ist trivial. Nur beim Pauschalexport muß man etwas tun, um eine Kategorie von der Ausgabe auszuschließen. Die simple Befehlszeile

##

in einer Export-Parameterdatei bewirkt, daß der gesamte Datensatz ausgegeben wird und am Ende jeder Kategorie der Parameter ke. (Wenn z.B. ke=C gesetzt wurde, beginnt jede Kategorie auf neuer Zeile.)

Um nun z.B. #612 und alle Kategorien der Gruppe #9 von diesem Pauschalexport auszuschließen, braucht man nur zu schreiben:

/612
/9..

und zwar ist es gleich, ob das oberhalb oder unterhalb der Zeile mit ## steht.

Auf die gespeicherten Datensätze hat das alles keine Auswirkung, denn die beim Export herauskommenden Daten sind in jedem Fall nur Kopien. Jedoch kann mit einem anschließenden UPDATE eine exportierte Datei wieder eingespeist werden, und wenn das mit Option -fm11 geschieht, verschwinden die betreffenden Kategorien dann auch aus der Datenbank. Man muß jedoch den Export dann mit einer Parameterdatei vom Typ I-*.APR vornehmen (Kap. 10.0), damit dann UPDATE die entstehende Datei einlesen kann. Dieses Verfahren (Export mit dem Typ I und Wiedereinspeisung mit dem Programm UPDATE) wendet man nicht an, um einzelne Kategorien zu beseitigen, denn dafür sind die Verfahren b) und c) viel einfacher. Man wendet es an, wenn man kompliziertere Veränderungen an Datensätzen vornehmen will und natürlich auch, um die exportierten Sätze in eine andere Datenbank zu überführen (in der man bestimmte Felder nicht braucht).

e) beim Pauschalimport
Wenn eine Datei per IMPORT umgewandelt wird, die bereits die allegro-Grundstruktur hat, kann man den Pauschalbefehl

##

in den Importparametern benutzen, das ist das Einfachste. Man braucht dann die Kategorien nicht alle einzeln zu behandeln. Soll dabei z.B. die Kategorie #91a nicht mit importiert werden, ergänzt man oberhalb aller Import-Paragraphen (das ist hier wichtig) diese zwei Zeilen:

_ 0 "91a"
_ 0 "XXX"

Der Pauschalimport findet dann "XXX" statt "91a" vor - und kann damit nichts anfangen. Also bleibt diese Kategorie weg.

f) per UPDATE
Wenn man eine Grunddatei (Typ .ALG) mit update -fm11 ... einmischt, werden die Datensätze per Primärschlüssel komplett ersetzt, d.h. Kategorien, die in der Grunddatei fehlen, sind anschließend auch in der Datenbank nicht mehr vorhanden. Auf welche Weise man die Grunddatei erstellt hat, spielt keine Rolle.
Rückgängig kann man Kategorie- und Teilfeldlöschungen nicht so leicht machen, denn auch in der .LOG-Datei steht nur die veränderte, also verkürzte Version des Datensatzes. Man müßte schon, vielleicht aus einer Sicherungskopie, eine ältere Version der Datensätze besitzen, dann könnte man diese mit update -fm30 einmischen. Der Modus 3 bewirkt, daß die Kategorien in der Datenbank erhalten bleiben, und nur die zusätzlich vorhandenen Kategorien der Grunddatei eingemischt werden.

4. Teilfelder

[Globale Manipulation: H1.5.4, L14.3, n36]

Wenn man mit der Teilfeldtechnik arbeitet, also innerhalb von Datenfeldern das Steuerzeichen $ zur Abgrenzung von Datenelementen verwendet, entsteht ein interessantes Problem, wenn man nur ein bestimmtes Teilfeld loswerden will, nicht aber das gesamte Feld. Wenn es sich um vereinzelte Datensätze handelt, wird man diese im Editor ganz normal bearbeiten und die fraglichen Teilfelder mit der Taste [Entf] einzeln entfernen. Ist es aber eine größere Menge von Datensätzen, kann man nur die Methode "Globale Manipulation" anwenden. Sagen wir, aus Kategorie #123 soll das Teilfeld $x entfernt werden. Dann geht das mit diesem Abschnitt, den man als G-LTEILF.APR speichert:


#-#

#123 +A e0        Nur dann etwas tun, wenn #123 besetzt ist

#+B                sonst nach #-B gehen

#-A

#123 e"$x" =tf        Anfangsteil in #utf kopieren

#123 b"$" p"$" Atf    Teil hinter $x an #utf anhängen

#utf p"#123" M        Inhalt von #utf in #123 kopieren

#-B

#+-                Nichts machen, wenn #123 nicht vorkommt


Weiter geht es wie unter 3.c), mit presto -a3 -eG-LTEILF/nul ... Die Dateien G-LFELD.APR und G-LTEILF.APR bewahrt man auf, damit man bei Bedarf immer schnell darauf zurückgreifen kann, um andere Felder bzw. Teilfelder damit zu behandeln. (Neuer Export-Typ G : Parameter für globale Manipulationen.)

Teilfeld-Beseitigung beim Export: Denselben Abschnitt, ohne die letzte Zeile #+-, kann man in einer Export-Parameterdatei unterbringen, und zwar oberhalb aller Exportbefehle, damit die Aktion durchgeführt wird, bevor irgendetwas wirklich ausgegeben wird. Das Feld #123 wird dann vor Beginn des eigentlichen Exports vom Teilfeld $x befreit. Wenn anschließend ## kommt, ist das bereinigte #123 darin enthalten.

5. Anwendervariablen


Innerhalb des Exports muß man oft dafür sorgen, daß eine Anwendervariable gelöscht wird. Die #u-Kategorien im Hintergrundspeicher bleiben bekanntlich von einem Datensatz zum nächsten erhalten. Das ist oft erwünscht, aber nicht immer. (Man sollte, damit man die Übersicht behält, eine Liste der verwendeten Anwendervariablen anlegen, am besten als Kommentar in der Parameterdatei.) Zum Löschen gibt es kein anderes Mittel als den Manipulationsbefehl dxy .

Wenn nun z.B. #uab und #uft bei jedem neuen Datensatz vorher gelöscht werden sollen, schreibt man den Befehl

#dt dab dft e0 #zz 0        

[ #dt nur als Hilfskategorie ]

an eine Stelle, in der Regel an den Anfang der Kategorieliste, wo er auf jeden Fall ausgeführt wird, bevor die Verarbeitung an eine Stelle kommt, wo die Variablen dann benutzt werden. (Die Sonderkategorie #dt wird hilfsweise benutzt, weil sie immer belegt ist und die Zeile also auf jeden Fall ausgeführt wird.) In großen Parameterdateien ist es wegen der Übersichtlichkeit besser, solche Befehle unmittelbar vor jeder Stelle unterzubringen, wo die Variablen benutzt werden.

Anwendervariable existieren nur während des Programmlaufs im Arbeitsspeicher. Sie werden in keiner Datei gespeichert.

6. Datensätze


a) Einzelnen Satz oder Ergebnismenge von Hand löschen

[H1.5.4]

Man holt den zu löschenden Satz in den ANZEIGE-Bildschirm und drückt die [Entf]-Taste. Es folgt zur Absicherung gegen unbeabsichtigtes Löschen die Frage

löschen? j/n

die mit 'j' oder 'y' zu bestätigen ist, sonst wird nicht gelöscht.

Wenn zu dem Zeitpunkt eine Ergebnismenge besteht, kommt danach die Aufforderung (aber nur bei Berechtigung -a3)

wählen Sie: 1 = Einzeltitel 0 = ganze Ergebnismenge

Wenn man '1' wählt, wird der aktuelle Satz (der gerade in der Anzeige steht) gelöscht, bei '0' die aktuelle Ergebnismenge. Man sieht dann rechts unten einen Zähler laufen. Mit Druck auf 'x' kann man diesen Vorgang abbrechen, sowohl während er läuft als auch schon bei der 1/0-Frage. Die zu dem Zeitpunkt bereits gelöschten Sätze bleiben aber gelöscht.
Was macht das Programm? Zuerst prüft es, ob es für den Datensatz einen Löschkontrollschlüssel gibt (Sprungmarke #-- in der Index-Parameterdatei wird abgearbeitet, der oder die dort erzeugten Schlüssel im Index gesucht.) Wenn ja, und wenn es Registereinträge mit diesem Schlüssel gibt, wird die Löschung verweigert. Ist das nicht der Fall: alle Registereinträge des Satzes werden aus dem Index herausgenommen, an den Anfang des Satzes wird das Steuerzeichen 9 gesetzt (dezimaler ASCII-Code 9), und ein "Leerschlüssel" für den Satz wird ins Register 1 eingeordnet. Wenn der Satz z.B. 345 Zeichen lang ist, sieht der Leerschlüssel so aus: //00345. Diese Leerschlüssel werden gebraucht, um den freigewordenen Platz wieder benutzen zu können für neue Datensätze. Der Satz wird mit einem Code 09 am Anfang auch noch in die .LOG-Datei kopiert. (Die Registereinträge werden übrigens anhand der aktuellen Indexparameter ermittelt! Wenn diese seit der Indexerstellung geändert wurden, kann es sein, daß bestimmte Schlüssel nicht verschwinden.)

Verhinderung des Löschens: wenn z.B. mit presto -a1 -n23 ... gestartet wird, kann der Bearbeiter nur Sätze löschen, die in Datei 23 stehen. In größeren Systemen wird daher jedem Bearbeiter eine eigene Dateinummer gegeben und der Batchaufruf dementsprechend eingerichtet, daß die Berechtigung dann nur für diese Datei besteht.

Man kann aber auch das Löschen vollständig verhindern: bei der Sprungmarke für den Primärschlüssel, meistens #-@, baut man noch eine Sprungmarke ein: #-- , also die für den Löschkontrollschlüssel. Dann sind diese beiden Schlüssel identisch, und die Folge ist, daß das System überhaupt keine Löschung mehr zuläßt. Der Systemverwalter macht dann für sich selber, um löschen zu können, dieses: zu einer Zeit, wo kein anderer an der Datenbank arbeitet, nimmt der die Sprungmarke #-- heraus und startet dann mit -a3 - nun hat er volle Löschberechtigung. Anschließend wird #-- wieder aktiviert. Oder: der Systemverwalter macht sich eine Kopie der Indexparameterdatei und nennt sie SYS.API. Hier nimmt er die Sprungmarke #-- heraus und startet dann selber immer mit presto ... -Isys (erst ab März '96 möglich). Dann hat er jederzeit Löschberechtigung.

Rückgängig kann man das Löschen machen, solange die gelöschten Sätze nicht wieder durch neue Sätze überschrieben wurden, denn sie werden ja nicht sofort spurlos beseitigt.


Ganz einfach ist es also nicht, Datensätze wirklich rettungslos zum Verschwinden zu bringen. Wollte man dieses zuverlässig tun (um etwa datenschutzrechtlich relevante Angaben zu beseitigen), müßte man nach dem Löschen auch noch entlüften und die .LOG-Datei löschen.

b) Untersätze

Hierarchische Sätze sind für das System nur ein einziger Satz mit direkt daranhängenden Untersätzen. Man löscht diesen, und er verschwindet mitsamt allen Untersätzen. Um nur einen bestimmten Untersatz zu löschen: mit 'E' in die Bearbeitung, dann mit [Bild<runter>] zu dem fraglichen Satz schalten, dann Befehl #V geben, mit F10 alles wieder abspeichern.

Verknüpft gespeicherte Sätze: um alle zugehörigen Teile zu löschen, sucht man im Register der Identnummern die Nummer des Satzes. Dort stehen unter dem Hauptsatz alle verknüpften Sätze, so daß man sie leicht als Ergebnismenge zusammenfassen und diese dann löschen kann. Wenn eine Löschkontrolle eingebaut ist: zuerst den Hauptsatz wieder aus der Ergebnismenge herausnehmen, Ergebnismenge löschen, dann noch den Hauptsatz löschen.

Um nur einen bestimmten Teil zu löschen: mit 'B' und 'b' in der Folge der Untersätze vor- oder zurückschalten, bis der zu löschende in der Anzeige steht (mit F5 auf Kategorieanzeige umschalten). Dann [Entf] j betätigen.

c) Automatisches Löschen mit UPDATE

[H9.3]

Das Programm UPDATE kann Dateien des Typs .ALG einmischen. In solchen Dateien beginnt jeder Satz mit dem ASCII-Code 01. Wenn aber ein Satz mit 09 beginnt, wird der zugehörige Primärschlüssel gebildet und im Index nachgesehen, ob dazu ein Satz existiert. Wenn ja, wird dieser gelöscht, wenn nein, passiert nichts.

Statt des Codes 09 kann man alternativ den Satz mit Code 01 und dann u1 @@@@@ beginnen lassen.

Hiermit hat man Möglichkeiten, Dateien des Typs .ALG auch mittels anderer Software so zu präparieren, daß man per UPDATE dann nicht nur neue Sätze erzeugen und vorhandene ersetzen, sondern auch welche löschen kann.

Rückgängig machen kann man UPDATE-Löschungen auf dieselbe Art wie oben beschrieben.

In Mehrplatz-Umgebungen kann UPDATE unbedenklich auch dann gestartet werden, wenn andere an der Datenbank arbeiten. Zu achten ist nur darauf, daß beim Start nicht die Option -S (Single User) gegeben wird. Wenn UPDATE einen Satz ersetzen oder löschen soll, der gerade gesperrt ist (er beginnt dann mit Code 08), wartet es so lange, und gibt alle paar Sekunden eine Meldung aus, bis er wieder frei ist. Wenn man solches sieht, und der fragliche Satz gar nicht in Bearbeitung sondern nur von einer mißglückten früheren Aktion her noch gesperrt ist: diesen Satz von einem anderen Gerät aus aufsuchen, im Anzeige-Bildschirm [Strg]+z F8 j geben - dann ist er wieder frei, und UPDATE macht weiter.

7. Indexeinträge

[H1.4.3]

Wenn PRESTO mit Option -a3 gestartet wurde, ist es ganz einfach, Registereinträge mit der Hand zu entfernen: man setzt den Zeiger drauf, drückt [Entf] und beantwortet die Nachfrage mit 'j' . Hat die betreffende Zeile mehrere Titeleinträge, verschwindet nur der Eintrag, der zum Titel mit der niedrigsten Nummer gehört.

Zu empfehlen ist das Verfahren nicht, denn nach einer Neu-Indexierung sind die unerwünschten Einträge wieder da, weil hierdurch keine Änderung in den Datensätzen erfolgt. Es handelt sich um eine Möglichkeit für den Extremfall, daß man unbedingt eine irritierende Eintragung aus dem Index herausnehmen will, der durch Eingriff in den Datensatz nicht verschwindet - vielleicht zustandegekommen durch einen inzwischen korrigierten Fehler in den Indexparametern.

Keinesfalls ist dieses Verfahren sinnvoll, den Index inhaltlich um sog. "Schrott" zu bereinigen. (Kein Scherz: es sind Fälle bekannt geworden, wo das versucht wurde!)

8. Dateien

[H0.3 : Dateitypen]

Ohne direkte Auswirkung ist nur das Löschen der .LOG-Datei - man braucht sie nur im Katastrophenfall zur Restaurierung einer Datenbank. Es entsteht dann anschließend bei der nächsten Aktion eine neue. Von der Sache her sollte diese Datei natürlich nur bei einer Gesamtsicherung oder nach einer .LOG-Sicherung gelöscht werden. Wenn jedoch keine Reorganisierung anfällt, hat .LOG keine Funktion. Bei den anderen Dateien verursacht es jeweils spezifische Probleme, wenn sie gelöscht werden, was man folglich nicht ohne Kenntnisse tun sollte. (Siehe Handbuch Kap.03)

9. Gesamte Datenbank


Bei Entwicklungsarbeiten tritt es immer mal auf, daß man eine Testdatenbank komplett löschen will. Das geht am bequemsten vom CockPit Menü "Routinen" aus. Der Menüpunkt "löschen" tritt aber nur auf, wenn CockPit mit Option -a3 gestartet wurde. Gelöscht werden dann die Typen .ALD, .ADX, .TBL, .STL, .LOG, sonst nichts.

Die nachfolgenden zwei Seiten behandeln das Gegenteil des Löschens: das Erfassen und Bearbeiten von Daten. Natürlich muß dies jedem Löschen vorangehen, wie das Lernen dem Vergessen, und wird wohl meist als wesentlich wichtigere Tätigkeit angesehen werden. Jedoch erfaßt man Daten mit mehr Gelassenheit, wenn man weiß, daß und wie man sich jederzeit komfortabel wieder davon befreien kann. ;-)

Erfassen und Bearbeiten - Kompakter Überblick


allegro hat zahlreiche Funktionen, die das schnelle und sichere Erfassen unterstützen sollen. Es ist aber in der Praxis festzustellen, daß viele Anwender nur unzureichend über diese Funktionen informiert sind und nicht alles ausnutzen, was zu Gebote steht. Die tabellarische Zusammenstellung auf den folgenden zwei Seiten soll das Wesentliche überschaubar machen. Besonders als Merkzettel beim Einarbeiten kann die Liste nützlich sein. Das Kap. 3 im Handbuch vervollständigt Ihre Kenntnisse.

Im Gegensatz zu mancher anderen Software gibt es bei allegro nicht sehr viele verschiedene Bildschirme. Im Lehrbuch werden diese auch als "4 Gesichter einer allegro-Datenbank" bezeichnet. Man könnte auch statt dessen von den "Standardsituationen" sprechen, die man kennen und sicher beherrschen sollte.

Also: welche Standardsituationen gibt es, wie erkennt man sie am Bildschirm, und was kann man in diesen Situationen tun? (Die Fenster-Bearbeitung ist kein eigener Bildschirm, sondern Teil des Editor-Bildschirms, hat aber doch eigene Funktionen.)

Situation / Aufgabe erkennbar an Was kann man tun?
ANZEIGE-Bildschirm

Präsentation eines
Datensatzes

(Kap. 1.5)
Oben links steht:
Datenbank ... Datei# ...

Zu sehen ist ein Datensatz
(eine Titelaufnahme)

E Satz bearbeiten
-> EDITOR-Bildschirm

C Satz kopieren
-> EDITOR-Bildschirm

I Neuen Satz eingeben
-> ABFRAGELISTE

F5 Darstellung umschalten auf Kategorieanzeige
[Shift]+F5 Datensatz in Hintergrundspeicher kopieren
[Alt]+Ziffer anderes Register
[Alt]+a andere Datenbank (falls eine vorhanden)
F7 Registereinträge kontrollieren
F8 Abbruch
-> CockPit
ABFRAGELIST E

Eingabe eines
neuen Datensatzes

(Kap. 2.3.2)
Der Cursor steht in einer
Abfragezeile:

#nn " Frage: "_

(Veränderung der Abfragen:
in der CFG-Datei)

Eingabe (Text des Feldes eingeben)
F6 Register benutzen (mit [Enter] zurück)
-> REGISTER

[Strg]+[Enter] Registerzeile übernehmen (und zwar die, wo zuletzt der Zeiger stand)
[Esc] Textbausteine (Phrasen)
. (Punkt) die momentan abgefragte Kategorie aus dem
Hintergrundspeicher kopieren
x Aussprung aus der Abfrage
-> EDITOR-Bildschirm

F9 zurück zur vorigen Abfrage (wenn leer weggedrückt)
F8 Abbruch
-> REGISTER-Bildschirm
EDITOR-Bildschirm

Bearbeitung eines
Datensatzes

(Kap. 3)
Datensatz mit Kategorienummern ist zu sehen, darunter steht

#_

Korrektur mit Cursor (jede korrigierte Kategorie mit
[Enter] bestätigen)
Neueingabe einer Kategorie (Nummer Text eingeben)
Editor-Befehle (nächste Seite und Handbuch: Kap. 3)
b (Editor-Befehl)
-> Fenster-Bearbeitung

F6 Register benutzen (mit [Enter] zurück)
-> REGISTER

[Strg]+[Enter] Registerzeile übernehmen
[Esc] Textbausteine (Phrasen)
[Einfg] setzt nur ein Leerzeichen ein
F10 Speichern
-> ANZEIGE-Bildschirm

F8 Abbruch
-> ANZEIGE-Bildschirm
Fenster-Bearbeitung

Bearbeitung eines
Datenfeldes

(Kap. 3, #b)
Rahmen mit Kategorietext
in der Mitte des Bildschirms
[Einfg] schaltet Modus um auf "Einfügen"
[Esc] Buchstabe Phrase abrufen
F6 Register benutzen (mit [Enter] zurück
[Strg]+[Enter] Registerzeile übernehmen
F8 Abbruch
-> EDITOR-Bildschirm
REGISTER-Schirm

Suchen

(Kap. 1.4)
Alphabetische Liste mit einem Zeiger: ==> Eingabe eines Suchbegriffs
[Enter] Zugriff auf den Datensatz bzw. Rückkehr zur
Bearbeitung (wenn mit F6 aus EDITOR gekommen)
[Alt]+Ziffer Register wechseln
[Shift]+F8 Erweitertes Register einschalten / [Esc] abschalten
[Shift]+F9 Kurzanzeige der Erggebnismenge / [Esc] abschalten
[Alt]+a andere Datenbank (wenn vorhanden)
F8 Abbruch
-> CockPit

F10 Trunkierung

In allen Situationen: F1 für Hilfe.

Als Einsteiger probiert man am besten erst einmal alles an der Demo-Datenbank durch und fragt sich dabei immer, ob und wofür man die Funktionen einsetzen kann.

Editor-Befehle


Es folgt die Liste der wichtigsten Editor-Befehle, die man im Bearbeitungszustand geben kann. Man schreibt den Befehl immer direkt hinter das "Promptzeichen", das ist das '#', welches automatisch am Ende des Datensatzes erscheint.

Wenn also gesagt wird, "Befehl #a", bedeutet dies, daß man nur das 'a' eingeben muß, weil das '#' automatisch vorhanden ist.

Ausführliche und vollständige Beschreibungen der Befehle stehen, alphabetisch geordnet, im Kap. 3 des Systemhandbuchs. Schlagen Sie dort nach, wenn Sie mehr wissen wollen. In etwas anderer Form lesen Sie in der allegro-Ouvertüre im Abschnitt 4. noch einiges über "Eingabe-Erleichterungen", und in 5.1-4 über "Besondere Aktionen", speziell mit mehrbändigen Werken.

#a     Hintergrundspeicher einsehen

    In anderer Farbe werden die Datenfelder gezeigt, die im Hintergrundspeicher stehen. Jedes davon kann man in den aktuellen Datensatz übernehmen: Cursor hinfahren und [Enter] drücken

z.B.     #a7    Nur die Felder der Gruppe #7 aus dem Hintergrundspeicher anzeigen

#b     Fensterbearbeitung (bequeme Bearbeitung)

    Die Felder des aktuellen Satzes werden einzeln in einem Bearbeitungsfenster gezeigt und können darin editiert werden. Insbesondere funktioniert der Einfügemodus (ein und aus mit [Einfg]).

z.B.     #b20    Nur Kategorie #20 im Fenster bearbeiten

#l     Liste der aktuellen Kategorien anzeigen

    Der aktuelle Datensatz wird in Bearbeitungsform neu angezeigt. Nützlich, um zu sehen, wie der Gesamtzustand ist, nachdem man mehrere Änderungen gemacht hat.

z.B.     #l2    Nur die Kategorien der Gruppe #2 anzeigen. Nützlich, wenn diese wegen der Länge des Datensatzes oben aus dem Bildschirm verschwunden sind - weil man nicht nach oben blättern kann!

#p     Phrasen anzeigen; anschließend 'a' und 'p' drücken, damit die Phrasen erscheinen. Mehr über Phrasen siehe unten.

#t     Transfer (= Übernahme) aus dem Hintergrundspeicher

z.B.     #t75    Kategorie #75 wird aus dem Hintergrundspeicher in den aktuellen Datensatz kopiert.

        Statt 't' kann auch der Punkt benutzt werden, also #.75.

#v     Vergessen (= Löschen) von einzelnen Kategorien (mit Überschreiben am Bildschirm geht es nicht!)

z.B.     #v90    Lösche #90

#X     Globale Ersetzungen definieren. Durchgeführt werden die Ersetzungen dann aus dem ANZEIGE-Bildschirm heraus mit F10. Wenn zu dem Zeitpunkt eine Ergebnismenge besteht, können die Ersetzungen in der gesamten Ergebnismenge ausgeführt werden.

z.B.    #X_alt_neu_ Die Zeichenkette "alt" soll durch "neu" ersetzt werden. (Mehr Beispiele im Handbuch Kap.3.3)

    Wenn in alt oder neu ein '_' vorkommt, dann die drei '_' alle durch ',' ersetzen!

Phrasenfunktionen

[siehe auch Befehl #p im Kap. 3 des Systemhandbuchs]

Eine Phrase ist ein Wort, eine Wortgruppe, oder allgemein eine beliebige Zeichenkette. allegro-C ermöglicht das Speichern von Phrasen zwecks beliebiger Verwendung im Eingabetext. Als Funktionstaste für das Definieren, Verwenden und Löschen von Phrasen dient die [Esc]-Taste:

neue Phrase definieren: (siehe auch 1.4: Indexeintragungen als Phrase)


z.B.    #tTechnische Universität [Esc] [Esc]
    erzeugt eine Phrase mit dem Kennbuchstaben t.

Phrase verwenden: (auch im ABFRAGE-Zustand und im Bearbeitungsfenster möglich)

An beliebiger Stelle während einer Eingabe tippt man [Esc] [Kennbuchstabe] : sofort erscheint diese, der Cursor steht dahinter und die Eingabe kann weitergehen. Achtung: Taste [Esc] dabei nicht festhalten, nur kurz antippen.

Beispiel: bei [Esc] t erscheint Technische Universität.

Phrase löschen:


z.B.     #t [Esc] [Esc] um die oben definierte Phrase zu löschen

Jedes Zeichen, das per Tastatur eingebbar ist, kann als Phrasen-Kennzeichen benutzt werden, insbesondere können Groß- und Kleinbuchstaben mit unterschiedlichen Phrasen belegt werden!

Stets benutzbar sind zwei Sonderphrasen: mit [Esc] 0 erhält man Datum/Uhrzeit, mit [Esc] [Leertaste] nur das Datum, wenn man in der .CFG den Befehl D8 setzt (.> Anh.A.1.3).

Die angesammelten Phrasen werden am Ende der Sitzung als Datei PHRASE.APH gespeichert und bei der nächsten Sitzung automatisch wieder geladen, d.h. sie sind sofort wieder verfügbar. Mit dem Befehl #p und anschließend 's' oder 'l' kann man Phrasen auch in eigenen Dateien speichern bzw. diese wieder laden.


Gelöste Probleme

Wenn nachfolgend Probleme als "gelöst" oder "behoben" bezeichnet werden, heißt das, daß die betreffenden Programme auf dem FTP-Server aktualisiert worden sind. In der Auslieferung V14b sind die Probleme natürlich noch drin, es sei denn, es steht (V14b) hinter der Beschreibung.

UNIX


Installationsfiles überarbeitet

Bereits seit längerem waren ja diverse Änderungen in "Allegro-X" eingeflossen, die sich leider nicht in der Dokumentation und, was noch viel bedauerlicher war, in den Parameterfiles und der Demodatenbank wiederfanden. Daher wurden diese Dateien jetzt auf dem FTP-Server aktualisiert.

Sie finden nun in den Unterverzeichnissen:


unix-14

   install.txt    (aktualisierte Installationstips zu Allegro-X             )

   howto.txt      (eine Allegro-X Installation "Schritt fuer Schritt" am    )

                  (Beispiel von Allegro-X unter Linux. Die Installation     )

                  (richtet einen Verwalter, eine Katalogbearbeitungsgruppe  )

                  (und einen nur lesenden OPAC-Nutzer ein.                  )

   demo.tz        (eine aktualisierte Demodatenbank zu Allegro-X, die nun   )

                  (insbesondere auch gleich die richtigen Rechte fuer die   )

                  (einzelnen Dateien aufweist!                              )

   param.tz       (aktualisierte Scripte/Parameterdateien zu Allegro-X, die )

                  (nun auch bereits die korrekten Zugriffsrechte fuer Haupt-)

                  (verwalter und Bearbeitungsgruppe enthaelt                )

   unixwp.lzh     (ueberarbeitete Textdatei fuer WordPerfect 5.1            )

                  (ACHTUNG - dieser Text ist nur mit WordPerfect 5.1 lesbar )

                  (oder mit WinWord konvertierbar. Abonnenten haben ihn auf )

                  (Papier erhalten ("allegro-X - Was ist anders...")        )

unix-14/Unixversion z.B. unix-14/linux <Version>.tz (die ausfuehrbaren Programme zur jeweiligen Version ) (Bitte zunaechst in <Version>.tar.gz umbenennen! ) <Programm>.gz (Einzelprogramme, die spaeter neu erzeugt wurden. ) (Bitte NACH Installation von <Version>.tz installieren. )

ACHTUNG: Die einzelnen ausführbaren Programme weisen mitunter nach dem Auspacken nicht die korrekten Zugriffsrechte auf! Bitte passen Sie diese evtl. nachträglich jeweils an. Dies geschieht mit:


   chown allegro <programm>

   chgrp allegro <programm>

   chmod 755 <programm>


groß oder KLEIN?

Die Probleme, die es mit Dateinamen gab, sind mittlerweile ausgeräumt, die Umstellungen auf Kleinschreibung aller Dateinamen abgeschlossen. Wenn wir künftig in Beschreibungen, in den news und sonstwo, Dateinamen mit großen Buchstaben schreiben, dann deshalb, damit sie sich im laufenden Text besser hervorheben. In UNIX-Systemen sind alle Namen konsequent klein zu schreiben. Nicht betroffen sind nur die Namen von Verzeichnissen, die der Anwender für seine Zwecke benutzt, denn solche Namen werden manchmal auch von Systemverwaltern zwingend vorgegeben, aus welchen Gründen auch immer, daher muß die Software das verkraften. Wir finden aber, daß es so gut wie keinen Nutzen bringt, für die allegro-Dateinamen gemischte Schreibung zuzulassen.

Ein tückisches Problem: in Parameterdateien muß man darauf achten, die Namen von nachzuladenden Dateien konsequent klein zu schreiben. Beispiel: hat man in den Druckparametern den Befehl tPRINTER, dann sucht das Programm nach PRINTER.apt. Wenn dieses nicht existiert, sondern nur printer.apt, kommt trotzdem keine Fehlermeldung, aber man wundert sich, warum der Druckertreiber nicht funktioniert.

Exportproblem: Teilfeldzeichen

Da das Zeichen $ in UNIX-Systemen schwierig oder gar nicht einzugeben ist (man muß [Ctrl]+_ eingeben, das geht aber nicht immer), wurde für die Parametrierung als gleichwertiger Ersatz '$' eingeführt. Das gilt dann auch für DOS. In den Daten muß jedoch weiterhin das $ stehen! Nur wenn man neu anfängt oder alles konvertiert, kann man in die CFG den Befehl $36 setzen, dann ist '$' an allen Stellen und für alle Zwecke das Teilfeldzeichen.

Mit doppeltem Boden : Zeichenkonvertierung für das Editieren

Die Tabelle o.apt wandelt ASCII in ANSI um, damit man unter UNIX die richtigen Zeichen sieht, wenn man auf eine DOS-Datenbank zugreift. Für jeden Code, der nicht identisch ist, muß eine Zeile dieser Form vorkommen: (ein neuer Exportbefehl, der nur unter UNIX eine Wirkung hat!)

o .ASC ANS

Wobei ASC der dezimale ASCII-Code, ANS der dezimale ANSI-Code ist. Beispiel:

o .132 228         das kleine ä hat ASCII 132, ANSI 228
o .31 36        $ durch $ ersetzen (aber $ darf dann nicht vorkommen!)

Nur diejenigen Codes, die verändert werden müssen, brauchen mit einem o-Befehl angegeben zu werden.

Kurz: standardmäßig ist o .x x für jedes Zeichen voreingestellt.

Beim Befehl 'E' bzw. beim Abspeichern findet die Umwandlung automatisch hin bzw. zurück statt. Kurz: Was man zu sehen bekommt, ist immer der zweite Code des o-Befehls, gespeichert wird aber der erste.

Es ist klar, daß die Tabelle ein-eindeutig sein muß, sonst würden Fehler bei der Rück-Umwandlung auftreten. Kurz: Es darf keine zwei Zeilen mit unterschiedlichen ASC-Werten, aber gleichen ANS-Werten geben.

Außerdem wird die Tabelle o.apt für die Kurzanzeige und für die Kategorieanzeige (F5) benutzt.

Die Dateien o.apt und d.apt sind so angelegt, daß keine Sonderzeichen in den Kommentaren vorkommen, auch keine Umlaute. Es gibt dann keine Probleme mit der Lesbarkeit und Bearbeitung unter UNIX und Windows.

Wenn man VP oder das "presto" des X-Systems per telnet benutzt, sind die Umlaute meistens problematisch, d.h. kommen nicht korrekt an. Dafür gibt es noch zwei Tabellen (einbauen in Anzeigeparameter):

opac.apt        statt o.apt, macht z.B. aus 'ä' ein 'a'
dpac.apt        statt d.apt, ersetzt z.B. 'ä' durch "ae"

Obacht: Die opac.apt ist nicht ein-eindeutig! D.h. man darf bei ihrer Benutzung nicht editieren, sonst gibt es beim Speichern Verfälschungen. Man muß also für telnet-Zugänge eigene Versionen der Parameter vorhalten, oder jeweils vor dem presto-Aufruf die eine oder andere Tabelle auf den Namen o.apt kopieren!

Bei einem telnet-Dialog aus Netscape heraus hat man wunderbarerweise eine 8-bit-Übertragung, d.h. dabei können o.apt und d.apt verwendet werden, und man sieht alle Sonderzeichen als ANSI-Zeichen innerhalb

des telnet-Fensters. Außerdem kann man in so einem Fenster auch scrollen, etwa bei Benutzung von VP. Das sind entscheidende Vorteile gegenüber z.B. NCSA-telnet unter DOS.

WWW-Methodik

Damit alles richtig klappt, hier die essentiellen Programmaufrufe für die WWW-Methodik:

Voraussetzungen:


qrix -fd -P./ -ddemo -ekat=demo -ka -x0 -s$anfang -S$ende -Enummer.alg -t00,20

srch -f6 -ka -dnummer.alg -bdemo/kat -ee-xt=testlist -m0

Die Datei nummer.alg enthält die Kategorien #00 und #20, wobei #00 die interne Satznummer der Datensätze enthält, und beim srch-Lauf wird damit per |01 der eigentliche Satz geladen. (Die #20 in nummer.alg wird hier nicht gebraucht, sie enthält die Registerzeile)

Die Option -t muß bei dreistelligen Kategoriesystemen mit dreistelligen Nummern versehen werden, z.B. -t000,100

PRESTO


Neue Option -I

Mit dieser Option kann man eine andere Index-Parameterdatei laden lassen. Das ist besonders für APAC interessant: Der OPAC-Benutzer braucht nicht den vollen Umfang der .API. Erstens geht dann der Programmstart schneller, zweitens wird weniger Parameterspeicher gebraucht, d.h. man könnte den mX-Wert in der Opac-CFG reduzieren (wenn man eine solche hat). Man gibt also ganz schlicht:

apac ... -Iopac ...     bzw.         presto ... -Iopac ...

dann wird OPAC.API statt der zur Datenbank gehörigen API geladen. Es versteht sich, daß man da bei PRESTO sehr aufpassen muß: Wenn Bearbeitungen durchgeführt werden, sollen ja keine falschen oder ganz anderen Schlüssel entstehen. Die Option kann aber z.B. zum Testen veränderter Indexparameter im laufenden Mehrplatzbetrieb eingesetzt werden. Mit F7 kann man die Schlüssel sehen, obwohl im echten Index andere stehen.

Was muß eine OPAC.API mindestens enthalten? Diese Angaben:


Zurückblättern (V14b)

In PRESTO kann man seit alters mit [Bild<hoch>] und [Bild<runter>] die zuvor bearbeiteten Datensätze durchblättern. Bei Umschaltung auf andere Datenbanken konnten Fehler passieren: Es wurde der Satz mit gleicher Nummer aus der anderen Datenbank geladen. Jetzt merkt sich PRESTO neben der Satznummer auch die Datenbank, dann klappt es.

Insbesondere wird beim Speichern eines Satzes dessen Nummer notiert, so daß man auf korrigierte und kopierte Sätze in jedem Fall wieder zuverlässig zurückspringen kann.

Anzeige im Kategoriemodus

Die letzten Versionen der Programme APAC, GAPAC, ALFA, PRESTO, MENUED und INVENT hatten alle ein Problem im Bereich der Kategorieanzeige. Die Anzeige wurde zu lang und zerstörte die Fußzeilen. In der Normalanzeige konnte es vorkommen, daß bei langen Sätzen unten die Meldung "mehrteilig..." kam statt derjenigen für das Scrollen mit den Cursortasten. Dann wurde eine Textzeile überschrieben. Da diese Erscheinungen im Einzelfall sehr irritierend sein konnten, wurde das Problem behoben.

APAC-Verbesserung

Auf dem Titelanzeige-Menü gibt es zwei neue Punkte für die Funktionen 'b' und 'B' (Zeilen 330-333 in UIFAGER sind neu!). Das Blättern in den mehrbändigen Werken ist sonst im OPAC für Endbenutzer nicht herausfindbar. Natürlich funktionieren 'b' und 'B' nur dann, wenn die notwendigen Vorkehrungen in der .API getroffen sind, und wenn in der Anzeige tatsächlich ein solches Werk steht. Jedoch war es zu schwierig, die Menüpunkte nur dann erscheinen zu lassen, wenn eine solche Situation vorliegt.

Und noch ein Flip-Tip (mehr zum Thema auch in der README-Datei von V14b)

Will man das ach so umständliche und kryptische Alt+a vermeiden, programmiere man sich diesen Flip in die Anzeigeparameter:


#t{ C "[" t71 "a" t76 "] umschalten" }   
#uxb p"<0?|" dZa aZa
#uxa AZa

Dann erscheint [a] umschalten in der Anzeige (das a in Rot)und es entsteht #uZa<0?|iregzeil als Variable, wobei i die Nummer des zuletzt benutzten Registers ist, "regzeil" die Zeile, von der aus zugegriffen wurde. Auf genau die entsprechende Zeile in der zyklisch nächsten Datenbank (1 -> 2 -> 3 -> 1) wird dann umgeschaltet.

Ohne das '?' wird direkt der erste Datensatz gezeigt, der zu regzeil gehört.

UPDATE


UPDATE-Fehler entdeckt und beseitigt

Betroffen sind NUR UPDATE-Aufrufe mit -fmxy und NUR wenn dabei Sätze gelöscht werden sollen, die gar nicht existieren.

Wenn UPDATE einen Satz löschen soll, teilt man ihm dies mit, indem man dem Satz entweder einen Code 9 voranstellt oder eine Kategorie #u1 @@@@@. Was passiert, wenn der fragliche, zu löschende Satz gar nicht in der Datenbank vorkommt? Weil die einzumischende Grunddatei (.ALG) in beliebiger Weise zustandekommen kann, ist der Fall nicht auszuschließen, wenngleich er hoffentlich sehr selten auftritt. Natürlich soll dann das Programm den Satz einfach ignorieren und nichts speichern.

Leider können aber in der ausgelieferten Version dann Schreibfehler passieren, d.h. es wird etwas an eine falsche Stelle in einer .ALD-Datei geschrieben und zerstört die dort stehenden Daten, oder es wird eine .ALD unmäßig verlängert und mit lauter Codes 00 ausgefüllt.

Wer aus den genannten Gründen eine korrigierte Version braucht, findet sie auf dem FTP-Server im Verzeichnis ac14/prog unter dem Namen update.lzh.

Füllzeichen 255 nicht erlaubt

In das Programm UPDATE hatte sich irgendwann ganz früher eine Sonderfunktion eingeschlichen, die das Zeichen 255 betraf. Die Sonderfunktion existiert nicht mehr, aber der Code 255 wird weiterhin beim Einlesen wie ein Satzende interpretiert. Wenn man nun ausgerechnet die 255 als Füllzeichen verwendet hat, können bei UPDATE Fehler passieren. Leider hatten die Kollegen in Göttingen, die das natürlich nicht ahnen konnten, ausgerechnet die 255 als Füllzeichen für das Pica-Format definiert.

Das hat uns veranlaßt, UPDATE.EXE umgehend zu korrigieren und bereitzustellen. Jetzt arbeitet es, wie die anderen Programme auch, korrekt. Man braucht also nicht auf ein anderes Füllzeichen umzustellen.

Wenn allerdings schon Fehler in einer Datenbank sind, müßte man sie zuerst mit einem SRCH-Lauf exportieren in eine Grunddatei, dann mit INDEX die Datenbank neu aufbauen, und die fehlerhaften Sätze, so man sie denn finden kann, korrigieren. Es können eigentlich nicht viele solche Fälle aufgetreten sein, da in der Göttinger $P.CFG der Wert f0 eingestellt war, also gar keine Füllzeichen geschrieben wurden. Dann entstanden nur bei Satzverkürzungen welche, und die kommen nicht sehr oft vor.

Konfiguration


Kleines Problem mit Indikatoren beseitigt

Wenn ein Format mit Indikatoren arbeitet, wie MAB oder MARC, war es in der CFG bisher so, daß man per $I und $J für den ersten und zweiten Indikator bei jedem Feld die erlaubten Werte festlegen mußte. Wenn man nichts festlegte, wurde nur das Leerzeichen akzeptiert. Das ist konträr zu der Logik bei den erlaubten Mehrfach- und Teilfeldcodes ($M bzw. $A). Dort ist alles erlaubt, wenn man nichts angibt. So wurde es jetzt auch für die Indikatoren eingerichtet.

Wichtig ist das für USMARC, wie wir feststellen mußten, weil die MARC-Kategorien 001 bis 008 keine Indikatoren haben, sondern der Feldinhalt sofort auf der Position des ersten Indikators beginnen soll. Wenn man das korrekt nachbilden will, geht es nur mit der genannten Programmkorrektur.

Diese Sache fiel auf im Zusammenhang mit der Testdatenbank der Library of Congress (Format Integration). Wir haben dieselbe jetzt aktualisiert, formal korrekt gestaltet, und bisher fehlende Felder noch eingebaut. (Die U.CFG war unvollständig: es gab eine Reihe von Kategorien in den Testdaten, wie z.B. #270 oder #343, die in den Handbüchern noch nicht standen. Jetzt sind sie alle drin.)

Die stark verbesserte USMARC-Testdatenbank mit allen Parametern und CFG ist wieder unter FORMINT.EXE auf dem Verzeichnis FORMATE zu finden. (Nur noch 255 K, weil die Originaldaten jetzt nicht mehr dabei sind.)

Abfragelisten-Problem

Die Abfrageliste hatte ein Problem mit dem Kopieren aus dem Hintergrundspeicher: Wenn man

nnnn " xxxx: ".

setzte, also mit Punkt am Ende, um etwas aus dem Hintergrundspeicher zu übernehmen, kam nicht die richtige Kategorie. Das trat bei 3- und mehrstelligen Systemen auf. Korrigiert. (V14b)

Export


Manipulationsbefehle v und V

Jetzt kann man prüfen, ob ein Zeichen größer oder kleiner als ein bestimmter Wert ist:

... vk,x    ist das Zeichen auf Position k kleiner als x? Dann weiter
... Vk,x    ist das Zeichen auf Position k größer als x? Dann weiter

Wenn die Bedingung nicht gilt: Abbruch der Befehlszeile. (Das Verhalten entspricht dem der Befehle i und I)

Beide Befehle lassen sich kombinieren:

#40 V4,B v4,N

würde den Inhalt von #40 nur ausgeben, wenn er mit C - M beginnt. Die Vergleiche beziehen sich immer, wie bei i und I, auf die Originalkategorie, nicht die durch Manipulation evtl. veränderte. Das kann man umgehen, indem man die manipulierte Kategorie zuerst in eine #u-Variable speichert und dann diese exportiert. (V14b)

Befehl t

Es gab manchmal Unsicherheiten, deshalb die Erläuterung: wenn mit einem Befehl tname die Datei name.APT geladen wird (Kap. 10.2, S. 152), dann wird diese Datei genau an der Stelle, wo der t-Befehl steht, eingefügt. Genauso könnte der Inhalt der Datei statt dessen an derselben Stelle stehen, die Wirkung wäre dieselbe. Also kommt es oft sehr darauf an, wo ein solcher Befehl plaziert ist.


Sonderkategorie #u2

Die #u2 ließ sich bei 3- und mehrstelligen Systemen nicht exportieren, d.h. nur mit dem Trick, einen Punkt hinter #u2 zu setzen. Jetzt funktioniert es richtig. (V14b)

aLF : Anwendungshandbuch für ÖB


An der Büchereizentrale Lüneburg wurde von Gabi Maidorn, Jan-Peter Grünewälder und Astrid Rodenwald ein umfängliches Handbuch erstellt, das den aktuellen Leistungsstand des aLF-Systems bis hin zu Mahnwesen, Gebühren und Statistik abdeckt. Es ist speziell für den Bedarf der Öffentlichen Bibliotheken eingerichtet und fußt auf der Konfiguration O.CFG, die von Lüneburg favorisiert und von vielen ÖBs angewendet wird. Die Ausleihfunktionen jedoch beruhen auf einigen wenigen Kategorien, die für das konsolidierte Format oder auch für andere Konfigurationen identisch eingesetzt werden können. Daher ist dieses Handbuch auch für andere Anwender relevant. (Der aLF-Abonnent erhält ansonsten aus Braunschweig als Textdatei die "Technische Referenz" von Peter Hartwig, die alle Aspekte der Parametrierung abdeckt.) Damit ist das System aLF jetzt für die Praxis vollständig dokumentiert.

Projekt avanti


Die Arbeiten an den Neuentwicklungen für graphische Benutzeroberflächen schreiten voran. Ein erweitertes VP mit Schreibfunktionen existiert schon. Mehr zum Thema in news 42, die zur Jahresmitte zugleich mit dem ersten echten Windows-Programm herauskommen soll. Wer bestellt hat, wird im Juli die erste Lieferung erhalten.

Neue Datenbanken auf dem FTP-Server

(ftp 134.169.20.1 "anonymous")

1. USMARC mit Sprachenliste

formate/usmarc.exe

Das Format USMARC ist weltweit das bedeutendste, wenngleich keinesfalls das einfachste oder eleganteste. Jedoch wird es von der Library of Congress mit großer Akribie gepflegt und dokumentiert. Auf ihrem FTP-Server stellt die LC einige Dateien mit der aktuellen Formatbeschreibung in Kurzform bereit. Diese Dateien wurden mittels IMPORT umgewandelt in eine Form, die bisher schon für die Konkordanzdatenbank benutzt wurde (siehe 2.). Zusätzlich wurden einige andere Dateien einbezogen: die Liste der Geographic Area Codes, die Country Codes, die Sprachcodes (mit deutschen Übersetzungen!), die Relator Codes (Funktionsbezeichnungen für Personen) und die sachlichen Unterschlagwörter (Subdivisions). Die Datei USMARC.EXE ist ein "selbstentpackendes Archiv" und enthält eine README-Datei.

2. Formatedatenbank

formate/formate.exe

Diese Konkordanz wurde schon mehrfach aktualisiert, zuletzt vor wenigen Wochen mit Hilfe der neuen Dokumentation zu MAB2. Alle 5 Bestandteile von MAB2 sind vollständig integriert: im Register 3 findet man die Abfolge der MAB-Nummern mit Kennbuchstaben, damit man die Kategorien auseinanderhalten kann (p = PND, g = GKD, s = SWD, l = Lokaldaten) Alle Indikatoren sowie Wiederholungsfaktoren sind berücksichtigt.

Die anderen Formate, die in dieser Datenbank berücksichtigt sind: USMARC, Pica+, Pica3, UNIMARC, UKMARC, ZDB-Zeta, allegro ("Konsolidiertes Format"), NZN, BISLOK. (USMARC ist nicht ganz so aktuell und umfassend wie in der separaten Datenbank, siehe oben.) FORMATE.EXE ist ebenfalls ein "selbstentpackendes Archiv".

3. Pica-Parametrierung

Die Kollegen Busemann und Gereke in Göttingen haben eine komplette Pica-Implementierung erstellt. Die dazu gehörigen Dateien sind vom FTP-Server der SUB Göttingen erhältlich. Wenden Sie sich per E-Mail an einen der genannten Kollegen: Busemann@brzn.uni-goettingen.de bzw. Gereke@brzn..., Tel. 0551-39-2409/2421

4. Mathematik-Systematiken

formate/math.exe

In Kreisen von Mathematikern bekannt ist die Klassifikation der American Mathematical Society, die von den Referateblättern "Mathematical Reviews" und "Zentralblatt für Mathematik - Mathematics Abstracts" benutzt wird. Die Texte dieser Klassifikation sind per WWW erhältlich. Es handelt sich um ca. 4.800 Notationen mit vielen Begriffen und Verweisungen. Weniger umfangreich, aber mindestens für die Informatik ebenfalls bedeutsam sind die Klassifikationen des Inspec (verwendet in den "Electrical and Electronics Abstracts") und der Association for Computing Machinery (verwendet von den "Computing Reviews").

Alle drei Systematiken wurden zu einer Datenbank vereinigt, die gleichfalls als Archivdatei verfügbar ist (MATH.EXE auf dem Verzeichnis ANWENDER). Diese Datenbank kann wegen ihrer Flip-Technik in den Anzeigeparametern vielleicht auch Nicht-Mathematiker auf neue Ideen bringen.

Termine


allegro-Nordwest-Anwendertreffen

Das dritte Treffen dieser regionalen Anwendergruppe (nach Oldenburg und Wilhelmshaven in den Vorjahren) ist geplant für den 24.10.96 in Stade. Als Beiträge vorgesehen sind eine Einführung in das Lernprogramm (Methode Allers), Pflege von Datenbanken, Umgang mit Updates, Grafik-Einbindung am Beispiel der Lutherhalle Wittenberg, aLF-Erfahrungen, Arbeit der Fachstelle für öffentliche Büchereien.

Veranstaltungsort: Volkshochschule Stade, 24.10.96, 10 Uhr. Information bei : Ina Donner, Tel. (04141)46300 (vormittags) und Ulrike Schulz, Gymnasium Athenäum Stade, Tel. (04141)62028.

Expertentreffen '97

Im Jahre 1996 wird die UB Braunschweig erstmals kein Expertentreffen ausrichten können, denn im Herbst wird der Erweiterungsbau bezogen. Dabei wird jeder in irgendeiner Weise betroffen sein, also niemand Zeit für die Planung und Durchführung einer Veranstaltung haben, und geeignete Räume sind aus demselben Grund auch erst nach Abschluß des Umzugs verfügbar. Der Erweiterungsbau wird einen schönen neuen Vortragsraum haben. Wir gehen daher davon aus, daß wir im Februar oder März 1997 ein Expertentreffen in der vergrößerten UB durchführen können. Wir werden uns bemühen, den genauen Termin baldmöglichst festzulegen und bekanntzumachen.

Einsteigerseminar 26./27.9. in Leipzig

Es ist schon so gut wie sicher, daß diese Veranstaltung stattfinden kann. Anmeldungen bitte schriftlich an Frau Dr. A. Tews, Universitätsbibliothek, Beethovenstr. 6, 04107 Leipzig, Tel. 0341-9730-519. E-Mail: tews@biblio.ub.uni-leipzig.de

Entwicklungsabteilung: Mitarbeiterstellen abgesichert

Weil in der Bibliothekswelt wie sonstwo im öffentlichen Dienst Stellen eher abgebaut als abgesichert werden, und weil die Perspektiven der allegro-Entwicklung zeitweise unklar waren, da mehrere Stellen aus befristeten Mitteln finanziert wurden, geben wir hiermit folgende Information:

Die Anstellung aller derzeitigen Mitarbeiter der Abteilung ist über 1996 hinaus abgesichert. Intensive Bemühungen der Direktion und auch des Ministeriums, wo mander Angelegenheit hohe Priorität einräumt, haben dazu geführt, daß alle einen unbefristeten Arbeitsvertrag in der Tasche haben, bzw. in einem Fall dies noch zu erwarten ist (bis 1997 incl. aber die Beschäftigung auch so schon gesichert ist). Mit frischer Motivation geht es also weiter!

WordPerfect 5.1-Datei PostScript-Datei

© 1996 UB Braunschweig (Bernhard Eversberg (b.eversberg@tu-bs.de))

Fragen bitte an:

ub@tu-bs.de