Universitätsbibliothek der Technischen Universität Braunschweig, Universitätsplatz 1, D-38106 Braunschweig, Tel. (0531)391-5026, FAX-5836
Version 14 steht auf dem Prüfstand. Die allegro-Versionsnummern geben eigentlich nur die Jahreszahl seit Beginn der Entwicklung an, aber eine nennenswerte Verbesserung, ein "qualitativer Sprung" war in der Regel bei einem Versionswechsel trotzdem zuvermerken. V11 kam z.B. mit der Verknüpfungstechnik daher, V12 mit der Kurzanzeige, V13 brachte die verbesserten Konfigurationsmöglichkeiten (UniMARCPicaMAB). Und V14? Ist das etwa schon die Windows-Version (und deshalb der Titel "Durch- blick, Einblick, ...")? Wenn das so schnell ginge ... Nein, Version 14 erfüllt vielmehr die Wünsche, die V11 noch offengelassenhatte. Mit einem Satz: Verknüpfungen funktionieren jetzt endlich so, wie sich einige Anwender das von vornherein intuitiv vorgestellt hatten. Insbesondere bei der OPAC-Benutzung werden die Verknüpfungen völlig transparent (d.h. gar nicht mehr sichtbar: man findet Namen und Schlagwörter da, wo man sie erwartet). Aber auch die Parametrierung wird stark vereinfacht:Nachladevorgänge entfallen, jedenfalls für Stammsätze. Warum nicht gleich so? Nun, es gab kein verwertbares Vorbild (man konnte nirgends abkupfern), oder besser gesagt: was es gab und was man studieren konnte (Namen tun hier nichts zur Sache), hatte alles irgendwo einen Pferdefuß oder war wegen andersartiger Grundstrukturen so nicht nachvollziehbar. Insbesondere bestand keineBereitschaft, verbesserte Verknüpfungen mit einer Leistungseinbuße zu bezahlen. Außerdem waren die besagten Vorstellungen, die mancher Anwender gehabt hatte, als Entwicklungsziel noch nicht genügend präzise formuliert gewesen. Die längste Zeit wurde deshalb dazu gebraucht, Zielvorgaben zu erarbeiten, zuerst einmal ziemlich allgemein, dann im Detail, um dann mögliche Lösungs-ansätze zu sichten und zu bewerten, bevor es an die Programmierung ging. Hier zuerst die allgemeinen Grobziele:
Die Betaversionen der Programme liegen vor, werden an der UB Braunschweig bereits eingesetzt und auch an anderen Stellen getestet, und jeder Abonnent kann sie sich vom FTP-Server holen. Gegen Jahresende, nach weiteren ausgiebigen Tests, wird die Auslieferung erfolgen. Die neuen Funktionen und Möglichkeiten werden schon in dieser Nummer ausführlich dargestellt, damitjeder Interessent sich ein Bild machen und mit eigenen Planungen und Tests beginnen kann.
Den Durchblick fördern soll der folgende Katalog präzisierter Anforderungen, die sich aus den oben formulierten Grobzielen besonders auch für die Parametrierung ergeben, dann folgt ein Einblick in die Lösungsidee, und dann natürlich derVersuch, den nötigen Überblick für die Anwendung der neuen Methode zu schaffen. (Es kann nicht schaden, an dieser Stelle schon einmal den Abschnitt "Soll man's wirklich wagen?" auf Seite 5 zu lesen.)
Die Programme (PRESTO etc.) ersetzen jeweils vor dem Abarbeiten der Index- oder Exportparameter die Identnummern der Stammsätzedurch die Klartexte, also die Namen, Schlagwörter etc. Nachladungen sind dann unnötig. Nach dem Abarbeiten wird der Datensatz im Arbeitsspeicher wieder in den Originalzustand versetzt. Die Klartexte werden nicht durch Nachladen der Stammsätze herbeige- schafft, sondern aus einem geeignet konstruierten Register ("Ersetzungsschlüssel", s.u.) - nur so geht es schnell genug. DerIndex wird zwar größer, doch er ufert noch längst nicht aus.
(Anmerkung: Die Methode bezieht sich nur auf Stammsätze, nicht z.B. auf Verknüpfungen von mehrbändigen Werken.)
Soweit die Forderungen und das Konzept der Lösung, nun zur Realisierung. Was alles ist zu bedenken und zu tun, um die neuen Fähigkeiten der Programme zu nutzen? Damit die Übersicht nicht verlorengeht, müssen ein paar Randbedingungen festgelegtwerden:
nummer=Klartext
. Hiervon hängt
das Funktionieren der Ersetzungen ab. Das Register kann jedoch noch beliebige weitere Einträge enthalten.
In Titelsätzen braucht man keine neuen Kategorien. Man gibt statt eines Namens oder eines Schlagwortes dessen Stammsatz-Identnummer in derselben Kategorie ein, angeführt von dem Steuerzeichen. In ein und derselben Kategorie kann stets wahlweise
ein Klartext oder eine Identnummer eingesetzt werden. Das Entscheidende für die Parametrierung ist: man kann so tun, als ob in
den Kategorien immer Klartext stünde. Man muß die nachfolgend beschriebenen Voraussetzungen schaffen, dann braucht man sich beider Parametrierung nicht mehr mit den Identnummern zu befassen, denn vor der Abarbeitung der Parameter ersetzen die Programme
jeweils alle Identnummern durch die zugehörigen Klartexte. Damit dies funktioniert, muß man in die Index-Parameterdatei (z.B.
CAT.API) drei neue Befehle einbauen. Nur i5
muß unbedingt vorkommen, für die anderen beiden gibt esStandardwerte:
i4=k
Die Ziffer k ist der Ersetzungsmodus: (Standardwert: i4=0)
_NNN
steht, dann bewirkt der Wert _NNN
durch den Klartext, hinter _NNN
folgende Zeichen werden beseitigt _NNN
noch Zeichen folgen, bleiben diese stehen _NNN_
bleibt stehen, der Klartext wird dahinter eingefügt, nachfolgende Zeichen verschwinden i5=x
Das Zeichen x ist das festgelegte Steuerzeichen
i5
passiert nichts. Das bedeutet insbesondere: alle bisherigen Index-Parameterdateien, die ja
diesen Befehl nicht enthalten, funktionieren unverändert.
i6=i
Die Nummer des Registers, in dem die Ersetzungsschlüssel stehen (s.u.). (Standardwert: i6=9
)
Außerdem muß es bestimmte Typen von Schlüsseln geben, damit die Methode funktioniert. (In der neu erstellten PICA.PPI ist dieParametrierung dieser Schlüssel exemplarisch durchgeführt und kommentiert.)
Damit die Beschreibung nicht zu theoretisch wird, soll alles an konkreten Beispielen erläutert werden.
Hier ist ein Personenstammsatz (wie er im Format $A.CFG aussehen muß):
#00 123#4n Tucholsky, Kurt #4naTiger, Theobald; Wrobel, Ignaz; Panter, Peter
In einem Titelsatz hätte man folglich z.B. dieses Datenfeld für Tucholsky als Verfasser:
#40 _123
Beim Parametrieren für den Index kann man aber, wie gesagt, so tun, also ob man #40 Tucholsky, Kurt
hätte.
Für den Stammsatz muß die Index-Parameterdatei folgende Schlüssel liefern, damit das klappt:
|9123=|ATucholsky, Kurt Ersetzungsschlüssel, 123 ist zugl. Primärschlüssel d. Stammsatzes |9tucholsky, kurt _123 Übernahmeschlüssel (Erfassungshilfe) |1panter, peter -> tucholsky, kurt Verweisungen |1tiger, theobald -> tucholsky, kurt|1wrobel, ignaz -> tucholsky, kurt _1|1tucholsky, kurt Pseudoschlüssel für automatische Änderung
Es folgt die Erklärung, was es mit den einzelnen Schlüsseln auf sich hat.
Wenn hier von "Namen" die Rede ist, gilt dasselbe immer auch für Schlagwörter, Notationen, und andere Datenelemente, für die man Stammsätze nutzen will.
Der Ersetzungsschlüssel dient dazu, die beschriebenen Ersetzungen durchzuführen. Bevor die Indexparameter abgearbeitet werden,
sieht das Programm nach, ob in dem Datensatz das Zeichen x
aus dem Befehl i5=x
vorkommt. Wenn
also z.B. in einer Titelaufnahme _123
irgendwo steht (egal wo!), sucht das Programm im Register i6, in diesemFall also im Register 9, nach einer Zeile, die mit 123=
anfängt. Den Klartext, der dahinter steht, hier also
Tucholsky, Kurt
(in Normalschreibweise, wohlgemerkt), setzt es dann statt der Nummer _123
ein.
(Wenn 123
gefunden wird, aber "=..."
fehlt, passiert nichts!) Die Angabe |A
istnur für das Programm INDEX nötig, damit dieses in seinem zweiten Durchgang korrekt arbeiten kann (d.h. die Umcodierung
vornehmen kann, siehe unten, #-A ist die Sprungmarke). Wenn alle diese Ersetzungen erledigt sind, werden die Indexparameter
normal abgearbeitet. Danach werden die Ersetzungen sofort rückgängig gemacht, d.h. der Betrachter merkt von alledem nichts! Nurso ist es aber zu erklären, daß anschließend im Register 1 der Datensatz unter tucholsky, kurt
zu finden ist,
und nicht unter _123
- was ja bisher das Problem war.
Der Ersetzungsschlüssel kann zugleich Primärschlüssel sein: UPDATE vergleicht beim Einmischen nur bis zum '='.
Der Übernahmeschlüssel ist als Erfassungshilfe gedacht. Man möchte ja auf bequeme und zuverlässige Art bei der Dateneingabe die Nummer statt des Namens eingeben können, oder besser: kopieren. Dieser Schlüssel muß nicht im Register 9 stehen, man muß nurbei der Erfassung wissen, wo man ihn findet. (Im Namensregister selbst würde er im OPAC womöglich eher irritieren.) Die Erfassung geht so: in dem Moment, wo ein Name einzugeben ist, z.B. in einer Abfragezeile, drückt man F6, das Register erscheint, schaltet auf das Übernahmeregister um und sucht nach dem Namen. Man setzt den Pfeil auf die Zeile, drückt<Enter>, dann <Strg><Enter>, und die Nummer steht an der gewünschten Stelle. Wenn allerdings noch kein Stammsatz für den Namen vorhanden ist, müßte man diesen zuerst anlegen - oder den Namen zunächst im Klartext erfassen. Nebenbei bemerkt: solange ein Name nur einmal auftritt und keine Verweisungsform benötigt, solange ist ein Stammsatz blankeUmstandskrämerei.
Gelegentlich wird folgender Wunsch geäußert: In dem Moment, wo ein Name einzugeben ist, und wo man (oder das Programm) feststellt, daß es ihn im Katalog noch nicht gibt, muß ein Fenster aufgehen, wo man ihn als Stammsatz erfassen kann. Mitallegro geht das vorerst nicht. Es empfiehlt sich folgendes: vor der Erfassung des Titelsatzes kurz nachschauen (es geht ja wirklich schnell), ob die benötigten Namen etc. vorhanden sind; falls einer fehlt und man tatsächlich einen Stammsatz haben will, diesen anlegen, dann erst die Titelerfassung starten. Zuviel der Disziplin?
Die Verweisungen sind ein wichtiger Grund, warum man überhaupt Stammsätze macht: sie führen im OPAC von der Verweisungsform zur Ansetzungsform und gelten für beliebig viele Titel, obwohl sie nur einmal, eben im Stammsatz, gespeichert sind. Eine neueVerweisung wird nur im Stammsatz ergänzt, an den Titelsätzen ist nichts zu tun. Die Anzahl der Verweisungen und die Art ihrer Darstellung in den Registern haben auf die Funktion der Verknüpfung keinen Einfluß.
Der Pseudoschlüssel ist ein wichtiges, neues Hilfsmittel. Er wird nicht einsortiert (daher "Pseudo"), sondern nur für
Kontrollzwecke gebraucht: Gesetzt den Fall, man ändert im Stammsatz die Ansetzungsform ( #4n
im Beispiel). Dannmüssen ja auch die Titeleinträge, die unter tucholsky, kurt
standen, auf die neue Form geändert werden. Das
Programm merkt, wenn sich bei einer Korrektur am Stammsatz der Pseudoschlüssel ändert. Dann sucht es die unter der alten Form
stehenden Einträge zusammen und überführt sie auf die neue Form. Die Titelsätze werden dazu nicht angefaßt: dort steht ja nurdie Nummer, und die ändert sich nicht. (Besser gesagt: sie sollte sich nicht ändern. Man setzt am besten in der .CFG mit
P5
den Änderungsschutz auf die Kategorie #00). Wenn man in der Index-Parameterdatei keinen Pseudoschlüssel anlegt,
finden derartige automatische Verlagerungen nicht statt.
Der Pseudoschlüssel kann in der Regel mit dem Löschkontrollschlüssel kombiniert werden (s. news 34, S.2). Im Beispiel ist
|1tucholsky, kurt
zugleich der Schlüssel, der vor dem Löschen des Stammsatzes kontrolliert werden muß.
Der Pseudoschlüssel beginnt mit dem Steuerzeichen i5, hier also mit '_'. Die Ziffer '1' dahinter hat eine wichtige Bedeutung:an dieser Stelle kann auch '0' stehen. Die '0' bedeutet, daß nur solche Einträge verlagert werden sollen, die exakt
tucholsky, kurt
lauten. Die '1' dagegen bewirkt, daß alle Einträge verlagert werden, die mit tucholsky, kurt
beginnen, also z.B. Schlagwortketten mit diesem Namen als Anfangsteil. Diesen Modus kann man also für die einzelnenStammsatztypen unterschiedlich festlegen.
Beim Entwurf einer Datenbank sind noch zwei Dinge zu beachten:
1. Je Stammsatz kann man nur einen Pseudoschlüssel definieren. Das hat zur Folge, daß nur eine Eintragung automatisch verlagertwerden kann. Würde man z.B. neben dem Namensregister noch ein Verfasser/Titelregister machen, dann würde sich dort die Änderung des Stammsatzes nicht auswirken. (Ein solches ist allerdings seit Einführung der Kurzanzeige nicht mehr nötig, und die Kurzanzeige wird ja korrigiert (s.u.)!)
2. Die automatische Verlagerung erfaßt auch solche Einträge, die gar nicht vom Stammsatz herrühren! Wenn man z.B. in manchen
Titelsätzen #40 _123
stehen hat, in manchen anderen aber #40 Tucholsky, Kurt
, dann sehen die
Registereinträge für beide gleich aus. Bei einer Änderung der Ansetzungsform im Stammsatz werden dann beide verlagert, denn andas Programm greift dabei nicht auf die Titelsätze zu (das würde zu lange dauern!). Allerdings wird man, wenn man überhaupt mit
Stammsätzen arbeitet, solche Mischanwendungen zu vermeiden suchen. Entweder hat man für eine Person einen Stammsatz, dann
sollte man diesen in jedem Fall verwenden, oder man hat keinen, dann kann auch nichts schiefgehen. Mehr Überlegung ist nötig,wenn man den Ersetzungsmodus '1' anwendet. Insbesondere bei Schlagwörtern muß man prüfen, ob dann nicht doch Einträge betroffen
werden, die tatsächlich nichts mit dem Stammsatz zu tun haben sondern nur zufällig denselben Anfangsteil besitzen. Will man in
ein schon laufendes System sukzessive Stammsätze einführen, sollte man für jeden neuen Stammsatz die evtl. schon vorhandenenKlartexteinträge auf Nummern umstellen.
Diese zwei Einschränkungen sind nicht gravierend. Erstens sind Änderungen der Ansetzungsform in Stammsätzen ihrer Natur nach nicht eben häufig, zweitens werden die wirklich wesentlichen Einträge in jedem Fall geändert, drittens ist durch eine Neu-Indexierung im Notfall alles wieder zu korrigieren.
Genau diese Frage werden jetzt diejenigen stellen, die mit V11 unzufrieden waren, weil man in der Index-Parameterdatei nicht
"nachladen" konnte. Es ist natürlich immer noch so: das Programm INDEX kann die oben beschriebenen Ersetzungen nicht vornehmen,
weil zu dem Zeitpunkt, wo es die Daten abarbeitet, der Index noch gar nicht vorhanden ist, aus dem es die Klartexte entnehmenmüßte. Für das oben benutzte Beispiel bedeutet dies: INDEX erzeugt den Schlüssel _123
für den Titelsatz anstatt
tucholsky, kurt
. Es entsteht also zunächst ein Index mit vielen solchen Einträgen. Diese müssen in einem zweiten
Durchlauf aufgelöst werden. In diesem zweiten Durchlauf schaut INDEX nach, ob Einträge vorhanden sind, die mit '_' beginnen,also z.B. _123
. Dann sucht es im Register i6 nach 123=
, nimmt den Klartext, den es dahinter
findet, führt die Befehle bei Sprungmarke #-A aus, und setzt das Ergebnis in das Register, wo _123 stand, und _123 wird dort
gelöscht. Wenn " 123=
" im Register i6 nicht gefunden wird, bleibt es unverändert stehen.
Den zweiten Durchlauf startet QRIX automatisch, man kann ihn aber auch von Hand starten:
INDEX -fa -d*datenpfad -eindexparameter/datenpfad -kkonfig
d.h. INDEX hat eine neue Funktion -fa
erhalten. Sind keine Einträge der bewußten Art vorhanden, geschiehtnatürlich nichts. Dieser Durchlauf kann auch gestartet werden, wenn die Datenbank schon (im Netz) in Betrieb ist. Für sehr
große Datenbanken ist dies ein Vorteil, die Datenbank schon wieder freigeben zu können. Der zweite Durchlauf geht allerdings
recht schnell, weil die Datensätze selbst nicht nochmals gelesen und ausgewertet werden müssen.
Aus diesem Verfahren ergibt sich eine weitere Einschränkung: wenn man z.B. einen Namen in einer weiteren Indexeintragung benutzt als zweiten oder weiteren Bestandteil eines Schlüssels, kann INDEX diesen im zweiten Durchlauf nicht finden, und er bleibt als Nummer im Register stehen. Unter PRESTO würden die korrekten Einträge entstehen, da die Ersetzung vor dem Abarbeitender Indexparameter stattfindet. Hier ist zu bemerken, daß mehrteilige Schlüssel eine allegro-Eigenheit sind, die andere Datenbanksysteme überhaupt nicht kennen. Auch die Bildung mehrerer Schlüssel aus einem Datenfeld ist in der Datenbankwelt eine eher seltene Besonderheit.
Auch diese kann Elemente enthalten, z.B. den Verfassernamen, die in den Titelsätzen nur aus einer Stammsatznummer bestehen. INDEX korrigiert im zweiten Durchlauf auch die Kurzanzeige, wenn dies der Fall ist. Unter PRESTO ist es ohnehin kein Problem, da vor der Bearbeitung der Index-Parameterdatei, also auch der Kurzanzeige, die Ersetzungen automatisch erfolgen.
Nun zur Volltextsuche. Wenn man " tucho
" als Suchwort eingibt, will man alle Datensätze finden, in denen dieseZeichenkette vorkommt, auch die, in denen statt dessen " _123
" steht. Auch dieses funktioniert. SRCH liest,
anders als früher, vor der Suchaktion die Index-Parameterdatei und informiert sich darüber, ob derartige Verhältnisse vorliegen
können, d.h. es schaut sich die Befehle i5 und i6 an. Und dann tut es folgendes: es liest einen Datensatz ein, kopiert ihn ineinen "Suchbereich", nimmt per Index die Ersetzungen vor und ersetzt dann noch mit Hilfe der Tabelle S1.ASP einzelne Zeichen
(z.B. Groß- durch Kleinbuchstaben). Somit steht dann im Suchbereich tatsächlich " tucholsky
". Genauer: dort steht
" _123_tucholsky, kurt"
. Das bedeutet: man kann sowohl nach dem Namen wie auch der Nummer suchen. Wenn man z.B.als Suchbegriff " #4,123
" gibt, werden alle Sätze gefunden, die in einer Kategorie der Gruppe #4 die Ziffernfolge
123 enthalten. Wenn man " #4,tucho
" gibt, werden alle Sätze gefunden, die in einer Kategorie der Gruppe #4 die
Zeichenfolge "tucho" enthalten - auch dann, wenn diese durch Ersetzung erst über den Index hereingeholt wird, denn dieErsetzung passiert vor der Abarbeitung des Suchbefehls.
Für den Export, den SRCH evtl. vornehmen soll, ist es freilich noch etwas anders: dafür steht im normalen Arbeitsspeicher der
unveränderte Satz (also mit #40 _123
). Es kann ja sein, daß man genau so und nicht anders exportieren will. Wennman will, daß die Nummern durch Klartexte ersetzt werden, braucht man nur in der Export-Parameterdatei den Befehl i4=0
unterzubringen, das ist alles - Nachladen erübrigt sich. Oder i4=4
, dann stehen Nummer und Name für den
Export zur Verfügung. Der Wert i4 kann also für den Export anders aussehen als in der Index-Parameterdatei! Alle bisherigenExporte funktionieren unverändert, denn sie enthalten keinen Befehl i4.
Das Programm UPDATE verfügt für die Behandlung der Verknüpfungen über dieselben Funktionen wie PRESTO. Wie oben erwähnt, kann der Ersetzungsschlüssel zugleich als Primärschlüssel dienen. UPDATE vergleicht ihn nur bis zum Zeichen '=' mit den vorhandenen Schlüsseln. Wenn also ein korrigierter Stammsatz geliefert wird, in dem die Ansetzungsform verändert wurde, kann UPDATE ihnerstens richtig zuordnen und zweitens die nötigen Veränderungen im betroffenen Register und evtl. in der Kurzanzeige vornehmen.
Die auf PRESTO beruhenden Programme ALFA, APAC, MENUED etc. enthalten ebenfalls die neuen Funktionen.
Noch zwei Kleinigkeiten:
Die längliche Beschreibung täuscht darüber hinweg, daß die Arbeit mit Stammsätzen mit V14 tatsächlich erheblich einfacher wirdals vorher. Sind die beschriebenen Parametrierungen einmal erledigt, ist das Arbeiten mit dem System sowohl bei der Katalogisierung als auch besonders bei der OPAC-Benutzung nicht mehr schwierig.
Trotzdem steht die Frage: sollte man wirklich mit Stammsätzen arbeiten? Global kann man das nicht mit ja oder nein beantworten.Erstens ist für die unterschiedlichen Fälle (Personen, Körperschaften, Notationen, Schlagwörter, Serientitel, etc.) jeweils gesondert zu überlegen, ob sich für die konkrete Datenbank die Sache lohnt oder nicht. Zweitens und andererseits kann es Sachzwänge geben, die keine andere Wahl übriglassen. Man denke an einen Katalogisierungsverbund, der mit Stammsätzen arbeitet.Wenn man den eigenen OPAC mit den Daten des Verbundes speist, ist es doch sehr sinnvoll, auch dessen Identnummern und Stammsätze zu verwenden. Wie will man sonst die Verweisungen ins eigene System bekommen? Das Problem allerdings, ob und wie die Stammsätze geliefert werden können, ist ein Problem des Verbundes! Ganz besonders die Frage, ob man veränderte Stammsätzebekommt, wenn ein anderer Verbundteilnehmer die Änderung gemacht hat. Man wird nämlich keineswegs alle Stammsätze des Zentralsystems auch lokal vorhalten und ständig synchronisieren wollen oder können. allegro jedenfalls kann jetzt alles, was der Verbund liefert, adäquat behandeln.
Gibt man einen Suchbegriff der Form " abc?
" ein, wird das Register automatisch an der Position des '?' trunkiert.
Damit kann man das Programm "überlisten": Eingabe von " a?
" bewirkt die Trunkierung auf 1 Zeichen, was mit F10
nicht geht.
Folgendes Problem trat auf: auf dem Bildschirm hat man die Kurzanzeige einer Ergebnismenge (<Shift>+F9), dann wird einanderes Register angewählt - und der Schirm wird leer. Eingabe eines neuen Suchbegriffs oder weiteres Umschalten normalisierte dann die Situation wieder, aber der Fehler wurde abgestellt.
Es gab eine Fehlermöglichkeit bei hierarchisch gespeicherten mehrbändigen Werken: wenn man zur Hauptaufnahme eine neue Kategorie hinzufügte und diese zufällig an das Ende der Hauptaufnahme zu stehen kam, verschwanden anschließend beim Speicherndie Unteraufnahmen! Das galt auch für die Datumskategorien: wenn das automatisch erzeugte Änderungsdatum ausgerechnet an das Ende zu stehen kam (z.B. #069 beim NW-Format), passierte dasselbe. Weil das nicht unbedingt sofort auffiel, war dies ein äußerst unangenehmer Fehler. Er ist behoben.
Die Kopfzeile mit dem Namen des Katalogs (erscheint nur bei APAC und bei PRESTO -a0) steht in der Zeile mit der Nummer 186 derDatei UIF1GER. Die Titel der Register stehen dagegen in der Index-Parameterdatei (Handbuch Kap. 10.2.1.3, Seite 161). Aus der Sicht eines Systemverwalters ist dies ärgerlich. Daher gibt es jetzt den neuen Befehl
|a="text"
Überschrift für den Anzeige-Bildschirm
den man in die Index-, aber auch in die Anzeigeparameter schreiben kann. Dasselbe gilt für die Befehle |i=...
,
mit denen die Registerüberschriften gesetzt werden. Handlungsbedarf besteht nicht, denn die Nummer 168 in der UIF1 bleibt
ebenfalls gültig, wird aber durch den neuen Befehl überschrieben.
beansprucht z.B. das Programm APAC, wenn man es über eine Mailbox im "Doorway"-Modus von außen benutzt. Die Zeile 25 desBildschirms wird dabei nämlich als Statuszeile benutzt. Um diese Komplikation nicht mit Tricks in der UIFA-Datei ausbügeln zu
müssen, wurde die Aufrufoption -V
eingeführt. Der Standardwert ist -V22
, d.h. die Registeranzeige
hat 22 Zeilen. Mit -V21
reduziert man dies um eine Zeile, so daß insgesamt nur 24 gebraucht werden. Allerdingsläßt das Programm nun auch gleich kleinere und größere Werte zu! Die Frage ist, besonderes bei größeren, wie das dann
aussieht.
Wenn PRESTO aus einer Stapeldatei gestartet wird, kann man jetzt die Exportoption unvollständig angeben:
-eparam/
d.h. also den Dateinamen hinter dem '/' weglassen. Das Programm fragt dann vor dem Start den gewünschten Dateinamen ab. In Mehrplatzumgebungen kann man so den Einsatz des Programms flexibilisieren, was bei SRCH bereits möglich war.
Die Programme ACP (CockPit) und APAC (OPAC) erlauben es, unerwünschte Menüpunkte zu unterdrücken. Dazu muß man die zugehörigen UIF-Dateien manipulieren. Die Methode ist jedoch nicht für beide dieselbe:
ACP | Datei UIFCGER : unerwünschte Menüzeile löschen oder desaktivieren (Leerzeichen davorsetzen) |
APAC | Datei UIFAGER : Menüzeile auf "leer" setzen, z.B. 208="" (Register 5 wird
abgeschaltet)(Wenn man die Zeile herausnimmt oder desaktiviert, erscheint eine leere Menüzeile, mit der man die unerwünschte Funktion jedoch sogar aktivieren kann!) |
Warum dieser Unterschied? Das weiß niemand mehr. Es wird geprüft, ob man das vereinheitlichen kann.
Die Funktion -fc
Was macht sie eigentlich, was kann man damit anfangen? Dazu eine kurze Beschreibung und einige Tips.
UPDATE macht zunächst dasselbe wie bei der Funktion -fm
:
Anders als bei Funktion -fm
wird jetzt aber keine Ersetzung des gefundenen Satzes durchgeführt, sondern:
-fc
auf jeden Fall eine Exportoption -eparam/datei
angeben, sonst hat man nichts davon.
Als Überschriften setzt das Programm automatisch die Zeilen 188 ("neuer Datensatz") bzw. 189 ("vorhandener Datensatz") über die Datensätze. Das ist erwünscht, wenn man eine "Dublettenverdachtsliste" erstellen will, denn der Primärschlüssel sollte jaeindeutig sein! Die besagten Zwischenüberschriften sind jedoch unerwünscht, wenn man die Datensätze in interner Form (mit PA.APR oder I-*.APR) exportiert. Um sie zu unterdrücken, setze man 188="" und 189="".
Die UB Braunschweig benutzt für den Institutskatalog einen "Matchcode" als Dubletten-Kontrollschlüssel. Er setzt sich zusammen aus
Den Durchlauf
mit -fc
macht man selbstverständlich bevor man einen
Durchlauf mit -fm
ausführen läßt, denn
danach würde -fc
lauter Treffer liefern!
Eine erheblich verfeinerte Dublettenverdachtskontrolle kann man mit SRCH und einer geeigneten Export-Parameterdatei programmieren. Dabei kann man erstens mehr als eine Prüfung durchführen lassen und zweitens mehr als einendublettenverdächtigen Datensatz aus der Datenbank herausfischen (UPDATE -fc liefert nur den ersten von mehreren!).
Die besagte Export-Parameterdatei muß dann die zu kontrollierenden Schlüssel selbst erstellen und damit aus der Datenbank die vorhandenen Sätze durch Nachladung herausziehen, um sie dann geeignet auszugeben. Da es hierbei äußerst diffizile undindividuelle Anforderungen geben kann, ist das ein Geschäft für Parametrier-Virtuosen.
Mit Einführung der Teilfeld-Abfragetechnik entstand der Wunsch, wiederholbare Felder in einer Schleife abfragen zu können, für jedes einzelne Feld jedoch zwei oder mehr Teilfelder. Diese Möglichkeit wurde eingebaut. Da es auf viele Einzelheiten sehrgenau ankommt, stellen wir drei Muster vor, wie solche Schleifen zu konstruieren sind.
Wichtige Voraussetzung: Vor der Schleife muß mindestens ein Feld abgefragt werden, das in der Reihenfolge vor dem abzufragenden Mehrfachfeld steht. Aus internen Gründen funktioniert die Schleife nicht, wenn im Arbeitsspeicher noch keine Kategorie ist, dieder abzufragenden vorausgeht.
Die zur Schleife gehörigen Zeilen müssen mit derselben Kategorienummer (evtl. plus Indikator) anfangen, die erste braucht nicht mit einem ' ', die weiteren müssen mit zwei solchen Zeichen anfangen, denn daran erkennt das Programm, daß der eingegebene Textan die schon eingegebene Kategorie anzuhängen ist; das zweite ' ' wird entfernt.
Wenn ein Fehlerhinweis erscheint, diesen mit <Enter> wegdrücken, dann geht die Schleife weiter.
Beispiel 1: Format ohne Indikator (t2, k4 : Konfiguration A.CFG)
...... Einige andere Abfragen gehen voran, so daß im Arbeitsspeicher schon Felder sind, die im Kategoriesystem vor der Schleifenkategorie #85 liegen. -A85 " Serie ; Band " erstes Teilfeld abfragen (das erste geht auch ohne Teilfeldkennung!) =""+D wenn nichts eingegeben wurde: Schleife verlassen 85 " Körperschaft : " 2. Teilfeld (Leerzeichen als Teilfeldkennung!) 85 i" ISSN : " 3. Teilfeld +A zurück zum Schleifenanfang -D Fortsetzung hier, wenn Schleife durch Leereingabe beendet wurde
Beispiel 2: Ein Indikator (t3, k6 : $D.CFG = MAB-Format)
(Dieses Beispiel ist nur fingiert, denn MAB kennt keine Teilfelder, außerdem ist die #100 nicht wiederholbar.)
-A 100 a" Nachname: " Indikator ist ' ' (2 Leerzeichen hinter der 100 !) =" a"+D Es wurde nichts eingegeben (Kategorie besteht nur aus " a") 100 b" Vorname: " 100 c" Datum: " +A-D
Beispiel 3: Zwei Indikatoren (t3, k7 : $U.CFG = MARC-Format, #600 = Personenschlagwort)
-A 600 10 a" Personal name: " "10" sind die Indikatoren =" a"+D Es wurde nichts eingegeben 600 10 d" Dates: " 600 10 x" Subdivision: "+A -D
In der CFG-Zeile für die betreffende Kategorie (#40, #100, #700) muß natürlich sichergestellt sein, daß die Kategorie überhaupt mehrfach besetzbar ist (eine Angabe Mxxx muß vorhanden sein). Automatisch erhalten dann die eingegebenen Felder die zulässigenWiederholungszeichen.
Übrigens: in einem Prompttext darf jetzt auch das Zeichen '_' (Unterstrich) vorkommen.
Die Produktion von Bibliographien mit Registern ist für einige Anwender der wichtigste Einsatzzweck der Software. Es handelt sich dabei um eine sehr anspruchsvolle Aufgabe, geradezu eine Herausforderung für den allegrologen, der hier alle Register der Parametrierungskunst ziehen muß. Seit Version 12 gehören Prototyp-Parameterdateien zum Lieferumfang, die es erleichtern sollen,solche Aufgaben zu lösen. Für V14 wird eine Unterstützung durch das CockPit vorbereitet, ähnlich derjenigen für die Listenproduktion.
Eine numerierte Liste mit Register wird im Prinzip immer in sechs Schritten oder Programmläufen hergestellt. Diese Schrittesind musterhaft in der Stapeldatei ALPHA.BAT dargestellt und kommentiert. Ziehen Sie diese auch als "Strickmuster" für Ihre eigenen Produktionen heran. Die folgende Beschreibung stellt etwas ausführlicher dar, was bei diesen sechs Schritten im einzelnen passiert und was dabei die entscheidenden Punkte sind.
Bevor der Eindruck aufkommt, es sei ein hoffnungslos kompliziertes Unterfangen, gleich der Hinweis: nur die Schritte 1 und 3 erfordern in der Regel individuelle Eingriffe. Die Datei ALPHA.BAT kann man komplett übernehmen, und die Schritte 4, 5 und 6 sind sogar mitsamt der Parameterdateien für alle Registerproduktionen und alle Kategoriesysteme gleich! Die Schritte 1 bis 3sind dieselben wie bei einer normalen Listenproduktion (PR-LIST.BAT), nur beim Schritt 3 wird neben der Liste zusätzlich eine Rohdatei für das Register ausgegeben. (Was hier mit A.CFG gemacht wird, geht auch mit jeder anderen Konfiguration.)
1. Sortierfähige Grunddatei erstellen
Mit PRESTO oder SRCH und einer Parameterdatei vom Typ S-*.APR wird eine sortierfähige Grunddatei HHH1.ALG exportiert. Damit man die Stapeldatei ALPHA.BAT nicht ändern muß, kopiert man die gewählte S-*.PR vorher auf SORT.APR (analog zu SR-LIST.BAT und PR-LIST.BAT). Die SORT.APR bestimmt über die Art der Sortierung. Dieser Vorgang unterscheidet sich noch nicht von der normalen Listenproduktion.
2. Grunddatei sortieren
Die Datensätze in HHH1.ALG beginnen alle mit
#u1 sortierbegriff #u2 Druckbegriff#00 ...
Mit dem Befehl asort HHH1.ALG HHH2.ALG
entsteht eine sortierte Grunddatei HHH2.ALG, aus der im dritten
Schritt die Titelliste erstellt werden kann (der Hauptteil der Bibliographie).
3. Liste ausgeben UND sortierfähige Grunddatei für Register erstellen
Das Entscheidende und Typische ist die gleichzeitige Erstellung von zwei Dateien mit einem SRCH-Durchlauf: erstens die Titelliste (Datei LISTE) als Hauptteil der Bibliographie, zweitens eine Grunddatei, die nur die Registerdaten und dieTitelnummern (oder Seitenzahlen der Hauptliste) enthält. Die Voraussetzungen für diesen Schritt sind:
#u1 sortierfaehiger registerbegriff Kleinbuchstaben, aufgelöste Umlaute etc. #u2 Druckfähiger Registerbegriff Sortierbegriff in normaler Schreibweise #99zlfd.Nr bzw. Seitenzahl (= Inhalt von #unr)
Die noch folgenden drei Schritte kann man mit A.CFG laufen lassen, denn es werden nur die Kategorien #u1 und #u2 sowie #99 benutzt. Sonst müßte man ALPHA2.APR und ALPHA3.APR auf die eigene Konfiguration umstellen.
4. Registerdaten sortieren
Die Grunddatei HHH wird mit asort hhh hhh.alg
sortiert. Dann stehen gleichlautende Registereinträge
hintereinander.
5. Mehrfacheinträge eliminieren, Einträge zusammenfassen
Ein SRCH-Lauf mit ALPHA2.APR als Exportparameter erstellt aus HHH.ALG eine neue Grunddatei RNG.ALG. Bei diesem Vorgang werdengleichlautende Einträge entfernt (z.B. Name und Seitenzahl identisch). Einträge mit gleichem Sortierbegriff (Name, Schlagwort, etc.) und unterschiedlicher Seitenzahl oder Satznummer werden zu einem Datensatz zusammengefaßt. Die Seiten- bzw. Satznummern werden, durch Kommata getrennt, zu einem Datenfeld vereinigt.
6. Register drucken
Die Datei RNG.ALG hat nun eine sehr einfache Struktur: die Sätze bestehen aus dem Eintragselement #u2 und einer Folge vonNummern (#99z). Ein SRCH-Lauf mit ALPHA3.APR macht daraus die Datei REG.TXT. Dabei wird auch ein Seitenumbruch durchgeführt. Wird dieser nicht gewünscht, muß man in ALPHA3.APR den "Kopfabschnitt" (siehe Kommentar in dieser Datei) beseitigen. Dann hat man die Möglichkeit, die entstandene Registerdatei mit einem Textprogramm einzulesen und zu verschönern.
Das Paket der hier erwähnten Dateien ist auf FTP-Server und Mailbox verfügbar (Datei ALPHA.LZH) und wird mit V14 allgemein ausgeliefert.
Wenn man aber zwei Register braucht, oder drei? Dann müßte man die ALPHA.BAT erweitern. Im dritten Schritt müßte eine (oder zwei) weitere Exportoptionen angehängt werden, mit entsprechend anderen Parameterdateien vom Typ A. Dann entstünden zusätzlicheRohdateien. Die Schritte 4 bis 6 wären dieselben, müßten also nur dupliziert werden für diese weiteren Rohdateien.
Es ist bald soweit: Das Erwerbungsmodul enthält jetzt die Fähigkeiten des Kernsystems in der Version 13a. Damit kann ORDER auchmit anderen, mehrstelligen Konfigurationen betrieben werden. Der Umstellung Ihrer Erwerbungsdatenbank auf eine .CFG der neuen Art steht jetzt nichts mehr im Wege. Wann kommt das Programm? Nun, es sind noch Tests mit anderen Datenbankkonfigurationen nötig und die Dokumentation muß noch überarbeitet werden. Die Auslieferung wird dann nach den Expertentreffen beginnen, etwaAnfang Oktober.
Was ist sonst noch neu?
Es handelt sich um eine Zwischenversion, die per Mailbox und FTP erhältlich sein wird.
Es sind Mahn- und Gebührenfunktionen realisiert, die auf Benutzerklassen und Medientypen abgestimmt werden können. Zur Nutzungdieser Funktionen sind einige Anpassungen nötig. Eine Referenzdatenbank mit beispielhaften Parametrierungen soll dazu anschauliche Hilfestellung bieten. (ha)
Es hat immer wieder Versuche gegeben, Literaturdatenbanken mit Hilfe von dBase oder Clipper zu erstellen. Viele haben diese Datenbanken intensiv genutzt und viele tun es auch heute noch. Wenn man diese Daten in eine allegro-Datenbank überführen möchte, wird man die Daten nicht alle neu eingeben sondern mit Hilfe von IMPORT umwandeln wollen.
Prinzipiell ist das ja auch möglich. Neben den Daten benötigt IMPORT eine aber genaue Beschreibung der Struktur der Fremddaten in Form einer Importparameterdatei. Und da liegt denn doch eine Schwierigkeit: Bei Datenbanken, die man nicht selbst erstellt hat, ist die Struktur oftmals nicht genügend dokumentiert. dBase speichert selber die Struktur einer Datenbank imDateikopf der Datendatei. Sie ist nur recht schwer zu entschlüsseln, da sie sehr kompakt gespeichert wird. Es gibt aber einen Ausweg: Jede dBase-Datenbank läßt sich in ein Exportformat, das sogenannte delimited-Format, überführen. Das ist ein Format, bei dem jeder Datensatz in eine einzelne Zeile geschrieben wird. Die einzelnen Felder des Satzes werden durch ein Kommavoneinander getrennt. Einige Felder werden nach Wunsch mit einem Delimiter (Trennzeichen) eingeschlossen. Um dieses Format zu erzeugen, muß man aber dBase besitzen. Wer das nicht hat, ist aufgeschmissen. Aber selbst wenn man dBase hat, ist man nicht sehr glücklich dran, denn das erzeugte Format ist nicht besonders IMPORT-freundlich:
Gerade in Literaturdatenbanken wird häufig Gebrauch von Memofeldern gemacht. Das sind Freitextfelder, in die meistens Dateneingetragen werden, die sonst in den Feldern der Datenbank nicht unterzubringen sind. Dabei handelt sich z.B. um Exemplarangaben, Preise oder sonstiges. In der Regel sind es aber Daten, die man unbedingt mit in die allegro-Datenbank übernehmen möchte.
Das Programm DB2DELIM bügelt diese "Ungereimtheiten" nun alle aus:
Die so aufbereiteten Daten können jetzt mit einer einfachen Importparameterdatei importiert werden.
Sie finden das Programm in der Datei DB2DELIM.LZH in der Mailbox in Area 17 - Allegro-Utilities. In dem Archiv ist auch eine ausführliche Anleitung. (ho)
Das Bearbeiten der ASCII-Dateien (Konfiguration, Parameterdateien, UIF... etc.) ist eine Routinetätigkeit, die man mit jedem Texteditor erledigen kann. In der Praxis werden unter MS-DOS überwiegend die Editoren X und Q eingesetzt, unter UNIX ist immervi verfügbar. Für diese gängigen Editoren stellt die folgende Tabelle diejenigen Handgriffe übersichtlich zusammen, die man wirklich braucht. Die Editoren können zwar noch eine Menge mehr, und die erhältlichen Beschreibungen stellen immer das gesamte Spektrum der Funktionen mit allen Optionen dar, so daß man jeweils das bekannte Gefühl hat, "den Wald vor lauter Bäumen nichtzu sehen". Die Tabelle kann daher eine Hilfe sein, wenn man noch nicht mit einem der Editoren hinreichend vertraut ist - oder umsteigen muß, z.B. auf UNIX.
Symbolik:
"..." | Cursor an die richtige Stelle fahren o.a. Zwischenaktionen |
XX | beliebige Zeichenkette |
NAME | ein Dateiname |
<+ | <Enter>-Taste |
(^ bedeutet dasselbe wie <Strg>)
Funktion | x | q | vi |
Schreib- - >Befehlsmodus | <Esc> | <Esc> | <Esc> |
Befehls- - >Schreibmodus | <Einfg>
Einfügemodus x Überschreibmodus | <Esc> | R
Überschreibmodus i Einfügemodus |
Zeichen löschen | <Entf> | <Entf> | x |
Zeile löschen | F3 oder <Esc> d d | ^Y | dd |
Leerzeile einfügen | F4 oder<Ende><+ | ^N | O (Großbuchstabe O) |
Zeilenanfang | <Pos1> | <Pos1> | 0 (Null) |
Zeilenende | <Ende> | <Ende> | $ |
Bildschirmanfang | <Pos1> <Pos1> | <Strg><Pos1> | H |
Bildschirmende | <Ende> <Ende> | <Strg><Ende> | L |
Textanfang | <Strg><Pos1> | <Strg><Bild > ; | :1 <+ |
Textende | <Strg><End> | <Strg><Bild > ; | G |
Seite vor/zurück | <Bild > / <Bild > | <Bild > / <Bild > | ^F / ^B |
Zeile(n) kopieren | <Esc> b b ... c | <F4> (Zeile dupliz.) | yy ... p |
Block verschieben | <Esc> d ... d ... c | ^K B .. ^K K .. ^K V | n d ... p (n=Zeilenzahl) |
Finden | <Esc> f XX | ^Q f XX <+ i | / XX <+ |
nächste/vorige Stelle | a / - <+ | ^L | n N |
Suchen + Ersetzen | <Esc> r XX <+ YY | <Esc> s r XX <+ YY <+ | :%s/XX/YY/ <+ rückgängig: u |
Datei einkopieren | <Esc> g NAME | -- | ... :r NAME <+ |
Zweiten Text bearbeiten | <Esc> o NAME | <Alt>E | :e NAME <+ |
Funktion | x | q | vi |
umschalt.Text1<- >Text2 | <Esc> o | <Alt>N | :n <+ |
Teilstück -> Datei | <Esc> p...p NAME <+ | -- | :m,n w NAME <+ |
Zeile teilen | ... <Einfg> <+ | ... <Einfg> <+ | ... R <+ |
Zeilen verbinden | <Ende> <Entf> | <Ende> <Entf> | J |
Marke setzen | <Esc> t a (oder b,c,d) | -- | m a |
zur Marke springen | <Esc> j a (oder b,c,d) | -- | ` a (Gravis!) |
letzten Befehl wiederholen | a | ^q q | . (Punkt) |
Makro definieren | <Esc> m r <Fi> .... m | ^M <Fi> ... ^M | :map X befehl |
Makro ausführen | <Fi> (i=1..8) | <Fi> (0=1..8) | X (X=alphanum.Zeichen) |
korrespond. Klammer | <F8> (oder '(' ) | -- | % |
Sichern+Ende | <Esc> q s | <Esc> f s <Alt>x y | ZZ |
Abbruch | <Esc> q e y | <Alt>+x n | :q! |
Der Durchbruch steht nun endlich auch an der UNIX-Front bevor. An der allegro-X-Brutstätte Herzog August Bibliothek in Wolfenbüttel hat Dr. P. Pfeiffer in monatelanger, systematischer Kleinarbeit die aktuellen Quellprogramme durchforstet und soaufbereitet, daß nun alle hardware- und systemspezifischen Elemente klar getrennt vorliegen und die Compilierung für eine der bereits einbezogenen Plattformen nur noch die Umstellung eines "Schalters" erfordert. Die Anpassung an eine weitere Plattform ist erreichbar durch das Zusammenstellen einer Liste von systemrelevanten Parametern. Das läuft darauf hinaus, daß in Zukunftkeine getrennten und an zahlreichen Stellen unterschiedlichen Quellprogramme mehr gepflegt werden müssen. Es ist sicher nicht übertrieben, hier von einem Meilenstein der Entwicklungsgeschichte zu sprechen, zumal dies auf der Basis V14 geschieht.
Die Testarbeiten laufen z.Zt. für folgende Plattformen: SINIX, AIX, Sun, HP-UX, Coherent, LinuX. Die ersten Installationenwerden um die Jahreswende 94/95 erfolgen können, wenn die Bewährungsproben in Wolfenbüttel (auf SINIX) und Braunschweig (auf Sun) überstanden sind. Es wird angestrebt, neben den bekannten Programmen des Kernsystems auch schon das Ausleihprogramm aLF einsatzfähig zu machen. Den Braunschweiger OPAC erreicht man per Internet unter 134.169.20.2 mit Zugangskennung OPAC undPaßwort OPAC (darauf folgt eine aktuelle Online-Information).
zwischen der DOS-Version und den UNIX-Varianten sollten so gering wie möglich sein. Intern sind die Strukturen exakt gleich, so daß man eine DOS-Datenbank auf einen UNIX-Rechner kopieren und dort gleich benutzen kann, einschließlich Index (!). An der Oberfläche gibt es aber unvermeidliche Unterschiede:
Bildschirm:
Die Farbe entfällt. Die Darstellbarkeit von Sonderzeichen (Codes oberhalb ASCII 127) ist ein Problem.
Wenn das fragliche System nur mit 7bit-Codes arbeitet, muss man mindestens für die Anzeige (mit p- und q-Befehlen) dieSonderzeichen umcodieren (z.B. ä in ae), oder aber die Datenbank als Ganzes umcodieren. Wenn es einen 8bit-Code gibt, wird er i.a. nicht mit dem PC-ASCII übereinstimmen. Dann sind entsprechend ebenfalls Umcodierungen nötig.
Tastatur:
Die Kombination der Tasten Shift, Alt und Ctrl (Strg) mit den Funktionstasten ist auf UNIX-Rechnern nicht analog zum PC realisierbar (z.B. gibt es meistens keine Alt-Taste). Daher mußte man eine andere Lösung finden. Diese sieht vorläufig so aus (vielleicht ändert sich das noch):
Shift+Taste Ctrl+f Taste (z.B. Ctrl+f F8 statt Shift+F8)
Alt+Taste Ctrl+a Taste (Registerumschaltung auch mit <F1> i statt <Alt>+i)
Ctrl+Taste Ctrl+c Taste
also jeweils hintereinander zuerst eine Ctrl-Kombination mit einem Buchstaben, dann die normale Taste.
Sehr zu beachten ist unter UNIX die Groß- und Kleinschreibung von Datei- und Programmnamen. Beispielsweise wären a.cfg,
a.CFG, a.cFg
und A.CFG
vier verschiedene Dateien, unter MS-DOS würden alle vier Namen dieselbe DateiA.CFG ansprechen. Deshalb ist eine Konvention nötig:
Ein nennenswerter Unterschied besteht außerdem bei den Pfadnamen. Unter UNIX ist '/' (der normale Schrägstrich) das Trennzeichen zwischen Verzeichnisnamen, bei MS-DOS ist es '\' (der Backslash). Außerdem kennt UNIX keine Laufwerksbuchstaben.Diese Eigenheiten müssen in den Programmaufrufen natürlich berücksichtigt werden. Ohnehin kann man die MS-DOS-Stapeldateien nicht unter UNIX verwenden, sondern muß sie in "shell scripts" umschreiben. Die UNIX-Shells sind dafür aber sehr viel mächtiger als die magere Batchsprache von MS-DOS.
Als Beispiel hier ein typischer Aufruf des Programms PRESTO:
presto -a3 -n1 -d/usr/home/opac -kp -pa=datei.ALG
('/' statt '\', '=' statt '/')
Nochmals: das Programm selbst heißt in der Tat " presto
" (nicht " presto.exe
" und auch nicht" PRESTO
"!).
Dieses seit Version 12 mitgelieferte Hilfsprogramm, für 13a beträchtlich verbessert, kann die Konsistenz einer Datenbank prüfen und Adressenfehler genau lokalisieren. Zwar enthält die Lieferdiskette auch eine Beschreibung SNIFFER.DOC, man hat aber dochden Eindruck, daß das Programm zu wenig bekannt ist. Dem soll hiermit abgeholfen werden.
Wenn man den Befehl sniffer
von der DOS-Ebene aus gibt, kann man folgende Optionen hinzufügen:
-x
| schaltet das Ein/Ausblenden am Programanfang und Programmende ab. Dies wird unter Windows und bei Hercules- und CGA-Grafikkarten benötigt (und wenn man diesen Effekt nicht wünscht). |
-a3
| wie bei PRESTO wird damit der volle Funktionsumfang freigeschaltet. Nur mit dieser Option wird beim Programmstart das Untermenü "WERKZEUGE" angezeigt. |
-s
| Betrieb auf einem Einzelplatz. Fehlt dieser Parameter, so wird der Mehrplatzmodus vorgegeben. |
-bw
| Schaltet auf eine Farbdarstellung, die auf S/W Monitoren besser lesbar ist. |
-d..
| Datenbankpfad und optional auch Datendatei (z.B. -dc:\allegro oder mit Datendatei -dc:\allegro\katalog\kat_1.ald) |
-t..
| Satztabellenpfad plus Datei (Beispiel siehe Datenbankpfad). |
-c..
| Konfigurationspfad und Datei wie oben beschrieben. |
SNIFFER nimmt zunächst Voreinstellungen im Programm vor. Dann wird nach einer SNIFFER.INI im Startverzeichnis gesucht. Fehltdiese, so wird im Programmverzeichnis (wo SNIFFER.EXE selber steht) nach der Datei
SNIFFER.INI gesucht. Werte in der INI-Datei ersetzen die Voreinstellungen. Abschließend werden die Aufrufoptionen ausgewertet. Diese ersetzen dann alle vorhergehenden Einstellungen.
SNIFFER arbeitet mit sogenannten "PULL-DOWN" Menüs und ist auch mit Maus steuerbar. Eine vorhandene Maus wird automatischerkannt. Es erscheint dann nach dem Programmstart ein "Mauscursor" (dunkles Feld) in der Bildschirmmitte. Haben Sie keine Maus angeschlossen, so können Sie auch alle Funktionen über die Tastatur steuern.
Mit den Pfeiltasten wird die gewünschte Funktion angewählt und durch "Return" bestätigt. Außerdem kann man im Pull-Down Menü das gewünschte Menü direkt durch Eingabe des farblich abgesetzen Buchstabens zusammen mit der "ALT"-Taste öffnen. Innerhalb desMenüs genügt der Druck auf den farbig markierten Buchstaben zur Anwahl. Um innerhalb einer Auswahlbox ein anderes Feld anzuwählen, kann man mit der "TAB"-Taste (ein Feld vor) oder mit "Shift-TAB" (ein Feld zurück) die verschiedenen Auswahlfelder ansteuern. Ein einzelnes Feld in einer Auswahlgruppe wird mit der "Leertaste" aktiviert und wieder deaktiviert. Die "ESC"-Tastebricht jederzeit sämtliche Vorgänge ab. Hat das anzuwählende Feld einen hervorgehobenen Buchstaben, so kann das Feld mit <ALT>-Buchstabe auch direkt angewählt werden.
Bei Mausbedienung wird der Mauscursor direkt auf den anzuwählenden oder zu ändernden Menüpunkt gestellt und dann einmal mit der linken Maustaste geklickt. Zusätzlich haben viele Fenster (wie auch dieses) oben links einen Schließknopf, auf den manebenfalls zum Abbrechen der Funktion klicken kann. Läuft der Sniffer in einer DOS-Box unter Windows, so wird eine Maus nur dann erkannt, wenn beim Öffnen der DOS-Box der Mauszeiger über dem Fenster steht. Wird der Sniffer in einer DOS-Box unter OS/2 v2.x gestartet, so ist der Mauszeiger im Sniffer problemlos nutzbar, egal wo die Box geöffnet wird.
Der Startbildschirm mit dem Logo in der Bildschirmmitte ist die Steuerzentrale. Die oberste Zeile bietet vier Menüs zur
Auswahl: Datei
, Kontrolle
, Werkzeuge
(nur bei Option -a3) und Einstellungen
.
Man beginnt mit einer Auswahl im Menü Datei
(wenn man die Dateinamen nicht per Aufrufoption schon vorgegeben
hat) und startet den zugehörigen Vorgang unter Kontrolle
.
Datei
Datendatei auswählen
Wollen Sie eine Datendatei (Typ *.?LD) untersuchen, so wählen Sie zunächst das Untermenü "Datendatei öffnen" an. Das Eingabefenster, das nun erscheint, ist für alle Dateiauswahlen identisch. Sie können direkt einen Dateinamen eingeben (auch mit Laufwerks- und Pfadangaben), oder grafisch Laufwerk und Pfad wechseln. Die Wahl eines neuen Pfades und/oder Laufwerkes wird imFenster rechts unten durchgeführt. Wenn Sie keine Maus haben, wechseln Sie mit der TAB-Taste die Auswahlfelder. Im linken,unteren Fenster werden jeweils die gefundenen Dateien angezeigt. Markieren Sie die gewünschte Datei durch Mausklick oder mit <Enter>. Nun sehen Sie in dem Statusfenster in der obersten Zeile Ihre Datei als eingestellte Datendatei (incl. Größenangabe).
TBL-Datei auswählen
Der Sniffer kann Unstimmigkeiten in der Datenbank aufdecken, wie z.B. falsche Satznummern und falsche Adressen in der TBL-Datei(der Adressentabelle). Wählen Sie die zu Ihrer Datenbank gehörende TBL-Datei an. In der mittleren Zeile zeigt das Programm nun die gewählte TBL-Datei an, sowie sofort die Anzahl der in der Datenbank enthaltenen Datensätze.
CFG-Datei auswählen
Um eine Datendatei auf Satzebene zu analysieren, muß der Sniffer wissen, welche Kategorien in der Datenbank erlaubt sind. Das steht in der Konfigurationsdatei. Haben Sie hier die richtige Konfigurationsdatei angewählt, so bietet die Kontrolle einer Datendatei zusätzliche Untersuchungsmerkmale an. Der wichtigste ist hierbei der "Kategoriencheck"!
Im Protokoll finden Sie hinterher auch eine vollständige Liste der erlaubten Kategorienummern.
Programm beenden
Über diesen Punkt wird das Programm verlassen.
Kontrolle
Datendatei checken
Haben Sie eine Datendatei ausgewählt, starten Sie hier deren Kontrolle. Es öffnet sich ein Fenster, in dem noch einige Untersuchungsvorgaben individuell angepaßt werden können. Sie können die Standardeinstellung jedoch auch übernehmen und den Datencheck durch <Enter> oder Klicken auf "Start" sofort beginnen. Der Fortgang der Überprüfung wird ständig im Fensterangezeigt. Analysierte Datensätze sind weiß, wenn sie in Ordnung sind, grün, wenn der Datensatz gelöscht ist und gelb, wenn er defekt ist. Im Fenster sehen Sie die letzten Datensätze. Neu untersuchte Datensätze werden jeweils von unten nachgeschoben. Haben Sie vorher das Feld "Fehler sofort anzeigen" markiert, so wird bei einem Fehler der defekte Datensatz in einem extraFenster angezeigt. Dieses können Sie mit F5 vergößern und wieder verkleinern, oder mit ESC die Untersuchung fortsetzen. Nach der Untersuchung kehrt der Sniffer wieder in's Hauptmenü zurück, von wo aus Sie als nächstes den Menüpunkt "Ergebnis anschauen" wählen sollten. Haben Sie neben der Datendatei auch noch eine CFG-Datei angegeben, so haben Sie die Möglichkeit"Kategorienstrukur prüfen" ebenfalls anzuwählen. Anhand der CFG-Datei kann der Sniffer nämlich ersehen, in welcher Reihenfolge die Satzkategorien aufeinander folgen müssen. Diese Prüfroutine ist auch ein Werkzeug, mit dem man Datensätze aufspüren kann, die durch Satzverlängerung zu einem Datensatz zusammengefallen sind. (Bei früheren Versionen kam gelegentlich solches vor.)
Abhilfe bei fehlerhafter Datendatei: CockPit-Routine "Datei entlüften" (unter "organisieren")
Ergebnis anschauen
Der Sniffer erstellt ein Protokoll seiner Tätigkeit. Hier vermerkt er nicht nur Datum und Uhrzeit, sondern auch die Einstellungen, die zu diesem Ergebnis geführt haben. Wurden Unstimmigkeiten im Datenmaterial gefunden, so wird die Position des Fehlers protokolliert, sowie bei gesperrten und vermurxten Datensätzen auch noch der Datensatz selbst ausgegeben, damit man denSatz in der Datenbank wieder aufffinden kann. Bei Problemen mit Ihren Datendateien kann dieses Prüfprotokoll hilfreich sein. Falls es nicht beim nächsten Prüflauf überschrieben werden soll, kann man vor dem Programmstart "Protokoll anhängen" wählen. Das neue Prüfprotokoll wird dann einfach an das bestehende angehängt. Bei Bedarf können Sie das Prüfprotokoll aber auch gleichausdrucken, und zwar mit dem nächsten Menüpunkt:
Ausdruck Datencheck
Dieser dritte Menüpunkt der Gruppe dient dem Ausdruck des Prüfprotokolls. Standardmäßig geht dieses auf LPT1 (also den "normalen" Drucker). Sie können aber auch andere Schnittstellen definieren oder sogar z.B. C:\MIST.OUT, also eine Ausgabedatei unter "Verschiedenes - Voreinstellungen" eintragen. Dieser Ausgabekanal wird dann benutzt, und zwar OHNE(!) Überprüfung.
Satztabelle prüfen
Dieser Menüpunkt öffnet das Statusfenster für die Satztabellenprüfung. Eine Satztabellenprüfung bietet sich an, wenn man
eine vollständige Datenbank hat, in der aber Schlüssel zu nicht existierenden Einträgen vorhanden sind, oder ab und an "Kein Eintrag unter dieser Satznummer" erscheint. Hier wird die Konsistenz der gesamten Datenbank getestet - und nicht nur ein Datenfile. Über Einstellungen haben Sie die Möglichkeit sowohl vorwärts als auch rückwärts die Satztabelle zu analysieren, alsauch an einem bestimmten Datensatz die Untersuchung zu beginnen.
Abhilfe bei fehlerhafter Tabelle: CockPit-Routine "Satztabelle erneuern" (unter "organisieren").
ErGebnis anschauen / AusdruCk Satzcheck
... funktionieren wie schon für die Datendatei erklärt.
Werkzeuge
(nur bei Aufrufoption -a3 verfügbar)Diese Funktionen sind mit Vorsicht zu genießen, da im Gegensatz zu den bisherigen Funktionen ein schreibender Eingriff in die Dateien möglich ist. Dies gilt umso mehr, wenn Sie eine Datenbank im Netz "behandeln".
Datendatei zerlegen
Haben Sie einen fehlerhaften Datensatz der verhindert, daß eine Datendatei indexiert werden kann, so kann die betreffende Dateiin 10 kleinere Dateien zerlegt werden. Nun sollten sich 9 davon indexieren
lassen. Die defekte Datei kann man anschließend wiederum in 10 kleinere Dateien zerlegen, usw....bis letztendlich der einzelne defekte Datensatz übrig bleibt. Diese Funktion ist zur Zeit gähnend langsam -
aber in Fällen wie gerade beschrieben kann sie aber trotzdem nützlich sein!
Satztabelle sperren
Das kann auch vom CockPit aus ohne Probleme durchgeführt werden (Routinen/organisieren), ist also nur der Vollständigkeit halber mit aufgenommen worden.
Satztabelle freigeben
Was man sperren kann (s.o.), muß man auch wieder freigeben können!
Tabellenanfang prüfen
/reparierenDiese Funktion ist etwas irreführend. Wirklich reparieren läßt sich eine Satztabelle nur über die Routine "TBL-Datei erneuern" vom CockPit. Jeweils 4 Byte bestimmen eine Datenadresse incl. Datendateinummer, jedoch kann der Sniffer nicht ermitteln, ob dieWerte der TBL richtig sind, oder die an der Position der Datendatei. Reparieren kann man in einer Satztabelle hingegen die ersten 2 Byte. Sie bestimmen, ob Daten geschrieben werden können oder nicht. Das 2. Byte hat zwar eigentlich keine Bedeutung, doch gab es Allegro-Versionen, die übersensibel reagierten, wenn dieses Byte nicht auf 00 steht. Hiermit werden diese beidenBytes wieder auf den Normalzustand gebracht.
Verschiedenes
Informationen zum Sniffer und dessen Voreinstellungen sind hier untergebracht:
Einstellungen
Wählen Sie diesen Menüpunkt an, um Ihre ganz persönlichen Voreinstellungen zu machen. Diese werden dann in dem Startverzeichnis als "SNIFFER.INI" abgespeichert und bei jedem neuen Programmstart wieder eingelesen. Ist diese Datei nicht vorhanden, so werdenStandardwerte vom Sniffer automatisch vorgegeben.
Online Handbuch
..ist der Text, den Sie gerade lesen. Diese Datei können Sie beliebig gegen einen eigenen Text austauschen, wenn Ihnen etwas besseres einfallen sollte. Speichern Sie den Text als ASCII-Text ab, und zwar unter dem Namen "SNIFFER.DOC" im Verzeichnis, in dem auch "SNIFFER.EXE" steht. Dann wird Ihr Text jedesmal geladen, wenn ein Anwender das Online Handbuch lesen möchte.
Über das Programm
Neben einem Autorenhinweis (ja irgendwo muß doch stehen, daß das Programm von M. Evers ist), finden Sie dort die ebenfallswichtigen Hinweise auf genaue Versionsnummer und Erstellungsdatum des Programms.
hat auch eine Inventarisier-Funktion. Wenn ein Mehrfachexemplar noch fehlt, gibt es die Möglichkeit, die erforderlicheSignaturkategorie sofort einzugeben, und zwar mit Druck auf 'X' (großes X). Dann kommt eine Eingabezeile, in die man die neue Signatur eingibt. Diese wird in eine zusätzliche Signaturkategorie der aktuellen Aufnahme übernommen. Wenn ein Buch überhaupt noch nicht erfasst ist, kann man also zuerst mit 'I' die Notaufnahme machen, diese mit F10 speichern, und sofort mit 'X'zusätzliche Exemplare anhängen. In der neuen CAT.API ist die Indexierung des Ausleihers berücksichtigt (Sprungmarke #-X, Register 11 wegen der Datensicherheit).
In der neuen D-1.APR von V13a wird angezeigt, AN WEN das Buch ausgeliehen ist, oder nur DASS es ausgeliehen ist (wahlweiseUnterprogramme #(S und #(T ).
Das mit V13a erstmals ausgelieferte Programm hatte den Fehler, daß das zweite Exemplar nicht zurückgebucht werden konnte. Dieser wurde beseitigt. - Instituts- und Spezialbibliotheken, die keinen komplizierten Ausleihgeschäftsgang benötigen, habendas Programm sehr begrüßt. aLFA wird es deshalb auch für V14 geben, desgleichen MENUED.
Die Lieferdiskette 13a enthielt ferner dieses Hilfsprogrämmchen. Es liest eine sequentielle ASCII-Datei ab einer vorgegebenenZeile bis zu einer anderen vorgegebenen Zeile. Als Zeilentrenner gilt dabei 13 10.
Wenn man einfach nur RDWR als Befehl gibt, kommt dieser Hinweistext:
Hilfsprogramm zum Lesen/Schreiben beliebiger Dateien Aufruf mit rdwr FROM TO FILE_IN FILE_OUT [Hn] [0] z.B. rdwr 1 10 datei ergebn liest die ersten 10 Zeilen von DATEI und schreibt sie in ERGEBN Hn übergehe n bytes am Anfang eines Satzes (H5 für .ALD-Dateien, H1 für .ALG) 0 Nullen in CR/LF umwandeln (allegro-Daten)
Man setzt ein:
FROM die Anzahl der zu übergehenden Zeilen (Zählung beginnt mit 1) TO Nummer des letzten Satzes FILE_IN Name der Eingabedatei FILE_OUT Name der Ausgabedatei (darf nicht derselbe Name sein)
Wenn es sich um eine .ALG oder .ALD-Datei handelt, muss man statt Zeilen die Anzahl der Datensätze angeben, da 13 10 dieSatztrennung ist, d.h. jeder Datensatz gilt als "Zeile". Dadurch kann man eine grössere allegro-Datei in kleinere zerlegen. Die Ausgangsdatei bleibt in jedem Fall unverändert.
In der Datei AC13A.LZH verbargen sich auch noch folgende Dateien und (Public Domain) Programme:
AW.EXE | Residentes Programm für eine Pop-up-Tabelle des aktuellen Zeichensatzes; Beschreibung dazu in AW.TXT |
FONTLOAD.EXE | Laden eines VGA-Zeichensatzes aus einer .FON-Datei |
FONTSAVE.EXE | Speichern des aktuellen Zeichensatzes als .FON-Datei |
FONTSPY.EXE | Kopieren des Zeichensatzes aus einer Anwendung heraus, die einen eigenen Zeichensatz verwendet |
FONT.TXT | Beschreibung zu den drei Programmen |
OSTWEST.FON | Erweiterter Zeichensatz, DIN-31628-2 + cszCSZ mit Hacek + polnische Sonderbuchstaben |
OW.BAT | zum Laden dieses Zeichensatzes (mit AW und dann <Alt> +w können Sie die Zeichen alle sehen und benutzen!) |
RUS.FON | Kyrillischer Zeichensatz; Laden mit FONTLOAD < RUS.FON |
Achtung: Innerhalb EINER Datenbank kann man immer NUR MIT EINEM Zeichensatz arbeiten!!! Man muss sich also vorher entscheiden.
Wenn man vorher VGAFONT eingesetzt hat, kann man jetzt OSTWEST benutzen, denn das ist kompatibel.
Schauen Sie sich die OSTWEST.FON oder RUS.FON einmal an. Die Struktur dieser Dateien ist sehr einfach. Mit jedem Texteditor lassen sie sich bearbeiten. Jedes einzelne der 256 Zeichen kann modifiziert oder durch ein anderes ersetzt werden. Der Haken: Noch gibt es keine Druckerunterstützung für diese Zeichensätze, erst recht nicht für eigene Modifikationen. Dies ist deshalbschwierig, weil die Zeichenmatrix eines Druckers in der Regel ein anderes Punktmuster hat als der VGA-Bildschirm.
Mit 13a kam schließlich auch dieses Hilfsprogramm von Heinrich Allers für die Ermittlung aller Sprungbefehle und Sprungmarken in einer Parameterdatei oder CFG. Starten Sie das Programm, dann sagt es Ihnen selbst, was es macht.
Sein Produkt eine Tabelle der verwendeten Sprungmarken, die man in die Parameterdatei als Kommentar übernehmen kann. Soverbessert man auf schnelle Art die Dokumentation dieser Dateien. Außerdem listet SPRUENGE solche Sprungbefehle auf, die ins Leere zielen, sowie Sprungmarken, die nicht angesprungen werden!
Eine Veranstaltung für Einsteiger und leicht Fortgeschrittene gibt es am 6./7.10. in Leipzig (Tel. 0341-2130081-147, Frau Dr. Tews), eine weitere in Greifswald am 27./28.10. (Tel. 03834-63342, Frau Dr. Wegelt).
Ein Wort zur Erneuerung Ihres Abonnements. Erfahrungsgemäß gibt es immer Bibliotheken, die noch im laufenden Haushaltsjahr dieBezahlung für das nachfolgende Jahr tätigen wollen. Damit dies abgewickelt werden kann (und nicht im Dezember noch ein Gedränge entsteht) versenden wir die Formulare für die Erneuerung mit dieser Ausgabe.
Wir weisen darauf hin, daß die Entgelte unter dem Vorbehalt der Genehmigung durch das Ministerium zu sehen sind. Sollten sichÄnderungen ergeben, werden wir diese umgehend mitteilen.
Datum der letzen Änderung: 15.09.94
© 1995, UB Braunschweig
Bernhard Eversberg (b.eversberg@tu-bs.de)