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.
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.
Export
a) einzelne Zeichen
Wenn das Zeichen x nicht mit ausgegeben werden soll, schreibt man in die
Exportparameter diese Befehle:
p x 1
q x 1
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
Soll die Beseitigung nur in einem bestimmten Feld erfolgen, z.B. in #90, muß der
Exportbefehl so aussehen:
#90 ,"_x__"
##
) :*#90_x__
c) Zeichenkombinationen
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__
Wenn dagegen dasselbe nur in Kategorie #81 passieren soll, entweder globale
Ersetzung:
*#81 _xyz__
#81 ,"_xyz__" ...
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
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!)
_ "x" Solche Befehle wirken global, wenn sie oberhalb aller Importparagraphen
stehen!
_ ""
Eine lokale Ersetzung würde genauso aussehen, aber als Teil eines Paragraphen
(unterhalb einer '#'-Zeile):
#71
s 0 "250 "
_ "x" bzw. % "x"
_ ""
Löschungen von Zeichenkombinationen sehen genauso aus, nur mit der Kombination
anstelle von x
.
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!
a) im Editor
#501
gelöscht werden, muß man#v501
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
#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]
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
#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:#-#
|
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
##
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.
#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.
#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 d
xy .
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
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.
a) Einzelnen Satz oder Ergebnismenge von Hand löschen
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.
log2alg cat.log
und erhält eine Datei cat.alg
.
In dieser sind die gelöschten Sätze an der Kategorie u1 @@@@@
erkennbar. Mit dem X-Editor oder einem geeigneten anderen kann man die
benötigten Sätze herauskopieren in eine Datei loesch.alg
(dabei die u1
@@@@@
beseitigen) und dann diese Datei mit update -fm01 -uc:\allegro\katalog\loesch.alg ...
einmischen, dann sind die Sätze
wieder da.
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
.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.
-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!)
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. ;-)
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.)
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.
Situation / Aufgabe | erkennbar an | Was kann man tun? |
ANZEIGE-Bildschirm
Präsentation
eines
(Kap. 1.5)
|
Oben links steht: Datenbank ... Datei# ...
Zu sehen ist ein
Datensatz |
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
(Kap. 2.3.2)
|
Der Cursor steht
in einer Abfragezeile:
(Veränderung der
Abfragen: |
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 demHintergrundspeicher 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 (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 |
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.
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!
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:
[Esc] [Esc]
.#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.
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
Nur diejenigen Codes, die verändert werden müssen, brauchen mit einem o-Befehl
angegeben zu werden.
o .31 36 $ durch $ ersetzen (aber $ darf dann nicht vorkommen!)
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'
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!
dpac.apt statt d.apt, ersetzt z.B. 'ä' durch "ae"
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:
$anfang
und $ende,
demo
, und
a.cfg
srch -f6 -ka -dnummer.alg -bdemo/kat -ee-xt=testlist -m0 qrix -fd -P./ -ddemo -ekat=demo -ka -x0 -s$anfang -S$ende -Enummer.alg
-t00,20
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
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
[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-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.
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)
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
t
name 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)
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.
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.
1. USMARC mit Sprachenliste
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
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
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.
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!
© 1996 UB Braunschweig (Bernhard Eversberg (b.eversberg@tu-bs.de))
Fragen bitte an:
ub@tu-bs.de